Search This Blog

Wednesday, 9 October 2013

My trials and tribulations in making an autonomous rover.

This being my first post, and being well into this project... let's skip the formalities and simply describe what I'm attempting to build.

The project is an autonomous Rover powered by a Raspberry Pi and a pair of Arduinos.

The Raspberry Pi manages the Webserver console, the MySQL database, and communications with the Arduinos, and the GPS.

The First Arduino manages Motor control for two DC motors (via a dual H-Bridge motor shield) as well as running the two servo motors and two sonars for the scanning pod.  This rover steers "tank style" as opposed to using a servo to manage front steering.

This Arduino is also the I2C "master", and manages communications with an Accelerometer, a compass, a thermometer/humidity sensor, and the second Arduino.

The Second Arduino's sole job is to constantly scan the Analog values for front and back, right and left, Infrared distance sensors , as well as manage counters for left and right wheel encoders.

The Arduino's are programmed from the Raspberry Pi using the native "Sketch" tool.
The Pi itself communicates via Serial port to the Arduino using Python and "twisted". Managing a queue of commands to the Arduino, and statistics out from the Arduino.  MySQL stores all of this information for processing and reporting.

The front end is PHP served from the Apache Webserver onboard.