This is my third robot. It is built on an old RC car. It can navigate around a route with pre-programmed waypoints using GPS. It is powered by two 7 cell, 2000 mAh NiMh battery packs. The robot is using a brushed motor designed for “crawler”-RC cars together with the original transmission from the RC car. The “crawler”-motor is slow and strong, perfect for this application. I use a standard electric speed controller for RC cars with proportional forward and reverse drive to control the motor.
There are three PIC microcontrollers in the robot. The main navigation processor receives data from the GPS receiver and calculates heading and distance to the next way point. Then it makes control-values for the electric speed controller and steering servo. Those values are sent using serial data to the second microcontroller. This microcontroller receives the data via interrupt and make standard servo PWM-pulses.
A third microcontroller is used to measure the speed of the robot. It measures the time between two pulses from a hall-effect sensor. There are two magnets glued to the inside of the wheel which makes two pulses in one revolution of the wheel. This microcontroller sends a value that is proportional to the speed to the other two microcontrollers.
The microcontroller which makes the servo-pulses is using the speed-signal to adjust the power to the motor to keep the robot at a fairly constant speed independent of the terrain. The main navigation controller is using the speed-signal to adjust the steering signal, the front wheels are turned less when the robot is moving faster.
All three microcontrollers are mounted on a big circuit board which is installed in the bottom of the “electronics box”. All the cables are connected to the circuit board using connectors. This makes it easy to take out of the robot if I want to modify it and add more features.
I have also added a relay that can switch off the power to the motor and the steering servo. The relay is controlled by the main navigation controller. The power is switched off when the robot stands still. This makes the robot receive GPS signals faster.