Перейти к содержимому
0.0/3 rating (0 votes)

Барометр в Betaflight.

Барометр в Betaflight.

Барометры измеряют атмосферное давление для определения высоты. Они обладают высокой чувствительностью, реагируют на дыхание, и очень чувствительны к температуре. Как правило, они оснащены точными датчиками температуры для компенсационных расчетов.

Betaflight использует данные барометра для определения высоты аппарата относительно точки взлета и помощи в контроле высоты при функции GPS Rescue.

В большинстве случаев Betaflight должен автоматически обнаруживать барометр.

Барометры гораздо полезнее для измерения относительных изменений высоты, чем для измерения абсолютной высоты. Современные чипы барометров, такие как Infineon DPS368, могут обнаруживать очень малые изменения высоты (менее 10 см) с хорошим подавлением шума и обновлять значения с частотой 40 Герц.

Чип DPS310 значительно лучше старого BMP280, а DPS368 еще лучше. Клоны как DPS310, так и BMP280 широко распространены; они менее надежны или имеют худшую температурную компенсацию по сравнению с оригиналами.

Betaflight обнуляет данные барометра сразу после включения питания, поэтому показания высоты барометра становятся относительными к точке включения. При взведении двигателей (арме) значение нуля может быть скорректировано повторно.

Барометры, подверженные воздействию турбулентного воздуха (например, потоку от пропеллеров), будут выдавать очень зашумленные значения высоты. Обычная рекомендация — накрывать барометр мягкой пеной для уменьшения этой проблемы.

При активации двигателей и нахождении коптера на земле положительное давление между пропеллерами и землей может интерпретироваться барометром как отрицательная высота. Это разрешается при взлете.

Примечание

Не наносите защитное покрытие (conformal coating) на чипы барометров! Это может закрыть порт, через который они измеряют давление воздуха, вызывая неверные показания высоты, которые сильно дрейфуют при изменении температуры.

Подтверждение корректной работы барометра

  1. Сначала убедитесь, что барометр включен на странице Конфигурации (Configuration) в Конфигураторе (Configurator).
  2. Значок барометра вверху должен загореться. Это означает, что прошивка включает поддержку барометра и был включен подходящий драйвер.
  3. Большинство барометров включаются от USB, но некоторым требуется питание от литий-полимерного аккумулятора; если значок не загорается, снимите пропеллеры и проверьте, что происходит при подключении аккумулятора к разъему LiPo.
  4. Если значок барометра горит, перейдите на вкладку Датчики (Sensors) и выберите Барометр / Высота (Barometer) вверху. Вы должны увидеть показания высоты с барометра. Поднятие коптера или полетного контроллера примерно на 1 метр вверх и вниз должно показывать соответствующее изменение показаний высоты примерно на 1 метр. Наличие некоторого шума и задержки — это нормально.

Расширенная проверка

Режим отладки Baro возвращает:

DebugДанные
0 Состояние (во время инициализации)
1 Давление в гектопаскалях (hPa), абсолютное
2 Температура, сообщаемая барометром, градусы Цельсия × 100
3 Оценка высоты только по барометру, в сантиметрах

Эти значения можно записывать в лог или отображать на графиках во вкладке Датчики (Sensors) Конфигуратора. Проверьте точность показаний температуры: значение 2145 означает 21.45 градусов Цельсия. Если оно сильно неверно, чип, вероятно, является клоном DPS310, и его температурная компенсация может быть плохой.

Барометр против GPS для оценки высоты

И барометр, и GPS-модуль сообщают данные о высоте.

Барометры реагируют быстрее, чем GPS-модули, но могут быть более зашумленными. С другой стороны, если у GPS нет хорошего индикатора hDOP (горизонтальное размытие точности), оценка высоты по GPS может меняться на несколько метров в течение полета. Современные чипы барометров, например, DPS368, как правило, быстрее и точнее большинства GPS-модулей.

Метод DEFAULT для altitude_source "смешивает" оба источника вместе или, если доступен только один источник, использует то, что есть. Пользователь может принудительно выбрать BARO_ONLY или GPS_ONLY. Это позволяет решить, какой источник обеспечивает лучший контроль высоты при функции GPS Rescue.

Совет

Если инициировать GPS Rescue с высотой возврата, скажем, 10 метров над ровным полем, и наблюдать возвратный полет в прямой видимости (Line of Sight), стабильность контроля высоты и плавность снижения легко оценить визуально. Протестируйте с BARO_ONLY и GPS_ONLY. Если оба работают нормально по отдельности, протестируйте метод DEFAULT. Обычно DEFAULT дает наилучший результат.

