The Robot Onboard Control Module (RCOM)
If I was to write a "What I did on my 2003 summer vacation" essay, the picture below would sum it all up. It took me quite a while to build the board and track down all of the errors on it. Good thing I am familiar with the process of cutting traces and soldering jumper wires! Or if I wasn't before, I sure am now! However, by the end of the summer, it was in the state shown.
The before many modifications RCOM
There were some problems during the development of the RCOM. Let's just say I learned a lot about electronics over the course of that summer! One thing I learned is if the documentation says to refer to figure E, and instead you refer to figure D, that there may be problems!
As I have stated elsewhere, the reason I built the RCOM over the summer of 2003 was not because the club members weren't capable of doing so. The problem is the impossibility of getting enough hours in during the time we have at school. In total, this project has taken hundreds of hours of my time, so it just can't be entirely student driven. However, club members have participated on every level and facet of the project, fundraising and budgeting, soldering and drilling, programming, all of it.
Block schematic of the RCOM
The RCOM is based on a Basic Stamp B2p40 micro-controller. The B2p40 was donated to us by it's maker, Parallax, along with the PWMPAL servo controller, a Devantech SR04 and some other items. Parallax's support has been terrific. When I blew the B2p40 through my incomplete knowledge of electronics ( Ouch!), I called Parallax to see how much a replacement would cost. As the budget was low, I was going to pay for it since I was the one who broke it. Parallax insisted on sending us a free replacement, which arrived overnight! Many thanks to Jon, Jim and Parallax! When I discovered that the PWMPAL had been destroyed as well, I was far too chagrined to tell anyone about it, and quietly ordered another.
The RCOM can be powered from either a battery or the fuel cell, with a relay being used to switch between the two. The Stamp operates from its own voltage regulator, and two LM2940's mounted to a fat heatsink provide regulated power for the rest of the electronics. One LM240 essentially runs just the servos, and the rest of the robot from the other.
A PWMPAL servo controller is used to operate the drive and sensor servos. This is a handy little unit, designed to fit neatly under a 24 pin Stamp and easy to use. As we are using a 40 pin Stamp, I had to modify the PWMPAL and an IC socket a little to make a mount for the BS2p40
The RCOM has eleven channels of 12 bit analog to digital conversion, provided by a TLC2543. One great feature of this chip is that in can be programmed to output in millivolts, making integer math easier, and interpreting raw data simple. At first 11 channels seemed like a lot of ADC, but we have gobbled up nine of the channels already.
For high power outputs, the RCOM use a ULN2003 Darlington array. These are used to run the valves, relays, fans and other high power devices. There is a Piezo speaker for audible feedback, and a serial LCD for debugging, both of which are now rarely used and could be removed, freeing up a couple of Stamp pins if we need them. There were originally two user input switches, but these were removed and the pins used for the co-processor, as the switches had been made obsolete by the infrared remote control system described below.
Also mounted on the RCOM is the flush valve, a really nice unit made and donated by Pneutronics. There is a fuel pressure sensor, made and donated by All Sensors Corp.. This is a nice little sensor and very easy to use, highly recommended and Jim Brownell of All Sensors was very helpful. There is a LM35 temperature sensor for the fuel cell and a current sensor, so all of the vital statistics of the power system can be monitored.
Now that we have the Bluetooth link (see below) we can easily record and graph the output of the fuel cell. One modification I would make on the next version of the RCOM is to add a 512K EEPROM chip and another co-processor to take and record fuel cell run data. This would allow us to record fuel cell data in actual operation as opposed to bench testing, and I bet we would collect some very interesting and useful information. One my round tuit list is making an add on module to do this, probably based on a PIC16F88.
The RCOM has undergone a great deal of surgery and modifications since it was built over the summer of 2003. Compare the picture above with the one below.
The much modified RCOM
The first major addition to the RCOM was the fuel cell co-processor. As explained HERE, the fuel cell needs to be periodically flushed, or the voltage drops below usable levels. At first the flushing process was done by the Stamp. However, it rapidly became apparent that the job needed to be passed off to a co-processor. For more information on why, click HERE.
To this end I designed a module based on a PIC 12F675. This is a handy little chip, with a built in oscillator and four channels of 10 bit ADC. I etched up a board, and then club members drilled, filled and installed it on the RCOM.
Brain surgeons at work. The life of the HydroBot is in their hands!
The co-processor monitors the fuel cell voltage, and then opens the valve as required to flush the cell. Both the Stamp and the PIC share the input for the valve, with proper limiting resistors, of course. This way the Stamp can still control the valve when we went to do a manual or long flush of the fuel system. For more details on the operation of the co-processor, click HERE.
The second big upgrade was the Infrared Remote Module. This allowed us to control the robot with a universal TV remote. It is a dirt cheap system, costing less than US$ 20 and it works pretty well. However, it is line of sight only and florescent lights, commonly found in schools, can interfere with it. Still, it served us well, and between it and the serial LCD, it was easy to debug and control the robot.
One of the greatest advances for the HydroBot has been the addition of a Bluetooth wireless link, replacing the one way infrared system. We bought an EB500 module from Parallax, and got a LinkSys USB Bluetooth adaptor for the PC side. With this setup we get a rock solid range of about 150', running at 115k. Parallax modestly claims the 2p won't handle such high baud rates, but we have had no trouble doing so. This is not to say I would expect it to do so in all situations, but we are getting away with it. For more information about the software side of the Bluetooth setup, click HERE.
EB500 Bluetooth module
Over the summer of 2004, I built a 180 degree pan/tilt servo array. Once again, I undertook the construction due to student hours limitations. It sports a CMUcam, a Devantech SR04 ultrasonic range detector, and a Sharp GPD12 infrared ranging sensor. Two other Sharp sensors were added on the side of the robot as well. More details on the operation and construction of the sensor array can be found HERE.
I have to admit, there is no longer an up to date circuit schematic available for the RCOM. There have been far too many additions and changes for the original to be of any value, and I have not found the time to make another. Anybody got a round tuit they can spare?
One of my goals is to find ways to decrease the cost and difficulty of building other hydrogen powered robots and projects. Harry Lewis of Blue Bell Designs has suggested using a pre-made robot controller board and offered to give us a deal on one. Then a small board with a few specific parts can be added to handle the fuel system and so on. This would make it much easier than having to hand make a complex custom board.