![]() |
|
Larry Barello
Late spring 1999, I turn my attention to building a fire fighting robot. I entered it into the Seattle Robotics 1999 Robothon Fire Fighting Competition and took second place. This is a work in progress. Preliminary software has been completed.
Hitec 605BB servos, modified for continuous rotation, driving 4" diameter wheels.
Atmel 90S8515 running at 8 mhz
Three Sharp GP2D02 proximity detectors (left, right, forward) for navigating the maze. I used to have four, but they suck current and I never used the back facing sensor. See Multiplexing Sharp Proximity Sensors for details of how I used only four lines to control three units.
Microphone input for fire-alarm detection (sound activation) using a Hardwired audio filter and peak detector circuit using an LM324 quad op amp and a handful of parts.
Position encoders on drive wheels for precision 90, and 180 degree turns and feedback for the PID motor controller.
9.6v NiMH battery pack from Radio Shack.
Small squirrel cage blower from a local surplus store to blow out the candle.
Dual PIN diode "eyes" mounted 6" apart facing forward. I should be able to get both direction and range information from these to locate the candle. To date, I can get precise direction, but not distance. Probably errors in my logic.
MAX1204 8 channel 10bit a/d chip, connected to the microcontroller via a three wire SPI interface. I chose to implement the SPI in software rather than using the built in SPI hardware in the Microcontroller. I wrote an article about the interface that can be found in the April SRS Encoder or on this web site here
Floor sensors comprising of 5 photo-reflex detectors (digikey #xxxxx)
Quadrature Encoder Decoder (driver.asm)
Audio Peak detector can start/stop selected tasks (drivers.asm)
Maze navigation logic (FireFight.asm)
Line Following logic (LineFollow.asm)
Robot Art logic (Art.asm)
PID Motor control (driver.asm)
User Interface (userif.asm)
Nibble wide LCD Driver (lcd.asm lcdio.asm)
AvrX and debug monitor
Data display of sensors, encoders, operating modes (drivers.asm)
Floor, Proximity and audio detect tasks (drivers.asm)
Rebuild base with faster/higher quality motors. Make main circuit board a PCB to shrink and make more reliable..
Navigating a known maze, but with unknown obstacles, approximate dimensions and movable ramps. Probably done in segments using input from the Sharp GP2D02 sensors to maintain path and detect endpoints. (DONE)
Reliably Detecting a flame. (DONE)
Homing in on the flame and snuffing it (DONE)
Returning to the start position (DONE)
Doing this all very fast. (Well, pretty fast, given the speed of my motors)
Jamming it all on a 7" diameter base. (DONE)
Here are three views of Dilbert. The paper horn was placed on the fan to direct the airflow in a more concentrated pattern and to cover a larger vertical distance.
This view is with the top panel and the drive wheels removed. You can see the encoders and the Hitec 605BB servos. The aluminum plate was cut out on a band saw, turned on a lathe and the wheel slots cut with a jig saw.
The L293 motor driver chip is to the far left. A hex inverter is next followed by the AVR 90S8515 controller. The far right is the 5v regulator, conveniently located under a mounting post. The connector next to it is for the LCD display The connectors on the upper left are for the Sharp proximity detectors, On the right are the SPI and serial interface headers.
I crafted an encoder wheel using a drafting program, printed them out on my laser printer and glued them onto 4" disks of Plexiglas that served as the wheels. The wheels also have 4" silicon O-Rings as the tread.
The Hitec HS-605BB servos are stripped of electronics, the tab clipped to allow continuous rotation and have an 4" wheel (4" silicone rubber O ring) attached to the original control "horn" that came with the servo.
Dilbert has two Hamamatsu photo reflexive detectors set up 90 deg out of phase for quadrature detection. The encoder has 45 segments, which gives the robot 180 clicks/revolution, or 2 deg, or 1/15" with a 4" wheel.
As of 7/7/99, for the IAR v1.4 assembler: firebot.zip