Arduino Rocket Guidance

Introduction: Arduino Rocket Guidance

Rocket guidance can be achieved 2 ways, thrust vectoring and fin angling. The way I am guiding my rocket is by using thrust vectoring. Basically, an Arduino with a gyroscope and an accelerometer tell servo motors which way to angle the engine, and the rocket will move to the opposite of the engine's thrust vector. Lets get this show started with some material lists!

Step 1: Material List

This section should give you a basic idea about what you will need, more details will be explained in future steps

1) Power distro board (Custom Made)

2) .25 inch Aluminum billet or 3/8 inch basswood (For the chassis)

3) Rocket Motor

4) MPU6050 6 axis gyro chip

5) Arduino

6) laser cutter

7) Computer

8) Metal Gear Servos

Step 2: Make the Power Distro. Board

Its critical to save weight on a rocket, and the power distro. board will take power from a 11v lipo battery and distribute it to the servo motors and to the arduino/sensors. Using the diagram i posted, make a distro board.

Step 3: Wire the Gyro to the Arduino

The gyroscope has to be wired to the arduino in a specific way for it to work/be read. Since this is a fairly cheap module, no directions were provided and I had to figure it out myself. Using the pictures, make a cable for the gyroscope.

Step 4: Make the Thrust Vectoring Frame

The thrust vectoring frame must be powerful enough to take the rocket motor's thrust and not break. For this reason I went with a custom plasma cut aluminum frame, although if you pick a smaller engine, you could go with a wooden one.

The 2 inner rectangles are going to be used to house the servo motors, while the outer circle moves in the x axis and the inner circle moves in the y axis. The rocket engine will sit in the inner circle. I lost the laser cutting files for this piece so you might have to piece it together yourself

Step 5: Attach Servos to the Frame

The servo motors I am using are metal geared and shave a fairly fast movement time (critical to rockets). The servos are attached to rods, which connect to both the inner and outer circle. I had to epoxy the servo motors in because they kept coming loose.

Step 6: Make the Electronics Bay

The electronics bay will house the arduino and power board, along with the battery, and will keep these items safe from the rocket's thrust. You have to be creative here and I made mine so I could slide a tube over it for launch

Step 7: Programming

The code here will let the rocket fly straight up without fins using artificial stabilization, great for the first test flight!

Microcontroller Contest

Participated in the
Microcontroller Contest

Tech Contest

Participated in the
Tech Contest

