Hey guys, welcome back to another project from RootSaid. In this post, I’m gonna show you how I made this cool DIY Rocket Launcher using Arduino. Using this you can control the direction as well as launch the rocket one by one using your mobile phone. Without further ado let’s get started. 🚀
DIY Rocket Launcher Components Needed
Rocket Launcher Arduino
First thing you need is to select an arduino board. For this project i’ll be using this Arduino Nano 33 IoT. This enables us to control the launcher using your mobile phone.
- Arduino Nano 33 IOT
- SSRs
- Rockets
- Matchsticks
- Blade
- Insulation Tape
- PC
- Rocket Mount
Arduino Rocket Launcher Video Tutorial
Guys if you like this video and want to see more videos like this, make sure you check out Arduino Robotics Tutorial Videos. Hit the like button and subscribe to our channel by clicking the subscribe button here. Share your thoughts in the comment box and guys see you in the next video.
New to Robotics?
We have a beginners guide on “Getting Started with Robotics” which will give you a kick start in this field. Check out our free video tutorial below for a brief introduction.
Steps to Make a DIY Rocket Launcher
Step 1 – DIY Rocket Launcher Circuit
Drawing Schematics and PCB Design using Altium
So I used Altium Designer to draw the circuit and design the PCB. It is a powerful tool that can be used to design and create your own PCBs for your project as well as complex and multiplayer PCBs for industrial use. Here is the link to the Altium trial version. So make sure you check it out.
Schematics
This circuit is designed to work with Arduino Nano and yes it will work with all Arduino Nano. Here, if you take a closer look you will see two power sources, Vin and 12 volts. Vin is connected to a 7805 voltage regulator. This voltage regulator converts Vin into a steady 5 volt regulated power supply.
This 5 volt is used to power the servo motor as well as the Arduino. The 12 volts is connected to the relay which will then be connected to the igniter when this relay is turned on by the Arduino. Digital pins of Arduino are connected to the input of relays.
So basically this is it. These are the main parts of the circuit. Now we can design the PCB layout.
PCB Layout
Altium PCB designer can also be used to make PCB layout. This is the layout I made using the circuit. As you can see this is a dual-layer PCB, which means routing is there on both sides – the top side as well as the bottom side.
On the left side of the board I left some empty space to keep my batteries Now I have the Gerber file with me. All I had to do is order the PCB.
Once I got all the components, I soldered them all together and this is my final PCB. You see, all the components are connected to the board now.
Step 2 -Making the Rocket Mount
Now we need something like a stand which can be rotated to control the direction and to place the rocket. For that I’ll be using this tiny camera mount. The good thing is it already have two servo motors in it.
I placed a metal piece on top of this mount, on top of which I’ll be mounting the rocket holders.
So let’s glue the rocket holders. Rocket holders are nothing but aluminum pipes. Since we have 4 relays in our circuit we can launch a maximum of 4 rockets at a time. I’ll be going with 3 rockets. So we need 3 rocket holders.
Our rocket mount is now ready.
Step 3 -How to make a DIY Rocket Ignitor?
Now we will make the Rocket Igniter. To make an igniter, all we need is a matchstick, a blade, a wire and a cello tape. To make an igniter, take a long wire and cut it into two. Now remove the insulation from one end. Take a matchstick and draw a thin line on the head of the matchstick with a blade.
Now take one of the wires and carefully separate a single strand of wire and place it over the line. Now place the other half of the wire on the other side of the matchstick and connect the single strand to that piece of wire.
Now to test it, all I had to do was connect the terminals of the wires to a battery. I needed three more igniters.
Once I made all the igniters, I carefully attached these fuses to the rocket.
Step 4 -Coding your DIY Rocket Launcher Arduino
Now, we will start coding. Like I mentioned earlier, I am using Arduino Nano 33 IoT for this project, and for that reason, I decided to go with Arduino IoT Cloud for coding. A few weeks back we published a video on our youtube channel explaining how you can code an Arduino online using Arduino IoT Cloud. If you haven’t seen that yet, check out the below video.
Arduino IOT Cloud
The best thing about Arduino IoT cloud is they provide a skeleton code that contains all the variables initialized you just have to add extra variables and the actions. Now let’s take a look at our current project.
Project Properties
This is our thing, or our project. I just named it as Remote Device. Now let’s open this thing and here you will see five properties created by me for this project.
- Horizontal
- Vertical
- Rocket 1
- Rocket 2
- Rocket 3
Properties are like variables. Here you will see two variables – horizontal and vertical. These two are of integer type that will vary from 0 to 180 degree. These two variables are for controlling the servo motors.
Then we have rocket 1, rocket 2 and rocket 3. These all are boolean variables that are 0 or 1.
Dashboards
Let’s take a look at the dashboard. As you can see here are mainly 5 widgets. These 5 widgets are linked to the properties that we saw earlier.
Here there are 2 sliders and 3 buttons. Sliders are linked to horizontal and vertical properties and the buttons are linked to the boolean properties. We can control the value of the properties using these widgets.
DIY Rocket Launcher Code
Now let’s take a look at the code.
First go to the secrets tab and enter the ssid and password of your WIFI network.
#include "thingProperties.h"
String led;
#include <Servo.h>
Servo myservo;
Servo myservo2;
int pos,newhval,oldhval,newvval,oldvval;
void setup() {
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
pinMode(LED_BUILTIN, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
myservo.attach(9);
myservo2.attach(10);
}
void loop() {
ArduinoCloud.update();
}
void onHorizontalChange() {
int newhval = horizontal;
if (newhval>oldhval)
{
for (pos = oldhval; pos < newhval; pos++) {
myservo.write(pos);
delay(10);
}
}
else if(newhval<oldhval)
{
for (pos = oldhval; pos > newhval; pos--) {
myservo.write(pos);
delay(10);
}
}
oldhval = newhval;
Serial.println("Servo Horizontal = ");
Serial.println(oldhval);
}
void onVerticalChange() {
int newvval = vertical;
if (newvval>oldvval)
{
for (pos = oldvval; pos < newvval; pos++) {
myservo2.write(pos);
delay(10);
}
}
else if(newvval<oldvval)
{
for (pos = oldvval; pos > newvval; pos--) {
myservo2.write(pos);
delay(10);
}
}
oldvval = newvval;
Serial.println("Servo Horizontal = ");
Serial.println(oldvval);
}
void onRocket1Change() {
if(rocket1==1)
{
led = "HIGH";
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(2, HIGH);
}
else
{
led="LOW";
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(2, LOW);
}
}
void onRocket2Change() {
if(rocket2==1)
{
led = "HIGH";
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(3, HIGH);
}
else
{
led="LOW";
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(3, LOW);
}
}
void onRocket3Change() {
if(rocket3==1)
{
led = "HIGH";
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(4, HIGH);
}
else
{
led="LOW";
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(4, LOW);
}
}
Here first we initialize the variables and the header files. Some of these variables will be used for smoothing the motion of the server motors.
In the setup function, we initialize serial communication and set up the pin modes and then we connect the servo motors to pin 9 and pin 10. Now below that, you will see 5 functions. These 5 functions correspond to 5 properties. When one of these properties changes the corresponding function gets executed.
For example, when the value of horizontal property changes, the onHorizontalChange function will get executed. Similarly, when the value of vertical property changes, the onVerticalChangefunction gets executed. In the onHorizontalChange and onVerticalChange functions, we write the code to change the position of the servo motors depending on the value on the slider
The same thing happens with the onRocket1Change, onRocket2Change, and onRocket3Change functions. In the rocket functions, we write the code to turn on the pin that is connected to the relay. This will ignite the fuse of that particular rocket.
That’s it guys the code is now finished. You can select the right port and board and click on upload. Now there is one more thing left for us to do.
Step 5 -Controlling Rocket Launcher from Mobile
Download and install the Arduino IoT Cloud application in your mobile phone.
Now open the application and sign with your account. There you should see the dashboard you created earlier. Once I did that, I was able to control the rocket launcher from my Mobile Phone.
3, 2, 1 ….
Now all I had to do was, fix the rocket launcher somewhere outside. I had to make sure it won’t fall off during the launch. Looks good right? Then I fixed the PCB a little bit far from this rocket launcher. That’s because I had to make sure that the flame from the rocket would not burn the PCB.
Everything is all set guys. We just have to power on the circuit and let’s see what happens. Once it’s all powered up, I tried controlling the rocket launcher from our mobile phone, which I did.
Now I aim the rocket somewhere safe and we will launch our first rocket. Okay this looks fine and three, two, one and GO!!
Lift-Off!
Guys if you like this video and want to see more videos like this, make sure you CHECK THIS OUT! Hit the like button and subscribe to our channel by clicking the subscribe button here. Share your thoughts in the comment box and guys see you in the next video.
Join us Now for Awesome Projects
Did you find this page useful? Help us to improve by rating this page.