REVIVING AN ANDROBOT BOB: Part 4
often. If that code is
revised, it is a manual
process of plugging
in an SX-Key on the
co-processor board and
flashing the new code
onto the SX48 chip. About
the only other features I
may add is to allow the
LEDs to fade in and out
and perhaps add a
maximum speed for
head movements. Other
than that, all of the
focus will be on building Photo resistors for BOB.
up the custom library of
routines specific to BOB and higher level code upon that.
With the exception of the original TOPO robot, the
original programming for both the TOPO II/III and BOB was
done in Forth. There is good documentation on the Forth
routines in the TOPO II/III robots which provides a good
reference for the original function names and coding style.
Although most of the original code for BOB has been lost,
a good friend of mine (Bob Wind) helped me uncover some
of the routines for the BOB/XA robot. Although we are
writing all the new code for BOB in Interactive-C, we
can certainly name many of the functions and routines
with names like the original ones. This way, BOB will be
programmed a bit like it was originally. At least as close as
it can be considering we are using a different language!
We’ll start out with the lower level functions specific to BOB
then we’ll add a bit of smarts and autonomy to make him
act more like he was supposed to.
Besides the description of the functions from the TOPO
manual and the fragments uncovered from BOB/XA, we
can get other clues as to what BOB was supposed to do
from the advertising brochure: “A list of routines from the
Standard cartridge are: random walk, random speech,
obstacle avoidance, and self diagnostic check. He can also
flash lights while singing and check his battery level.” This
should all be possible with the new electronics on board!
(I’m sure that he’ll be able to do all this and more.)
A while back, I received an email from an Androbot
engineer who remembered BOB and said, “It rolled along a
wall using ultrasonic sensor data to maintain a constant
distance from it, and emitted speak-and-spell phrases at
random when its forward-pointing sensors got an echo
from less than x feet. A bit of showmanship can do much
with such a machine, but the supposing happens in more
intelligent creatures.” With the new electronics on board,
BOB should easily be able to do this again.
Since the Handy Board already has a good library of
low level routines built in, the next step is to add some low
level code that is BOB-specific. Some examples of this
start with controlling the LEDs on the body. We can either
display a pattern on the chest of BOB or we can control the
footlights near the wheels. These new commands are:
Both sides of Bluetooth link.
// where value is the 8-bit pattern to
displayCHESTLIGHTS(value);
// where value is the pattern to display
// (in lower 4-bits)
FOOTLIGHTS(value);
Both of these are very simple routines. First, they just
use the select_SX(); to make sure that the serial output
BOB at Consumer Electronics Show (CES) show years ago!
SERVO 05.2008 63