Smart Car
For this project we will take a model car and add microcontrollers and sensors to it and program it to operate in a dual mode - as an autonomous car and as a remote controlled car.
Autonomous Mode
In autonomous mode, as soon as the car is switched on, it will drive stright and stay within a driving lane marked by white lines. It may tend to move in any direction due to random forces of friction and slopes but will correct its direction to stay within the lane. The car will stop if it detects any obstacle in front of it and not move until the obstacle is removed.
If it reaches a T-junction it stop and then make a left or a right turn, after determining that there are no cars coming from either direction (as shown in the illustration below).
The car will have a drive controller that will achieve turns by slowing down and speeding up alternate wheels to turn right or left. The speed of the car should be kept slow for better control with low-sensitivity sensors.
The sensors will include:
-
An ultrasonic distance sensors to determine obstacles and other cars. The sensor will be monted with a 180 degree servo and keep it rotating continuously to monitor both left and right front sides of the car.
-
Infrared sensors to detect the lane marking lines. These will be mounted alongside the car facing downwards. The lanes will be marked using white masking tape.
Manual Control Mode
The car will be controlled manually using a mobile app that will connect to the microcontroller and send control signals over Bluetooth Low Energy (BLE).
Under manual control it can move in the forward and reverse directions, adjust direction to stay in a stright line, turn left and right, and move at three speeds.
We will use an Arduino UNO board to read and analyze the data received from the sensors or the control signals and to make a decision and send control signals to the LD293 (available as an Arduino UNO shield) controller to spin or stop the wheels of the car.
The mobile app will allow to switch between autonomous and manual modes.