DIY Arduino Variometer for Paragliding / Делаем Вариометр На Ардуино

22,001

49

57

Introduction: DIY Arduino Variometer for Paragliding / Делаем Вариометр На Ардуино

About: My name is Andrei and I'm from Russia. I love paragliding, photography and making different stuff with my own hands! Hope that my posts can be useful for you! =)

All paraglider and hang glider pilots can be devided into two categories: those who have the variometer and those who want to have it. In this post you'll see, how you can make such device with your owh hands and not pay a lot of money. Of course, the DIY device will not have such precision as the factory one, but it's still enough for flights.

So, let's go...

Important! In the end of the post you can find links to the 3d case models on Thingiverse.com for printing and also updates for BMP280 and BME280 sensors.

/////

Все пилоты парапланов и дельтапланов делятся на два типа: те, у кого есть вариометр, и те, кто не отказался бы его заиметь. В этой инструкции вы увидите, как можно собрать подобный девайс самостоятельно на базе Ардуино Нано, и обойдётся он гораздо дешевле, чем заводской прибор. Разумеется, добиться такой точности, как у заводского, у нас навряд ли получится, но, тем не менее, прибор будет вполне полётопригоден.

Итак, поехали...

Важно! В конце статьи Вы найдёте ссылки на модели под печать корпуса на сайте Thingiverse.com, а также дополнения для желающих построить девайс на датчиках BMP280 и BME280.

Step 1: What We'll Need / Нам Понадобится

Also we'll need some software:

- Arduino IDE - https://www.arduino.cc/en/main/software

- Libraries for BMP180, LCD I2C and for buttons (four attached zip-archives)

After installing the IDE, just unpack archives to "Program Files\Arduino\libraries".

/////

Нам так же понадобится немного софта и библиотек:

- Arduino IDE - https://www.arduino.cc/en/main/software

- Библиотеки для датчика BMP180, LCD экрана с I2C переходником и для правильной работы кнопок (четыре прикреплённых zip-архива)

После установки среды Arduino просто распакуйте архивы по этому пути: "Program Files\Arduino\libraries".

Step 2: Connection Diagram / Схема Подключения

Step 3: Development / Разработка Устройства И Прошивки

Firstly I wanted to make a simple small beeper with a screen to show the vario and altitude values. But then I wanted more and more. As a result the device has a big bulky case with several buttons, but it can do much more useful things than I originally planned! Here are some pictures of the development process.

To reduce the firmware development time, the algorithm of the variometer averager was borrowed from these two awesome projects:

https://www.instructables.com/id/GoFly-paraglidingh...

http://redhats.ru/variometer-arduino-2015/

A lot of thanks to their authors!

P.S. I have to honestly admit, this is my first serious project on Arduino and this is my first code for seven years after graduation from University. Therefore, the code itself is creepy enough, complicated, poorly optimized and all stands on crutches! But it works! And, as is known, if something works - do not touch it! And, in general, this is not a bug, it's a feature! =)

The first version of ino-file - Vario_nX_v1.0.ino!

P.S. The new firmware version Vario_nX_v1.1.ino has more pleasant descent sound! Check it out! =)

P.P.S. The next version - Vario_nX_v1.2.ino

Changes: Added new values to the series of preset values.

For treshold on descent the extended line is: -0.5, -0.7, -0.9, -1.1, -1.3

For treshold on falling the extended line is: -2.5, -3.0, -4.0, -5.0, -6.0, -7.0, -8.0

Px3.S. The next version - Vario_nX_v1.3.ino

Added a "shortcut key" for the LCD backlight ON/OFF.

Now to turn on or off the backlight you just need to enter the MENU by short pressing the Button 1 and then just long press the same button until the device beeps.

/////

Сперва я хотел сделать простую маленькую пищалку с экраном, что бы видеть скороподъёмность и высоту. Но с каждой новой фичей хотелось всё большего. В результате получилась неуклюжая коробка с кнопками, которая умеет делать намного больше полезностей, чем изначально планировалось! На фотках запечатлено несколько моментов процесса разработки.
Что бы не тратить время на изобретение велосипеда, я позаимствовал алгоритм усреднителя из этих двух наикрутейших проектов:

https://www.instructables.com/id/GoFly-paragliding...

http://redhats.ru/variometer-arduino-2015/

