| Project Name: | xFIRE |
| Project Dates: | September 2011 / April 2012 |
| The Gist: | My embedded design team and I built a heat-seaking, robotic fire extinguisher platform. |
| Hardware: | Arduino Uno, Probotix 280 OzIn 8-Wire Stepper Motor, Probotix ProboStep Stepper Motor Driver, Anaheim Automation 17Y9304S-LW4 86 OzIn, Probotix SideStep Stepper Motor Driver, Sparkfun ADXL345 Accelerometer breakout, Devantech TPA81 Thermopile Array, Maxbotix LV-MaxSonar-EZ2 Sonar Range Finder, SainSmart 4-Channel 5V Relay Module, (x2) 12V Pull Solenoid, 12 Amp ATX Power Supply, Weed Sprayer, MDF board & Misc. Hardware (Home Depot) |
| Software: | Arduino Wires |
| ‘Need to Know’ Details: | Won Best Graduate Embedded Design, Fall 2011 |
| Acknowledgments: | Kara Bocan, Ben Zazcek |
The xFIRE was born out of the necessity for a decent term design project in ECE 2160, Embedded Design I. Ben and Kara, two undergraduates I knew previously from student organizations, were gracious enough to let me join their group. I was ecstatic to be a part of team “Faraday Cage Match” as opposed to the usual team, “One is the Loneliest Number”. We went through several projects ideas, with objections galore. When Ben suggested developing an automated turret, I was not on the boat. It seemed like a lot of work for a project with no real applications. But Ben flashed his legendary smile, and I reluctantly came aboard. The idea for creating a fire extinguisher came a bit later. It clearly isn’t the most practical solution for fire emergencies, but it certainly was a challenge, and we found out later that someone actually managed to patent the concept of a heat-sensing fire extinguisher in the 90′s.
Mechanical Design
The first challenge of the system was designing the mechanical platform of the turret, which was completely outside the scope of this class. As most worth while endevours are probably outside the scope of the initial objective, this was probably a good sign. After several visits Home Depot and the University machine shop, we had a good game plan. This included using medium-density fiberboard (MDF) as the frame, with a lazy Susan bracket to rotate a firing platform. Originally, we had planned on designing our own pressurized water system, but a $9 weed sprayer proved to be just as effective. This was a HUGE time saver. The only specialized components we needed to machine (w/ some assistance) were adapters to mate with our stepper motors.
These parts included an aluminum bracket that mates the D-shaft at the end of the larger stepper motor (Probotix 280 OzIn) with a small bike gear. This motor controls the yaw (left-right motion) of the firing platform via a bike chain and larger gear mounted under the platform. The second part was an aluminum block attaching to the pitch motor (up-down movement, Anaheim Automation), which serves as a mounting point for the sprayer handle and solenoids. More on this to follow.
This part of the project was an excellent chance to show how serious we were about a quality device, and how our team is excellent at thinking outside the box. In my experience, you don’t find three EE students in the machine, let alone finding them hammering and sawing next to the serious machinists.
Electronics
The meat and potatoes of the project was making sure that all our laboring in the basement machine shop was not in vain. Could we really interface our electronics with this setup? Were the mechanics sounds enough to get the performace we wanted? Would it hold together for more than 30 seconds? Are they ever going to bring back the TV show Firefly? I can tell you that we answered three of these questions. Call Joss Whedon about the TV show and let me know what shakes.
Originally, we had planned on using an 18 Series PIC microcontroller as the brains for this project. I have worked with these in the past (the Curve Tracer Print Controller), and they are a cheap embedded computers (~$5) with more than enough I/O and computing power for this application. The problem is that development can be tedious, especially when trying to implement standard communication protocols such as I2C. This project was more about conceptual design and completion than reinventing the wheel. Coming to this realization made us reconsidering using the popular Arduino Uno for our work. The huge user community, simple IDE and extensive libraries makes the Uno easy to use in designs. The problem then becomes only a matter of adding the peripherals electronics.
TANGENT: Some may say that using a high-level platform like Arduino is a cop out, particularly in a graduate course on embedded design. To a degree, I have the same sentiment. At the end of the day though, you have to asses how much time you have for a project. Without the Arduino, this project never would have gotten finished. You can’t beat no-assembly required! Furthermore, a real production device would require a lot of clever optimization in order to decide what MCU to use, down to the footprint for a PCB board. Frankly, we didn’t have this time or experience.
The first set of electrical peripherals connected to the Arduino fall into the category of sensors. These are mounted to the end of the weed sprayer to detect heat, distance and the direction of gravity while the nozzle moves around. The heat sensor, which makes the detection and localization of a fire possible, is a TPA81 thermopile array. More of less, you can think of it as 8 tiny thermometers lined up horizontally. If you read the values of each position, you can test for a threshold value and locate the hot-spot on the horizontal. By sweeping this self contained “box-o-thermometers” up and down, you can create a thermal picture in front of the extinguisher. An accelerometer is used to detect the direction of gravity, which is useful for leveling the water barrel when starting the extinguisher. The sonic range sensor measures the distance to the hottest point in the fire. This information is then used to calculate the best arc of water that will put out the fire for maximum precision.
The accelerometer and thermopile array are connect to the Arduino via an I2C bus. If you aren’t familiar with the concept, the idea is that they both devices share a common set of connections, but the Arduino communicates to each device separately. The distance sensor was added after the initial submission of the project. It uses an analog input connection on the Arduino. This output voltage of this sensor was calibrated to several distances prior to installing the device.
The second class of devices that interface with the embedded controller are the motor drivers. These circuits control the movement of the steppers motors, and in turn this affects the vertical and horizontal angle of the extinguisher. These large motors require higher voltages than normal embedded electronics (12V rather than 5V or 3.3V). Instead of hooking this beast up to a 50 lb car battery, a cannibalized power supply for a desktop PC provides the necessary power and eliminates the need for voltage regulation. The motor drivers interface this high power with digital signals from the Arduino to move stepper motors in discrete movements (a.k.a. steps).
The final pieces of the electronics puzzle are the solenoids that actuate the water spray. These devices use current in a loop of wire to pull on a metal rod. We attached two of these rods to the water sprayer switch. When activated (via a relay module), they pull down with enough force to letter water flow. The relay module is needed to pass the same high voltage/current to the solenoids that goes to the motors. The relays serve a similar function to the drivers; they let you control lots of power with the small signals that come from the Arduino.
See Appendix B in the term paper for an awesome diagram summarizing the connections (Credit to Ben Z)!