ECE3375 - FInal Report
ECE3375 - FInal Report
Date: 2025/04/04
Problem Definition
Blind spot monitoring (BSM) is a crucial safety system used in modern vehicles to detect
adjacent vehicles that may not be visible to the driver, especially when preparing to change
lanes. This project simulates a practical BSM, and lane change alert system using LEDs
and a buzzer to represent feedback to the driver. By simulating different driving cases (ex.
Constant blind spot occupancy, cars approaching from behind, or passing slow car), the
system offers realistic scenarios that are critical for driver safety.
Specification
• Detect vehicles in or approaching the vehicle’s blind spots and signal through
constant yellow LED of presence.
• Simulate Time-To-Collision (TTC) alerts based on relative speed and distance.
• Visual lane change intent feedback using red LED blinkers.
• Alert drivers of unsafe lane changes using a buzzer.
Functional Description
This BSM system monitors simulated vehicle proximity and motion data and uses logic to
determine whether lane changes are safe. The system issues timely warnings to the driver
via:
Each component is handled using timing and logic operations in software, creating a
modular and realistic simulation.
Input/Output Requirements
Inputs:
Outputs:
Focus of Prototype:
Hardware/Simulation Platform
Scenarios to Simulate
Verification Plan
The initial prototyping plan included integrating a HLK-LD2420 radar sensor to detect
motion-based blind spot intrusion. This radar would have provided real-time object
detection within the blind spot. However, the sensor caused instability and boot-looping
on the ESP32-S3 when connected to 3.3V or 5, making implementation unfeasible within
the time constraint. Alternative sensors like the HC-SR04 ultrasonic sensor were also
explored, but voltage mismatches and GPIO conflicts led to similar issues.
Microcontroller Selection
Comparison
• ESP32 (Espressif): Chosen for its affordability, community support, and GPIO
flexibility. It includes WiFI/BLE with could be implemented in the future to make the
device more scalable.
• ARM Cortex-A9 (DE10-Standard): Powerful, but too complex and power-hungry for
our small, embedded simulation
Justification
ESP32 provides the required number of GPIOs, supports fast prototyping, and is cost-
effective. Its simplicity suits simulation-based embedded projects.
Key Revisions:
Notable Challenges:
Iterations of Software:
Source Code
// ===CASE TOGGLES===
// Set these to true or false to simulate different scenarios
// ===PIN LAYOUT===
// GPIO connections to ESP32 components
//Active Buzzer
#define BUZZER 10
void setup() {
void loop() {
if (enableCase2) {
float relSpeed = car2_speed - ourSpeed; // Relative speed between car
approaching our vehicle
float ttc = abs(car2_distance) / relSpeed; // Time to collision if
current speeds and distances are maintained
if (car2_active) {
car2_distance += relSpeed * 0.05; // Move the car forward by
its relative speed every loop (~50ms step)
if (enableCase3) {
float relSpeed = ourSpeed - car3_speed; // Relative speed between our
vehicle and the car we are passing.
float ttc = abs(car3_distance) / relSpeed; // Time to collision with the
car we're approaching from behind
if (car3_active) {
car3_distance -= relSpeed * 0.05; // Simulate us catching up
and passing the car by reducing distance
if (ttc < ttc_threshold || (car3_distance >= blindspot_start &&
car3_distance <= blindspot_end)) {
blindLeft = true; // If TTC is low OR car is in
blind spot zone, trigger left warning
}
// Turn ON buzzer only if a lane change is attempted into an active blind spot.
bool buzzerOn = (blindLeft && turnLeftActive) || (blindRight &&
turnRightActive);
digitalWrite(BUZZER, buzzerOn ? HIGH : LOW);
// SERIAL OUTPUT
delay(50);
}
Images of Circuit
Conclusions
This project demonstrated that it is feasible to implement an intelligent blind spot
monitoring system using minimal hardware and primarily software-based simulations. The
Time-To-Collision logic effectively models real-world scenarios, providing a cost-effective
and safe method for testing collision detection algorithms.
Although I originally planned to use real sensors like the HLK-LD2420 or HC-SR04, I
encountered significant power and compatibility issues. The fallback simulation allowed
us to maintain system functionality while ensuring safety and reliability.
From a sustainability standpoint, the system uses low-power components, is scalable for
future enhancements, and minimizes e-waste by avoiding unnecessary hardware.
Environmentally, the device has minimal negative impact and promotes safer driving,
which can indirectly reduce accident-related waste and emissions.
This project reinforced my skills in embedded system design, particularly around software
simulation, GPIO mapping, and power management. It also clarified how different
subsystems interact in real-time embedded systems. I also learned the importance of
considering GPIO boot behavior and sensor power constraints when working on hardware-
in-the-loop systems.