Альтиметр из MAV с USB(OTG)

Здесь описана еще одна реализация идеи внешнего (для смартфона) датчика давления. Данные с датчика передаются по USB (OTG, CDC) на смартфон и отображаются на экране в виде давления и рассчитанной по давлению высоты «над уровнем моря».

В основе конструкции лежит микроальтиметр Вега (MAV) от pinko использована версия 2.50. Изначально — это микроприбор для размещения в модели ракеты. Позволяет фиксировать давление (высоту), ускорение по трем осям, температуру и напряжение питания во внутренней памяти. Таким образом записываются даные полета, которые потом считываются из микроальтиметра через USB порт специальной программой.

В описываемой конструкции MAV немного доработан — питание осуществляется от разъема микроUSB (контакт 1). Программа микроконтроллера переделана на вывод данных в текстовом виде через USB по CDC(UART). Формат передаваемой строки:

#10;99301.02;174.8;5.0;0;0;0;23.5;
#15;99283.55;176.5;5.0;0;0;0;23.8;
#20;99277.51;177.2;5.0;0;0;0;24.0;

  • # — признак начала записи
  • 10 — время в секундах с момента включения
  • 99301.02 — давление в Па
  • 174.8 — высота в метрах
  • 5.0 — напряжение питания в вольтах (по OTG — 5V)
  • 0;0;0 — ускорение по трем осям в м/сек2 в текущей версии прошивки не фиксируется
  • 23.5 — температура в градусах Цельсия

Внешний вид «микроальтиметра без коробочки»

Схема дополнений к модулю MAV 2.50красным выделено подключение цепей питания к разъему USB (естественно, в случае подключения к USB, необходимо отключить аккумулятор BAT).

Для MAV сделал «коробочку» из PLA. Вид на конструкцию.


BarometerBT(v0.5) — приложение для Android для работы с альтиметром-барометром.

Screenshot-2025-12-05-14-31-57-382-appinventor-ai-pakhom2-Barometer-BT-04

Сверху кнопки (группы):
— для подключения по USB — OTG
первая (Подключить) при первом нажатии вызывает на телефоне запрос на доступ приложения к USB — надо разрешить; следующее нажатие установит связь с MAV
вторая (Отключить) вызывает разрыв соединения
— для подключения по BLE (подробно расписано в предыдущей статье)
— для подключения по Bluetooth (не проверено, но должно работать)

Ниже — поле индикаторов:
— относительная высота (в метрах). Определяется как разность между принятыми с микроальтиметра данными о высоте (поле в записи номер 3) и полем «Смещение».
— давление (в Па). Принятые с устройства MAV данные о давлении (поле в записи номер 2).
— компас. Сенсор положения телефона
— высота (в метрах). Принятые с устройства данные о высоте (поле в записи номер 3).
— температура (градусы Цельсия). Принятые с устройства данные о температуре (поле в записи номер 8).
— напряжение на аккумуляторе устройства (в вольтах, при подключении по OTG к смартфону здесь будет 5 Вольт). Принятые с устройства данные о напряжении питания (поле в записи номер 4).
— смещение (в метрах). Значение смещения/поправки к высоте для расчета относительной высоты. Устанавливается по кнопке «Смещение» равным текущей высоте (индикатор «Высота»).

Над списком принятых с устройства сообщений группа кнопок:
— первая (Load). Загрузить список сообщений из файла. Имя файла — последнее, сформированное при записи данных в файл. Текущий список сообщений очищается, на его место загружаются данные. Их отличие от текущих принятых — наличие открывающей скобки в начале строки. Поле индикаторов после загрузки не меняется.
— вторая (Save). Сохранить список сообщений в файл. При сохранении создается новый файл с именем «bar_датавремя.csv». Имя файла сохраняется в TinyDB для использования при загрузке данных из файла по кнопке Load.
— третья (Смещение). Определяет параметр Смещение для расчета относительной высоты. Смещение принимается равным значению высоты в текущий момент. Значение сохраняется в TinyDB для использования при последующих запусках программы.

Далее идет список принятых сообщений. Сверху — самые новые. Строки показаны так как они приняты с устройства.

Под списком сообщений строка Состояние. В ней отображается результат всех действий по кнопкам (Подключение, Сохранение и т.д.)


Кино про то, как выглядит и как пользоваться


В приложении для Android (v 0.5) используется обновленное расширение USB-OTG. В нем для всех «неопознанных» устройств, подключаемых по OTG принимается функциональность CDC (последовательная передача данных как в UART). Поэтому микроконтроллер PIC18F25J50 от Microchip распознается корректно даже без «нормальных» PID/UID.