Introduction: Remote Control Air Rocket Launcher

A home-made air powered rocket launcher is a thrill for kids to launch rockets made from paper and cardboard high into the sky. Most launchers are made from PVC pipe. All that is needed is a tire pump to pressurize the launch chamber. A 24-volt sprinkler valve is then activated to release the pressurized air all at once. This instantaneous release of air sends a home-made rocket hundreds of feet into the air.

There are many plans on the internet showing how to construct an air powered rocket launcher. I built two of them myself. The first one was published by makezine.com and entitled “Compressed Air Rocket”. The second one I built came from an Instructable entitled “Air Powered Rocket Launcher”.

Both require the use of a launch button that is connected to the launcher by an electrical cord. The length of the cord is dependent on how far you think it is safe to be while the rocket is fired.

I wondered if you could launch the rocket remotely to make the process a little safer. Launcher and onlookers could watch from a safer distance. In this Instructable I will show how any old TV or electronic remote control you have laying around can be used as an infrared (IR) remote control to communicate with a launch console and fire the rocket. An Arduino board will be used in the launch console to manage this. I think this adds a little more safety to the rocket launch procedure. It will help prevent accidently hitting the “Fire” button while one is placing the rocket on the launcher, and you are not limited by a wire on how far away you can stand and fire or watch the launch (within the IR range).

It also makes for a more realistic launch sequence. A programmed 10 second countdown is first initiated to allow all people to move a safe distance for viewing the launch. Only after the 10 second countdown, will the fire button be activated. The “Fire” button can then be pushed once the launcher is certain everything is safe and ready. If there is an issue, the “Abort” button can be quickly pressed. Any issue can be taken care of and then the launch sequence can be started once again. A red, green and yellow LED light on the front of the launch console will give the launcher a visual cue of where they are in the launch sequence.

Supplies

·       (1) Case

Jameco Valuepro SY0206-R Case, Metal, 6.3" L x 7.8" W x 2.5" D: Mechanical Component Equipment Cases: Amazon.com: Industrial & Scientific

·       (4) Relays

5v Relay Board Relay Module 1 Channel Opto-Isolated High or Low Level Trigger: Amazon.com: Industrial & Scientific

·       (1) Arduino

Amazon.com: Treedix 2pcs ATmega328P CH340 Development Board Compatible with Arduino UNO R3 Board Kit for Starter : Electronics

·       (1) Dewalt Battery

Jialitt 20V 4.5A Replacement Battery Compatible with Dewalt 20V Max Battery DCB204 DCB206 DCB205-2 DCB206-2 DCB203 DCB201 DCB200 DCB180, Compatible with DeWalt DCD/DCF/DCG Series Cordless Power Tools - - Amazon.com

·       (1) Dewalt Battery Holder

Amazon.com: Ecarke Power Wheels Adapter for Dewalt 18V/20V DCB201 DCB205 ect Lithium Battery with Fuse & Wire terminals Power Convertor Dock Power Connector for Rc Toy Car,12 Gauge Robotics,Rc Truck,DIY(Upgrade) : Tools & Home Improvement

·       (1) IR Reciever

Amazon.com: MagicW Digital 38khz Ir Receiver 38khz Ir Transmitter Sensor Module Kit for Arduino Compatible : Electronics

·       (1) 9-volt battery connection

Amazon.com: Chanzon 9v Battery Clip with 2.1x5.5mm Male DC Connector T-Type with Leather Housing and Lead Wire Pack of 5pcs kit for Arduino LED Strip : Electronics

·       (3) 12v-20V LEDs

·       (1) Push button On/Off Switch

·       Misc. wires

·       (1) Small Perforated Solder Breadboard

·       (1) 2 -pin Molex connector

·       Screw Terminal Strip Blocks

Amazon.com: MILAPEAK 10pcs (5 Sets) 6 Positions Dual Row 600V 25A Screw Terminal Strip Blocks with Cover + 400V 25A 6 Positions Pre-Insulated Terminals Barrier Strip (Black & Red) : Industrial & Scientific

Step 1: Finding the Codes for Your Remote

I purchased an IR receiver from Amazon that was compatible with an Arduino. I used a very informative article I found on the Circuit Basics web site that showed how to connect the IR receiver to your Arduino and decipher the hexadecimal codes for each button on your remote. The article can be found at:

How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics

I will only need to use 4 buttons for my launch console, so I decided to use the numbers 1, 2, 3 and 4. To use the provided Arduino sketch you will need to install the <IRremote.h> library. When you run the sketch, it will print each code out for the button you press, to the serial monitor. (The attached photo shows my bench set-up for a project I took a little further to find all the codes for a remote control. Then to confirm that my codes were working I verified each number pressed to a LCD monitor and a 7-segment LED.)

Using this set-up, I found the codes for these buttons on my RCA remote to be:

Button,Hexadecimal Code

1............ E0E020DF

2 ............E0E0A05F

3.............E0E0609F

4.............E0E010EF

To use these codes in an Arduino sketch you will need to install the <IRremote.h> library and put “0x” in front of each code to indicate it is a hexadecimal code. 

Step 2: Electrical Design

