How to make a Robot - Dilbert I

Control Systems & Robotics Topics
Post Reply
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

How to make a Robot - Dilbert I

Post by Neo » Sun Nov 29, 2009 10:14 pm

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.

Current Hardware Configuration:
  • Hitec 605BB servos, modified for continuous rotation, driving 4" diameter wheels.
  • Atmel AT90S8515 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 micro controller via a three wire SPI interface. I chose to implement the SPI in software rather than using the built in SPI hardware in the Micro controller. I wrote an article about the interface that can be found in the here.
  • Floor sensors comprising of 5 photo-reflex detectors (Digikey, #QRD1114QT-ND)

Software Status
  • Quadrature Encoder Decoder (drivers.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 display 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)
Future Stuff:
  • Rebuild base with faster/higher quality motors. Make main circuit board a PCB to shrink and make more reliable../list]

    The engineering problems:
    • 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)
Picture Gallery
OverallFront.jpg
OverallFront.jpg (36.77 KiB) Viewed 7701 times
OverallBack.jpg
OverallBack.jpg (35.88 KiB) Viewed 7701 times
sideview.jpg
sideview.jpg (31.96 KiB) Viewed 7701 times
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.
PartialDisassembly.jpg
PartialDisassembly.jpg (48.45 KiB) Viewed 7701 times
This view is with the top panel and the drive wheels removed. You can see the encoders and the Hitec 605BB servos. The aluminium plate was cut out on a band saw, turned on a lathe and the wheel slots cut with a jig saw.
CircuitBoard.jpg
CircuitBoard.jpg (61.38 KiB) Viewed 7701 times
The L293 motor driver chip is at the far upper right. A hex inverter is next followed by the Atmel AT 90S8515 controller. The far left is the 5v regulator, conveniently located under a mounting post. Below the regulator is the LM324 used for the Audio Detect Circuit The connector next to it is for the LCD display The connectors on the upper right are for the Sharp proximity detectors, On the leftt are the SPI and serial interface headers.
EncoderWheels.jpg
EncoderWheels.jpg (53.5 KiB) Viewed 7701 times
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.
WheelDrive.jpg
WheelDrive.jpg (53.14 KiB) Viewed 7701 times
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.
encoders.jpg
encoders.jpg (41.69 KiB) Viewed 7701 times
Dilbert has two Hamamatsu photo reflexive detectors set up 90 deg out of phase for quadrature detection. What this means is that when the white band of the encoder passes from left to right on the detector, first the left detector will go active, then the right one. The same pattern happens for the black band as well. The resulting waveform, if view on an oscilloscope, looks like two square waves 90 deg out of phase. By tracking which comes first the software can tell which direction the wheel is turning. The encoder has 45 segments, which gives the robot 180 clicks/revolution, or 2 deg, or 1/15" with a 4" wheel.
CloseUpFloor.jpg
CloseUpFloor.jpg (26.12 KiB) Viewed 7701 times
FloorSensors.jpg
FloorSensors.jpg (34.47 KiB) Viewed 7701 times
Here are two views of the floor sensor assembly. I used a an IR reflective photo sensor that I got from Digikey, part# QRD1114QT-ND. There are five sensors. Three are clustered close together for tracking a line. The outer two sensors are for gross line tracking and threshold detection. Dilbert uses threshold detection to align itself square to the opening of a room in the Fire Fighting Competition.
SharpSensor.jpg
SharpSensor.jpg (47.51 KiB) Viewed 7701 times
The Sharp GP2D02 sensors are mounted forward of center and vertically. The left and right sensors are also aimed forward at approximately a 45 degree angle. The sensors are also grounded to the copper ground plane that forms the upper surface of the robot. The 45 degree angle is an essential part of the wall following algorithm: the raw output is roughly correlated to the signal needed to turn the robot and keep it a particular distance from a followed surface.
CloseUpUIF.jpg
CloseUpUIF.jpg (59.49 KiB) Viewed 7701 times
lcd.jpg
lcd.jpg (41.22 KiB) Viewed 7701 times
The user interface consists of an Microphone, a push button, an LED and an LCD display.

The push button has three possibilities: short, long and reset. These correspond to a push of less than a second, between 1 and 10 seconds and greater than 10 seconds, respectively. The short is used to cycle between menu items and the long is used to select within a menu. The reset, well, resets the robot.

There is an LED as well. It mainly winks to indicate that the basic program is running. It also goes on solid when a valid audio signal is detected by the microphone. The Audio signal is a Radio Shack piezo buzzer that is used to start and stop various programs within Dilbert.

Code base as of 7/7/99, for the IAR v1.4 assembler:
firebot.zip
(32.65 KiB) Downloaded 414 times
Courtesy: Larry Barello
Post Reply

Return to “Control Systems & Robotics”