MEMS (microelectromechanical systems) barometers in amateur products are most often used in meteorological stations, or to determine the altitude of the UAV and Copter. Even a simple BMP 085 is enough for a weather station, but to control the flight of a quadrocopter requires the highest possible accuracy and BMP 085 alone is not enough.
A variety of sensors are used in UAV control systems: an accelerometer, a gyroscope, a compass, and a barometer. They have board flight controllers.
Also assembled with these sensors without a controller, the so-called IMU-sensors. They differ in the number of degrees of freedom. So, IMU 10DOF means that the sensor has 10 degrees of freedom (DOF –Degrees Of Freedom).
The photo below shows a typical 10DOF IMU sensor:
Such an assembly is enough to control almost any drone manually. However, for flights in automatic mode, it is not quite suitable, since the barometer BMP 085 has a low accuracy of measuring the height - only 50 cm.
So, let's compare the characteristics of the BMP 085, BMP 180 and MS5611 barometers.
A few years ago, these Bosometers developed barometers.
They have the following characteristics:
- Measurement of pressure in the range from 300 hPa to 1100 hPa (equivalent to a height of from -0.5 to 9 kilometers);
- Operating voltage: 1.8-3.6 volts;
- Current consumption: 5 μA at a sampling frequency of 1 Hz;
- Accuracy of height measurement: from 0.5 to 0.25 meters.
- Measurement speed: 3 to 17 milliseconds.
The BMP180 continues the Bosch barometer range, which began with the BMP085.
Its main characteristics remained unchanged, the exception is accuracy - now it is 0.17 meters.
MS5611 is more advanced, but not very popular due to the relatively high cost.
- Pressure measurement in the range from 10 hPa to 1200 hPa;
- Operating voltage: 1.8-3.6 volts;
- Current consumption: 1 μA at a sampling frequency of 1 Hz;
- Height measurement accuracy: up to 10 cm;
- Measurement speed: from 1 to 9 milliseconds.
As you can see, its accuracy is already 10 centimeters! Also, the pressure range is wider than that of both BMPs. Measurement time and current consumption less.
In all of these sensors, there is a thermometer. The communication interface in all three is I2C.
We now turn directly to the comparison of sensors in practice.
For proper testing, measurements must be synchronized. Although all barometers have an I2C interface, and it is addressable and supports many devices on one bus, they cannot be connected to one microcontroller, because the address of all barometers is the same - 0x77. This problem is solved with the help of three time-synchronized microcontrollers.
The Arduino Mega2560 has 4 hardware serial ports. Two Arduino UNO boards are connected to them. Each of the three I2C microcontrollers has its barometer connected.
For long-term data collection, a MicroSD is connected to the Arduino Mega via an SPI interface.
Microcontrollers are synchronized very simply. Mega acts as a lead, UNO - slave. Mega sends a signal to collect data and takes readings from its sensor itself and then waits for a response from both UNO.
Sensor readings are sent via a COM port to a computer or recorded on a memory card.
The following libraries were used: Arduino-MS5611 and SFE_BMP180.
The library for BMP180 works with BMP085.
Several simple tests were conducted under conditions simulating sensor operation in a quadcopter control system and a large test of 22 hours duration. Testing was conducted indoors. The pressure was measured in pascals. Everywhere except the first test, the maximum accuracy is chosen.
Test number 1. Duration - 1 minute, polling period - 100 milliseconds.
The graph shows that the readings of BMP085 are not weak, and the MS5611 shows some strange readings. But at the same time, it takes only 1 ms to measure the MS5611, and other sensors spend three times as much time on it.
You can see that the absolute pressure values for each sensor are very different from the others. Most likely, barometers are incorrectly calibrated by temperature.
Test number 2. All the same, only the maximum accuracy is chosen.
Now MS5611 is rapidly surpassing competitors. You may also notice that BMP180 is slightly more accurate than BMP085.
Test number 3. Duration - 15 minutes, polling period - 1 second.
The difference in pressure reached 30-33 Pascals, which is equivalent to about 250 cm in height (100 cm is approximately equal to 12 Pascal).
Test number 4. Duration - 45 seconds, polling period - 100 milliseconds.
The stand was lowered from a height of 81 cm. This can be seen in the middle of the chart. MS5611 best of all proved to be, showing a change in pressure of 10 Pa, which corresponds exactly to the same 80 cm.
Test number 5: Duration - 22 hours, the survey period - 1 minute.
But the results of the longest test. The graph shows the change in pressure in 22 hours. Measurements were taken from about 6 pm. The pressure became higher until the morning, and after it began to fall, not falling to the values of the previous day.
The best choice for a drone because of its accuracy would be the barometer MS5611. In addition, it is superior counterparts in measurement speed and power consumption.
At the same time, for a simple meteorological station, the accuracy of any of the BMP180 and BMP085 sensors will suffice, especially since their price is more attractive.