Difference between revisions of "Flight Computer"

From Makers Local 256
Jump to: navigation, search
m (Current Status: formatting)
m (Spiral Details: updated status)
Line 55: Line 55:
  
 
==Spiral Details==
 
==Spiral Details==
* Spiral 1 (DONE):
+
* Spiral 1 '''(DONE)''':
 
** Make atmospheric measurements by recording the [http://en.wikipedia.org/wiki/Static_pressure static pressure] and converting it to an associated altitude measurement
 
** Make atmospheric measurements by recording the [http://en.wikipedia.org/wiki/Static_pressure static pressure] and converting it to an associated altitude measurement
 
** The SCP1000 Pressure sensor also measures temperature so this improves the accuracy of the measurement
 
** The SCP1000 Pressure sensor also measures temperature so this improves the accuracy of the measurement
Line 68: Line 68:
 
* Spiral 3:
 
* Spiral 3:
 
** Add GPS measurements into the mix.   
 
** Add GPS measurements into the mix.   
* Spiral 4:
+
* Spiral 4 '''(DONE)''':
 
** [http://en.wikipedia.org/wiki/Telemetry Telemetry].  This will be the hardest step as I know the least about RF.
 
** [http://en.wikipedia.org/wiki/Telemetry Telemetry].  This will be the hardest step as I know the least about RF.
 
* Spiral 5:
 
* Spiral 5:

Revision as of 20:35, 26 June 2013

Creator:
Gtpyro
Status:
Research
Born On:
22:03, 18 November 2010 (CST)
Last Updated:
20:35, 26 June 2013 (CDT)

Overview

This is a flight computer meant to go into a rocket. It is based on an Arduino micro-controller and will eventually be quite fancy.

Current Status

Spiral 1 - DONE

Spiral 6 - Design/Implementation

I have acquired an Arduino Uno board and just ordered two pressure sensors (so I can break one by accident later). The idea is to use a spiral development model to incrementally increase the features and capabilities of this flight computer.

See the Future Design Section below for the breakdown of the spirals.

Current Design

Hardware

Software

I finally found a sample code that does not give me garbage results. The pressure seems to be fairly realistic, although a bit on the low side. Right now I'm getting a pressure reading of 99kPa which is a little low. However my temperature is reading 40C at room temperature. Putting the sensor and Arduino into a freezer I saw the temperature drop by approximately 40C, as expected, so this might just be an offset issue. More testing is necessary to figure out the issue.

Update 1: After long hours/days/months and lots of pain, I found several problems. First, the SPI pins on the Arduino operate at 5V and the SCP1000 requires 3.3V (per its spec). Oops. Second, this sensor conflicts with other SPI devices (including the SD card on the wireless shield). I'll eventually post the schematic, but what I had to do was use a combination of transistors, resistors and inverters to pull the SPI voltage down to 3.3V.

The code was also modified to use a different set of pins. Essentially it takes temperature and pressure data from the sensor and writes them to a text file (along with a time stamp) to the SD card.

A copy of the working code can be found here.

The original inspiration/tutorial is located here and the basis for this code is here.

Future Design

Components/Features

  • Atmospheric Modeling
  • Inertial Measurements
    • Accelerometer
    • Roll Measurements
  • GPS
  • Parachute deployment
  • Telemetry
  • Control via Bluetooth/Wifi

Knowledge Points

  • Data Logging - DONE
  • Communication with a ground station (telemetry)
  • Communication with a cell phone controller
  • GPS
  • Flight state sensing
  • Control Algorithms
  • Simulation Platform

Spiral Details

  • Spiral 1 (DONE):
    • Make atmospheric measurements by recording the static pressure and converting it to an associated altitude measurement
    • The SCP1000 Pressure sensor also measures temperature so this improves the accuracy of the measurement
  • Spiral 2:
    • Spirals 2a and 2b can be done concurrently and I have not prioritised these
    • Spiral 2a:
    • Spiral 2b:
      • Use the altitude measurement (and the IMU measurement) to trigger other events based on the different stages of flight
      • This includes deploying the drogue parachute at apogee and the main parachute at some present height above ground (typically 500 ft to 700 ft)
  • Spiral 3:
    • Add GPS measurements into the mix.
  • Spiral 4 (DONE):
    • Telemetry. This will be the hardest step as I know the least about RF.
  • Spiral 5:
    • Remote status, arming, etc.
    • I want to implement this in Android such that the remote for this functionality is a cell-phone but the general idea is to make is as easy and portable as possible so several different platforms will be looked at (Blackberry, iOS, Palm). (Reminder to self: this is a good place to learn C++ and Android programming)
  • Spiral 6:
    • Multi-stage/Multi-controller operation (see this link for RF communication between Arduinos)
    • Things I haven't thought of yet.