Вибрирующий вариометр
Вибрирующий вариометр

Предыстория: от надоедливого писка к идее

Парапланеризм - это про спокойствие, свободу и медитативный полет. Но в этой идиллии есть один назойливый артефакт: звук вариометра.

Традиционные приборы - звуковые. Они меняют тональность в зависимости от скороподъемности. И когда часами часами летаешь под облаками это постоянное пикание слегка надоедает.

Однажды мой друг, с которым мы летали на соревнованиях, бросил фразу:
«Было бы круто, если бы вариометр просто вибрировал - как телефон в кармане. Чтобы я чувствовал поток рукой или запястьем, а не ухом».

Я тогда просто кивнул. А через годик, болтаясь по Алиэкспрессу я увидел на сайте часы Watchy на ESP32-PICO-D4 с Е-ink и в голове щелкнуло: А что, если превратить эти open-source часы в вибровариометр?

Watchy 2.0 прошитые в вариометр
Watchy 2.0 прошитые в вариометр

Так родился проект VibroVario.

И да, небольшой спойлер: я почти не писал код вручную. Новый Gemini 3 (я экспериментировал с последним API) сгенерировал 99% прошивки. Но обо всем по порядку.

Этап 1. «Что вообще можно отследить?» - выбор сенсора

Оптимальный выбор — классический барометрический датчик, работающий на разнице давлений. Но для этого нужен действительно высокоточный барометр. Почему я выбрал BMP390, проигнорировав популярные BMP280 или MS5611?

BMP390 дает разрешение по высоте около 5–8 см. При правильной фильтрации это превращается в точность ±5 см/с по вертикальной скорости (Vz). Этого более чем достаточно, чтобы почувствовать даже самые слабые "пузыри" воздуха.

Bmp390
Bmp390

Цена вопроса: $2.9 (около 300 рублей) на AliExpress.

Этап 2. «Куда это впихнуть?» — выбор платформы

Выбор  Watchy v2.0  на ESP32-PICO-D4 на E-Ink экране

  1. Архитектура: ESP32-PICO-D4 - это SiP (System-in-Package). Все необходимое (CPU, Flash, кристалл) уже внутри одного корпуса.

  2. Энергоэффективность: Низкое потребление в простое - по заявлению производителя до 60 дней в режиме сна.

  3. Экран: Медленный E-Ink — это не баг, а фича. В статике он потребляет 0 мВт. Обновление раз в 1 секунду для вариометра — допустимая жертва ради автономности.

Этап 3. «Как это соединить?» — монтаж без печатной платы

Нам нужен абсолютный минимум компонентов:

  • Часы Watchy (уже есть).

  • Модуль BMP390.

  • 4 тонких провода .

  • Паяльник с тонким жалом (30 Вт).

Инструкция по сборке (займет 5–10 минут):

  1. Откручиваем 4 винта с задней крышки часов.

  2. Аккуратно разбираем.

  3. Припаиваем BMP390 навесным монтажом к пинам на плате Watchy:

    • VCC модуля → к точке пину кнопки 1

    • GND модуля → к GND

    • SCL модуля → к GPIO 22

    • SDA модуля → к GPIO 21

Схема Watchy 2.0
Схема Watchy 2.0

Важно: В данном проекте для питания датчика BMP390 использован вывод ESP32, а кнопка идущая к выводу замыкает вывод при нажатии на землю. Следовательно настоятельно рекомендую не использовать данную кнопку в работе, позже планирую найти другую точку подпайки к часам. Такой выбор питания обусловлен чудовищным током в 15 миллиампер у платы с BMP390! При простом подключении сразу на 3.3 вольта эта плата высаживает батарейку в 200мАч за 15 часов.

После сборки вес устройства составил 24 грамм.

Этап 4. «А что, если я дерну рукой?» — компенсация ускорений

Парапланеристы в полете - не статичные манекены. Они кренятся, дергают клеванты (тормоза), складывают "уши". В этот момент обычный барометр сходит с ума: резкое движение рукой вверх создает скачок давления, который датчик интерпретирует как подъем на пару метров.

Барометр видит этот «ложный поток». Решение - математическая компенсация по вертикальной перегрузке (Total Energy Compensation, но для руки). У большинства Watchy уже распаян BMA423 - отличный 3-осевой акселерометр.

Соответственно в алгоритме заложены взаимные поверки показаний датчиков - барометра и акселерометра.

