Project video at http://www.flickr.com/photos/8190411@N07…

For my son’s fourth birthday, we decided on a fire truck theme. We started the party with a tour of a fire station and then went back to the house for a firefighters’ obstacle course and the creation of several Duplo fire trucks (and of course, cake, ice cream, and fellowship). In keeping with the theme, my wife made several firefighter-themed treats and props.

Being largely unable to bake, my most significant party theme contribution was repurposing my old car launcher invention (http://www.flickr.com/photos/8190411@N07…) to be used as a MatchBox-scale fire station.

I originally made the car launcher to live at the bottom of our coat closet and accept car-dispensing commands from distant relatives via our family blog. For our fire-themed party, I mounted it in the bottom of our living room entertainment center and built a cardboard fire station facade. I swapped out the old PHP/Processing/AppleScript/BS2 control scheme for a an Arduino-based radio-monitoring scheme. I mounted a trunk-tracking radio scanner (from one of my other hobbies, amateur radio) on the underside of the car launcher. I programmed the scanner to scan the Alert talk groups for our county fire department, our city fire department, and our county emergency medical service. The Alert talk groups are just for relaying dispatch orders with a computer-synthesized voice. No human voices are transmitted there, just a brief alert warble followed by the orders to get moving. Sticking to merely the fire department talk groups would have been ideal, but there might not have been enough fire calls during the party to dispatch all of our toy trucks.

I programmed the Arduino to monitor the voltage of the scanner’s audio and operate the fire truck launcher when a call comes through. I have the scanner’s internal speaker muted and the Arduino controls a relay that feeds an external speaker only when a call comes through for which it is dispatching a truck. I have a minimum-time-between-launches set in the code so the launcher doesn’t empty itself too fast. The launcher uses a single continuous-rotation servo to open a door that is mounted on a drawer slide. An IR emitter and detector are used to sense each stopping point, and small switches are used to detect full open and full close.

I mounted a couple of red LEDs on the cardboard fire station facade to add to the effect and to warn nearby partygoers that a fire truck is forthcoming.

The net effect of all this is that when a real fire truck or ambulance is dispatched in Wake County, our tiny fire station plays the same radio call the firefighters hear, at the same time they hear it, and shoots out a toy fire truck into our living room for the entertainment of our party guests.

Project Steps

Gravity gets the cars moving. The launching mechanism just moves the door out of the way.

I used a fancy trunk-tracking scanner to monitor several talk groups. In my area, the emergency services use a trunking radio system. They also simulcast the alert talk groups on a single VHF frequency, though, so I could have used a simpler radio if I had one.

A fixed continuous-rotation servo controls the sliding drawer by moving the VEX chain through the gears, stopping when the IR pair detects a stop or when the limit switches detect full open or close.

I whipped up the facade out of cardboard and construction paper. I mounted LEDs on either side of the door for a nice flashing effect. The sign you see to the left is one of many we had to give various food- and entertainment-related information to partygoers.

Here is my Dispatchatron mounted to the back side of the entertainment center. I’m a tad embarrassed by my sloppy wiring, but I had to make sure it was ready in time for the birthday party. I got a majorly sore back reaching back in here for troubleshooting and the addition of the LEDs.

After installing the Dispatchatron behind the entertainment center and getting all the various alignments and clearances perfect, I realized that the Arduino was not driving my cardboard facade’s LEDs brightly enough to be seen during the day. I threw together a couple PNP transistor boosters to reach back and plug in. I ran the red wire off the emitter to plug into my +5v rail, a 10k resistor off the base to plug into the Arduino output, and a snipped-off piece of female header into which I plugged the wire going to the LED.