I used 6 pins on the Arduino as output pins. Two were used with the normal 5 volt DC output to power the buzzer and the IR receiver. Four pins were used to activate devices that required a higher voltage (20 VDC) by triggering a relay for each. A relay is an electromagnetic switch operated by a relatively small current (from the Arduino) that can control a much larger current. In my launch control console, when a relay was triggered, the 3 LED lights or sprinkler valve could be powered by a 20 volt Dewalt lithium battery. The voltage from the Arduino would not have been enough to make these devices work.

A drawing of the electrical circuit is included. I tried to make this diagram as clear as possible by drawing it in Tinkercad Circuits. I will explain how the logic of the launch sequence works when I discuss the Arduino sketch.

Step 3: Making the Launch Control Console

This is the order that the launch control console was constructed:

1)    The console was constructed inside a medium size electronic metal case that measured 6.3” x 7.8” x 2.5” tall.

2)    I first drilled appropriate size holes in the front and back panel for all output devices. The e LED lights, IR receiver and on/off button will be mounted on the front panel. The buzzer and Molex connector that accepts the sprinkler valve wire from the rocket launcher will be mounted on the back panel.

3)    All these items were installed as seen in the photos. You will see I had to cut a small wooden block for the IR receiver to rest on. Adhesive caulking was used to secure this.

4)    The lithium battery holder (for DeWalt) was secured to the bottom with small machine screws and nuts.

5)    The screw terminal strips were also secured to the bottom (20 VDC power distribution).

6)    The 5 VDC power distribution soldered perforated board was mounted to the inside of the front panel, as shown in the photo, above where the IR receiver is positioned.

7)    Next, I was able to find enough remaining room on the bottom to mount the 4 small relay boards. I used nylon standoff screw nuts and spacers.

8)    I wired everything together as outlined in the electronics diagram above.

9)    I then had to find a place to mount the Arduino board. To get it to fit, I had to mount it above the relay boards.

10) The 9-volt battery connector was spiced into the on/off switch and then plugged in to the Arduino power receptor.

11) Finally, a 9-volt battery was snapped into the connector and secured to the bottom with double sided adhesive tape.


Step 4: Programming the Launch Control Console

The Arduino sketch controls how the launch control sequence works. As I stated above, to use the hexadecimal codes from my remote I had to install the <IRremote.h> library. It is then included in the beginning of my sketch. You will also notice that you must put “0x” in front of each discovered code to indicate it is a hexadecimal code.

The beginning of the sketch declares variables and the pin assignments. I declare two logic variables that control the launch sequence: abortFlag and fireFlag. In the void setup() block I set all the pins as OUTPUT. The launch sequence starts with the yellow caution light on and both logic variables set to “0” or False.

In the void loop() block the main function I use from the <IRremote.h> library is the irrecv.decode function. It will return true if a code is received and store the code in results.value. All the code within this first if statement will then run. This code is a series of embedded if statements to check what button was pressed. I could have used a switch-case statement, but I decided to stay with the if statements since it was such a small program. If button 1, 2, 3 or 4 is not pressed, then nothing happens. I will work backwards explaining each button.

If button “4” is pressed both variables (abortFlag and fireFlag) are set to “0” (false) and the yellow caution light comes on. This will Reset the launch sequence. This is also the initial state when the launch command console is first turned on. This is the time to prepare the launch site and put the paper rocket on the launcher.

If button “3” is pressed the abortFlag is set to “1” (true) and the fireFlag is set to “0” (false). This is the Abort button. Button “1” and “2” will not work now. The problem should be corrected before the launch sequence can start again. To start the launch sequence again, you must press button “4”.

If button “2” is pressed the Countdown for the launch will begin. The countdown will only begin if the aboutFlag is “0” (false). The green light flashes and the buzzer sounds for a 10 second countdown. Once the countdown ends, the fireFlag is set to “1” (true) and the green light stays on. The rocket can now be fired.

If button “1” is pressed, the rocket is Fired. This is the Launch button. Pressing the launch button opens the sprinkler valve for 1 second. This is more than enough time for all the pressurized air to be released to propel the rocket skyward. Once the rocket has been launched, the fireFlag is set back to “0” (false) and the green light turns off. This ensures you cannot launch another rocket until you go through the proper launch sequence again. To do this you can press “4” to reset the variables and the launch sequence to the beginning.

The Arduino sketch is attached along with a table that shows the code variables for each remote button pressed.


Step 5: Final Preparations and Testing

I first uploaded the remote-control launch console sketch to the Arduino board. I then secured the black cover to the metal box chassis with the 4 screws that came with it: two screws on each side.

I took the launch console outside to test it with the remote control. I hooked it up to one of my compressed air rocket launchers where the manual fire button would be plugged in.

I have included a video of the test launch using the pushbutton and then contrasted it with a launch using the remote control and launch console. The second video is a short review of how the launch sequence works.

Step 6: Future Possibilities

I have thought about integrating this remote-control rocket launch console with the Shuttle Mission Control Mock-Up I constructed. This was an Instructable I published on May 4, 2021. This mock-up went through a pretend launch of the space shuttle. I was thinking of modifying it in such a way that we could have a real mission control center for the firing of a compressed air rocket. I will have to see if this is possible.