Ol' Blue - Original Version
The first version of Ol' Blue was a major undertaking, requiring months of
planning, design, and trial and error. Being my first robot, I spent a lot of
time studying the designs of other roboticists and conducting experiments that
led down design dead-ends. I spent quite a bit of time researching and
constructing discrete H-Bridges (using 2N2222s and 2N2907s) before I discovered
the L293D quad, half H-bridge IC. I also had to relearn the ins and outs of the
EBFORTH interpreter that came with the RTXEB computer. The following sections
describe the various subsystems of Ol' Blue. I estimate that all of this
development took about six months to complete.
Control Processor
The control processor of Ol' Blue is a small single-board computer, the Harris
Real-Time Express Evaluation Board (RTXEB). I won two of these nifty boards
back in 1990 from a design contest sponsored by Harris and Embedded Systems
Programming Magazine. The RTXEB has a Harris RTX2001A Forth processor (a
derivative of the
RTX2000), a Wafescale Integration MAP168 (an integrated SRAM/EPROM device)
containing a Forth interpreter (EBFORTH), a Maxim MAX232 (for a software UART),
and a prototyping area. The prototyping area is populated with wire-wrap
sockets and random circuitry that support various functions of the robot.
Body Structure
The body of Ol' Blue is a Radio Shack project box that I used for the Harris
RTX contest. The turret body is a smaller Radio Shack project box that I found
discarded at work. Ol' Blue got its name due to the fact that many of the
components of the robot, particularly the computer and the main body, are over
fifteen-years old.
Power Supply Distribution
Power is provided through four, 1.4-volt NiMH batteries held in two sponsons
placed on the right and left sides of the robot body. The sponsons are
positioned to counterbalance the weight of the drive motors, which are
sitting in the rear half of the robot body. The power is distributed by a split
harness which delivers current separately to the RTXEB logic circuitry and the
motor supply inputs for the L293D H-Bridges. This was done to prevent motor
currents from blowing the 0.5 Amp Fast-Blo fuse on the RTXEB. The motor
circuit is not fused, as I don't see the likelihood of the motors developing a
short. I'll keep my fingers crossed.
Drive Mechanism
The track and drive assemblies were taken from a Tamiya Shovel Dozer kit
purchased specifically for the project. The drive is the Tamiya 70097
Twin-Motor Gearbox. It probably would have been cheaper to buy just the
Twin-Motor and a track set, but the Shovel Dozer gave me some additional parts
for future robots!
|
 |
|
It turned out that the length of the track assembly was perfect for the length
of the Radio Shack project box. The project box had to be cut on the bottom to
allow the track assembly to extend out through the bottom of the box. Holes
were tapped into the bottom to allow the motor drives and front axel mount to
be screwed into place.
|
 |
Turret Mechanism
The turret is steered using a bipolar stepper motor taken from a 3 1/2-inch
floppy drive. A GE phone cord detangler is used as a four-conductor slip ring.
The power and signals from the RTXEB passes through a RJ-10 telephone receiver
socket into the male plug of the detangler. The slip ring mechanics
(gold-plated wired rubbing against gold-plated rings) transfer the power and
signals onto the turret. An RJ-10 handset cord plug and wires connect to the
jack of the detangler to pass the power and signals into the turret.
|
 |
|
Linkage is made between the stepper motor and the phone detangler through a
pair of spare gears taken from the Shovel Dozer kit. A 12T spur gear is epoxied
to the shaft of the stepper motor. A 42T-12T spur gear is drilled out to remove
enough plastic to allow the gear to fit around the detangler body, where it is
epoxied in place. The resulting gear transfer ratio is 3.5:1. Since the
stepper motor has 20 steps in 360 degres of rotation, the turret will rotate
360 degrees after 70 steps. That is about 5.143 degrees per step.
It was quickly discovered that the shaft of the stepper motor had a tendency
to wiggle as it turned. When it was in the floppy drive, a bracked held the end
of the shaft and prevented the wiggle from occurring. A replacement for the
bracket was fabracated from a pen barrel. A screw inserted from the top
engages a hole in the spur gear attached to the shaft. It is not a perfect
solution, but it works well enough.
|
 |
Motor Control
Design of the motor control circuitry when through several phases. The first
phase only provided control to the drive motors, as the turret was not
installed initially. The
GIO Interface Phase 1 control consists of a 74HC173 quad flip-flop
holding the states of the L293D half, H-Bridge inputs. The L293D is wired to
form two complete H-Bridges, which control the current flow to the drive
motors. The 74HC173 receives data from the RTX2001A via bits 0 through 3 on the
G-bus. It is addressed through the 74HC138 3-to-8 Decoder as port address
0x18 (write only) on the G-bus (also called the ASIC bus). The 74HC173 is
reset whenever the RTXEB is reset to ensure that the motor are in a known state
at power-up or RTXEB reset
Adding the turret mechanism to Ol' Blue resulted in the expanded
GIO Interface Phase 2 control circuit. An
additional 74HC173 and L293D support the turret. This L293D is also wired to
form two complete H-Bridges, which control the current flow to the two windings
of the bipolar stepper motor. The 74HC173 receives data from the RTX2001A via
bits 4 through 7 on port 0x18 of the G-bus (write only).
Note that since the drive motor control and turret motor control share the
same port on the G-bus, some bit twiddling must be performed to control and
maintain the states of the motors. As will be determined later, this added
complexity was not necessary.
Infra-Red Ranger Plus (Turret Circuitry)
|
Ol' Blue was given a turret with the intent of putting some form of Infra-Red
(IR) or ultrasonic ranger on it. The ranger would be able to determine the
distance of any objects within close proximity of the robot. This would allow
for collision avoidance and landmark detection for internal maps. My ignorance
of the IR sensors that were available lead to a interesting ranger circuit with
added functionality. Details of the Infra-Ranger Plus circuit are described
here. As a consequence of the design of
the Infra-Red Ranger Plus, I needed to add a "calibration sail" (aka pole with
tape stuck on it) and a Turret Home Sensor (described below).
|
|
Serial Synchronization Circuitry
After the Infra-Red Ranger Plus circuit was wired, tested, and installed, it
was found that there was a significant problem with getting the IR link to
work properly. The problem was that the RTXEB software serial port was
initialized by the user pressing the letter "b" or "B" from the console once
the RTXEB was powered up. The RTXEB firmware waits for a serial data transfer
and count the time for the first two space bits to be received followed by a
mark bit. The space bits would be the serial start bit and the least
significant bit of the charcters. the mark bit would be the next following bit
of the character. Actually, any character with the correct combination of bits
would work.
Once the RTXEB firmware measures the time for two bits, the bit rate can be
easily determined and communication established. Unfortunately, if the timing
of the two space bits is not measured correctly, then the measured bit rate
will be wrong. Any data communicated back to the host will be perceived as
garbage.
In order to resolve this problem, and on-board serial data initialization
circuit had to be placed on the RTXEB. The circuit "kick-starts" the data
rate on the RTXEB by sending a pulse on the serial port that is equivalent to
the desired data rate. For a data rate of 1200 bits per second, the pulse must
be 1.667 milliseconds long. The
Serial Control circuit performs
this function.
Bump and Turret Home Sensors
|
The Turret Home Sensor is a circuit to tell the robot when the turret
position was properly aligned to face forward on the robot. A Sprague
UGN-3020T Hall Effect Digital Switch IC (purchased from Radio Shack years ago
and no longer available from them) was used as the position sensor. A small
magnet taken from a 3 1/2-inch floppy drive was glued to the underside of the
turret to provide a magnetic "signal" for the sensor to detect. Whenever the
magnet passes over the Hall Effect switch, it is turned on, which signals to
the robot that the turret is now facing forward. The switch is off when the
magnet is not over the Hall Effect switch, indicating that the turret is not
facing forward.
|
|
|
Probably the first sensors I should have placed on Ol' Blue were bump
sensors. At least the
general philosophy of robot development indicates this. Alas, that is
not what I did. I finally did this at about the same time that I added the
Turret Home Sensor. The bump switches were handmade whisker switches that I
copied from a BEAM robotics kit manual I found on the Internet. My wife said
that it made the robot look like a big roach! The
Bump and Turret Home Sensors circuit shows how these sensors are connected
to the the robot. Note that a low-battery detector circuit was also added as
a senosr input, but it is somewhat experimental. As a consequence of adding
sensor input to the Ol' Blue, the addressing circuitry need to be modified to
support both read and write operations. This resulted in the
GIO Interface Phase 3 control circuit. The sensors are mapped on the G-bus
at address 0x19 (read only). Due to address timing considerations, the RTXEB
processor clock had to be reduced from 16 MHz to 4 MHz (8 MHz may work, but I
don't have an 8 MHz oscillator).
|

Feelers before experimentation. |
|
After a short period of experimentation (running Ol' Blue around on the kitchen
floor), it was quickly determined that the whisker bump sensors were far too
fragile and tempermental. Consequently, my first "formal" design change,
Ol' Blue Mod 1, was created.
|

Feelers after experimentation. |
Additional Photos
|
The left side of Ol' Blue.
|
 |
|
The front of Ol' Blue showing very beat-up whiskers for the front bump sensor.
|
 |
|
The right rear side of Ol' Blue.
|
|
|
The prototyping area of the RTXEB showing the sensor electronics: bump sensor
debouncing circuits, low battery circuit. and turret home sensor. Note the
blank area reserved for more sensor electronics.
|
 |
|
The rear of Ol' Blue showing the attachment of the "calibration sail" and
very beat-up whiskers of the rear bump sensor.
|
 |
© 2005, 2006 Mac A. Cody
Last updated Friday, July 28, 2006