Society of Robots
Search and Index Search Here

 Parts List
 Robot Forum
 Member Pages
 Axon MCU
 Robot Books

 How To Build
  A Robot




 Robot Journals
 Robot Theory

    High Altitude Balloon Tutorial
    === Measuring Air Pressure ===


    Introduction to Pressure
    Our atmosphere is an ocean of air.

    Think of air as a pile of loose molecules stacked kilometers high, with only gravity holding it all down. The molecules at the bottom of the stack are being crushed by the weight of the molecules above it, compressing those air molecules together creating what is called 'air pressure'. The molecules at the bottom are more compressed than those at the top. The higher you go, the less air there is weighing everything down, resulting in less pressure air overall.

    By measuring the air pressure, one can determine the altitude of a balloon.

    note: that's a bit of an oversimplification as weather and temperature affect air pressure, too.

    How did I measure air pressure?

    The pressure sensor I used was the BMP085 by Bosch, conveniently sold as the BMP085 Breakout by Sparkfun for $20. It also has a temperature sensor, both of which are pressure/temperature calibrated for higher accuracy. It outputs data by I2C.

    I wired it up to my Axon Mote microcontroller. Although WebbotLib does have BMP085 pressure code, as of this writing WebbotLib doesn't offer the BMP085 code necessary for reading temperature. I recommend you instead using my own pressure_bmp085.h which can be found in my source code. The BMP085 datasheet also has code you can use (if you don't like mine).

    Axon Mote space source code

    You can find further information on temperature measurements at the space balloon temperature measurement tutorial.

    How accurate is a pressure sensor for altitude?
    Pressure sensors have issues with accuracy when measuring altitude. The more obvious is that weather systems change environmental pressure, resulting in an errors of up to ~100 meters or so.

    But what I didn't know before is that these sensors can fail at the extremes, too.

    To determine how accurate the pressure sensor was as an altitude sensor, I plotted the flight pressure data against altitude as determined by GPS. Click to enlarge:

    As you can see in the data, it was relatively accurate until around 40k feet, and then it became significantly inaccurate after 70k feet. The pressure sensor reported a max altitude of 92,168k feet, but GPS reported it at 118,533 feet!

    It was the only pressure sensor we launched so I have no comparison with other sensors. It's possible the conversion equation as provided by the manufacturer is wrong. Or that this specific sensor does not operate very well in very low pressures. The sensor claimed a max altitude pressure of 0.52% of sea level, and that's a reasonable estimate for that altitude. Or perhaps on that particular day, given the weather and temperature, the pressure was much higher than normal at those higher altitudes.

    Another flight would be needed with an additional different pressure sensor to see what's up, pun not intended. If the error is consistent, an additional calibration equation can be applied to compensate for this error. I'll write one before the next flight and update it here then. important My GPS unit didn't work for most of the flight, so I am using Nick's GPS data for this tutorial series. But his data didn't line up with mine as our readings were taken at different intervals. So whenever I report altitude (labeled P-Altitude) in this and later tutorials, I am referencing altitude as determined by the pressure sensor. Refer back to the above chart here to get the actual GPS-determined altitude.

    note: If you have access to a vacuum chamber, test your sensor in it before your flight.

    Although GPS can give you altitude, it's still good to have a pressure sensor as a backup altitude indicator. Not only does it give you interesting weather data, but you can write software to detect when something is amiss if there is a big discrepancy between the two sensor types, or if you don't have a GPS lock for whatever reason.

    It might also help with anti-GPS spoofing, if for some reason you're operating in military conditions . . .

    How does pressure vary with altitude?
    The below chart plots out my measured air pressure wrt the GPS determined altitude. As you can see it's a smooth exponential function flattening out at the end. This plots both the rise and fall trips of the balloon, with both curves perfectly overlapping each other. Pressure was clearly consistent with no detectable sensor hysteresis. Click to enlarge:

    How does pressure change over the course of a flight?
    To answer this, pressure was plotted out with altitude on the Y axis and time on the X axis. As you can see, pressure went as low as a measured 0.52% of sea level (see above on pressure sensor error). Click to enlarge:

    For further reading on pressure sensor applications, see how I measured the pressure drop of Hurricane Sandy in 2012.

Get Your Ad Here

Has this site helped you with your robot? Give us credit - link back, and help others in the forums!
Society of Robots copyright 2005-2014
forum SMF post simple machines