[image]

Простой цифровой ракетомодельныйный высотомер на Ардуино.

Высотомер своими руками.
 
RU Брат-2 #11.11.2024 18:46
+
+1
-
edit
 

Брат-2

опытный

У меня родилась идея на нашем форуме создать новую тему: «Простой цифровой ракетомодельный высотомер». Понятно, что на форуме по этой теме, уже есть значительный объем информации, но она размазана по темам и не систематизирована. Попытаюсь изложить материал (подробно и доступно) для прикладного использования по практическому изготовлению цифрового ракетомодельного высотомера. Причем, информация предназначена для людей имеющих познания в программировании и радиотехнике лишь в объеме умения спаять два провода и имеющих безусловное желание иметь высотомер, изготовленный своими руками.
Кроме того тема для поддержания элементарной жизни на форуме, а для меня способ избавиться от личной переписки по персональным разъяснениям и советам при изготовлении высотомера.
Высотомер в моделях ракет расходный элемент, так как велик риск потери самой ракеты вместе с высотомером. Поэтому, высотомер должен иметь низкую себестоимость, не сложен в изготовлении, потерял - изготовил новый, причем его изготовление посильно даже умненьким школьникам! :)
В предлагаемом высотомере будут только минимально необходимые функции и примитивные технологии изготовления, но с возможностью модернизации до версий ++! Убедительно прошу всех задавать уточняющие вопросы и делать предложения строго по теме, ну и по делу!
   2424
RU Брат-2 #11.11.2024 19:05  @Брат-2#11.11.2024 18:46
+
+1
-
edit
 

Брат-2

опытный

Брат-2> У меня родилась идея ....
Предыстория.
Когда меня отстранили от полетов на дельтапланах (после авиационной катастрофы :) ), увлекся сам и увлек своих сополетников авиамоделизмом и ракетомоделизмом, именно тогда и возникла необходимость иметь сопутствующее электронное оборудование и в частности высотомер для своих моделей. Serge77 продвигал высотомер на основе аналогового барометра МПХ (стоил 2009г.-1400руб) и МК ATmega8 . Мной было построено подобных 3шт. Все хорошо, но в нем не было функции выброса парашюта, мы использовали светодиодный датчик апогея его же разработки. Впоследствии молодой программист Владимир Бодров, добавил в прошивку высотомера Serge77 функцию выброса парашюта, а мной, на водяных ракетах, система доведена до рабочего состояния. Был еще высотомер GOGI, но при самостоятельном изготовлении были проблемы в работе прошивки, довести до рабочего состояние его изделие так и не удалось. Были у меня еще и иные попытки построить высотомер, но без практического результата.
Мне стало понятно, что без знаний и умения программирования МК самостоятельная разработка и постройка высотомера неразрешимая задача. Быстро стало и понятно, что освоить языки программирования мне не позволяет интеллект, оказалось, что тупых много и для них есть альтернативные способы программирования, а именно визуальное программирование. В частности системы «Буран» программировались на подобном языке «Ворон». Там дураков нет, но подобный инструмент значительно сокращает время разработки и отладки программного обеспечения. Мне приглянулись языки визуального программирования HiAsm и FLProg, так как крайний предназначен для Arduino, на нем и остановился! FLP наша российская разработка, постоянно развивается и поддерживается, для нас, россиян, вернее русских, совершенно бесплатная. Для ее освоения необходимы знания классической цифровой техники, но это посильно для самостоятельного изучения. Приглашаю всех почемучек желающих освоить программирование МК на форум FLProg!
   2424
RU Брат-2 #11.11.2024 21:32  @Брат-2#11.11.2024 18:46
+
+1
-
edit
 

Брат-2

опытный

Брат-2> У меня родилась идея ...

