Flamebot is one of my coolest robots. It was designed to participate in the 2001 WCRG Fire Fighting robot competition. In the contest, the robot must, by itself, seek out a candle in the "maze" and extinguish it. My bot did it in a record 20 seconds! Of course, the 2002 event was a different story... more on that later! During that event, my sensors were overcome by the bright ambient light and caused Flamebot to try and put out the sun instead of the candle! ;-) If you have any questions as all or would like to view the code, by all means please e-mail me!
The object and line sensors all operate on the same principle. First, a pulse of modulated Infrared (IR) light is sent out from the LED portion of the sensor. This light will reflect off of any objects which are not black or really dark in colour. The second part of the sensor is the 3 lead square shape with a dome on the front. This is the Panasonic 4062 IR reciever. The 4062 has a filter on it so it only responds to light modulated at 38khz. This means it is not affected by ambient light near the same wavelength. When it recieves IR light, it's output pin goes low. The Basic Stamp detects this and then conducts the appropriate operation.
The line sensor operates on the principle that white will reflect IR while black will not. Since the floor of the WCRG maze is black with white lines painted at the entrance to each room, the bot can tell when it enters a room.
The flame sensors are simply two phototransistors run through the analog to digital convertor. A voltage between 0 and 6 volts into the ADC shows up as a number between 0 and 1024 in the microcontroller. The brighter the light/flame, the higher the number. A comparison to the static value with room lighting and the dynamic value when a flame is present allows a accurate determination of the location of the flame when the room is artificially lit. When it is sunlit as it was in the 2002 WCRG, the sensors go bonkers. This is something I plan to fix by the 2003 WCRG.
Flamebot is primarily a wall follower with some dead reckoning built in. It will follow either the left or right wall as selected with a switch. Once it enters a room, it switches to dead reckoning. That means it will go x feet forward, turn, etc all from memory instead of relying on sensory input. Once it searches a room, it leaves and then returns to it's previous wall following state.
When I was building flamebot, the heater coil in my Mom's hairblower died. Instead of offering to fix it (I'm bad....) I asked if I could have it instead. Well, now that the heating coil and much of the plastic and extra electronics are removed, I have a very effective extinguisher capable of extinguishing the flame almost immediately from when it is spotted. It is powered by 2 nine volt batteries in series. Normally this wouldn't be a very good idea due to the high current draw from the motor in the hairblower. But because of the low duty cycle (on time) I decided it would be okay. After all, it is only on for a maximum of 5 seconds every run.
Motors and Wheels
The motors are modified hobby servos with the mechanical stops removed and the trimpot disconnected from the shaft. The wheels are custom made from a wood/carboard sandwhich material. The rubber bands were crazy glued to the rims to provide a bit of traction. I used to use the standard BOE bot wheels, but I decided the best way to increase the speed of Flamebot was to increase the diameter of the wheels. It worked quite well, Flamebot flys!
Flamebot has been a great success and learning experience for me. I plan to improve it's flame sensors so it doesn't fail next year! Also, I plan to clean up the breadboard and object sensors. In the messy state it is now, Flamebot often shorts out because the leads on the object sensors touch. I plan to put the sensors on a PCB from the Solarbotics Bicore experimenter's kit. (which I coincidentally won at the 2002 games!)