Здесь описана еще одна реализация идеи внешнего (для смартфона) датчика давления. Данные с датчика передаются по 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 для работы с альтиметром-барометром.
Сверху кнопки (группы):
— для подключения по 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.
