СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Самодельный электронный альтиметр-вариометр с подачей звуковых и световых предупреждающих сигналов в черновиках

Можно применять в авиационных видах спорта как дополнительное средство обеспечения безопасности при:


— выполнении парашютных прыжков;
— полётах на параплане;
— полётах на сверхлёгких летательных аппаратах

image

Достоинства данного решения:

— небольшая цена комплектующих (1200-1500р в розницу, при покупке в интернет-магазинах КНР значительно дешевле);
— простота сборки (можно собрать за вечер, на макетной плате так вообще за полчаса);
— высокая точность измерения высоты;
— компактность и небольшой вес прибора;
— открытый программный код (можно вносить изменения, изменять пороговые настройки срабатывания прибора);
— можно использовать как модуль для измерения атмосферного давления (по СОМ — порту постоянно передаётся относительная высота, вертикальная скорость и атмосферное давление ).
— Питание как от автономного источника постоянного тока (6-20V) так и по Mini-B USB — шнуру.

Предистория создания:

AltVar+, как я его назвал, был создан на основе вот этого проекта в виде вариометра – пищалки. Прототип собрал на макетной плате. На ней было всего два значимых компонента:
плата микроконтроллера Arduino Nano V3
датчик давления Gy-68

Прибор реагировал писком на подъёмы-спуски, но не было никакой индикации. Поэтому пришлось доработать программу.

image

Теперь плата транслировала значения высоты и вертикальной скорости на СОМ-порт компьютера.
Захотелось большей автономности и я добавил 4-цифровой 7-сегментный дисплей, заключил плату с датчиком в самодельный корпус, встроил в него элемент питания. На дисплей вывел значение относительной высоты.
Теперь приборчик можно было использовать как для измерения относительной высоты, так и высокоточный барометр.

image

Некоторое время я его так и использовал, т.к. уже буквально спустя несколько минут после включения на нём была видна тенденция изменения погоды.
Дело в том что точность датчика примерно -+0,17 м. Изменение атмосферного давления на десятую долю мм рт. столба изменяет показание прибора более чем на метр.

Друзья и знакомые парашютисты знали, что у меня появилась такая самоделка. Они же и сподвигли меня на следующий шаг, предложив на его основе собрать сигнализатор высоты – «пищалку».
От вывода индикации на 4-цифровой 7-сегментный дисплей, отказался почти сразу, т.к. если повесить их сразу 2, то цифровых ножек мне хватит едва-едва, да и ресурсы МК код вывода потреблял «немеряно». К тому же, при этом способе индицирования, есть заметный стробоскопический эффект, что портит зрительное восприятие информации.

Вывел данные высоты и вертикальной скорости на — LCD — дисплей 1602 (16 знаков, 2 строчки).

Так приборчик подсказал как мне его назвать.

image

AltVar+ исправно показывал малейшие изменения высоты и вертикальной скорости.

Для вывода звукового сигнала оставил часть кода исходного проекта.
Тестировал его сутками напролёт. Работал AltVar+ устойчиво.
Вернее – не было ни одного сбоя! В автономном варианте (с 200мА 9V элементом типа «Кроны») проработал 8 часов без перерыва и отключился по питанию.

Программный код для микроконтроллера создал с помощью компилятора Arduino 1.0.6. В несколько этапов, постепенно добавляя функционал.

Алгоритм программы работает просто и прямолинейно:

— значения высоты и вертикальной скорости постоянно индицируются на LCD-дисплей;
— полученные значения высоты и вертикальной скорости сравниваются с пороговыми значениями, заданным пользователем, и по итогам этой проверки выдаются звуковые и световые сигналы

При включении прибора индицируются пороговые значения высот и скоростей, заданные пользователем. На первый взгляд громоздко – зато информативно!

Видео загрузки 1

Изменения можно вносить, меняя значения в программе и после компиляции загружать в микроконтроллер.
Алгоритм работы программы построен таким образом, что перед каждым прыжком нужно AltVar+ инициализировать (выключать – включать). Мы его как бы «взводим». Для чего это нужно?

После «взведения» мы имеем:

— максимально точное значение нулевой высоты площадки;
— значения переменных, отвечающих за количество звуковых сигналов, принимают исходные значения;
— экономим заряд аккумулятора

Программа, как я уже указывал, создана для парашютистов. «Китайский стиль» написания позволит разобраться в ней даже новичку. Всё просто и однозначно, как мне кажется.
Не вижу преград адаптировать её для параплана (парамотора) и СЛА.

Строки программы, насколько смог, снабдил исчерпывающими комментариями.
В «шапке» указаны необходимые комплектующие, взаимные соединения элементов, номиналы резисторов.
Можно открыть в текстовом редакторе или в компиляторе и посмотреть.

