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

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


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

    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
      Похоже у нас новый лидер в списке шок-применений ардуино, лифт плавно отходит на вторую строчку.
        0
        А что за лифт? :)
        +2
        осталось дождаться водителя ритма
          0
          ага, с питанием от Кроны и автономностью 8 часов )
        +3
        1) Пищалка у парашютистов сама по размеру меньше кроны. Она вставляется в шлем в специальный кармашек в районе уха и лежит себе там. Куда такой немаленький агрегат впихнуть, я плохо представляю.
        2) Вывод цифр напрямую сильно раздражает. Это в лифте у вас мельтешит одна крайняя цифра, а на скорости ~50 м/с будут мельтешить три, и понять, какая высота, будет трудно. Поэтому парашютные высотомеры в свободном падении обычно показывают высоту с шагом ~50-100 метров.
        3) А как у вас ноль выставляется? Вот скажем приехал я на дропзону, а у меня за 3 часа давление упало (высотомер якобы поднялся) на метров 50 (вообще запросто) — у вас будет 50 метров на земле показывать?

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

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

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

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

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

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

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

                  Это так, с ходу, первое что пришло в голову в контексте переносного девайса.
                    0
                    Спасибо, гляну. Делал из того что было под рукой, и с чем умею работать.
                      0
                      Под солнцем пытались что-то рассмотреть на этом экране?

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

                          Будет жить от этой батарейки год.

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

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

                            В целом, есть куда стремиться.
                              0
                              Это же прототип ) Оценка концепции.
                              Сунул в карман, микрофон в ухо. Пошёл к самолёту включил.
                              Приземлился выключил. Зачем же целый день держать включённым ???
                              Крона эта у меня заряжается.
                              Если высоты будет правильно показывать (поэтому и дисплей поставил) можно этот дисплей снять, перевести на LiPo, плату поставить без порта — Arduino Mini.

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

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое