Intelicar
A car remote-controlled via a smartphone
Author: TodaΘcΔ Tudor
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-TudorTT
Descriptionβ
Intelicar is a remote-controlled car operated via a smartphone using Internet. It is equipped with sensors on to detect nearby objects. If the car gets too close to an obstacle, the buzzer is activated as a warning.
Motivationβ
I've always been passionate about cars, and I wanted to dive deeper into how some of the systems we use every day as drivers actually work. This project gave me the chance to explore that by building a miniature version of a car with real-world features like obstacle detection, motor control, and speed sensing. It's a hands-on way to show how useful and important these systems are-not just in big commercial vehicles, but even in small embedded systems. It's all about turning curiosity into something real and practical.
Architectureβ
Raspberry Pi Pico 2Wβ
- Purpose: Central controller
- Function: Manages and coordinates all components in the system, including sensors, motor driver, buzzer, and motors. Runs the core logic for movement control and obstacle detection.
L298N Motor Driverβ
- Purpose: Motor control interface
- Function: Controls the speed and direction of the DC motors based on signals from the Pico. Enables forward, backward, and turning motion.
DC Motorsβ
- Purpose: Provide mobility
- Function: Drive the car by rotating wheels in desired directions. Operate independently or together to enable turning and directional control.
U-Shape Photoelectric Sensorβ
- Purpose: Speed measurement
- Function: Detects motor rotation (RPM) by sensing interruptions in the beam. Sends feedback to the Pico for precise motor control.
HC-SR04P Ultrasonic Sensorsβ
- Purpose: Obstacle detection
- Function: Measure distance to nearby objects by emitting ultrasonic pulses and timing the echoes. Used to avoid collisions and trigger the buzzer.
Buzzerβ
- Purpose: Warning system
- Function: Emits a sound when an obstacle is detected within a certain range. Alerts the user of potential collisions.
Logβ
Week 28 - 4 Mayβ
Gathered all my parts for the car.
Week 5 - 11 Mayβ
Started working on the code for the car. Connected it to the laptop over internet and worked a little bit on the motor setup.
Week 12 - 18 Mayβ
I implemented the sensor in the code. Connected everything. Now i only need the chassis for the car .
Week 19 - 25 Mayβ
Finnished motor logic, now when the car gets close to an obstacle it will stop and emit sound.
Week 26 - 30 Mayβ
Refined the motor logic, the car now gets commands from the laptop and runs them. I can move the car and change the speed of the motors. I added 2 more sensors for better object detection at the front of the car.
Hardwareβ
2x Raspberry Pi Pico 2W: acts as the primary processing unit, equipped with Wi-Fi capabilities.
4x HC-SR04 Ultrasonic Sensor: utilized for measuring distances to detect nearby objects.
1x L298N Motor Driver Module: Provides the ability to control the two wheels.
2x U Shape Photoelectric Sensor: Provides measurments for controlling the currents going into the motors.
2x Wheels with motors
2x LED
1x Buzzer
1x Battery Support (4 x 1.5v)
1x Baterry 9v
Schematicsβ
Bill of Materialsβ
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2W | The microcontroller | 40 RON |
Gearmotor with Wheel | The motors | 15 RON |
L298N Dual Motor Driver | The motor driver | 11 RON |
U Shape Photoelectric Sensor | The photoelectric senzor | 9 RON |
HC-SR04P | The sensor | 7 RON |
Battery support | Battery | 6 RON |
Softwareβ
Library | Description | Usage |
---|---|---|
embassy | Embassy | An asynchronous executor and Hardware Abstraction Layer (HAL) designed for constructing embedded applications in Rust. |
embassy-executor | Embassy Executor | Used for task scheduling and asynchronous programming. |
embassy-rp | Embassy RP | Used for initializing and interacting with peripherals. |
gpio | GPIO | Used for interacting with GPIO pins. |
cyw43 | CYW43 | Used for interacting with the wi-fi chip of the pico. |
HC-SR04P | Sensor Driver for HC-SR04P | Used for controlling the ultrasonic sensor. |