The robot now has two OOPIC-based CPU boards, one designed
to specialise in driving the motors, and one as a master
controller CPU.
The motor OOPIC board sends PWM out to the 4QD motor
controller boards, and monitors the current drawn by the
motors, and signals from a quadrature encoder mounted on
each drive shaft.
The master controller OOPIC has RS232 interfacing
electronics, and will eventually interface to a central
PC/104 system running Linux, via the SCP protocol. Its job
is to receive messages from the PC/104 system and route them
to the appropriate board via I2C, for example to control the
motors or to request sensor information.
I've also built a maths co-processor board, based on the Al
Williams PAK-II, which will be used by the OOPIC boards for
fast flaoting-point calculations. These are required for a
PID speed control algorithm on the motor board (although not
strictly necessary, floating point will make this
considerably easier), and by a board yet to be built which
will control a set of sonar sensors mounted on pan/tilt
units. The board will use the maths co-processor to perform
geometrical calculations to merge data from sonars placed at
different positions around the robot.
The next job is to write and test the PID speed control
software.