This repository contains code used for flight software for Nakuja Rocket N2. The following description provides a detailed description of program flow, project structure, library dependencies and/or any other necessary documentation needed to run this code successfully.
├── data
│ └── flightdata.txt
├── include
│ ├── checkState.h
│ ├── defs.h
│ ├── functions.h
│ ├── kalmanfilter.h
│ ├── logdata.h
│ ├── readsensors.h
│ └── transmitwifi.h
├── lib
│ └── README
├── LICENSE
├── platformio.ini
├── README.md
├── src
│ └── main.cpp
└── test
└── README
Folder | Description |
---|---|
include | Contains header files |
lib | Project libraries |
src | Contains main.cpp source file run by the flight computer |
test | Contains unit test files |
File | Description |
---|---|
defs.h | Contains constants declaration |
functions.h | Contains general utility functions and prototype function declarations |
logdata.h | code for SD card mounting and logging |
checkState.h | Contains state machine logic |
kalmanfilter.h | Contains kalman filter for accelerometer values |
readsensors.h | Contains code for sensors on board including the MPU,BMP,GPS |
transmitwifi.h | Contains WiFi set-up and MQTT code |
The flight program is structured as a state machine with the following states: adopted from BPS space
State | Description | Waiting for event |
---|---|---|
0 | Pre-Flight Ground | altitude >= 20m AGL |
1 | Powered Flight | acceleration <= 2m/s2 for 0.1s |
2 | Coasting | velocity < 0 to detect apogee |
3 | Apogee | 20m below apogee to deploy parachute |
4 | Chute Descent | altitude <= 20m AGL |
5 | Post-flight Ground | No more events |