Nuig Lander1
Nuig Lander1
Final Report
Group 41
Student 1: Louis MacMonagle,
Student 2: Tara McCarthy, 20373581, t.mccarthy11@nuig
Student 3: Lucy McManus,
Student 4: Diana Meriakri,
Contact Email address: [email protected]
15/05/2021
Design of Rocket.
The rocket was built using an empty water bottle and a ‘Bottle Rocket Water Pressure Kit’
from Rokit. This kit contained a bottle screw collar, rubber nozzle, 3 fins, and a pressure tube
with fittings. This kit screwed onto the lip of the water bottle and when the pressure tube was
connected to a bicycle pump it was easy to build pressure in the bottle. The three fins were
also attached to the lip of the bottle, this created an aerodynamic design and kept the bottle in
a steady flight path in testing. A cone was built from another water bottle and placed on top
of the rocket to reduce the wind resistance.
Section 4 – Capsule and Parachute System
1. Underlying theory of operation
One of the requirements for this design project was to design a parachute and capsule system
that, once the rocket was launched and reached its maximum height, the capsule would
detach from the rocket and deploy the parachute. The Arduino was also to be attached to this
capsule, and the parachute should be designed to achieve a safe landing for both the capsule
and Arduino. The parachute can be made of any material, as long as it supports the weight of
the capsule. The recommended material to use would either be nylon or simply a plastic bag.
The parachute has to be attached to the capsule and has to deploy as the capsule is
descending. The width of the parachute has to be calculated using the wind resistance
equation, as shown below:
1
Fd= ρCd A v 2
2
ρ = density of air (1.22 kg/m3)
Cd = drag coefficient (1.5 for typical parachutes)
A= area of the parachute (unknown variable)
V- velocity (estimated to be 2 m/s)
A=πr2
This formula is then rearranged to calculate the radius of the parachute. This formula
incorporates the weight of the capsule and Arduino, so it is particular to each rocket.
The capsule was designed with the intention of it detaching for the rocket either mid-air or
when the rocket had reached maximum velocity, and to land safely with the parachute. The
Arduino board was to be placed inside the capsule, either sellotaped or glued in to ensure it
doesn’t detach, or break mid-flight. Cross braces or any other suitable method of securing the
Arduino circuity in the capsule were also taken into consideration. As the capsule is holding
the Arduino, it cannot be made out of metal, as the metal could conduct some of the Arduinos
signals and disrupt the readings. The 9-volt battery that supplies the Arduinos power when
it’s unplugged from a laptop must be insulated in other not to cause a short circuit on the
printed circuit board. The capsule also has to be of suitable weight, as if it’s too light or too
heavy the parachute may not deploy in time.
2.a. Design of parachute
The parachutes design choice was based on both efficiency and availability. Nylon was not
readily available to our team so a lightweight plastic was the next best choice. An array of
various plastic bags were tested, including firm plastic shopping bags and light-duty clear bin
bags. These bags were tested by attaching a weight by string to the bag and throwing it out
the window. The light-duty plastic bin bags seemed to have the highest drag coefficient, as
they deployed and filled with air quicker than the other material.
The radius of the parachute was calculated by the wind resistance equation above. The
capsule and the Arduinos combined weight was measured to be 121g. This value was used to
calculate the drag coefficient :
Cd= (121)(9.81)=1187.01/1000=1.18701
This was then plugged into the equation above to calculate the area:
( 2 ) (1.18701)
A= (1.22)(1.5)( 2)2 =0.3241396 m2
as the parachute is circular, the length of the parachute can be calculated by:
A 1.18701
radius of parachute=
√ √π
=
π
=0.61m
a clear light duty plastic bag with this radius was chosen.
As the parachute would have to hold considerable weight, the handles of a heavy-duty
shopping bag were cut off and hot glued to the bag, as shown below. Cotton thread was then
attached to the two handles and two points opposite each other on the bag. This thread was
attached using heavy-duty tape. A few layers of tape were used in other to reinforce the
parachute. The parachute also had to be kept secure up until it was to be deployed, as the
parachute could interfere with the launch if it filled up with air mid-flight. After watching a
few YouTube videos, and researching various techniques to keep the parachute secure, it was
decided to simply fold up the parachute slightly and place it on top of the capsule.
Fig 2.1 and 2.2 - makeshift plastic-parachute with extra handles and string attached by tape
b. Design of capsule
The capsule was designed to keep the Arduino safe, be lightweight yet durable, be attachable
to the parachute and also detach from the rocket mid-air. This was done by cutting the top
and bottom off a plastic bottle, and then securing the board inside the top of the bottle with
tape, as shown below. Cotton pads were put into the bottle to soften the fall and also insulate
the 9volt battery. A hole was cut into the bottle so the USB cable could be plugged into the
Arduino if needs be, for example, if the code was changed slightly and had to be uploaded
back into the Arduino. The bottom of the bottle was then used as a makeshift lid, and
sellotaped to the top of the bottle, securing the Arduino properly. The parachute was then tied
and sellotaped to the bottleneck.
PCB
Battery connection
1
P0 5.257
(( ) −1)×(T +273.15)
P
h=
0.0065
Logging Computer: Arduino 1.8.13 was used to write and upload code. This code
allows the readings from the sensors to be recorded and displayed on the serial
monitor within the Arduino software.
4.2 Operation of Radio Link.
The HC-12 is responsible for the wireless communication between the Arduino Nano and the
computer (logging computer). One HC12 is plugged into the board while another is
connected to the computer using an FTDI adapter. A serial connection was then set up
between both of these components. To set up the serial connection
#include <SoftwareSerial.h> had to be included at the top of the code.
The Software Serial library is responsible for the communication between both devices. After
the code is tested on the serial monitor the application “Serial Plot” was downloaded to view
graphs of the data
Flow Chart of Arduino Code:
#include <SoftwareSerial.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_Sensor.h>
Adafruit_BMP280 bmp; // libraries that had to be included for all sensors a
nd functions to work
#include <SoftwareSerial.h>
SoftwareSerial HC12(7, 6); // HC-12 TX Pin, HC-12 RX Pin
const int ledPin=0;
int sensorValue=0;
int sensorValue1=0;
int sensorValue2=0;
int sensorValue3=0;
int accelMIN=0;
int accelMAX=1023; // all variables to be declared at the start
int accel,accelMAG,acceleration;
float R1,lnR,T,Temp;
float alt,altitude;
float BMPtemp,BMPpressure;
float seaPressure,pressure;
void setup() {
Serial.begin(9600); // calls the code to begin
pinMode(ledPin,OUTPUT);
pinMode(sensorValue,INPUT);
bmp.begin();
HC12.begin(9600); // calls the radios
}
void loop() {
float time = millis(); // time
Serial.print("After ");
Serial.print(time/10000); // have to divide by 1000 to get the time in seco
nds
Serial.println(" seconds: "); // serial.println means the next item printed
will be on a new line
int sensorValue = analogRead(A1); // accelerometer
int sensorValue1=analogRead(A2);
int sensorValue2=analogRead(A3);
Serial.print(" X:");
Serial.print(sensorValue);
Serial.print(",");
Serial.print("Y:");
Serial.print(sensorValue1);
Serial.print(",");
Serial.print("Z:");
Serial.print(sensorValue2); // all values collected from all three axis are
printed
BMPpressure = bmp.readPressure(); // BMP280
BMPtemp = bmp.readTemperature(); // functions that call the sensor readings
const float seaPressure = 1013.25;
alt = ((pow((seaPressure/pressure),(1/5.257))-1.0)*(BMPtemp+273.15))/
(0.0065);
pressure = BMPpressure/100 ;
Serial.print(" BMP280 Temperature = ");
Serial.print(BMPtemp);
Serial.print("°C , ");
Serial.print("Pressure = ");
Serial.print(pressure);
Serial.print("Pa , ");
Serial.print("Therefore altitude = ");
Serial.print(alt);
Serial.println(" metres. ");
String DATA = String(F("After ")) + String(time/1000) + String(F("seconds:")
)+ '\n' + String(F("X:")) + String(sensorValue) + "," + String(F("Y:")) +
String(sensorValue1) + "," + String(F("Z:")) + String(sensorValue2) + "," +
'\n' + "BMP280 temperature = " + String(BMPtemp) + "°C "
+ "and Pressure = " + String(pressure) + "Pa" + ", " + "Therefore altitude =
" + String(alt) + "metres." + '\n'; // a string is used to send all the data r
ecorded
HC12.println(DATA); // sends the entire string to the radio
delay(500);
}
}
5. Testing
(a) Testing of Water Rocket
To test the water rocket, we launched it several times increasing the amount of water held in
the bottle each launch. We videoed each launch to try and determine which amount of water
maximised the height of the rocket. From these tests, we could determine how much water to
place in the bottle when testing the full system. We concluded that an amount of 150ml of
water gave an optimum height for the rocket. From this test, we could also figure out what is
the optimum amount of air that should be pumped into the rocket to maximise the height.
6. Data Analysis
The data collected from the Arduino board was converted into a CVS file from SerialPlot and
then opened in MATLAB. This data was then manipulated to graph acceleration and velocity
against time. When graphed, it is clear that some of the data hold errors- this may be because
the Arduino was not oriented properly in the capsule. Each plot can be analysed against the
video and it can be determined whether or not the data was recorded accurately.
20
10
)
2
0
1010.8
-20
1010.7
-30
1010.6
-40
pressure (Pa)
1010.5
1010.4
-50
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
1010.3 time (s)
1010.2
1010.1
1010
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time (s)
The pressure was calculated correctly- as the Arduino was launched into the air, pressure
decreased. This shows that the data recorded is in line with the video.
Figure above shows acceleration against time
The acceleration also seems to be measured correctly- during the launch it increases, falls
down to g, and as it hits the roof (as shown in vid) it drops drastically. The acceleration data
is thus in line with the video.
-127
-128
-129
-130
altitude (m)
-131
-132
-133
-134
-135
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time (s)
The altitude graph is in line with the video- the altitude shoots up as the rocket launches,
however the y-axis values are inaccurate- this could be attributed to the orientation of the
Arduino board.
-20
26.2
26.15 -40
26.05 -80
temperature (c)
26 -100
25.95 -120
25.9 -140
25.85 -160
25.8
-180
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
25.75 time (s)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time (s)
The temperature is very accurate to the video as the Arduino moves higher into the
atmosphere, the temperature decreases slightly.
8. Individual Reflections
Tara McCarthy
Overall, I found this project very interesting but also certain aspects quite challenging. I
enjoyed testing the rocket and parachute. If I were to redo this project, there would be several
things I would repeat and a few things I would change.
I would repeat meeting up regularly as a group during the four weeks, working on the project
and sharing our ideas and opinions. I would also repeat how we managed and divided up the
workload of the project.
At the beginning of the project, I would start straight away not wasting the 1st week. I would
also start the report much earlier to avoid the stress towards the due date. Another thing I
would do differently is complete more tests on the rocket and parachute which would have
given more accurate results.
Diana Meriakri
This was the most challenging Design project yet. I found this project quite difficult to
navigate and complete, as I did not have much experience in building rockets and all of their
related components. The coding for the Arduino programme was also quite difficult,
especially getting the transmitter to operate correctly. However, I learned many different
skills doing this project, and I found the accuracy of the sensors on the Arduino fascinating. I
can appreciate the intricacy of coding a lot more. One thing we did well was communication
– the workload of this project was lessened through the effective designation of roles.
However, time was certainly an issue- this could have been improved.
Appendix contain full listing of your Arduino Program(s)