Когда altitude_source = DEFAULT, пользователь может регулировать относительное влияние барометра и GPS на итоговое значение высоты.

Когда доступен GPS-модуль, Betaflight получает значение hDOP (горизонтальное размытие точности) от GPS. Оно оценивает точность оценки высоты по GPS. Мы используем hDOP для назначения внутреннего значения gpsTrust. Значение по умолчанию — 0.3, что означает: если барометр доступен, GPS учитывается только на 30% в показании высоты. Однако, когда значение hDOP указывает на точные GPS-показания, значение gpsTrust может достигать максимума 0.9.

Настройка altitude_prefer_baro в интерфейсе командной строки дополнительно изменяет значение gpsTrust, когда есть большая разница между двумя показаниями. При altitude_prefer_baro = 100 (по умолчанию) доверие к GPS не затрагивается, если разница между датчиками меньше 1 метра, уменьшается вдвое, если разница составляет 2 метра, и снижается до 1/5 от обычного, когда разница равна 5 метрам. При значении 50 нужна разница в 4 метра, чтобы доверие к GPS уменьшилось вдвое. При значении 0 оценка доверия к GPS не зависит от разницы показаний.

Следовательно, если доступны и GPS, и барометр, и altitude_source установлен в DEFAULT, относительный баланс между барометром и GPS зависит от:

  • Оценки точности измерения высоты по hDOP GPS
  • Величины разницы между показаниями
  • Пользовательской настройки altitude_prefer_baro

Когда altitude_prefer_baro установлен на значение по умолчанию 100, показания барометра будут преобладать, если только погрешность не мала, а hDOP GPS не указывает на его точность. При более низких значениях altitude_prefer_baro относительное влияние GPS будет больше.

В общем, если у вас хороший барометр, особенно оригинальный Infineon DPS310 или DPS368 (и, вероятно, BMP280), вам следует принять значение по умолчанию altitude_prefer_baro = 100 и использовать метод смешивания DEFAULT.

Совет

Используйте отладку Altitude для детальной оценки показаний GPS и барометра:

DebugДанные
0 Значение gpsTrust
1 baroAltitude, сантиметры
2 gpsAltitude, сантиметры (сброшенная при взведении)
3 Вариометр (Vario)

Поддержка барометра в прошивке

В Betaflight 4.5 и выше конфигурационный файл платы автоматически включает базовый код BARO и драйверы для тех чипов барометров, которые производитель использует на данной плате, тип интерфейса, используемые пины и так далее.

Вот почему в большинстве случаев барометр должен работать "из коробки".

Если в конфигурационном файле платы нет поддержки барометра, и вы хотите подключить внешний барометр, в Betaflight 4.5 необходимо вручную включить код BARO и необходимую поддержку драйверов в сборку вашей прошивки.

Это достигается (например, для барометра DPS310) путем ввода BARO_BARO_DPS310 в раздел Custom Defines вкладки Firmware Flasher Конфигуратора. Слово BARO включает базовый код барометра, а текст BARO_DPS310 включает код драйвера DPS310. Для BMP280 строка будет BARO_BARO_BMP280.

В версиях 4.4 и ранее весь код барометра и все драйверы включались во все сборки прошивки.

Подключение барометра к шине

Барометры почти всегда подключаются через интерфейс I²C, хотя некоторые используют SPI. Конфигурационный файл платы должен определять детали интерфейса/шины для барометра и используемые пины.

Полетный контроллер может иметь одну или две шины I²C ("устройства"). Конфигурационный файл автоматически устанавливает настройку baro_i2c_device для барометра.

На платах, где baro_i2c_device не определен, этому значению будет присвоен 0. Когда внешний барометр подключен вручную к интерфейсу I²C, пользователь должен вручную настроить параметр baro_i2c_device на шину 1 или 2, в зависимости от того, к какой шине подключен барометр.

Аппаратная поддержка барометра

Как упоминалось выше, в Betaflight 4.5 или выше драйверы для чипов барометров, используемых на плате, определены в конфигурационном файле. Драйверы для дополнительных или других чипов барометров должны быть добавлены вручную с помощью раздела Custom Defines вкладки Firmware Flasher Конфигуратора.

Каждый чип барометра имеет стандартный I²C "адрес". Некоторые барометры поддерживают альтернативные адреса, что иногда сбивает с толку автоматическое обнаружение.

По умолчанию настройка baro_i2c_address в Betaflight равна 0, и Betaflight будет искать поддерживаемые барометры по их стандартному адресу и подключаться к любому найденному барометру. Обратите внимание, что в версиях 4.5 и выше будут поддерживаться только те драйверы барометров, которые были встроены в прошивку.

БарометрСтандартный I²C адрес (7 бит)Примечания
BMP085 119 (0x77) Тот же адрес, что и у BMP180
MS5611 119 (0x77) Не распространен
BMP280 118 (0x76) Альтернативный - 119 (0x77), стандартный адрес BMP180
QMP6988 112 (0x70) Не распространен
DPS310 118 (0x76) Альтернативный - 119 (0x77) (указан как стандартный в спецификации)
SPL06 118 (0x76) Клон BMP280, альтернативный - 119 (0x77) (может маскироваться под BMP180)
BMP388 118 (0x76) Тот же адрес, что у BMP280 и SPL06
2SMPB-02B 112 (0x70) Не распространен
LPS22DF 93 (0x5D) Не распространен

Если baro_i2c_address установлен на кастомное значение, Betaflight будет искать барометры, отвечающие только на указанный I²C адрес.

Команда интерфейса командной строки baro_hardware по умолчанию имеет значение AUTO, что означает, что Betaflight попытается автоматически определить правильный чип барометра. Хотя многие чипы имеют одинаковый I²C адрес, на одном I²C адресе в любой момент времени должен присутствовать только один барометр.

В некоторых случаях может потребоваться принудительно указать Betaflight использовать только драйвер для определенного чипа, например, когда вы точно знаете, какой чип используется. Например, set baro_hardware = DPS310 заставит Betaflight использовать драйвер для DPS310 (очевидно, этот драйвер должен быть включен в прошивку в версии 4.5 и выше).

Репозиторий Betaflight на GitHub содержит список всех поддерживаемых барометров и их драйверов, включая I²C адреса, по которым осуществляется поиск, и так далее.

Обратите внимание, что почти все чипы барометров имеют один и тот же I²C адрес. Если это не 118 (0x76), наиболее распространенной альтернативой является (редко) 119 (0x77).

Барометр не обнаружен

Если при настройке baro_i2c_address = 0 по умолчанию или при автоматическом обнаружении барометра поддерживаемый барометр не идентифицирован, возможные проблемы и решения включают:

ПроблемаРешение
Барометр не включен на вкладке Configuration Убедитесь, что переключатель для Baro установлен в положение 'on'
Чип барометра питается только от LiPo Проверьте при подаче питания на вход LiPo
Значение baro_i2c_device (шины) неверно Оно должно быть 1 или 2 и соответствовать физической шине, к которой припаян чип барометра
Код драйвера для этого барометра не включен в прошивку Дополнительные драйверы можно добавить с помощью раздела Custom Defines вкладки Firmware Flasher
Адрес чипа барометра изменен (кастомный) Попробуйте вручную настроить baro_i2c_address из списка выше
На одном I²C адресе существует несколько драйверов и обнаружен неверный Если вы точно знаете, какой барометр на вашей плате, установите baro_hardware на этот барометр
Чип барометра неисправен или подключен неправильно Проверьте подключение / замените чип

Краткое описание команд интерфейса командной строки

Переменные интерфейса командной строки, связанные с барометром:

ПеременнаяДиапазон/ЗначенияОписание
baro_bustype NONE, I2C, SPI Задает тип шины, к которой подключено выбранное устройство барометра
baro_i2c_device 0 ~ Максимальный номер шины I²C для типа микроконтроллера (начиная с 1) Задает номер шины I²C, к которой подключено устройство, когда baro_bustype = I2C. 0 означает "нет". Соответствует x в I2Cx
baro_i2c_address 0 ~ 119 (0x77) Задает 7-битный I²C адрес устройства. 0 - специальное значение для "стандартного адреса драйвера". Значения 1 ~ 7 недопустимы
baro_spi_device 0 ~ Максимальный номер шины SPI для типа микроконтроллера (начиная с 1) Задает номер шины SPI, к которой подключено устройство, когда baro_bustype = SPI. 0 означает "нет". Соответствует x в SPIx
baro_hardware NONE, AUTO, BMP280, MS5611, BMP085 NONE = Поддержка барометра отключена. AUTO = Автоопределение. Остальные значения = явное указание устройства

Если устройство подключено по SPI, вывод выбора микросхемы (Chip Select, CS) можно указать с помощью команды интерфейса командной строки resource:

Имя ресурсаОписание
BARO_CS Задает вывод CS для включения барометра на SPI
Внешние URLs: ID 31
0.0/3 rating (0 votes)
Барометр в Betaflight.