The project involves developing a low-cost, open-source, multi-purpose flight computer designed specifically for model rockets. This platform will be capable of logging flight data, including acceleration and rotation, performing basic atmospheric measurements, and providing a foundation for implementing an active stability system.
- Arduino NANO - This is the microcontroller which is used for interfacing the sensors, receiving data and perform calculations for the stability of the system.
- BMP180 - It is a Sensor which is used to sense Temperature and Pressure.
- MPU6050 - It is a Sensor used to sense the acceleration and orientation of the rocket.
- µSD Card Reader - Used to store the data in the form of a .csv file.
- µSD Card with SD Adapter
- 3 x 5mm LEDs - Used
- 2 x 220Ω Resistor
- Normally Open Tactile Switch
- Piezo Buzzer
- 22 AWG Wires
- 9V Battery
- BMP180
| BMP180 Pin | Arduino Pin | Description |
|---|---|---|
| VCC | 3.3V | Power supply pin for the BMP180 sensor. |
| GND | GND | Ground connection. |
| SCL | A4 | Serial clock line for I2C communication. |
| SDA | A5 | Serial data line for I2C communication. |
- MPU6050
| MPU6050 Pin | Arduino Pin | Description |
|---|---|---|
| VCC | 3.3V | Power supply pin for the MPU6050 sensor. |
| GND | GND | Ground connection. |
| SCL | A4 | Serial clock line for I2C communication. |
| SDA | A5 | Serial data line for I2C communication. |
| INT | D2 | Interrupt pin for handling events from MPU6050. |
- µSD Card Module
| µSD Card Module Pin | Arduino Pin | Description |
|---|---|---|
| GND | GND | Ground connection. |
| VCC | 5V | Power supply pin for the µSD Card Module. |
| MISO | D12 | Master-In-Slave-Out pin for SPI communication. |
| MOSI | D11 | Master-Out-Slave-In pin for SPI communication. |
| SCK | D13 | Serial Clock pin for SPI communication. |
| CS | D4 | Chip Select pin for SPI communication. |
Following steps explain the working clearly:
- Step 1: MODE 1 (Initialization)
- Red LED lights up, indicating Mode 1.
- The system initializes sensors (BMP180, MPU6050).
- It attempts to connect to the microSD card and opens the data file.
- If the connection or file open fails, it stays in Mode 1.
- If successful, it transitions to Mode 2.
- Step 2: MODE 2 (Data Logging)
- LED: Yellow LED lights up, indicating Mode 2.
- Sensors collect and log data to the microSD card at the set dataRate.
- Data is saved in a file on the microSD card, each line includes timestamp and readings.
- Step 3: Saving Data
- Data is saved in a file named "FILE" on the microSD card.
- Data lines have values separated by commas.
- Step 4: Mode 3 (File Closure)
- LED: Blue LED lights up, indicating Mode 3.
- Pressing the button on D7 transitions to Mode 3.
- The program ensures data is safely saved to the microSD card.
- The file is closed, and it’s safe to remove the microSD card.
- Step 5: Data File Handling
- Remove the microSD card from the Arduino.
- Insert the microSD card into a computer.
- Open the file in a text editor and save it as .csv for analysis.
Due to absence of an actual rocket to test our module, we decided to test the module inside an elevator and go from ground floor to the top floor. This acts as a flight for our testing. However this is not the best way and testing under the velocity at which the rocket would move would be much more efficient. Now once the flight has been done inside the elevator we need to analyze the readings. Follow these steps for analysis of data:
- Safely remove the microSD card from the flight module and insert it into the laptop to access the raw data.
- Open the saved .csv file in Excel and verify the columns for Time Stamp, Temperature, Pressure, etc.
- Convert the raw acceleration data into g-force by dividing the raw sensor values by 16384. Multiply by 9.81 to convert g-force into m/s².
- This data can be used to plot insightful graphs.
- Find absolute height using the formula:
h = {1 - e^[P/(m-P0)]} / b- P is the pressure (in Pa)
- P0 = 101325 Pa (standard pressure at sea level)
- b = 2.2557 × 10^(−5)
- m = 5.25588
- The height can be helpful in mission objectives such as deciding the time to open a parachute or analysis of flight performance.
Further, a PCB was designed for this circuitry. The microcontroller was changed to a Raspberry Pico and an Digi XBee 3.0 (2.4GHz) antenna interfacing was added in order to increase the range.
.
│ LICENSE # Contains the licensing information for the project
│ README.md # General information about the project
│
├───hardware
│ ├───datasheets # Folder containing datasheets for various components
│ │
│ └───pcb-gerber-files # Gerber files used for PCB manufacturing
│
├───lib # Directory containing library files used in projects
│ BMP180_Breakout_Arduino_Library-master.zip # SparkFun's BMP 180 library
│ I2Cdev.zip # Library provides support for I2C communication
│ MPU6050.zip # MPU6050 Sensor Library
│
└───src
flight-computer.ino # Main Arduino sketch for the science task implementation