Порівняння барометрів BMP085, BMP180 та MS5611, Клас робототехніки

У аматорських безпілотниках для орієнтації у просторі використовують відразу кілька датчиків: акселерометр, гіротахометр, магнітометр та барометр. Така збірка розміщується на універсальних польотних контролерах типу Ardupilot або MultiWii. Поширені й збирання на окремій платі, які ще називають – IMU із зазначенням ступенів волі. Наприклад, IMU 6DOF означає, що у пристрої є два триосьові датчики. На малюнку зображено типове 10DOF складання.

У моєму квадрокоптері, який базується в нашому хакспейсі і періодично зазнає модифікацій, теж є IMU з барометром. У другій модифікації квадрокоптера було встановлено модуль із наступним набором датчиків:
- гіротахометр L3G4200D;
- акселерометр ADXL345;
- магнітометр HMC5883L;
- барометр BMP085.
У принципі такого набору цілком достатньо для впевненого польоту в ручному режимі. Однак цей безпілотник був створений не для керування з пульта, а насамперед для автоматичного польоту. Включаючи автоматичний зліт та посадку на базову станцію. І як показала практика, саме для автоматичних маневрів висотою барометр BMP085 зовсім не годиться. Його точність за паспортом – 0.5 метра.
У цій статті ми розглянемо три популярні МЕМС барометри: BMP085, BMP180 і MS5611. Порівняємо їх точність у різних умовах.
Барометр BMP085
намомент коли я збирав першу версію квадрокоптера, був поширений саме цей датчик фірми Bosch. Його характеристики:
- тиск, що вимірюється: від 300гПа до 1100 гПа (від 9000 до -500 метрів над рівнем моря);
- напруга живлення: від 1,8 до 3,6 В;
- робочий струм: 5мкА при 1 опитуванні на секунду;
- точність: 0.5м у найшвидшому режимі та 0.25м у найточнішому;
- час виміру: до 3мс;
- вбудований термометр;
- інтерфейс i2c.
Барометр BMP180
Барометр BMP180 є покращеною версією BMP085. Його часто використовують у сучасних польотних контролерах. Основні характеристики цього датчика збігаються з BMP085, крім підвищеної точності — до 0.17м.
Барометр MS5611
Найпростіший барометр, який не дуже поширений через свою ціну. Розробником датчика є компанія Meas Switzerland. Характеристики:
- тиск, що вимірюється: від 10гПа до 1200 гПа;
- напруга живлення: від 1.8 до 3.6В;
- робочий струм: 1мкА при 1 опитуванні на секунду;
- точність: до 0.1м у найточнішому режимі;
- час виміру: до 1мс;
- вбудований термометр;
- інтерфейс i2c.
Як бачимо, заявлена точність становить аж 10см, і це дуже здорово. Час виміру 1мс у найшвидшому режимі, і всього 9мс у найточнішому. Ще й діапазон вимірюваного тиску більший, ніж у BMP180 - можна літати в стратосферу 🙂
Вимірювальний стенд
Arduino Mega 256 має цілих 4 апаратних UART інтерфейси. До них підключено два Arduino Uno. Кожен із контролерів з'єднаний зі своїм барометром по шині i2c. Для тривалого збору додатково встановлено модуль картки SD, який чіпляється до шини SPI.

Взаємодія всіх контролеріввлаштовано досить легко. Arduino Mega виступає у ролі майстра, відправляючи в задані проміжки часу сигнал всім іншим про початок збору даних. Потім вимірює тиск сам і чекає на відповідь від підлеглих.
Отримані показання барометрів виводяться через послідовний порт на екран ПК, або зберігаються на SD-карту.
Результати
Я провів кілька тестів, найхарактерніших для польоту квадрокоптера, а також тривалий тест на 1 добу. Вимірювання проводилися у приміщенні нашого хакспейсу.
Тест №1: час вимірів - 1м, період опитування - 100мс, мінімальна точність

Видно, що BMP085 шумить найсильніше, а MS5611 показує дивну поведінку. Але треба зауважити, що в найшвидшому режимі час опитування MS5611 займає всього 1мс, а той час як решті потрібно 3мс.
Також слід зазначити, що графіки сильно зрушені за абсолютними значеннями. Причиною цього може бути неправильна температурна корекція датчика, але для нас це не має особливої ролі.
Тест №2: час вимірів - 1м, період опитування - 100мс, максимальна точність

А ось на максимальній точності MS5611 розкриває всі свої переваги. Видно, що точність BMP180 трохи вища, ніж у BMP085. А MS5611 значно перевершує обидва датчики від BOSCH.
Тест №3: час вимірів - 15м, період опитування - 1с, максимальна точність

На графіку можна спостерігати невеликі флуктуації тиску протягом 15 хвилин. Різниця тиску часом становила 30-33 Па, що відповідає приблизно 2.5 метрів висоти (1 метр = 12 Па).
Тест №4: час вимірів - 45с, період опитування - 100мс, максимальна точність

Під час цього тесту вимірювальний стенд опускався звисоти столу - 81см на підлогу. Ця зміна чітко виражена у середині графіка, у період із 16 до 25 секунди. Знову, датчика MS5611 показує найточніший результат - 10 Па, а це і є ті самі 80см.
Тест №5: час вимірів - 22год, період опитування - 1м, максимальна точність

Висновок
Для нової версії квадрокоптера я встановив нову 10DOF збірку з MS5611. Це найкращий із доступних за ціною датчиків. Точність 10см дозволить мені нарешті доробити процедуру автоматичного зльоту.