Огромное спасибо их авторам!

P.S. Я должен честно признаться, это мой первый серьёзный проект на Arduino и это мой первый код за семь лет после выпуска из универа. Поэтому сам код достаточно жуткий, сложный, плохо оптимизированный и весь стоит на костылях! Но он работает!

А, как известно, работает – не трогай! И, вообще, это не баг, это фича! =)

Первая версия прошивки (ino-файлик) - Vario_nX_v1.0.ino!

P.S. В следующей версии прошивки Vario_nX_v1.1.ino ощутимо изменён звук варика на снижении. Он стал более приятным, не режет слух.

P.P.S. Очередная версия - Vario_nX_v1.2.ino

Изменения: по просьбам братьев-пилотов расширены ряды значений порога срабатывания на сливе и для тревоги.

Новый ряд порога на снижении: -0.5, -0.7, -0.9, -1.1, -1.3
Новый ряд порога при падении: -2.5, -3.0, -4.0, -5.0, -6.0, -7.0, -8.0

А так же в комменты (в коде) добавлены пометки "МОЖНО МЕНЯТЬ!!!". Эти пометки указывают, какие начальные значения можно поправить, что бы более гибко настроить прибор под себя любимого! =) Там, где нет такой пометки, трогать ничего не стоит, иначе код может поломаться!

Px3.S. Следующая версия - Vario_nX_v1.3.ino
Добавлена "быстрая клавиша" для выключения/включения подсветки экрана. Теперь, что бы включить или выключить подсветку, Вам нужно войти в МЕНЮ путём кратковременного нажатия Кнопки 1 и затем снова нажать Кнопку 1 примерно на 1-2 секунды до звукового сигнала.

Step 4: Assembly / Сборка

The assembly doesn't look pretty good. I used a lot of heat-shrink tubing and hot-melt glue, but the elements are fixed firmly, nothing hanging. The BMP180 sensor can be found by the yellow heat-shrink tube. Sensor board is covered with foam rubber.

/////

После сборки в корпус внутрянка выглядит слегка не по-заводскому - сплошняком термоклей и кембрик. Но держится всё намертво, разумеется, если не кидаться прибором в стену! Сам датчик можно найти по изогнутому куску жёлтого кембрика. Плата датчика укутана в поролон.

Step 5: Description / Описание

As a result I got such devise. I'm really bad at painting, so the box looks a little creepy in style of FallOut world. But it works and works not too bad.

The video shows main screens and menu items, also there is a small room test.

Main screen shows you the Vario value, one of three altitudes, air temperature and flight time (and some more features, which are described in more detail in the Instruction manual).

The device has also the screen of Maximal altitudes and the screen of Max and Min Vario values.

The Menu has 11 items:

- Sea level pressure setup

- Vario treshold on climb

- Vario treshold on descent

- LED Vario light ON/OFF

- Button sound ON/OFF

- Falling alarm treshold set

- Falling alarm test mode ON/OFF

- Long beep at certain altitude on climb

- Long beep at certain altitude on descent

- Vario mode (one of two)

- LCD Backlight ON/OFF

All these features are more detailed in the Instruction manual (in English and in Russian).

We also have now the Japanese version of Instruction manual! Many thanks to Osa from Japan, who kindy translated it to his native language!

/////

В результате получился вот такой девайс. Художник из меня не очень, поэтому после покраски прибор выглядит довольно жутко, будто из мира FallOut. Но он работает и работает вполне неплохо.

Видео показывает главные экраны устройства, пункты меню, а так же в нём есть небольшой комнатный тест.

Основной экран после запуска прибора показывает значения вариометра, выбранной высоты, температуры воздуха и полётного времени (и ещё несколько полезных штучек, которые подробно описаны в мануале, приложенном к этому посту). Так же прибор может отображать экран максимальных набранных высот и экран максимального и минимального значений вариометра.

В меню есть 11 пунктов:

- Отображение и ввод давления на уровне моря

- Порог срабатывания вариометра при наборе высоты

- Порог срабатывания вариометра при потере высоты

- ВКЛ/ВЫКЛ светодиодной индикации вариометра

- ВКЛ/ВЫКЛ звука клавиш

- Настройка порога срабатывания сигнализации

- ВКЛ/ВЫКЛ тестового режима сигнализации

