A team of mechanical engineering students have come together to implement and build a computer controlled fire fighting robot that can move through a mode floor plan structure of a house, find a lit candle and then extinguish it in the shortest time possible. This robot will simulate a real-world operation of a robot performing a fire security function in an actual home on a simulated floor plan and fire. It will be entered in a design competition at Trinity College called The Trinity College Fire Fighting Home Robot Contest on Sunday April 19, 1998. Its purpose is to find a lit candle and then extinguish it in the shortest time possible. The specification and restrictions for the contest are major factor in the design process of the robot, its control, and its body.
Robot is defined as a mechanical design that is capable of performing human tasks or behaving in a human-like manner. Building a robot requires expertise and complex programming. It’s about building systems and putting together motors, solenoids, and wires, among other important components. There are a number of subsystems that must be designed to fit together into an appropriate package suitable for carrying out the robot’s task. A firefighter robot is one that has a small fire extinguisher ad ded to it. By attaching a small fire extinguisher to the robot, the automaton put out the fires it detects can be achieved. The fire detection scheme to be put into use is relatively free of false alarms, it is anticipated that it will not overreact in non-fire simulations. As mentioned earlier, the design of the robot is according to specification of the contest.
The objective of the contest is to build a robot, which will extinguish a fire in the quickest time possible. A candle will represent the fire, which has started in the home and which the robot must find and then extinguish. The light level of th e surrounding in the testing area will be determined until the day of the competition. For this reason, a light sensor cannot be used to detect the fire. In order words, the robot must be able to make ambient light reading as part of its design complemen tation. However, it is assumed that the room will be lit by overhead high pressure sodium vapor lights. Knowledge of the surrounding light must be taken into consideration in order to make an appropriate fire sensor. Thus far, it seams like it will bet ter to utilize a heat sensor.
One of the contest parameters requires that the robot does not exceed dimensions of 12.5x12.25 x12.25 in3. . Figure 1 presents the layout of the floor plan structure as taken for the competition.
The robots systems are being controlled and monitored by the Basic Stamp 2 microcontroller which is programmed in P-BASIC. One Stamp 2 is the main controller with the main program and the sensors will be monitored by a second Stamp 1. These are t he layouts of the boards and how to connect the microcontrollers to the serial ports of a PC for programming.
Technical data on the boards
The boards can be programmed using Assembly or Basic. The board can be programmed in basic because it has a basic interpreter chip it is also the CPU of the board. It is a parallax custom PIC16C57 microcontroller. When you program it you store s ymbols (called tokens) in the EEPROM memory. When you run your program the PIC retrieves the tokens from memory and interprets them as PBASIC instructions. The PIC16C57 can execute its program at 5 million instructions per second but if you use PBASIC, many instructions go into a single PBASIC instruction so it can only execute 3000 – 4000 instructions per second. It has 20 I\) pins, 16 of these are available for your use, as for the others two are used for serial communication and other two are used f or interfacing with the EEPROM. The rest of the 6 I\O pins can interface with all modern 5 – volt logic, from TTL (transistor – transistor logic) through CMOS (complementary metal oxide semiconductor). The direction (input- output) of a pin is up to you . The interpreter chip is programmed at the factory so you need the EEPROM chip to hold the program. Another chip on the controller is the 24LC16B EEPROM. This is a good part of the board because it requires no power to hold the program in memory. Alt hough it has limitations, it takes a few milliseconds write data into memory and there is a limit to the number of wires it will except before wearing out (about 10 million).
The stamp has two types of memory, RAM and EEPROM. RAM is used for storing the variables of the program (it erases and the EEPROM is used like a computer hard drive, it stores the program. The stamp has 32 bytes of RAM of the 32, 6 are used for i nput, output and direction control of the 16 I\O pins. The remaining 26 can be used for variables. When you load your program into the EEPROM it is loaded highest address first (2047) and works downward. If a program does not take up all the space in t he chip the rest of the remaining space can be filled with data from the lowest address up. If the data overlaps the program the host software will detect it and display an error. The data is stored into the EEPROM by data directives: they place a serie s of numbers into the memory starting at location 0. A pointer is used to keep track of available EEPROM memory.
Solutions Cubed makes add-on boards. Some of which the team will be using. They are the RAM pack and the motor mind. The RAM pack is an 8K*8 RAM module. It has a simple serial interface that makes it easy to use as expanded RAM. It features by te writes, byte or block reads, optional FIFO (first-in first-out) buffer mode, 1200, 2400, 4800, 9600, 19200 supported baud rates, it is expandable to 32/k x 8, and it is socketed for easy replacement. This RAM pack will lose its memory once the power i s turned off: if this is needed to be prevented the RAM chip can be replaced with a NVRAM chip.
The RAM pack communicates using serial 8N1 communication (1 start bit, 8 data bits, 1 stop bit, and no parity). It requires a sync byte (hex55) to be the first byte sent. If a hex 55 is not received first it will ignore the byte. Next the comman d byte should be sent followed by the amount byte which is the number of bytes to be read or written. The main benefit of using this board is this board is that it gives the master unit access to more space with out the need for many I\O s’. the 8Kx8 ch ip requires as much a 8 data lines, 13 address lines, and four control lines, for a total of 25 I\O pins.
Another add-on board the team will implement is the motor mind. It is a serially controlled H-bridge motor driver. It allows control of DC motor. It can read a tachometer, change direction, adjust speed, and dynamical brake the motor. It can con trol motor up to 30 volts with a continuous 2A current load. Here is the pin configuration.
The tachometer can be used for navigation control by connection to a motor and an encoder. This is the connection schematic.
There is also an S-8045HN reset circuit on the board. This is for resetting the interpreter in case the voltage moves out of acceptable operating range. When this happens the processor and memory chips can make mistakes or lock up. To prevent th is the interpreter must be stooped and reset until the power supply stabilizes. It does this when the power supply drops below 4 volts: it put a logic low on the interpreter’s MCLR (master-clear rest) input. This causes the interpreter to stop and elect rically disconnect the I\O lines. In reset mode the interpreter stays dormant. Or when the voltage goes above volts, it allows the output to be pulled high by a 4.7k resistor to +5 volts which also puts a high on the MCLR input. Basically what the rest does is start the program over from the beginning.
To prevent a reset an S-81350HG 5-volt regulator is integrated into the circuit. This enables the micro controller to accept a range of slightly above 5 volts to 15 volts and regulates it to a steady 5 volts. The total current the board can suppl y is 8 ma, if you need more you can build your own 5-volt power supply.
In order to be able to program the board it has a serial host interface. Communication is handled by a RS-32 COM port interface consisting of the pins, SIN, SOUT, and ATN (serial in, serial out, and attention). The RS-232 uses two signaling volta ges to represent the logic states 0 and 1 (+12 is 0 and –12 is 1). When it is not communicating it leaves the output state 1.
After some research from past competition design, the team decided to use Lego blocks to construct the frame. The Lego blocks eases the process of constructing the robot since all the blocks were designed to fit each other. Using the Tube Bot fr om M.I.T. as a point of reference for designing, the team redesigned the gear box set up to change the center of gravity of the robots’ electric’s such as the micro-controller, batteries and sensors. Instead of having the gears lined up horizontally the gears would be redesigned vertically.
The gear ratio remained 27:1 since the DC motors supplied by Lego usually spins too fast with little torque. Gears had to be attached into three stages. Each stages having an 8-tooth pinion gear with a 24-tooth spur gear. This process insures t hat the wheels had enough force to push or grip against the floor to move. Each wheel has it’s own transmission and motor. This was designed so that when the robot needed to turn, one of the wheels would lock up while the other wheel would run. The g oal for this design was to be able to move 5 pounds. While the transmission design proved to be a success, the frame of the robot could not withstand the load. The bars and the axle of the robot would bend at a point where adding more support would incr ease the size and weight of the design. Another problem that was encountered was the robot could not turn due to bending of the axles.
Due to this problem, the team decided to build a robot from scratch. Using the same configuration and design of the first Lego prototype, the second robot was constructed with brass rectangular tubing and steel angles. Our first attempt to const ruct this robot came to a standstill. This problem was due to inaccurate drilling for the shafts without a press drill. Continuation on construction for this frame would cause inaccurate navigation for the future.
After construction problem, the team decided to rebuild the frame with the guidance of the machinist, Mr. Betti, to have precise parts to be made.
Frame Design Figure
The drive train of the robot consists of two remote control (RC) servo motors. These servos are limited to 180 degrees of rotation. By some modification, the servos can be used as drive motors.
A normal RC servo has only 180 degrees of rotation. By removing the stopping tab we can eliminate this restriction. First you have to disassemble the servo by removing the four screws. Next you have to remove the top portion of the casing consis ting of the gears, remove the parts as shown (see figure). Next remove the potentiometer. Next you need to bend the stopping tab until the shaft can rotate freely. The potentiometer is discarded and replaced by a trimmer pot with a pair of 2.7K ohm res istor. Finally reassemble the modified servo.
By applying a 1.5ms pulse to the servo, the servo adjusts itself to the center. This value is not always correct due to the modification trimmer pot. The pulse must be derived by using a function generator. This value is estimated to be 1.6 ms. A m ore precise value must be attained by a digital analog rather than the one used. Increasing or decreasing the pulse rate will change direction of the rotation. And in the place of the potentiometer we put 5.4 k resistors.
Fire detection scheme
To detect the flame from the candle the team thought about implementing a motion detector to detect the wavelength of the flame. The group decided on using an IRPD (infrared proximity detector) kit from lynx motion. With this the robot would be a ble to sense an object in the front left, front center, and front right. in order to detect the flame we will need to calibrate it to detect the flame of a candle. Another way, which we just recently found out about, is to use a silicon photodetector wi th a long-pass filter and calibrate it to detect candlelight.
This is the signal spread of the detector
When the candle flame is spotted in the range of this detector it the robot will be able to come in on the position of the flame, come closer, and put it out.
Since shaft encoders are expensive and the pricing is not with in our budget the team plans on using a memory mapped out grid in the memory of the Stamp. A grid array will be implemented for the main route and sub-grids for each room once the robot enters each room. In order for the robot to navigate using the grid the robot will calculate a system of equations for each length it will run.