Autonomous Car Using Atmega


Let us begin with one key observation: cars are cool.   From consumer transportation to manufacturing to childrens’ toys, vehicles in their many forms are some of today’s most influential machines.   Autonomous vehicles are already in use in many manufacturing facilities, and they are also sold as toys.   Perhaps one day, the world’s highways will be filled with cars requiring no user intervention.   While we are not there yet, and may never get there, an autonomous vehicle can serve as a very interesting and practical design exercise.


Our vehicle uses optical sensors to follow a line on the floor.   Some autonomous vehicles used in manufacturing use a similar concept, following magnetic strips embedded in the factory floor.   The versatility of an optical design should be readily apparent, since re-routing the vehicle requires no more than re-painting a line.
High-Level Design
Our vehicle uses reflective phototransistors to follow a line on the ground beneath it.   The state of the phototransistors is captured, and the car is controlled accordingly by an Atmel 8515 microcontroller.   If the car detects a small deviation from the line, it will correct its path by steering in the appropriate direction.   If it detects a large deviation, it will take more “drastic” measures to correct its path: it will back up while steering itself back towards the line until it re-centers itself.   It then continues on its path.
The original objective for this project was to optimize the car for the speed with which it navigated the line.   To do this, we would have increased the speed when little compensation was needed, and decreased the speed as more was needed.   This optimization, however, did not require much more effort on our part than the heuristic outlined above.   This is because the speed is mechanically regulated by the gradual acceleration of the car in balance with the direction reversal for large corrections.
The hardware for this project was the bulk of the work.   Because we were making a moving vehicle, we decided that it would be best not to have any of the circuitry on breadboards.   Breadboards are also expensive, so we probably would have had to disassemble the car after its demonstration.   We therefore chose to wire-wrap all of the circuitry.   This required a fair amount of labor, but it was well worth it in the end.

EE 476 Final Project

Read more:  Autonomous Car

Leave a Comment

Your email address will not be published. Required fields are marked *