- Длинный сигнал при проходе заданной высоты в наборе высоты

- Длинный сигнал при проходе заданной высоты на сливе

- Выбор одного из двух режимов вариометра

- ВКЛ/ВЫКЛ подсветки экрана

Все эти опции подробно описаны в мануале (на английском и русском языках).

А сейчас дополнительно появился мануал на японском языке благодаря Osa - товарищу-пилоту из Японии, за что ему огромное спасибо!

Step 6: Results and Tests / Результаты И Тесты

Here is a small video of the second flight test.

By the time this post was written, the device had passed several elevator tests on the ground for calibration and two final tests in the flight. Several bugs have been fixed, and now, in general, the device is ready. Of course, in future there will be more bugs, but they are unlikely to be critical.

If, or more correctly, when the
device shows up bugs, throw me a description on my E-mail (xonix2004@list.ru), or you can find me in VK or Facebook for more convenient communication. If you know some tricky function that should be built into the variometer, but did not find it in the list of available ones, also write. If it’s possible, I’ll try to implement and upload a new version of the firmware.

Live long and fly safe! =)

/////

А вот небольшое видео со второго испытательного полёта.

К моменту написания данного поста прибор качественно накатался в лифте для калибровки, а так же прошёл два боевых теста в воздухе. Было исправлено несколько багов, и теперь, в принципе, девайс готов к эксплуатации. Конечно, в будущем проявятся ещё баги, но навряд ли они будут критичными.

Если, верней, когда в работе устройства обнаружатся баги, скидывайте мне их описание на мыло (xonix2004@list.ru), или же можете найти меня в ВК или Facebook для более удобного общения. Если вы знаете какую-то хитрую функцию, которая должна быть заложена в вариометр, но не нашли её в списке имеющихся, тоже напишите, по возможности постараюсь реализовать и выложить новую версию прошивки.

Всем пилотам встречного ветра и пусть у вас в полёте ничего не складывается! Летайте безопасно! =)

Step 7: 3D-Printed Box! Finally! / Наконец-то! Корпус Для Печати!

Finally! After almost two years it is time to make a new good box for the vario! Two years were enough to realize what the box will look like and what features it is necessary to include in it. The Solidworks weekend gave a result captured on the photo! =) The new box doesn't differ too much from the previous one in dimentions and shape, but it has some important changes inside. First, everything now has its place, you shouldn't use hot glue now. Second, the box is much more strong. And third, in this box I tried to realise the system which should help to fix the temperature indication bug. This should be achieved by adding a specional isolated channel for the baro sensor. Now it's time to test it! =)

At this moment there are two versions of case available. I recommend you to print the second one (ver.1.2).

The second version has several improvements:

- The battery now can be changed without the whole case disassembly;

- Reduced number of fasteners;

- Reduced the height of the device to about 5 mm;

- A bunch of other small improvements.

Ver.1.1:

https://www.thingiverse.com/thing:3301499

Ver.1.2 (RECOMMENDED):

https://www.thingiverse.com/thing:3321624

Also here is a short timelapse video with modelling, printing and assembly of the device:

/////

Наконец-то, спустя почти два года настал момент напечатать нормальный корпус для прибора. За эти два года стало примерно понятно, как будет выглядеть корпус, и какие обязательные элементы будут в нем присутствовать. В общем, выходные, проведённые в Solidworks дали примерно такой результат как на фото! =) По общим габаритам и форме корпус не сильно отличается от первоначального, но внутри есть некоторые полезные изменения. Во-первых, для всего теперь есть свое место, не надо ничего сажать на термоклей. Во-вторых, печатный корпус гораздо крепче, чем распределительная коробка. В третьих, что на мой взгляд, самое главное, в этом корпусе я постарался реализовать систему, которая должна помочь исправить косяк с завышением показаний температуры за счет создания специального изолированного канала, в который помещается датчик. Собственно, осталось дело за тестированием!.. =)

На данный момент для печати доступно две версии корпуса. Рекомендую к печати именно вторую (1.2), так как она содержит в себе несколько полезных улучшений:

- Батарейка теперь меняется без разборки всего корпуса;

- Уменьшено количество крепежа;

- Уменьшена высота прибора примерно на 5 мм (в руках очень ощутимо!);

- Ну и ещё целая кипа мелких улучшений!

Версия 1.1:

