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)
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
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.
Finally, I built a makeshift launcher using:
- Scrap wood
- three 3D printed rocket stabilizers
- 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"
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)|
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.
- 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