Первоначально была мысль создать описание изготовления простого высотомера на различных Ардуино, но наиболее удобно и просто реализовать проект на Arduino Nano 3.0 с ATmega328. На вид, да и по функционалу похожая Arduino Nano с ATmega168, она дешевле, но имеет в половину меньше память и прошивка не входит по объему, можно использовать Arduino pro Mini c ATmega328 или китайский клон LGBTF328P, но с ними некоторые особенности при заливке прошивки. Поэтому рационально остановиться на Arduino Nano 3.0 с ATmega328, назовем высотомер ПЦРВ-01 (простой цифровой ракетомодельный высотомер). Исполнительным устройством для активации выброса парашюта будет или накаляемый мост (пировыброс и пневмовыброс), или сервомашинка, соответственно добавим М или С. Получим ПЦРВ-01М.
Для изготовления высотомера потребуются заводские китайские платы: Arduino Nano 3.0 с ATmega328, картридж MicroSD Cord Adapter и MicroSD небольшого объема 10 класса, цифровой барометр ВМР280, аккумулятор Li-Pol 150 ma/h, светодиод любой, микровыключатель, для силового ключа МОП транзистор АО3400, 3 CMD резистора и модельный 3pin разъем для присоединения запала, монтажные провода. Комплектующие показаны на фото, все приобретается на AliExpress, примерная стоимость комлектующих порядка 200-300руб. Рационально закупить комплектующие на 3-5 высотомеров. Все платки заводские, за исключением платы питания, ее необходимо изготовить самостоятельно.
Прикреплённые файлы:
 
   2424
RU Брат-2 #13.11.2024 19:27  @Брат-2#11.11.2024 18:46
+
-
edit
 

Брат-2

опытный

Брат-2> У меня родилась идея ...
Принципиальная схема высотомера.
Предлагаемый простой высотомер измеряет (косвенно по изменению давления атмосферы) и записывает на MicroSD текущую высоту ракеты в полете относительно точки старта, а также имеет функцию выброса одного парашюта в апогее, предназначен для установки в ракетах с корпусом
≥ Ǿ30мм.
Принципиальная схема высотомера показана на Рис.1 имеет стандартное соединение трех плат. Для исключения ошибок, при соединении, на схеме убрал порядковые номера выводов плат, обозначение выводов на схеме соответствует обозначениям на самих платах. Питание UIN BMP280 3,3 в. подается от внутреннего стабилизатора Arduino Nano, так как своего стабилизатора плата не имеет. Самодельная плата питания М4 имеет выключатель питания SA1, силовой ключ запала выброса парашюта VT1 AO3400. При включении питания, если цепь запала цела, а MicroSD вставлена в слот, загорается и постоянно горит контрольный светодиод VD1. Можно осуществлять старт ракеты. В момент срабатывания системы выброса парашюта (в апогее) на 1сек гаснет светодиод, а также на 1 сек загорается светодиод ТХ на плате Arduino (дополнительный контроль). Если запал перегорит, целостность цепи нарушится и VD1 больше не загорится. Команда на выброс парашюта подается 1 раз (в апогее) на 1 сек на один старт. При следующем включении питания все процессы повторяются. Количество стартов за один выезд на космодром не ограниченно, но данные всех стартов будут записаны последовательно в один файл. Запись на MicroSD начинается при достижении ракетой высоты 3м, выключение записи при спуске ниже 3м+ 1сек. Время начальной установки и привязки высоты к точке старта 3сек.
Изменения в схеме высотомера позволили поднять число опросов BMP280 с 35 до 50/сек, причем с любым типом MicroSD. Контроль наличия MicroSD в слоте осуществляется подачей земли на точку 6 платы питания. На выводе 9 слота появляется земля при вставленной MicroSD.Показано на фото 2.
Предупреждение!
Цифровой датчик ВМР-280 чувствителен и изменяет свои показания при попадании в дырочку прямых солнечных лучей, а при попадании паров, к примеру, циакрина, спирта, вообще может отказать в работе!
Прикреплённые файлы:
Контроль.png (скачать) [539x480, 456 кБ]
 
 
   2424
+
-
edit
 

Nec

втянувшийся

Брат-2> Изменения в схеме высотомера позволили поднять число опросов BMP280 с 35 до 50/сек

Зачем так часто? Чтобы что?)
   127.0.0.0127.0.0.0
+
-
edit
 

M&D
mihail66

аксакал

Брат-2> .... Запись на MicroSD начинается при достижении ракетой высоты 3м, выключение записи при спуске ниже 3м+ 1сек.

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