https://www.thingiverse.com/thing:3301499

Версия 1.2 (РЕКОМЕНДУЮ ЕЁ):

https://www.thingiverse.com/thing:3321624

Also here is a short timelapse video with modelling, printing and assembly of the device:

Step 8: Updates (BME280 Version) / Обновления (версия С BME280)

We now also have the sketch for BME280 sensor. Many thanks to Osa from Japan who decided to make a vario with this sensor and shared the changed sketch.

It seems that he used the SparkFunBME280.h library, which you can find here:

https://github.com/sparkfun/SparkFun_BME280_Arduin...

Waiting for his spring tests! ;)

/////

У нас так же теперь имеется версия прошивки для датчика BME280, благодаря небесному брату Osa из Японии! Он задумал собрать девайс именно на этом датчике, и пусть через небольшие костыли, но у него это получилось! Спасибо ему огромное за предоставленный модифицированный код!

Очевидно, он использовал библиотеку SparkFunBME280.h, которую вы сможете обнаружить здесь:

https://github.com/sparkfun/SparkFun_BME280_Arduin...

С нетерпением ждём его весенних тестов! ;)

Step 9: Updates (BMP280 Version) / Обновления (версия С BMP280)

And here is a new firmware version for BMP280 sensor! Many thanks to our fellow Ivan Koshelevsky for it!

Initially the divice was build with Mega board, and after turning on several small bugs appeared. Straight after assembling the device with Nano board everything got fine. So if you are going to use any other board except Nano, get ready to catch and fix bugs! =)

Troubleshooting:

Our friend LU7HQW had some troubles with BMP820 (sensor provided no data) and he solved this problem by changing the sensor address in the Adafruit_BMP280.h library.

Many thanks to him for sharing the solution. Here's his original text:

Maybe could be useful this info. My BMP280 (same as the picture) couldn´t read any value. In the adafruit library, (Adafruit_BMP280.h), i modified the BMP280 main address from 0x77 to 0x76 (switch main and alternative adresses). Left like this:

I2C ADDRESS/BITS/SETTINGS
-----------------------------------------------------------------------*/

/** The default I2C address for the sensor. */

#define BMP280_ADDRESS (0x76)

/** Alternative I2C address for the sensor. */

#define BMP280_ADDRESS_ALT (0x77)

/** Default chip ID. */

#define BMP280_CHIPID (0x58)

/////

А вот подоспела ещё и версия под датчик BMP280! За нее спасибо огромное нашему коллеге по небу - Ивану Кошелевскому!

Сперва девайс был собран на плате Arduino Mega, но после заливки кода полезли мелкие косяки. После сборки на плате Nano всё встало на свои места. Так что, если задумаете собирать на плате отличной от Nano, будьте готовы отлавливать и фиксить баги! =)

Если вдруг Ваш датчик отказывается выдавать данные, то можете воспользоваться советом пользователя под ником LU7HQW, который решил проблему путем смены адреса датчика в библиотеке Adafruit_BMP280.h.

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

I2C ADDRESS/BITS/SETTINGS

-----------------------------------------------------------------------*/

/** The default I2C address for the sensor. */

#define BMP280_ADDRESS (0x76)

/** Alternative I2C address for the sensor. */

#define BMP280_ADDRESS_ALT (0x77)

/** Default chip ID. */

#define BMP280_CHIPID (0x58)

Step 10: Updates (BMP280 + OLED 16x2) / Обновления (BMP280 + OLED 16x2)

Also our friend Ivan changed a sketch to use BMP280 sensor with OLED 16x2 Display.

Here is his sketch and wiring diagram!

P.S. He also found an ideal case for the vario on AliExpress!

https://www.aliexpress.com/item/86-Plastic-Project...

/////

Также Иван адаптировал код под использование датчика BMP280 с дисплеем OLED 16x2.

Вот список его изменений:

- Добавлены переменные relcd и PrintLCD для снижения обновления данных на экране (от Автора статьи: это особенность OLED)

- Исправлена проблема перескока символа при установке давления (там была запятая) (от Автора статьи: если честно, сам не совсем понял, что это за хитрый косяк)

- Убрано меню 11 (подсветка дисплея) (от Автора статьи: для OLED пункт действительно бесполезный)

