A preview of my friend playing FireHero to the song "War Pigs" by Black Sabbath:
Update: Two full songs uploaded to youtube:
The story of FireHero:
So, long ago I had read about propane fire poofers. They're pretty cool... I mean, who doesn't love fire?! But, no matter how awesome, they could get pretty boring after a while of seeing the same large fireball. I never built one because I wanted something that would be exciting and thrilling every time I fired it up. So, I put the project on hold until I could come up with an awesome idea.
About 2 weeks ago, I was daydreaming in class about who knows what, when I thought of my fire poofer project. I thought back to this project I had read about a while back on Mikey Sklar's website where he uses an ultrasonic sensor mounted underneath a trampoline to shoot off a fireball every time someone jumps. This is pretty sweet, but it has the potential to get pretty repetitive. After a few hundred jumps, I would imagine I would get tired of seeing the same small fireball and crave something more. (besides, I don't own a trampoline!) I tried to think of ways I could apply a fireball shooter to things in ways that would be pretty awesome. I thought of using a microcontroller to sync the fire to the beat of music - now that would be pretty cool, and the patterns would always be different, so it wouldn't get as boring as fast. Then I thought of the game Guitar Hero, which uses five frets, and I had my idea! Simply interface a Guitar Hero controller to a microcontroller that would power some relays which would in turn fire off solenoid valves on five individual fire poofers! Now this could be cool; a large fire "sculpture" that is playable by anybody. Read on to see how I turned this idea into reality in a week's time!
I started with the propane system. These are the tanks I used - the three in front provide me with 60# of supply, and the 100# tank in the back is my main accumulator tank. The 20# right in front of the large tank is where my regulating system will go. The tank will provide a sort of buffer when large blasts of propane are required and it adds extra storage volume.
This is maybe a third of the amount of fittings I ended up using on the entire project (I got really good at using teflon tape!)
This is the system I was using to purge the 20# buffer tank. I also used the same system to thoroughly purge the large 100# with CO2 so I could safely work with it in my garage. Of course, my garage smelled like mercaptans the whole time, but it was safe to work on.
The supply manifold for the regulating assembly
I used flexible copper tubing with double flares on the ends to connect the supply tanks to the regulating manifold.
The complete supply system: three 20# tanks with individual shutoffs chained to manifold with a pressure gauge. The gas then passes through an adjustable 50-135psi propane regulator and into the buffer tank, which has a second pressure gauge attached to it. The gas is fed through a ball valve and into a quick-disconnect coupler to make its way to the main accumulator tank.
The propane enters the main accumulator tank through another quick disconnect. There is a tee where gas can be routed to the right to fire up the Ruben's tube. The line also splits up into the pilot light manifold which has a ball valve and needle valve for fine adjustment of the pilot light size. Each pilot light can go anywhere from candle size to a 5 foot flame. The gas makes its way into the 100# storage tank via a 3/4 ball valve where it is stored to be released by the solenoid valves.
This picture shows where the gas comes up to the two manifolds on FireHero - the main line from which all the solenoids branch off of, and the pilot light assembly. The main manifold can be independently shut off by a 3/4" ball valve, and is only turned on right before the show begins.
This picture shows the pilot light assembly in detail. The manifold can be shut off completely by a ball valve. When the ball valve is open, a needle valve is used to control flame height.
Now for the control portion of FireHero:
This was my first attempt at interfacing the guitar hero controller. I opened up the case and tapped into each fret button and the strum up/down buttons and wired them to 9-pin connector. I then ran a cable from this connector to my microcontroller and was going to use a simple digitalRead() and digitalWrite() program to check the status of the buttons and fire the appropriate relays. However, the buttons on the controller were not simple on/off buttons for some strange reason... instead they were a 16k resistor when off and 0 when on. (If anyone can shed some light on this, please comment) Interfacing the controller this way was more trouble than it was worth, so I scrapped it and looked for new ideas.
A thought popped into my head - how hard would it be to decode the serial data from the controller directly? As if my micro-controller were emulating a PS2? A quick Google search landed me on this article from Bill Porter's fine website. Bill had already done all of the hard work and compiled a PlayStation 2 controller interface library for the Arduino. This enabled me to quickly incorporate the guitar into my project with very little head-scratching. All that was needed to get the Guitar Hero controller to work was to halve the clock frequency. (Great job Bill!)
This picture shows my setup: the guitar is plugged into a header I salvaged from a PlayStation 1, which is connected to my Arduino Uno. The Arduino decodes the serial data from the controller, looks for button presses, and cycles power to the relays accordingly.
The relays are then connected to the solenoid valves on the main assembly via a nice long wiring harness using a common ground setup.
For version 1 of FireHero, the player simply watches a video of the guitar hero chart and plays on the guitar accordingly. Version 2 of FireHero will have a much better system, with Autoplay functionality. I will be able to take a custom guitar hero chart, convert it into a MIDI file, and use Processing to analyze it and play FireHero to the track. Through the Fire and Flames on Expert, anyone? If you have a song you'd like to see version 2 of FireHero play, let me know in a comment!
Ready to Rock!
The Ruben's tube
Flames are too high on the Ruben's tube in this picture. They were turned down to a much more acceptable level for the real thing.
Done for the night, purging the regulating assembly of propane
Purging the main accumulator tank of propane for storage.
That's it for Version 1 of FireHero. Ideas for Version 2 include:
- option to use the whammy bar to control the height of the flame
- Star Power, which would boost flame height or fire off additional fireballs
- color-changing flames
- auto-play functionality (in addition to manual mode)
If you have a cool idea that I could add to this list and incorporate into FireHero v2, let me know in a comment below.