Last weekend, I decided to build a simple proof of concept that:
- Measured the altitude of a rocket at launch
- Send the peak altitude to a iOS device via Bluetooth
- Recorde altitude versus time (for later use in calculating velocity and acceleration)
The Build
Altitude Monitor
I decided to use an Adafruit nRF52 Bluefruit LE Feather as the BLE and MCU for the PoC. My rationale was that it expect to use a similar System on Chip device for the final product.
All of the components used for the PoC test are Adafruit products (wishlist here->http://www.adafruit.com/wishlists/486595).
- Adafruit nRF52 Bluefruit LE Feather (will use this same SoC for the final product)
- FeatherWing proto
- BMP280 Altitude Sensor
- MicroSD card breakout
- Battery and Stacking Headers
Rocket
I used a 3D printed nose code and wings from the US Water Rockets website. I used a 73 mm diameter 1 liter bottle for the body of my rocket.
Launcher
Finally, I built a makeshift launcher using:
- Scrap wood
- three 3D printed rocket stabilizers
- Cork
- Bicycle pump and needle
Instructions to assemble the cork, needle, and pump can be found here: https://www.instructables.com/lesson/Pump-Rocket/
Note: This is not an optimal launching solution, as the rocket will launch before adequate pressure is built. For this flight, I was only testing recording altitude, so I didn't care about getting a lot of "air"
The Flights
Going in, I knew there were going to be a few problems:
- My rocket launcher was not optimized for pressure build-up, so I wasn't going to get a lot of altitude
- I chose not to build a parachute deployment mechanism for this PoC, so my rocket 3D printed parts wouldn't last long
- My SD card might eject on landing
Given all that, I was able to get 5 test runs in before I destroyed all my nose cones. This was enough to validate the proof of concept. Each flight was about 2 seconds, and I was able to record altitude every 300 ms. In addition, I was able to send the peak altitude to by phone via BLE.
Time (ms) | Altitude (m) |
---|---|
0 | 0 |
<300 | 1.99 |
600 | 8.33 |
900 | 10.91 |
1200 | 10.54 |
1500 | 7.56 |
1800 | 1.6 |
Results/Concerns
The current PoC can accurately indicate top altitude, but the data increments (300 ms) is wider that I would like.
The SD card did eject on landing, so either we have to make the landing more stable or move to SPI flash (and sync data via BLE).
I also have a problem in that I am not able to start the test at launch (primarily because I start recording data, then I start pumping, and the rocket launches whenever the pressure imbalance forces the cork out). To fix this, I need to hold the rocket in place, achieve the designated pressure, then start the measurements at the same time of the launch, with smaller data increments.
Next Steps
- Plot data into online graphics tools to determine acceleration and velocity
- Ideate on the correct location for the altitude sensor for the final product.
- Work on parachute deployment
- Determine if we should stay with SD card or move to SPI Flash
- Determine best way to synch launch with data capture
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.