- Сброс высоты старта при включении (от Автора статьи: в оригинале при включении высота старта всегда считается по давлению 760 мм рт. ст. и должна быть сброшена вручную)

- Исправлен алгоритм вычисления макс/мин значений вариометра (сделана зависимость от высоты, т.к. при включении были неверные значения) (от Автора статьи: тоже не совсем понял)

- Индикация уровня заряда батареи в 4-м главном окне (кнопка 3) и при включении питания (от Автора статьи: очень крутая тема, поскольку Иван применяет для питания 18650 элемент)

- Убрал символ "B" при работе варио (от Автора статьи: в оригинале этот символ служит индикатором срабатывания бипера при отключенном звуке и выключенной LED-индикации)

А вот сам скетч и схема подключения компонентов!..

P.S. А еще он нашел идеальный кейс, который не надо печатать, а можно просто купить на Али!

https://www.aliexpress.com/item/86-Plastic-Project...

Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017

12 People Made This Project!

Recommendations

  • Make it Glow Contest

    Make it Glow Contest
  • First Time Author Contest

    First Time Author Contest
  • PCB Challenge

    PCB Challenge

57 Discussions

0
LU7HQW
LU7HQW

17 days ago

Well... Tested in thermal conditions. Working great! Very precise in comparisson to a commercial variometer.

Sound vario sounds funny when i'm in +6 thermals and up, but no problem with that. Sounds like it's screaming...

Just two questions.
1st) It's possible change the default values to left it what i need when power on? Because i've to change four parameters every time i'm going to fly (menu 3, 4, 6 and 10). It would be great just power on and go to fly.

2nd) In Memo mode, shows me a number with decimals instead the maximum thermal ascendant. But in max descendant, shows a normal reading.

I promise to translate the user manual to spanish to all the community.

I'm very happy with this variometer. Nice to build it, nice to fly it.

0
XONIX
XONIX

Reply 15 days ago

That's great! Glad you like the device and thanks for sharing the results of test flights!
Answering your questions:
1. It's physically possible to store settings in the Arduino Nano memory, however it is not realized in my firmware yet. I really want to make this feature, but just don't have time for it now. Hope to make it in future.
2. Could you please give some more details about this bug? Let me know what sensor (BMP180; BMP280; BME280) and what firmware (my original, or one of updates (steps 8; 9; 10)) you used. At this point, since max descend reading is correct and max ascend is not, it looks like there's something wrong with the sketch. Did you make any changes to it?
Here's a link to a video description, please take a look.
https://youtu.be/TNogQdlIWto?t=40
This link will lead you exactly to the screen we are talking about, and it should look exactly like on the video. Both values should be decimals with two digits after decimal point. However, if the ascend or descend rate is too high (two-digit number, or in case of being sucked into thunderstorm, or falling from stratosphere three-digit number), number of decimals may decrease due to lack of place on the screen.
Could you please take a picture of incorrect reading and send it to me, or attach here in comments?

P.S. That would be great if you can translate my manual to Spanish! I'll add it here to the post! :)

0
LU7HQW
LU7HQW

Reply 15 days ago

Thanks for quick response.
I have BMP280 sensor and Step 9 firmware (BMP280 1.2). Here is an image in memo mode. And just the test on-floor shows me 172.9 m/s !!!! And i remember with +6 thermals, at end of flight, shows me about 380 and some.

I didn't make any changes in sketch until today, and this issue comes since first day with original firmware.
Today i've found how to put the default values that i need (Led light ON, Alarm set -8 and vario mode Trm).
I don't know about programming, just using some logic and translate from russian to spanish the comments lines, to to understand the value meaning. But only change the values i need it, nothing more.

In this week end, i'll start with user manual spanish translation.

Thanks XONIX to still maintaining this project.

IMG_20210101_201832_713.jpg
0
XONIX
XONIX

Reply 11 days ago

I suppose the roots of this issue are in specific way of BMP280 initialisation. Several people informed me about similar problems (vario screaming for several seconds after turning on because of too high ascend rate, wrong altitude values after initialization, etc.). The thing is that my sketch is optimized exactly for BMP180. And unfortunately I can't fix the issue with 280 sensor at this moment, cause I don't have one.
However, as a temporary solution in your case I can suggest resetting the 'Max/Min Vario screen' (Memo mode) in about 15-30 seconds after vario is turned on. To do this enter the 'Max/Min Vario screen' by pressing Button 3 twice and then press Button 3 for a couple of seconds. You will hear three short beeps and all values will set to zero. Try to fly this way and let me know if readings look good.
I also recommend to reset the screen of 'Max altitudes' before take off. To do that press button 3 once (while being on the Main screen) and press Button 3 for a couple of seconds. You will hear three short beeps and all Alt readings will set to zero.