Брат-2> .... Изменения в схеме высотомера позволили поднять число опросов BMP280 с 35 до 50/сек...

А в чем собственно заключаются эти изменения?
   130.0.0.0130.0.0.0
RU Брат-2 #14.11.2024 20:02  @Брат-2#13.11.2024 19:27
+
-
edit
 

Брат-2

опытный

Брат-2>> У меня родилась идея ...
Изготовление платы питания высотомера.
Необходимо самостоятельно изготовить плату питания высотомера. Размеры, топология токопроводящих дорожек зависит от имеющихся в наличии комплектующих. Плата изготавливается из одностороннего фольгинированного стеклотекстолита. Топология дорожек имеет вид прямоугольников, проще всего по линиям прорезать медное покрытие резаком, зачистить и залудить. Показано на Рис.1., а на Рис.2 показано ориентировочное место установки компонентов и точки присоединения к схеме. Безусловно, кто владеет технологией ЛУТ, может изготовить печатную плату, однако сомнительно, что овчинка стоит выделки. Необходимо, для зарядки аккумуляторной батареи, использовать зарядное устройство со специализированной схемой для зарядки. На корпусе такого зарядного устройства указано выходное напряжение 4,2 вольта, обычно они имеют контрольный светодиод, который при заряде горит красным, а по окончании загорается зеленым цветом. Подобные зарядки использовались для устаревших сотовых телефонов. Современные зарядные устройства имеют выходное напряжение +5 вольт, а схема зарядки установлена в самом телефоне. При использовании зарядного устройства на 5 вольт, аккумулятор перезарядится и выйдет из строя.
Прикреплённые файлы:
 
   2424
+
-
edit
 

Брат-2

опытный

Брат-2>> Изменения в схеме высотомера позволили поднять число опросов BMP280 с 35 до 50/сек
Nec> Зачем так часто? Чтобы что?)

50 опросов в секунду не столь много, вес одного старта на MicroSD 5-100 Кб в зависимости от продолжительности полета. Я накупил MicroSD объемом 512 Мб, кто столько выпьет за один раз? :D
Чем больше опросов, тем ровнее и точнее график, тем точнее определяется момент выброса парашюта.
   2424
+
-
edit
 

Брат-2

опытный

M&D> Очень часто ракета приземляется на пригорке, или вообще на дереве, ...
Миша, по моей задумке описание изготовления именно простого высотомера для самых маленьких, то есть это базовый, начальный вариант. Изменить конкретные настройки пустяковое дело. :)

M&D> А в чем собственно заключаются эти изменения?

Это ты прикалываешься? :D
   2424
+
-
edit
 

M&D
mihail66

аксакал

Брат-2> Миша, по моей задумке описание изготовления именно простого высотомера для самых маленьких, то есть это базовый, начальный вариант. Изменить конкретные настройки пустяковое дело. :)

Я это написал как раз для "САМЫХ МАЛЕНЬКИХ", чтобы имели это ввиду и сразу изменяли настройки.

M&D>> А в чем собственно заключаются эти изменения?
Брат-2> Это ты прикалываешься? :D

Вовсе не прикалываюсь. Ты пишешь про изменения в схеме, но не пишешь что именно было изменено.
   130.0.0.0130.0.0.0
+
-
edit
 

Брат-2

опытный

M&D> Я это написал как раз для "САМЫХ МАЛЕНЬКИХ", ....
Миша, самые маленькие не будут запускать ракеты на 10км, и на 1км тоже, а метров на 100 ну 500. То есть маловероятно, что с этой высоты точка приземления изменит свою высоту. Да ладно, без поисковой системы и со 100м можно потерять ракету, а тем более маленькую. А описание программной схемы еще впереди.
   2424
+
-
edit
 

M&D
mihail66

аксакал

Брат-2> ....А описание программной схемы еще впереди.

Отлично!
Надеюсь там увидеть принципиальные изменения, позволившие повысить частоту опроса.
   130.0.0.0130.0.0.0

Nec

втянувшийся

