In 2007 - 2008 a CanSat competition took place, hosted by the Delft University of Technology. In this competition high school student teams had to program a CanSat, a mini-satellite in a Coke can, which works as a simulation for a real satellite.
This repository describes the software written for this project. The hardware used was a BasicATOM PRO 24-M processor (manual), which uses BASIC (manual) as programming language.
Measure temperature and air pressure every time interval and send the data to the ground station on a given frequency.
Our team decided on the following mission. The CanSat would go in a rocket up to ~1000 meters altitude. After being launched from the rocket, a parachute would unfold. Our CanSat would use a small servomotor to release the parachute at a certain point and land on the ground by crashing, using a crash zone.
The main task of the software was to:
- determine the current altitude;
- control the servomotor to release the parachute at a given altitude (40% of the maximum altitude).
The altitude could be determined from the air pressure and temperature sensors. However, we found out the temperature sensor was too unreliable for this task, as it updated too slow. Therefore, we only used air pressure as a measure for the altitude (the higher above ground, the lower the air pressure).
The following graph shows measurements of the air pressure over time:
From this data a figure with the altitude over time can be plotted:
So how does the software program know when to send a signal to the servomotor to release the parachute and start the free fall?
Well, as you can see initially the altitude is increasing, but after the rocket releases the CanSat, the altitude decreases. So by comparing every data point with the previous points, it can be deduced if the system is going up or down. After several consecutive data points indicating a decreasing altitude, we can be sure we are descending, and the servomotor can be signaled to release the parachute.
If you have any questions, feel free to contact me.