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 (www.flickr.com/photos/8190411@N07/4390842256) 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 red LEDs on the cardboard fire station facade to add to the affect 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.
I have since made a Junior version for Gavin's younger brother: www.flickr.com/photos/8190411@N07/8316813546/