This project builds an ultrasonic radar using an HC-SR04 time-of-flight (ToF) sensor mounted on a micro servo to create a 2D map of nearby objects. At each angle step, a Raspberry Pi measures distance and streams angle-distance data to a lightweight web UI (Flask + JavaScript/p5.js) for real-time radar visualization.
- Wireless Communication Engineer
- UI & Integration Lead
- Set up the Raspberry Pi as a permanent AP.
- Host a web server on the Raspberry Pi.
- Build an appealing visual display for the radar.
- Map the data from the sensors to the UI.
- Host the UI on the web server.
- Integrate the ultrasonic sensor & servo.
- Handle GPIO pin consideration & power considerations.
- Test hardware and troubleshoot issues.
- Produce a circuit diagram.
- Design the core software to utilize the ultrasonic sensor & servo using object-oriented principles.
- Coordinate the ultrasonic sensor with the servo.
- Implement classes such as:
- UltrasonicSensor
- ServoController
- Optimize timing and mitigate delay.
- Prepare UML diagrams showing class relationships.
- Handle the bulk of the writing portions e.g. proposal documents, presentations, etc.
- Maintain a social media presence showcasing our product.
- Create engaging videos for engagement on Instagram.
- Documentation & Reporting: All members must maintain a consistent work log.
- Testing & Debugging: All members are responsible for testing & debugging their work.
- Reflection Writing: All members must write individual reflections at the beginning and end of the project timeline.
- Version Control with GitHub: All members will use Git & GitHub for accurate version management and contribution tracking.
- Finalize project scope & requirements.
- Assign team roles & responsibilities.
- Select hardware components and software libraries.
- Choose a software framework for the UI.
- Draft initial circuit diagrams.
- Create preliminary UML Diagrams.
- Wire and test the ultrasonic sensor & servo motor together.
- Configure GPIO pins and satisfy power requirements.
- Implement basic servo movement software & ultrasonic sensor distance calculation software.
- Implement core software using object-oriented design.
- Develop classes such as:
- UltrasonicSensor
- ServoController
- Coordinate sensor readings with servo rotation.
- Optimize timings & reduce measurement delays.
- Update UML diagrams to reflect final class structure.
- Configure Raspberry Pi as a wireless access point.
- Set up a web server on the Raspberry Pi.
- Define data format (angle-distance pairs).
- Transmit radar data from the device to a client.
- Develop radar visualization interface.
- Map incoming data to visual display.
- Final debugging and performance tuning
- Validate reliability of hardware connections.
- Finalize diagrams, screenshots & demo materials.
- Prepare reflection content.
- Deliver project presentation and live demonstration.
- Present design decisions, results & findings.
- Discuss challenges, limitations and lessons learned.
- Main control unit of the system.
- Interfaces with the ultrasonic sensor & servo motor.
- Supports web server hosting for data transmission & visualization.
- Used to measure the distance of objects by emitting ultrasonic pulses and calculating the distance based on echo return time.
- Suitable for low-to-medium-range distance measurement.
- Used to rotate the ultrasonic sensor across a defined angular range.
- Enables scanning a wider area and allows for radar visualization by associating specific angles with distance measurements.
- Breadboard
- Jumper Wires
- External Power Supply
- Mounting Hardware
- Used for embedded software development on the Raspberry Pi.
- Enables rapid prototyping, easy-to-read object-oriented code, and easy integration with GPIO and networking libraries.
- Used to control the servo motor movement and the utilize the ultrasonic sensor.
- Used to easily host a web server for the radar visualization interface between the Raspberry Pi and connected clients.
- Used to create the radar-style visualization interface that displays distance and angle data in real-time.