Этап 5. «Как сообщить пилоту?» — тактильный код

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

  • «Пииип» = +0.5 м/с

  • «Пип-пип» = +2.0 м/с

Вибрация

Длительность

Значение

Короткий толчок (·)----

100 мс+длинная пауза

Слабый подъем (+0.2 м/с)

Толчок с паузой (· – ·)----

100 мс + пауза + 100 мс +длинная пауза

Уверенный поток (+0.4 м/с)

Длинная серия (– – – –)

Непрерывно

Опасное погружение -5 м/c (Sink alarm)

Такой код воспринимается мозгом за 200–300 мс — это быстрее, чем анализ тональности звука (там мозгу нужно около 400 мс). Плюс, это отлично чувствуется под через зимними перчатками (проверено лично), и не зависит от ветра в ушах.

Этап 6. E-Ink и выживание на солнце

Мы не отказались от дисплея, мы просто выбрали правильный.

E-Ink (электронные чернила) - единственный тип экрана, который:

  1. Идеально читается под прямым горным солнцем (угол обзора 180°).

  2. Не мерцает.

  3. Тратит энергию только в момент перерисовки цифр.

Математика энергопотребления:

  • Средний ток: 20 мА (учитывая 5 вибраций в минуту и обновление экрана раз в 0.5 сек).

  • Аккумулятор Watchy: 200 мА·ч.

  • Теория: 200 /20 ≈ 10 часов.

  • Реальность (холод, частые вибрации): 8+ часов.

Этого с запасом хватает на самый длинный соревновательный день. Есть варианты по экономии энергии - отключать или экран или вибромотор. Вибра, однако, прожорлива - 70мА.

Этап 7. Кто писал код? Честно про Gemini 3 и остальных

Теперь про искусственный интеллект. Да, основу скетча сгенерировал Google Gemini 3 , но с важными оговорками.

Я не просто сказал «Сделай мне хорошо». Я скармливал ему очень четкий промпт, который итеративно уточнял 7 раз:

*«Напиши Arduino-скетч для ESP32 (Watchy) с подключенным BMP390 и встроенным BMA423.
Требования:

  • Автокалибровка высоты (первые 20 сек).

  • Фильтр 2-го порядка (Калман, fc=0.8 Гц).

  • Компенсация Vz по данным акселерометра.

  • Тактильный вывод через вибромотор (паттерны прилагаю).

  • Обновление E-Ink раз в 1 с через GxEPD2 (частичное обновление).

  • Весь код в одном файле, без лишних классов.»*

ИИ выдал работающий скелет за 3 минуты. Но магии не случилось, пришлось дорабатывать:

И вот здесь мне пришлось вволю отдаться вайб-кодингу с зоопарком сеток - были использованы Квен, Дипсик, Перплексити. Натравливание разных сетей на даташиты в интернете и проекты на гитхабе. Скармливание в чатики примеров из чужого кода. Признаться честно, без ИИ я бы потратил часов 40 на написание минимально работающего когда. С нейросетками - затраты составили около 8 часов.

Итог: ИИ сэкономил мне около 32 часов рутины.

Выводы и открытый исходный код

Весь проект полностью открыт (Open Source, лицензия MIT).
Ссылка на репозиторий:
github.com/isemaster/VibroVario

Вы можете:

  1. Собрать такой же прибор за один вечер.

  2. Продавать готовые устройства (при условии указания авторства).

  3. Дорабатывать код (например, добавить передачу данных на телефон по BLE).

Что дальше? (Планы на версию v1.1):

  •  Фильтр для указания на ядро термика на расстоянии 100 - 300 метров(там другая физика колебаний).

  •  Тонкая настройка конфигураций порогов, виброрисунка, чувствительности, компенсация изменения атмосферного давления

  •  Солнечная зарядка с возможным переездом прибора с руки в корпус?

  • Возможно, будет написано приложение для смартфона для настройки часов по блютусу.

Мы часто думаем, что «умные вещи» - это голосовые ассистенты и автопилоты. Но иногда настоящая инновация - это простая вибрация на запястье, которая позволяет пилоту слышать ветер, а не электронный писк.

P.S. Хотите повторить?

Вам понадобятся: Watchy ($28), BMP390 ($3), Arduino IDE и паяльник.
Пошаговый гайд и код уже лежат в README на GitHub.

Если соберете - напишите в комментарии или сделайте PR! Хочу видеть, как этот проект разлетается по парапланерным спотам мира.

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

Комментарии (0)