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