В данной версии программы заданы три высоты для большой вертикальной скорости:

— готовности (Ready) – 1 звуковой сигнал (установил 1000 м);
— оповещения (Alert) – 3 звуковых сигнала (800 м);
— тревоги (Alarm) – непрерывный звуковой сигнал (600 м)

image

Сигнал будет снят при уменьшении вертикальной скорости до пороговой (установил – 25 м\с)

image

Ввёл ещё два информационных звуковых сигнала:
— при достижении определённой высоты (Climb) на борту летательного аппарата (300 м при вертикальной скорости более +1 м\с);
— при достижение определённой высоты (Baza) при спуске на парашюте (200 м при вертикальной скорости более –1 м\с, здесь высоту срабатывания ограничил минимумом в 25 метров т.к. на земле после включения AltVar+ возможны различные непредвиденные скачки давления, что вызовет сигнал);

image

Информация выводится в формате:
1 строка Alt: * * * * (метры) — (признак отрицательной высоты)
2 строка Var: * *. * (метры в секунду) -V- (снижение) +^+ (подъём)
Использовал стандартный знакогенератор компилятора, не русифицировал. Поэтому всё по английски.

Кроме того, все звуковые сигналы дублировал светодиодом.

Подключив AltVar+ через СОМ-порт можно с помощью какого-нибудь стороннего устройства вести запись вертикального профиля полёта. Поначалу эту возможность я использовал для отладки программы и решил оставить.
Для получения точного значения атмосферного давления, необходимо внести поправку в переменную кода, зарезервированную для этих целей. Тогда будут предельно точные показания атмосферного давления.
В остальном, прибор и без этой поправки обеспечивает измерения высоты и вертикальной скорости с достаточно высокой точностью.

Наращивать функционал можно и дальше.

Например:
— измерение напряжения источника питания;
— записывать с лог данные по аварийным режимам (этакий «виртуальный «SyPReS»);
— поставить виброзвонок;
— т.д. и т.п.
Но пока остановился на этом наборе сигналов.

Сборка прототипов для испытаний в «полевых условиях».


Спаял на макетных платах все компоненты AltVar+

image

Плату разместил под LCD-экраном, что конечно не догма. Можно разместить и рядом ним. Прибор станет площе, но шире.

image

Изготовил из 4-мм пластика корпус для самого прибора и для элемента питания (9V «Крона»). Обработал стыки и кромки, задул из аэрозольного баллончика.
Что сказать… «Кондово» получилось.

image

Возможно, не достаточно компактно. Вообще то можно было использовать маленькую мыльницу с прорезанными отверстиями под индикацию, включатель и звуковой разъём. Но что получилось – то получилось.

Есть что тестировать по крайней мере.

Этапы этого самого тестирования представляются следующими:

— устойчивость работы в статическом состоянии;
— проверка автономности;
— «лифтовый тест» с сильно заниженными пороговыми значениями высот и вертикальных скоростей;
— парашютные прыжки с завышенными (по высотам) порогами срабатывания прибора

Видео 2 «лифтовой тест», значимо до 1:45, дальше открыл бокс и камера затрещала
оно же, в ОК

Считаю что пройден удачно.

Были заданы:

— высоты срабатывания 20=>15=>10 м;
— вертикальная скорость -0.6 м\с (на пределе чувствительности);
— высота в наборе 8 м;
— высота на спуске 5 м

При прохождении всех высот AltVar+ «проблеял» заданное количество раз. И светодиодом помигал.
После снижении вертикальной скорости ниже порогового значения — снял сигнал тревоги. То есть вёл себя вполне предсказуемо, как я и планировал.

Будем тестировать его и дальше.

Собрать такой приборчик при желании может практически любой желающий и, используя открытый программный код, запрограммировать под свои задачи.

Резюмирую

Использованные комплектующие:

плата микроконтроллера Arduino Nano V3
датчик давления Gy-68
LCD — дисплей 1602
— 3,5 мм аудиоразьём;
— резисторы 4к7, 1К, 330 ом;
— 5V светодиод;
— элемент питания «Крона»;
— включатель;
— макетная плата с проводниками

Программное обеспечение:

Arduino 1.0.6., подключив библиотеки порта, датчика, дисплея и динамика
скетч (программа, что загружается в микроконтроллер)

P.S. Разработал плату, чтобы упростить сборку AltVar+. Но пока не изготавливал.

image

Парапланерная прошивка AltVar+ v1.1

Пищит как исходный проект, индицирует высоту и вертикальную скорость.
Зажигает светодиод при снижении, даже минимальном.

А ещё AltVar+ можно использовать как зелёный светодиодный фонарик :)

Дальнейшее развитие этого проекта (3.3-вольтовая версия)

комментарии (35)

+6
Foolleren ,  
Похоже у нас новый лидер в списке шок-применений ардуино, лифт плавно отходит на вторую строчку.
0
SergeNovo ,  
А что за лифт? :)
0
Foolleren ,  
0
SergeNovo ,  
Спасибо, прочту)
+2
stifff ,  
осталось дождаться водителя ритма
0
gleb_l ,  
ага, с питанием от Кроны и автономностью 8 часов )
+3
roma_turkin ,  
1) Пищалка у парашютистов сама по размеру меньше кроны. Она вставляется в шлем в специальный кармашек в районе уха и лежит себе там. Куда такой немаленький агрегат впихнуть, я плохо представляю.
2) Вывод цифр напрямую сильно раздражает. Это в лифте у вас мельтешит одна крайняя цифра, а на скорости ~50 м/с будут мельтешить три, и понять, какая высота, будет трудно. Поэтому парашютные высотомеры в свободном падении обычно показывают высоту с шагом ~50-100 метров.
3) А как у вас ноль выставляется? Вот скажем приехал я на дропзону, а у меня за 3 часа давление упало (высотомер якобы поднялся) на метров 50 (вообще запросто) — у вас будет 50 метров на земле показывать?

А почему используете крону? Вроде как ардуина прекрасно от 5 вольт питается, а большее напряжение — большее потребление — меньше время жизни
0
SergeNovo ,  
Так это же прототип! :)

  • Приборчик в карман, телефон в ухо. Ведь там разъём 3,5 мм есть как раз для гарнитуры.
  • Включение перед самым прыжком. Это даёт точную высоту.
  • Мельтешат только единицы. Можно загрубить показания. Будет округлять, лёжа в кармане.
  • Крона была под рукой вот и применил Крону.) Можно и LiPo кто же спорит ...
0
roma_turkin ,  
Ну я так, к сведению. Предложил возможные (и даже необходимые) пути к улучшению.

Достаточно неплохи для разработки высотомера часы-девкит от TI. Я с ними прыгал — там есть проблемы. Во-первых, ноль не выставляется, т.е. перед прыжком надо на ноль высоту выставлять — не очень удобно. Во-вторых, на высоте 4 км расхождения в показаниях с аналоговым и другими цифровыми высотниками — порядка 700 метров. До сих пор руки не дошли до того, чтобы в них поковыряться, благо все сырцы есть. Зато плата разведена, сырцы прошивки предоставлены — кодь не хочу. И батарейка уже 8 месяцев жива. Только времени не хватает до них добраться :)
Кстати, а вы сравнивали показания с другими высотомерами на большой высоте? На этих часах до 1 км расхождения тоже были не очень значительными
0
SergeNovo ,   * (был изменён)
Спасибо! Часики гляну обязательно.
Когда будут прыжки конечно сверим! Ребята на дроп-зону возьмут, сверят с механическим и в самолёте. Сам планирую с ним попрыгать:) Когда будет возможность. Самому интересно!
0
chaynick ,  
Я еще облизываюсь на garmin fenix 2/3. Там и API для сторонних программ есть, и цифровой барометр. Но пищать не умеют, а на вибру полагаться не стоит в таких вещах.
0
hbf ,  
Перед самым прыжком? Тобишь непосредственно находясь в самолете? Тогда он в салоне самолета установит абсолютный ноль, или имеется ввиду, находясь еще на земле?
И небольшой совет, как правило, датчики давления очень сильно реагируют на порывы ветра и на свет, нужно светоизолировать его надежно и исключить сильные задувания через технологические отверстия.
0
SergeNovo ,  
На земле конечно! Чтобы зафиксировать высоту площадки приземления.
В корпусе у меня по периферии разгрузочные отверстия насверлены, чтобы не было наддува. Свет? Тестировал на открытой макетной плате, фонариком конечно не светил на датчик, но не заметил больших шумов. Обычные колебания -+0,2 м/с
0
hbf ,  
Некоторые модели дают очень высокие колебания при попадании света, конкретно яркого солнечного, например BMP085, обычно накрываю его черным поролоном (использую в коптерах на своих платах)
0
SergeNovo ,  
Спасибо, буду учитывать такую особенность.
0
faraddin ,  
Делал свой вариометр на дисплее от NOKIA 5110, которые по 2$ за штуку на ali. Он легче и можно графики рисовать, ну или крупные цифры вывести. В качестве источника питания использовал батарейку NOKIA Bl-5c.
0
SergeNovo ,  
Тоже на ардуино ?
+1
faraddin ,  
Да, на мини. Правда дальше макетки дело не дошло. Пока писал прошивку, увидел куда более годные готовые решения (схема, прошивка) и у меня пропал интерес. Но в процессе разработки я все же планировал, в перспективе, уходить с ардуино на чистый МК.
+1
DROS ,  
  1. Я бы вместо той двухстрочной дуры применил бы:

image
(искать по 0.96" 128x64 OLED на ибеях и т.д.)

Интерфейсы хоть SPI, хоть I2C, хоть что-то еще, но мне хватало двух первых. Компактно, энергоемко, свободный вывод инфы, благо штука графическая… короче одни плюсы ИМХО. Код портативный и много не жрет (правда я пишу на чистых сях)

  1. Далее. Arduino как аппаратная железка тут излишне. Нужен контроллер с минимальной обвязкой да стабилизатором. Вывод для внутрисхемного шитья наружу и все. Шить можно той же дуиной, если нет отдельно программатора. Можно и контроллер поменять конечно, но это дело вкуса.

  2. Про питание от кроны уже было выше сказано.

Это так, с ходу, первое что пришло в голову в контексте переносного девайса.
0
SergeNovo ,  
Спасибо, гляну. Делал из того что было под рукой, и с чем умею работать.
0
NikitosZs ,   * (был изменён)
Под солнцем пытались что-то рассмотреть на этом экране?
0
SL_RU ,  
Это OLED дисплей, и именно его под солнцем видно намного лучше дисплеев, сделанных по другим технологиям.
0
Dr_Zlo13 ,  
Да, и вполне успешно. Это же OLED, а не LCD.
0
AVKinc ,  
На таком дисплее чем ярче солнце, тем лучше видно.
0
gleb_l ,   * (был изменён)
Эх, выкинуть всю ардуинщину, оставить голый AVR, припаять к нему BMP180, дисплей, как у тов. DROS, кнопку, пьезопищалку типа ЗП-1, сложить все в бутерброд вместе с трехвольтовой батарейкой и приклеить к задней стороне индикатора. Питание BMP180 и дисплея коммутировать через полевик от вывода AVR.
В коде (на C ессно) написать, чтобы имел три режима работы — активный (непрерывный скан и вывод давления), ленивый мониторинг (периодический скан, вывод непрерывно) и сон.

Будет жить от этой батарейки год.
0
AVKinc ,  
Это легко пишется и собирается за пару дней, видать особо никому не надо.
Год жить не будет точно.
0
XDeViL ,  
Для парашютных прыжков прибор не подходит по следующим причинам:

большие габариты
слишком маленькие цифры высоты
малое время автономной работы (8 часов слишком мало — прыжковый день минимум 12 часов)

В целом, есть куда стремиться.
0
SergeNovo ,   * (был изменён)
Это же прототип ) Оценка концепции.
Сунул в карман, микрофон в ухо. Пошёл к самолёту включил.
Приземлился выключил. Зачем же целый день держать включённым ???
Крона эта у меня заряжается.
Если высоты будет правильно показывать (поэтому и дисплей поставил) можно этот дисплей снять, перевести на LiPo, плату поставить без порта — Arduino Mini.
+2
SL_RU ,  
Лучше разведите нормальную печатную плату — уменьшите размер платы в несколько раз. Никогда не советую в готовые устройства пихать целую ардуину. Лучше вообще её никуда не пихать — это хорошая платформа, но только для обучения и макетирования.
В готовых устройствах используйте чистые АВРки с чистым Си. А лучше, советую, посмотрите в сторону STM32, сам перешёл на них, теперь вспоминаю авр как страшный сон.
0
SergeNovo ,  
Если бы не Ардуино, наверное бы никогда не собрал бы этот приборчик. Начал изучать эту платформу, поэтому и решил сделать что-то полезное. К тому же собрать оказалось значительно проще.
Порог то хождения в эту тему чрезвычайно низок.
А платы травил, паял. Даже FT232RL запаивал под микроскопом, когда собирал 3D принтер. А сейчас думаю: Зачем?
Когда есть это в виде готовых модулей.
Для минимизации размеров то что Вы посоветовали будет оптимально.
0
KoryIII ,  
А можно второе видео без авторизации во вконтакте выложить?
0
SergeNovo ,  
Выложу вот только надо разобраться как)
0
SergeNovo ,  
0
KoryIII ,  
Спасибо!
А может быть, чтоб не было мельтешения цифр, сделать проверку — если показания высоты начали уменьшаться (выпрыгнули с парашютом) то пересчет высоты "вверх" притормаживается, ну, например, метров до 3 включительно, если больше, показать изменение (потоком воздуха приподняло, например). Правда универсальность ухудшается, в таком случае...
+1
berber ,  
Отличное прототип! Даешь HUD на экран шлема с телеметрией!