As for default settings, please let me know if you succeed to correct the sketch. If not, you can give me the settings you need to be set, I edit the sketch and give you the correct version.

"In this week end, i'll start with user manual spanish translation." - no rush! When you have time for this! But thanks in advance! :)

0
porutchik1
porutchik1

5 months ago

Приветствую Андрей. Большое спасибо за статью. Собрал вариометр по вашим рекомендациям. Вот только никак не могу разобраться с программированием. Скачиваю папки , распаковываю , загоняю в библиотеку ардуино ,загружаю и дальше ничего. Скетчи как таковые не грузятся. Грузятся только названия папок. Вы не могли бы подсказать что делаю не так.
Парапланеризмом занимаюсь два года. До этого занимался RC самолётами.
Спасибо.

0
XONIX
XONIX

Reply 5 months ago

Приветствую!
Сказать по правде, в данный момент с Ваших слов проблематично определить корни проблемы.
Однако, если ранее Вы не работали со средой разработки Arduino, то я настоятельно рекомендую провести полное и корректное удаление приложения Arduino IDE, перезагрузить компьютер, а затем установить его заново по вот этой видео-инструкции: https://www.youtube.com/watch?v=OsXFswotVNI
После завершения установки необходимо будет установить требуемые библиотеки. Для этого нужно закрыть приложение Arduino IDE, скачать все архивы библиотек, представленных в инструкции (4 штуки), распаковать каждую в свою отдельную папку (с тем же именем, что и у архива), а после этого положить все четыре папки библиотек по пути "Program Files\Arduino\libraries".
После этого можно запустить приложение Arduino IDE, открыть файл прошивки и провести его компиляцию (проверку). Если все сделано правильно, то внизу не должны появиться сообщения об ошибках.
Дайте знать, победили ли Вы проблему. Если нет, то будем думать дальше.
Удачи!

0
porutchik1
porutchik1

Reply 4 months ago

Здравствуйте , Андрей . Давно хотел вам написать. Руки не доходили. Ещё раз хочу поблагодарить вас за вашу статью. Весьма поучительно , полезно и познавательно. В частности , меня заинтересовало программирование Ардуино .
Варик я собрал на датчике BMP 280 . Были некоторые тёрки с адресом. Но всё решается очень просто . Дальше расскажу. В качестве питания использовал один элемент 18650 с контролером зарядки и преобразователем 3-5в. Всё удалось вместить в коробочку с алиэкспресс , та которая в ссылке. Монтаж получился немного плотный , но рабочий и живучий.
Варик я запустил . Всё работает. Вначале не мог разобраться для чего необходимы файлы : Vario_nX_v1.0.ino, Vario_nX_v1.1.ino , …. , ну и т.д. Разобрался и всё получилось.
Начну с датчика давления. Здесь ссылка для решения проблемы с адресом датчика BMP280 :http://arduino.ru/forum/apparatnye-voprosy/bmp280-... .Есть сборки у которых изначально не определён адрес. У меня оказался такой датчик. В ссылке указано как решить вопрос. Установкой перемычки между пином SDO и GND или SDO и VCC получаем адрес или 076 ,или 077. Я подтянул массу на пин SDO и у меня всё заработало. Потом ради эксперимента , перекинул перемычку ,изменил адрес и опять всё заработало.
У меня тут вылезли некоторые глюки. Может вы мне подскажете где копать ,чтобы их победить ?
Вопросы следующие. При включении моего варика вначале на экране появляется приветствие а потом срабатывает сигнализация , высвечивает сообщение "раскрыть парашют ". Пищит пищалка. Моргают светодиоды. Ну полный караул . Приходится ждать секунд 30 пока это всё затихнет. Все высоты при включении выдаются в отрицательных значениях, начальная ,минимальная и максимальная. Возможно это и является причиной срабатывания сигнализации? Решения пока не нашел. Надеюсь на вашу подсказку.
В первом меню где высвечивает атмосферное давление, невозможно изменить значение в третьем регистре. Давление высвечивается в паскалях. Например давление 101325. Так вот регистр с цифрой 3 невозможно изменить. Галочка над цифрами просто перепрыгивает через этот регистр. Пока не могу сообразить что это может быть.
Несколько раз делал перезагрузки скетча. Без изменений.
И ещё один вопрос , начальную высоту старта можно задать путём изменения атмосферного давления или же существует другой метод ? Мы стартуем с высот в 200 м. и 860 м.
В завершение хочу показать что получилось. Немножко халтурно но душу греет.

