Building the rockets

Before starting work on the final rocket, I decided to gain some experience and eliminate any errors by testing on a prototype rocket. In order to install this arduino control system in a rocket, stability and mass must be considered. For my first flights, I thought it would be enough to use common D12 motors although as my tests revealed, this was not enough for the stabilization system to function as intended due to the short flight time and low speeds. My next idea was to use two D12 motors setup in a booster configuration, where one stage starts first and ignites the second stage once it has burnt out. I designed and printed the additional stage on a 3D printer but unfortunately, this also was not enough since this setup only resulted in a 10-20m altitude increase due to the increased mass caused by the 3D-printed booster stage. Finally, I decided to use ammonium perchlorate motors rather than black powder ones due to their increased thrust and availability in larger sizes. The one I selected was a 29mm motor with a newton-impulse of 57 . To accommodate this larger motor, I completely redesigned my prototype rocket. Once the thrust issue has been resolved, problems with stability arose. In order for a model rocket to be stable, the center of gravity (CG) has to be in front of the center of pressure (CP). My issue was that the CP was too far forward so I once again modified the rocket by replacing the fins with much larger ones which resulted in the CP moving backwards by several centimeters. To be on the safe side, I also moved the CG slightly forward by adding a larger and heavier parachute to eliminate any instability issues during flight. Once these issues have been resolved, I started work on the large rocket. Unlike the prototype rockets which are mid power, this rocket classifies as a high power. This is due to its much larger size and mass as well as a newton-impulse of 512  rather than the prototype’s 57. Since this rocket will be going much higher than the previous ones, a dual deployment system for the drogue and main parachute must be installed to avoid loosing the rocket.

Dual Deployment

This is a system used in high power rockets that releases a drogue parachute at the peak of the rocket’s flight (the apogee) and then releases the main parachute at a user-defined altitude, usually about 200m. It is very useful because it reduces the horizontal distance travelled by the rocket during its descent if there is wind. This means that the rocket will land closer to its launch site, lowering the chances of losing it. This system consists of a barometer that completes the circuit between a 9V batter and an igniter when a certain part of the flight has been reached. Once the circuit has been completed, a very small amount of black powder under the parachute will be ignited, pushing the parachute out of the body tube.

Screen Shot 2016-04-18 at 5.24.48 PM

I was able to borrow a 3D printer while doing this project. This new opportunity of manufacturing parts helped me a great deal while building the control system because I could design a complex part and have it printed in several hours. This allowed me to design modular parts that I could easily modify and mount on the rocket. To make all of the designs, I used a program called Solidworks which my school provided for free. At the beginning of this project, I had little knowledge about how to use solidworks but now, at the end, I feel confident designing complex parts. I also tried making a small rocket using 3D printed parts and it worked perfectly, achieving an altitude of roughly 400m and deploying its parachute correctly. Unfortunately, there was a significant amount of wind and due to the large parachute, the rocket drifted far away and I was not able to recover it. Since it was 3D printed, I easily reprinted the parts and made an exact copy.

Building the stabilization system

In order to control the rocket’s trajectory, I decided to use 4 moveable fins that would allow me to control the rocket in its two horizontal axis. I decided to put the fins and the arduino at the front of the rocket because I could install the system inside the nose cone and the added weight would move the CG forwards, increasing stability during flight. In addition, the further the fins are from the CG, the more effective they become because they start acting as a lever. I designed and 3D printed the fins to be attached directly onto the servo heads as this is the simplest way and the most reliable one, removing another potential point of failure. In order to house the servos themselves, I also 3D printed a modular part that clips onto the 3D printed nose cone. I designed most of these parts to be modular to allow easy individual part replacements rather than spending large amounts of filament to reprint a large part with a small error in it. Here is  the computer model for the stabilization system on the prototype rocket:

Screen Shot 2016-04-18 at 5.25.16 PM

Programming and wiring the arduino

In order for the arduino to know the orientation of the rocket, I decided to use a gyroscope and accelerometer combo. These two sensors will each provide their own data which will then be merged together and smoothed out by the arduino using a special filter called a kalman filter. A kalman filter is also used in many other areas of electronics where inaccuracies and noise are common. Another feature of it is that it can predict data and then correct it depending on the sensor’s values. This will make the servo movements more fluid and accurate.

Screen Shot 2016-04-18 at 5.25.23 PM

 

To supply power to the arduino, I soldered a wire harness to connect the positive and negative terminals of the battery to each servo and to power the arduino itself. As a battery, I am currently using 4 AA batteries because I need it to stay on for the entirety of the science fair but for actual flight I will use a very small 100mah LiPo battery that will last for several minutes but the flight will be much shorter than that so it is not a problem.

Screen Shot 2016-04-18 at 5.25.34 PM

Code explanation

This code is based on the MPU6050 example that is available from the arduino website although I have heavily modified it to suit my needs.

Unfortunately the code is no longer available to the public due to legal reasons. I apologize for the inconvenience caused

 

Propulsion

The high power rocket motors that I used in this project are different in many ways when compared to smaller low power ones.  The main difference between them is in the propellant itself. Smaller rocket motors use a black powder based propellant that produces less thrust than the ammonium perchlorate mix used in larger motors. Another advantage of ammonium perchlorate over black powder is that it does not fracture due to its elastic properties so it can endure higher g-forces during flight and impacts during transportation. This substance is not only used in model rocketry, it is also used in solid rocket boosters (SRB) for real rockets. For example, the space shuttle’s 2 SRBs use ammonium perchlorate as their fuel. There are of course disadvantages when using this fuel, one of them being that it burns at a much higher temperature than black powder so in model rocketry, graphite or high melting point metals must be used as nozzles. Another difference between low and high power rocket motors is their propellant layout. Low power motors are end burners meaning that when ignited, the propellant at the bottom will burn upwards. Ammonium perchlorate engines have a core burn configuration so the igniter is placed at the top and when lit, it ignites the entire “core” of the propellant so it burns towards the side walls. The latter’s advantage is that it will produce more thrust in a shorter amount of time, allowing for heavier rockets to be launched. Small motors use end burning because it is easy to manufacture and will still function relatively well even if slightly damaged or deformed during shipping.Finally, high power rocket motors allow the user to drill into the delay grain in order to adjust when to release the parachute.High power motors also have their own special naming standard. This type of naming allows us to easily determine the burn time by dividing the first number by the second number so in this case it would be slightly less than one second. On low power motors, only the newton-impulse is shown.

Screen Shot 2016-04-18 at 5.25.53 PM

One of the initial prototypes on the breadboard using a arduino uno

Screen Shot 2016-04-18 at 5.25.58 PM

 

Screen Shot 2016-04-18 at 5.26.03 PM

The fins will remain pointed vertical even if the rocket is at an angle. This forces the rocket to go in the same direction as the fins are pointing. As the rocket returns to vertical flight, the fins will also point parallel to the rocket