Я на бмп180 добивался частоты опроса что-то около 8мс = 125Гц. Думаю, для 280ого эта цифра тоже вполне реальна.
А если постоянно не опрашивать температуру, то ещё быстрее выйдет. Почти в 2 раза.
   127.0.0.0127.0.0.0
Это сообщение редактировалось 15.11.2024 в 18:51
RU Брат-2 #15.11.2024 18:48  @Брат-2#14.11.2024 20:02
+
-
edit
 

Брат-2

опытный

Брат-2>>> У меня родилась идея ...
Монтаж плат высотомера.
Наличие заводских китайских плат для высотомера, да и самодельной платки питания еще не означает иметь в наличие высотомер. Все платы необходимо конструктивно объединить и соединить в соответствие с принципиальной схемой. Понятно, что есть общеизвестный способ установки отдельных плат на общую плату из фольгинированного стеклотекстолита, при этом все соединения выполняются токопроводящими дорожками, топология которых выполняется в программе Layot и технологии ЛУТ- травление. Для маленьких подобный путь к реальному высотомеру мало приемлем, достаточно сложен. Мне знаком, но при использовании плат Ардуино подобный способ прямой путь к изготовлению кирпича. Ардуино гибкая система, функции устройства задаются программированием, есть возможность постоянно модернизировать устройство, а для этого подчас необходимо менять Pin, а при печатном монтаже это весьма затруднительно, а замена плат? Отказы никто не отменял. Все это превращает изделие в замес и прямой путь трудам в мусорное ведро. С самого начала пользуюсь макетной технологией, которая единственно пригодная как для маленьких, так и стареньких с творческим мышлением! При аккуратном исполнении надежность устройства на приемлемом уровне, но изготовление значительно быстрей, дешевле, проще, легко модернизировать, да и при необходимости утилизировать, платы остаются в первоначальном виде, пригодны для дальнейшего использования.
Для своих моделей самолетов и ракет в качестве несущих панелей иногда использую фанеру 3мм, но чаще гофрированный полистирол 3мм. Он легок и достаточно прочен, легко обрабатывается и имеет внутренние каналы, в которые можно убрать монтажные провода. То есть все соединения выполняю тонкими многожильными проводами разной расцветки. К примеру (+) провожу красными, (-) – черными, и.т.д. А вот сами платы прикрепляю к панели нитками, банально пришиваю. Узелки закрепляю циакрином. Просто и надежно!
Для основы простого высотомер использовал гофрированный полистирол 3мм, белого цвета.
Прямоугольник 27х 120мм. Для механического упрочнения несущей плоскости из полистирола в крайние каналы вставляю отрезки купленных бамбуковых палочек. Все платы крепятся нитками, прошивкой в дырочки плат и краем платы. Все понятно из фото. Плата несколько длиннее, место для установки маяка 433мГц. Далее монтаж и высотомер готов!
Прикреплённые файлы:
 
   2424
+
-
edit
 

Брат-2

опытный

M&D> Отлично!
M&D> Надеюсь там увидеть принципиальные изменения, позволившие повысить частоту опроса.

Ну, издеваешься! :)
Когда строил свой стенд, тебе об этом сообщал. Если не использовать в блоке MicroSD вход Comment, то частота опросов значительно повышается, столбцы формируются сложением строк и на вход Value. Завтра будет время, расскажу подробнее.
   2424
+
-
edit
 

M&D
mihail66

аксакал

Брат-2> Ну, издеваешься! :)
Брат-2> Когда строил свой стенд, тебе об этом сообщал. Если не использовать в блоке MicroSD вход Comment, то частота опросов значительно повышается, столбцы формируются сложением строк и на вход Value. Завтра будет время, расскажу подробнее.

Так ведь стенд это была отдельная песня. И если я правильно помню, то там ускорение опроса получалось за счет тактирования контроллера от модуля XH711 по прерыванию.
Что касается полетного контроллера, то низкая частота опроса характерна как при использовании SD, так и при использовании EEPROM, и поэтому это никак не связано с организацией записи на SD.

Жду подробный рассказ про ускорение опроса.
   130.0.0.0130.0.0.0
+
-
edit
 

Брат-2

опытный

