Variometer
From Openmoko
m (→Hardware) |
|||
(3 intermediate revisions by 3 users not shown) | |||
Line 3: | Line 3: | ||
===Variometer=== | ===Variometer=== | ||
− | The variometer signal is simply the derivative of the barometer signal. It gives a much more accurate vertical speed signal than is possible with GPS.This kind of measurement is used by the | + | The variometer signal is simply the derivative of the barometer signal. It gives a much more accurate vertical speed signal than is possible with GPS.This kind of measurement is used by the free flying community (hanggliding, paragliding, ballooning). A device that allows teams of pilots to share position and speed (with accurate vertical speed) data would be lots of fun. |
[http://en.wikipedia.org/wiki/Variometer Variometer Reference] | [http://en.wikipedia.org/wiki/Variometer Variometer Reference] | ||
Line 78: | Line 78: | ||
====Server Based Services==== | ====Server Based Services==== | ||
Auto discovery service | Auto discovery service | ||
− | *Pilots with | + | *Pilots with Openmoko based variometers can choose to publish their status on a central service. |
*Based on location - the system will notify pilots of the presence of others that can participate in group flying. | *Based on location - the system will notify pilots of the presence of others that can participate in group flying. | ||
+ | |||
+ | |||
+ | ====Freerunner==== | ||
+ | Maybe it is possible to do that on the Freerunner ? | ||
+ | |||
+ | Connection : | ||
+ | |||
+ | *SPI or I2C (or through the debug board connector ?) | ||
+ | *HID device (ex: Oak USB Sensor Atmospheric Pressure [toradex.ch]) | ||
+ | |||
+ | The page [[I2C_Pressure_Sensor]] describes how to add a pressure sensor connected to the I2C bus. |
Latest revision as of 21:10, 30 September 2009
Wishes warning! This article or section documents one or more OpenMoko Wish List items, the features described here may or may not be implemented in the future. |
Contents |
[edit] Variometer
The variometer signal is simply the derivative of the barometer signal. It gives a much more accurate vertical speed signal than is possible with GPS.This kind of measurement is used by the free flying community (hanggliding, paragliding, ballooning). A device that allows teams of pilots to share position and speed (with accurate vertical speed) data would be lots of fun. Variometer Reference
[edit] Hardware
It could be best to filter and differentiate the analog pressure signal and then digitize. Another possibility is to differentiate the height in software. A robust solution is to compute a linear regression of a sliding window of height samples. The height samples can be computed using integer arithmetic by a pressure->altitude lookup table followed by interpolation. Maybe it's even possible to add detail based on the accelerometers.
References to applicable transducers:
- Freescale MPX4100 (was Motorola) - needs 5V power supply, 11 x 11 x 6 mm
- Intersema MS5540B Altimeter/Barometer Module, 2.2 - 3.6V, 3-wire serial interface, 6.2 x 6.4 mm
- Bosch SMD500 digital pressure sensor: altimeter and barometer, 2.2 - 3.6V, I2C interface, 5 x 5 x 1.5 mm, included temperature sensor
- VTI SCP1000 pressure sensor,2.4 - 3.3V, I2C or SPI interface, 6.1 mm dia x 1.7mm, included temperature sensor
[edit] Hardware solution
[edit] Signal Conditioning
The absolute pressure signal needs to be:
- Differentiated
- Filtered
- Operational amplifiers in the following configuration:
See the signal conditioning example in this Application Note
It might be best to use a single chip solution if we can find the right fit e.g.: Max1464
The software solution can simply be done in the variometer application with some very simple math.
[edit] A/D
We would need two A/D channels:
- Absolute Pressure - 12 bit minimum (assuming a operating range of 0 - 12000 meter 12 bits would give resolution of 2.9304 m)
- Differential Pressure - 10 bit minimum (assuming a range of +-20m/s 10 bits would give a resolution of 0.0391 m/s)
Extending 8 bit sampling to a usable range for pressure sensing
[edit] Driver Code
The driver code samples the input channels and converts the input values from pressure to altitude:
The relationship between static pressure and pressure altitude is defined in terms of the properties of the International Standard Atmosphere. Up to 36,090 ft this can be expressed as:
<math> z =\left (1-\left(\frac{P_{ind}}{101.325}\right)^{0.190263} \right ) \times \frac{87.828}{0.00198122} </math>
Where:
- z = pressure altitude (meter)
- <math>P_{ind}</math> = static pressure (kPa)
These values are provided to listeners in multiple applications. The sample rate should be application adjustable to conserve power.
[edit] Application code
Applications can use the altitude data or combine the data with GPS and accelerometer data. Commonly Kalman filter/observer techniques are used to combine data from multiple sensor types into a robust(with respect to sensor noise), high accuracy estimate of position and speed in 3 axis.
References:
- The Kalman Filter: Navigation's Integration Workhorse
- Kalman Filter Portal from the University of North Carolina at Chapel Hill
- Kalman Filter article on Wikipedia
[edit] Variometer Code
Combine measurements as described above. Apply knowledge about the aircraft dynamics to increase accuracy:
- Total Energy compensation
- Relative Netto Compensation - use accelerometer data to sense when glider is turning in a thermal
User Interface
- Display speed data in ergonomic manner.
- Display speed for pilots in group.
- Visual and audible guidance to pilot with best climb rate (given reasonable proximity)
- Possible integration with mapping application
[edit] Server Based Services
Auto discovery service
- Pilots with Openmoko based variometers can choose to publish their status on a central service.
- Based on location - the system will notify pilots of the presence of others that can participate in group flying.
[edit] Freerunner
Maybe it is possible to do that on the Freerunner ?
Connection :
- SPI or I2C (or through the debug board connector ?)
- HID device (ex: Oak USB Sensor Atmospheric Pressure [toradex.ch])
The page I2C_Pressure_Sensor describes how to add a pressure sensor connected to the I2C bus.