IMG_20200910_112907.jpgIMG_20200910_113027.jpgIMG_20200910_123249.jpg
0
porutchik1
porutchik1

Reply 4 months ago

И ещё,кажется температура выдается не совсем корректно.
В будущем хочу попробовать вывести на экран значение заряда аккумулятора. Хотя преобразователь 3-5в имеет автоматическое отключение в случае критического состояния аккумулятора.

0
XONIX
XONIX

Reply 3 months ago

Приветствую!
Прошу прощения за столь долгий ответ. У меня было несколько безумных недель в работе, проверить почту даже нормально возможности не было.
Касательно вопросов и глюков:
1. Писк, крик и просьба раскрыть парашют на старте - это особенность работы именно моего кода и именно с датчиком BMP280. Дело в том, что я свой прибор собирал на датчике BMP180, и подгонял код под него. 280-й, видимо, проходит инициализацию иначе, в этом все и дело. Высоты сперва отображаются некорректно по той же самой причине. В статье Вы можете взглянуть на Шаг 10. Там наш коллега по небу Иван собирал прибор на том же 280 датчике, правда с OLED-дисплеем, он, как раз, и описывал те же самые проблемы при инициализации.
Итого, я вижу три варианта решения этой проблемы:
- если Вы уже достаточно освоились с программированием, то могу порекомендовать пересобрать код под 280 датчик и тот экран, который Вы используете;
- так же можно докупить OLED-дисплей и применить скетч Ивана, которым он с нами поделился в Шаге 10 (там уже и индикация уровня заряда аккумулятора есть);
- ну и крайний вариант - собирать прибор на 180 датчике уже с моим оригинальным скетчем. Правда, не рекомендую, все-таки 180 датчик уже устарел.
2. Причина невозможности изменить значение одного из регистров кроется опять же в оптимизации кода, на этот раз под отображение давления в миллиметрах ртутного столба, а не в паскалях. Дело в том, что значение давления что для мм рт. ст., что для паскалей занимает ровно 6 символов, но для отображения в мм рт. ст. один из символов - это точка, и именно ее проскакивает галочка при вводе значения. Здесь на видео это хорошо видно:
https://youtu.be/TNogQdlIWto?t=67
Честно сказать, затрудняюсь ответить, почему у Вас ввод производится в паскалях. Это для меня загадка. Но, опять же, если Вам требуются именно паскали, то можно пересобрать код. Это займет немного времени, но это вполне реализуемо.
3. Касательно высот старта, в приборе отображаются три высоты: абсолютная и две относительных. Каждый раз при включении прибора абсолютная высота считается по исходному давлению в 760.00 мм рт. ст. (которое потом можно изменить), а две относительных обнуляются в месте инициализации прибора.
Реализовано было именно так, потому что мы летаем над морем, и старт у нас часто с вершины обрыва. Порой надо знать высоту именно от уровня моря, а не от точки старта, именно для этого и сделана высота по давлению (т.к. спускаться вниз до моря, чтобы включить прибор и установить верную высоту, значит тратить время, которое можно было потратить на полет). Установив нужное давление перед стартом (взяв его из прогноза погоды или метеосводки аэропорта), мы сразу получаем правильную высоту над уровнем моря (ну либо уже после полета можно давление ввести, тогда максимальная набранная высота на экране высот пересчитается). А значение 760.00 мм рт.ст. было выбрано просто потому, что оно является средним на уровне моря.
Кстати, обнулить любую из трех высот можно принудительно долгим нажатием кнопки 2.
4. Касательно погрешности в отображении температуры, да, такой косяк есть, т.к. внутри закрытого корпуса прибора температура неизбежно будет отличаться от внешней температуры. Эту особенность удалось частично нивелировать именно в корпусе, предназначенном для печати, т.к. там датчик устанавливается в проточный канал, где постоянно находится в набегающем потоке внешнего воздуха. К сожалению, в корпусе с Али такого канала нет, поэтому присутствует погрешность показаний.