Nec> Я на бмп180 добивался частоты опроса что-то около 8мс = 125Гц. Думаю, для 280ого эта цифра тоже вполне реальна.
Nec> А если постоянно не опрашивать температуру, то ещё быстрее выйдет. Почти в 2 раза.

Раньше мы использовали ВМР180. Однако с Arduino Nano 3.0 с ATmega328 частота опросов была примерно такой же, в пределах 30-40, причем частота зависела от типа SD- карты. Главными тормозами является тяжелая библиотека этой SD- карты. Вероятно с ESP32 или ESP8266, STM можно поднять частоту опроса, но 50, причем стабильно, вполне достаточно или даже оптимально! :)
Измерение температуры лишнее, лучше добавить ADXL345! Даже можно добавить к этому, простому, место на плате зарезервировал.
   2424
+
-
edit
 

Брат-2

опытный

...
M&D> Жду подробный рассказ про ускорение опроса.

Оно- то да, но связано однозначно! Завтра, устал писать сочинение! :)
   2424

Nec

втянувшийся

Ардуино на атмега168 или 328. Не важно. Памяти хватит на любой.
Вместо медленных и прожорливых microSD - w25q128 (64, 32, 16 - кому как понравится). Со 128ой, при записи 2-х байт высоты, 100раз в секунду, памяти хватит, примерно, на полтора часа. С головой!
Вместо печатной платы - готовая плата самой ардуины. С штырьками, которые в комплекте. На произвольные удобные пины, через штырьки припаиваем барометр и память. I2C и SPI - программные. Чтобы назначить нужные нам пины для шин. Скорость обеих шин около 1мгц. Для I2C самое оно, а для SPI, желательно, побыстрее. Но soft-spi вряд-ли быстрее получится. Питание барометра и памяти - GPIO, выставленные в лог. 1 и 0. Ничего не сгорит - проверенно! До 40мА AVR тянет.
Барометр настраиваем на самые низкие по качеству измерения - все равно пляшет пару метров от ветра и шумов.
Шлем барометру запрос на изменение.
Пока он конвертирует - пишем то, что уже накопилось. Если учесть, что флеш пишет секторами по 256 байт (могу ошибаться - не помню уже) то писать нам придётся каждые 128 замеров. Запись будет длиться 1МГц*8*256 = 2,048мс.
Итого пишем 1 раз в секунду (даже чуть больше). Запросы на замер и на чтения барометра пролетают за доли миллисекунды. Преобразование в высоту - ещё не более 1мс со всей сложной математикой, которую не любят Авр. 90 с лишним процентов времени контроллер не задействован!
С ключом, думаю, вопросов не должно возникнуть.
Питание самого контроллера. Коль у нас ЛиПошки 4,2В (я скупаю бу-шки. У меня редко когда выше 3,9 поднимается) выдираем с платы стабилизатор на 5В и взамен либо LDO на 3,3В, либо гасим напряжение диодами.

Вывод информации из флеш в терминал - благо ch340 и USB уже на борту.

В итоге никаких соплёй и все шустро работает!
   127.0.0.0127.0.0.0

Nec

втянувшийся

Тут и ЛоРа, и gps, и барометр, и MOSFET на выброс парашюта. И ещё куча места для чего угодно. В память не пишу - не вижу смысла т.к. все, что мне нужно, приходит онлайн на телефон в полете. Но если очень приспичит - можно писать во встроенную в АВР eeprom. Но немного.
Прикреплённые файлы:
 
   127.0.0.0127.0.0.0
+
-
edit
 

Брат-2

опытный

Nec> Тут ....
Брат-2>
Убедительно прошу всех задавать уточняющие вопросы и делать предложения строго по теме, ну и по делу!
   2424
+
-
edit
 

Nec

втянувшийся

Брат-2> Убедительно прошу...
Я сделал несколько предложений по вопросу этой темы. А пользоваться ими или нет, решать не мне.
   127.0.0.0127.0.0.0
RU Брат-2 #18.11.2024 15:20  @Брат-2#11.11.2024 18:46
+
+1
-
edit
 

Брат-2

опытный

Брат-2> У меня родилась ...
В качестве рекламы программы FLprog (программирование МК нормальными людьми) привожу функциональную схему простого цифрового высотомера. Это рабочее поле FLprog, программа составляется из готовых блоков. Квадратик (блок) это кусок программного кода. Функционально это логические элементы, генераторы, фильтры, датчики и.т.д. Блоки бывают штатные, которые встроены в программу, или разработанные пользователями, как правило, блоки созданы на основе готовых библиотек написанных профессионалами. Куски кодов (блоки) соединяются связями в единую структурную схему, на основе которой FLprog формирует код программы (скетч), пригодный для заливки в МК. Автоматически сформированный скетч не всегда оптимален, но здесь принцип: «Вам ехать или шашечки?».
Все блоки программы пронумеровал.
1. G-S, генератор, одновибратор, установлена длительность одного импульса при запуске 3 сек. (по желанию любое). Это время блокировки схемы на момент переходных процессов при включении высотомера.
2. G-SM , генератор, симметричный мультивибратор, задает тактовую частоту для всей схемы высотомера.
3. RTrig, R-триггер, формирует импульс длительностью в один реальный шаг всей схемы.
4. BMP280, блок для датчика, выход данных в формате Float - данные с десятыми.
5. И.т.д.
Дальнейшее описание блоков бессмысленно, интересно, у каждого есть возможность самостоятельно освоить программу FLprog. Далее кратко опишу работу схемы высотомера.
Данные от альтиметра ВМР280 слегка фильтруются, умножаются на 100, переводятся в «см», на узле (5) меняется формат с Float в Long Integen, а так же происходит привязка к высоте точке старта, (7,8,9) детектор апогея, (10,11,12) формируют импульс выброса 1 сек, который выводится на pin D2 Arduino, выход TX1 для контроля, есть привязанный светодиод на плате. Блок (14) определяет высоту начала и окончания записи. Блоки (15,16) управление блоком записи Var>SD. Данные для записи формируются преобразованием данных в строки (19) их сложением (20) и на вход блока блока microSD.
Алгоритм и функция высотомера ПЦРВ-01М заключается в минимальной достаточности для выброса одного парашюта в апогее с накальным мостом в качестве исполнительного устройства.
В архиве скетч pr1 предлагаемого высотомера для загрузки через Arduino IDE, а также в бинарном виде. Файл «FLP» для открытия в программе FLprog.
 
   2424
Это сообщение редактировалось 18.11.2024 в 17:47
AD Реклама Google — средство выживания форумов :)
RU Брат-2 #19.11.2024 12:27  @Брат-2#11.11.2024 18:46
+
-
edit
 

Брат-2

опытный

Брат-2> У меня родилась идея ....
Для закачки прошивки высотомера в Arduino Nano 3.0 с ATmega328 служит программа Arduino IDE, в архиве версия 1.6.5- r5, можно скачать на официальном сайте 1.8.11.0 или 1.8.19.0, указанные версии русифицированы, там есть и материалы по установке скетча и проверки высотомера, все это старые описания, но они не потеряли актуальность.
Архив скачайте с диска.

Скачайте файл или обновите браузер

Скачайте файл или обновите браузерОбновите браузер, чтобы открывать документы в облаке или скачайте файл и откройте его на компьютере.Для высотомера.zip Скачать файл Установите Яндекс Браузер Регулярные обновленияБезопасностьСинхронизацияБраузер умеет автоматически обновляться до последней актуальной версии.Технология Protect проверяет сайты и файлы на вирусы, блокирует страницы мошенников.Режим Турбо при низкой скорости соединения ускоряет загрузку сайтов и экономит трафик. Скачать Яндекс Браузер Скачайте файл или обновите браузерОбновите браузер, чтобы открывать документы в облаке или скачайте файл и откройте его на компьютере.Для высотомера.zip Скачать файл Установите Яндекс Браузер Регулярные обновленияБезопасностьСинхронизацияБраузер умеет автоматически обновляться до последней актуальной версии.Технология Protect проверяет сайты и файлы на вирусы, блокирует страницы мошенников.Режим Турбо при низкой скорости соединения ускоряет загрузку сайтов и экономит трафик. //  Дальше — disk.yandex.ru
 
   2424

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru