To become a member of Rocketry Division of Students’ Space Association (polish SKA - Studenckie Koło Astronautyczne) I had to develop a "recruitment" project. My task was to design and build data acquisition system to collect data from rocket launcher (atmospheric parameters and launcher position) and send that information wirelessly to control station.
The system is AVR-based (using Arduino modules). Data is sent to the receiver using NRF24L01+ transceivers with amplifiers. System block diagram: Main unit Main unit is mounted on rocket launcher, it's collecting data and sending in to the receiver.
- MPU6050 - rail angle
- HMC5883L - orientation
- BMP180 - pressure and temperature
- Weather station from Sparfun - wind parameters measurement
- U-blox GPS module
The device is powered by 2 Li-Ion 18650 cells and in can run for around 30 hours between recharging. Main circuit is assembled on 50mmx70mm protoboard. Wind speed measurement is based on measuring interval between pulses from the anemometer (switch is closed by a magnet mounted on rotating part of the anemometer). If there's a mechanical switch, there's switch bouncing: Since wind speed is calculated from intervals between anemometer pulses and external interrupt is used to measure that interval, the bouncing had to be eliminated. It was done using 2 NOT gates with Schmitt triggers and RC filter. (red is input, blue is output) There was also a problem with transceiver power. When the packet is being sent, power consumption jumps and if the power circuit is not designed well enough voltage will drop and the transceiver will freeze/fail to send data. Adding 100uF capacitor close to NRF module pins solved the problem. Receiver unit Simple hardware consisting just of Arduino Pro Mini, NRF24L01+ module and 3.3V linear regulator. Connected to PC using Serial-USB adapter.
Embedded Transmitter's unit task is simple: collect data and send it to the receiver. I created a kind of class diagram (it's not exactly UML class diagram, but I think it describes the software side pretty well): I used Arduino 'framework' for both embedded systems (transmitter and receiver). Receiver sends data received from TX to the PC using serial communication. PC PC application general diagram:
Cases and mounts were designed in Autodesk Inventor and then printed on my 3D printer. I tried to make the cases as waterproof as possible. They won't protect the electronics from heavy rain, but they should be enough to keep the electronics alive during foggy weather and drizzle. I especially like the way the receiver looks, it's quite small and compact. It was a little difficult to solder all the components to fit on small protoboard, but the effort was worth it. The receiver will be mounted on 20mm diameter aluminium tube that will be attached to a table or tent's leg. I used butterfly nuts to make the assembly as simple as possible.
- 11.2015 - project started, setting requirements
- 12.2015 - parts selection, initial sensors testing (mag, acc), communication, PC app development
- 01.2016 - parts received
- 02-04.2016 - printing, assembling, soldering, coding
- 04.2016 - field test during CanSat competition
- 05-06.2016 - finishing modifications (moving compass to weather station's arm, building final version of receiver)