Be the First to Share

    Recommendations

    • Battery Powered Contest

      Battery Powered Contest
    • Plywood Challenge

      Plywood Challenge
    • Plastic Contest

      Plastic Contest

    19 Discussions

    0
    SeptemberS
    SeptemberS

    Question 1 year ago on Step 6

    How does the module allow for the ejection of the nosecone and parachute? Will the servos and circuts be damaged by the ejection charge released by the engine?

    0
    Buraqaerospace
    Buraqaerospace

    Answer 2 months ago

    Remove the ejection charge or Make the tvc mount (the motor holder hollow from top so the ejection charge won't break the mount and put fire waddings under the electronics
    Check out peyspace,hyer, Delta space systems ,bps.space,canine rocket technologies to find out more

    0
    NitishC2
    NitishC2

    Question 6 months ago

    I know its been a while since you've posted this project, but was curious if you have flown this system on a model rocket yet? Noticed your code was a proportional controller and would be relatively unstable in flight.

    3
    jinshumehta
    jinshumehta

    Question 1 year ago

    sir can you please mail me the cnc cutout file please
    it would be of great help!

    0
    Michael830
    Michael830

    Question 1 year ago on Step 7

    I am trying this project out and I am having some trouble with the code. It says :

    Multiple libraries were found for "Wire.h"
    Used: C:\Users\Family\Documents\Arduino\libraries\Wire
    Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\Wire
    Multiple libraries were found for "I2Cdev.h"
    Used: C:\Users\Family\Documents\Arduino\libraries\I2Cdev
    Not used: C:\Users\Family\Documents\Arduino\libraries\MPU6050
    exit status 1
    Error compiling for board Arduino Nano.

    Any help would be great.

    3
    AkhilG123
    AkhilG123

    Question 1 year ago on Step 2

    Uh can you provide the link to your circuit board

    3
    Sin_of_wrath
    Sin_of_wrath

    Tip 1 year ago on Step 3

    Could you please add the diagram for the power distor board

    1
    tollesding
    tollesding

    1 year ago

    Hello
    thanks for sharing this awesome idea. I am not really in this programming theme but i wanted to try it still. So i ordered everything on amazon and downloaded the Arduino open source (windows installer) and then I ran into a problem when I was uploading the file, as you can tell from the image I uploaded. You seem like a smart guy so i hope you ( or anyone else) can help me.
    thanks for your help
    Daniel

    Arduino.PNG
    0
    lw2dtz
    lw2dtz

    Reply 1 year ago

    Tried the sketch using a Mega2560 connected to a mpu6050 and a servo without problems. The servo reacts to the movement of the MPU6050. The next step is to design and build the structure.

    20181219_120237[1].jpg
    0
    tollesding
    tollesding

    Reply 1 year ago

    Hello
    Yes this was really helpful. And I am really happy that there is quiet a simple solution.
    Would you maybe tell me how you would build that power distro board? The pictures on the article aren't really in good resolution. Would be very kind of you.
    Thanks for your help
    Daniel

    0
    Quin_321
    Quin_321

    Reply 1 year ago

    I had the same issue when I tried to run the program and I needed to download the I2C library from GitHub (https://github.com/rambo/I2C). Then I had to unzip the file and go into the folder and rename the file called SoftI2CMaster.h to I2Cdev.h and the folder to I2Cdev. Next, I went into the Arduino program and went Sketch -> Include library -> Add .ZIP file. Then find the folder that you renamed I2Cdev, select the folder and click Choose. I don't know where the file will be on Windows but on Mac, it was under Documents -> Arduino -> Libraries.

    Once you have done this you will encounter a similar error with the next line of code. Just download the Arduino MPU 6050 library (https://github.com/jarzebski/Arduino-MPU6050) and repeat the same process with adding it.

    Next, you will encounter an error that says: 'class MPU6050' has no member named 'initialize'
    The error happens with the line of code that says: mpu.initialize();
    You can just change this to mpu.begin();
    It has the same meaning as mpu.initialize(); it is just updated command with a different word to do the same function.

    Finally, you will encounter an error that says: 'class MPU6050' has no member named 'getMotion6'
    I havent figured out how to solve this issue yet. I think the issue is for a similar reason as the last error where it was an outdated command because the error message has the same format just with different terms or commands. I have yet to find the equivalent command in the new versions of the Arduino software.


    I hope this helped

    0
    diybomber834
    diybomber834

    4 years ago

    i am making a swing-fire [a swing fire is basically a javelin] so thanks for the design!

    0
    paul.dubczuk
    paul.dubczuk

    6 years ago on Step 7

    I have been experimenting a whole lot as of late with spin stabilised rockets and now I'm looking at venturing into the realms of GYRO stabilised rocketry. This Instructable is exactly what I need to make a start on my project.

    Thank you for posting this up!

    Much like AJManfield I'm very keen to see the final product perform in a real life scenario.

    Power to ya!

    I was wondering what kind of response you got. I've been working on this type of thing, but the rocket starts out moving so fast that the hardware doesn't have time to react before its too late. What kind of latency do you get from sensing a deviation to adjusting for it in real life?

    Also, have you considered using a PID or PD controller to adjust for overshoot?

    0
    SimonB5
    SimonB5

    6 years ago on Introduction

    Nice!
    Would benefit from a micro instead of uno (for weight reduction)

    Good project, I like