ERBOT1 is actually the test platform for some of the sensors
and interfaces that will go into ERBOT2, a bigger project
that is under construction nowdays.
ERBOT1 has an infrared "eye" that works on the principle of
reflection of a 40 KHz modulated burst of IR light to detect
any near obstacles in the robot path. It also has two "back
to back" mounted sonars transducers (Polaroid), that can
rotate 180 degrees to monitor long range obstacles. Movement
of the sonars head is accomplished by a servo motor being
driven to get the desired rotation. The information from the
sonars is then used in the navigation desitions.
To help with navigation I also installed a Dinsmore compass in the very top of the robot, to avoid interference from the
electromagnetical noise from the motors.
The Compass uses a 12C509 microcontroller that communicates via an I2C bus with the "master" microcontroller, a
16F628. All servos are controlled by a separate 16F84A
that communicates with the master controller using RS232. The servo controller has the choice of spanning the servor 90 or 180 degrees, and can drive up to 8 servos simultaneously. It took a while to fine tune this, but it is working fine now.
All the programming for all controllers was done in C, using the HT-PICC compiler, a superb compiler.
The navigation algorithm is very simple and will be greatly
improved in ERBOT2. For now, ERBOT1 looks for open spaces
using the sonars and then uses the IR "eye" to avoid any obstacles. Whenever it finds a dead-pocket corner where the IR sensor doesn't help anymore, it then stops, activates the sonar once more and uses the compass to find the best open
space route again.
The whole mecanism was mounted using an old 3.5" floppy cover, and the electronics are breadboarded to allow easy
modifications and testing. It is powered from a 9V rechargable battery for the electronics, and the motors are using 4 AA batteries, also rechargable.