liz wrote:It's actually pretty accurate in terms of barometric sensing; we did a lot of testing by embedding one in a foam football and dropping it off the roof of Pi Towers (seriously). I believe Marc has the resulting graphs somewhere!
The problem with barometric sensing is that you either need to know pressure at mean sea level (MSL) to use your barometer to give you altitude or you need to know altitude to be able to read your local pressure (from the sensor) and calculate pressure at MSL. You can't get both unknown values for MSL and altitude simultaneously from a local pressure reading.
Code: Select all
#!/usr/bin/python
import math
import sys
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-a', '--altitude')
parser.add_argument('-p', '--pressure')
parser.add_argument('-m', '--msl')
args = parser.parse_args()
if args.altitude is None:
args.altitude = 112.2 # Value from my GPS for my house
if args.pressure is None:
print "Pressure value required"
sys.exit(40)
if args.msl is None:
args.msl = 1013.25
args.pressure = float(args.pressure)
args.altitude = float(args.altitude)
args.msl = float(args.msl)
print "Alt:", args.altitude, "Pressure:", args.pressure, "MSL:", args.msl
print "Sealevel:",args.pressure/pow(1-(args.altitude/44330.0),5.255)
print "Alt:",(44330.0*(1-pow(args.pressure/args.msl,1/5.255)))
So with a local pressure reading of 999.91 hPa
If I use a local pressure reading and my altitude I can get MSL
pi@pi:~/bmp180$ ./msl_pressure.py -p 999.91 -a 112.2
Alt: 112.2 Pressure: 999.91 MSL: 1013.25
Sealevel: 1013.315221
Alt: 111.658393423
pi@pi:~/bmp180$
If I use local pressure and an MSL reading I can get my altitude
pi@pi:~/bmp180$ ./msl_pressure.py -p 999.91 -m 1013.315
Alt: 112.2 Pressure: 999.91 MSL: 1013.315
Sealevel: 1013.315221
Alt: 112.198164853
pi@pi:~/bmp180$
Your local airport is good for getting close enough MSL values
For example right now London Heathrow (LHR/EGLL) gives me 29.91 inches Hg (1013.0 hPa)
Barometrics isn't good for weapons ranging you really need a GPS (to get an initial fix) and a gyro to maintain it during flight.