0
porutchik1
porutchik1

Reply 2 months ago

Здравствуйте, Андрей. Датчик ВМР280 никак не хотел работать с мм.рт.ст. Только с паскалями. Пришлось много чего перепробовать. Для проверки я приобрёл датчик ВМР180. С этим датчиком всё пошло нормально. Возможно ВМР280 который у меня работает только с паскалями ?
Второй вариант прошивки варика показал себя отлично. Многочисленные испытания прошли успешно. Один раз только случился сбой. Я даже не понял почему.
Индикацией напряжения пока не занимался. Возникли другие задачи.
Еще раз благодарю за статью.

0
XONIX
XONIX

Reply 5 weeks ago

Приветствую!

Отвечая на Ваш вопрос "Возможно ВМР280 который у меня работает только с паскалями?", могу сказать, что по сути не важно, в каком виде датчик выплевывает данные. Будь то паскали, мм рт.ст., бары и т.д., всегда можно вставить в код формулу пересчета и выводить давление на экран уже в тех единицах, которые требуются.

"Еще раз благодарю за статью." - рад, что статья была полезной! :)

0
k3po.mcdonald
k3po.mcdonald

4 months ago

Just a few questions here.
Under the battery on the Step 10 updates, what is that circuit board and what is its purpose?
Does this display the rate of change in altitude or just beep to represent ascent and decent?
I am looking at a project addition to something I have already built for use in Powered Parachutes. I would like to have the rate of ascent and decent shown and also want to use a different display. Just curious, as it is hard to see what the display is showing on the video.

Thanks

0
XONIX
XONIX

Reply 3 months ago

Hello! Sorry for super late reply! Those were several crazy weeks for me, so I even could not check my mail normally...
As for your questions:
1. This is the charging module for 18650 lithium battery (1S)
2. The main purposes of this device is to show variometer value and altitude value, so yes, it can display the rate of change in altitude
3. It might be useful for powered parachute. Here's a video with description of all device's functions and a small room test. In this video in the top left corner of the display you can see exactly the variometer (rate of climb and descent indicator, vertical speed indicator) value. Arrows on the very left are also showing if you are going up or down.
https://youtu.be/TNogQdlIWto?t=190

0
XONIX
XONIX

Reply 6 months ago

Hi! Yep, you're totally right! This case is pretty good for the project! :)

0
OscarG11
OscarG11

1 year ago

Hello, will this sensor work with the project? I just bought it from AliExpress but Im not sure if it is a BMP280. (it is suposed). The serial monitor on arduino says "no bmp sensor found". Can you send me some link from AliExpress of the correct sensor?

IMG_20200114_080656.jpg
0
LU7HQW
LU7HQW

Reply 6 months ago

Maybe could be useful this info. My BMP280 (same as the picture) couldn´t read any value. In the adafruit library, (Adafruit_BMP280.h), i modified the BMP280 main address from 0x77 to 0x76 (switch main and alternative adresses). Left like this:

I2C ADDRESS/BITS/SETTINGS
-----------------------------------------------------------------------*/
/** The default I2C address for the sensor. */
#define BMP280_ADDRESS (0x76)
/** Alternative I2C address for the sensor. */
#define BMP280_ADDRESS_ALT (0x77)
/** Default chip ID. */
#define BMP280_CHIPID (0x58)

And now it's working. I use Ivan Koshelevsky ino file.

Thanks to XONIX to share this project.

0
XONIX
XONIX

Reply 6 months ago

Thank you for informing! Will keep that in mind!
Also if you don't mind I'll add your post into the instructable.

0
LU7HQW
LU7HQW

Reply 6 months ago

Please, do it with all liberty. I'm glad to collaborate with the project. And this is my "Negrüniger NF1". (NF1 = Negro Fiero 1 = Ugly Boy 1). Half scrap parts, half new parts. The case was from a burned HP laptop power adapter.

WhatsApp Image 2020-07-13 at 16.22.22(1).jpeg
0
XONIX
XONIX

Reply 6 months ago

Looks cool! I like it! :)
Thank you for sharing!