Pull to refresh

Comments 43

А не проще было взять полетный контроллер от квадрокоптера?
С подключенным альтиметром, акселерометром и кучей прочих датчиков
И с радиоканалом передачи данных и кучей другой интересной периферии. При этом максимально легкий и компактный
Возможно было бы проще, но не в моем случае. Я хотел именно собрать свой альтиметр, разобраться во всех нюансах, да и всегда интереснее что-то сделать самому)

Полетный контроллер будет сильно тяжелее и значительно больше потребление.
Я для RC самолетов делал на arduino+bmp(e)280, по i2c подключается к приемнику радиоуправления в телеметрийный порт (Radiolink). Измерения отображаются прамо на пульте. https://github.com/wyfinger/RadiolinkTelemetry
Там же вариант с gps, искать модель после незапланированной посадки сильно проще :)
На ракету тоже можно добавить пару микросерв для руления, приемник и gps датчик.

Плата 30x30 мм весом 3.5г будет тяжелее?
И по потреблению, если там тот же STM32 с чего бы там быть большому? Главное, запитать не через встроенный DC-DC, а напрямую
Такое можно собрать на ESP(рекомендую клоны Wemos D1 mini) — потребление может и больше, но размер меньше. Плюс WiFi — высотные данные в реальном времени. Плюс обновление прошивки по воздуху без разбора и подключения программатора.

Я делал наружу потому что это датчик для домашней автоматизации и лишний нагрев от WiFi мне не нужен. Если вам только высоту его можно и развернуть вовнутрь что бы меньше места занимало. Или разъемы можно взять поменьше или вообще без них запаять.
Только потребление у ESP8266 явно не для CR2032
Придется еще аккумулятор встраивать и заряжать его перед каждым запуском

Есть еще esp32 solo, там и плюшек на борту побольше, и powersave фичи есть.

А если применить контроллер в маленьком корпусе, например tiny-AVR, то можно сделать устройство на плате не больше CR2032.

Похоже аномалию алтиметра (отрицательная высота) можно объяснить.

Алтиметр измеряет давление (датчик давления BMP 280) и чем ниже ракета, тем больше давление. Раз пошли отрицательные числа, значит что-то вызвало скачок (увеличение) давления (подозреваю, что двигатель виной).

Так же интересна аномальная высота перед стартом во второй раз (в первый раз этой аномалии нет). Так что потенциально датчик давления можно использовать для дополнительной диагностики.

P.S. Нужны дополнительные тесты под ускорением — вдруг от ускорения меняются показания?
Большое спасибо за помощь! Да, я еще раз посмотрел формулу расчета высоты:



И как раз получается, что:



То есть, в моем случае давление на уровне моря равно 101325 Па и при превышении давления даже на единицу натуральный логарифм становится отрицательным, откуда и появляется значение -8 м в неудачном запуске.

По поводу аномалии перед стартом во второй раз я вижу две причины
  1. Опять же из-за работы двигателя повысилось давление, следовательно упала высота. В таком случае можно предположить, что реальный апогей метров на 10 выше измеренного
  2. Как вы сказали, возможно от ускорения меняются показания датчика. Надо будет провести измерения при тряске датчика

В общем, еще раз спасибо за комментарий, вы мне помогли понять некоторые «причуды» работы BMP280)
реальный апогей метров на 10 выше измеренного
— в верхней точке ведь двигатель не работает? Если альтиметр не в герметичной капсуле (щели, отверстия для воздуха ведь есть?), то давление должно быть нормальным (при желании можно откалибровать приборный отсек на предмет времени выравнивания давления). Но проще изолировать от двигателя и сделать щели для атмосферы.
VT100
Попробуйте повернуть ПН на 180° перпендикулярно продольной оси ракеты.
Да, вполне может быть. А отсутствие аномального пика в первый раз возможно объясняется тем, что после ремонта во второй раз датчик имел другое положение (ориентацию).

В любом случае — в верхней точке траектории двигатель отключен и ускорение нулевое (возможно, следует учесть, что на поверхности земли 1 g, в верхней точке 0 g — невесомость). Во время падения ускорение будет медленно возвращаться.
Нет, после ремонта ориентацию барометра не менял, он был все также горизонтально расположен в корпусе.

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

Перед стартом ускорение 1g (земное, направление «вверх»).
При старте в момент работы двигателя ускорение «вверх» увеличивается.
При выключении двигателя ускорение меняет знак (торможение об атмосферу), в верхней точке ускорение 0 (торможения об атмосферу нет).
По мере падения увеличивается скорость и появляется сила трения, возвращается вес и обычное ускорение в 1g (вспоминаем парашютистов в свободном падении или летающую пикирующую лабораторию для тренировки космонавтов на невесомость, правда там двигатели и рули высоты работают).

Покрути на земле датчик и получишь представление о разбросе показаний в зависимости от ориентации ускорения. Если при кручении вдоль какой-то оси показания меняются, значит для датчика «низ» меняется на «верх». Если показания не меняются, значит вращаешь как фигуриста вокруг. Но разница в показаниях должна быть небольшой. (Эх, центрифугу бы).

Если можно прененебречь сопротивлением атмосферы, то все время от выключения двигателя до падения на землю — ракета и ПН находятся в невесомости.

Отличное хобби! Прямо завидую. Особенно если добавить полезную нагрузку в виде БЧ.
Конечно можно сделать компактнее и с передачей данных (RAK4200 + датчик). И ещё можно прочитать статью NXP об инициализации I2C.
А не могли бы вы пояснить, что такое БЧ? Это что-то бортовое?)
Сейчас я делаю модуль бортовой камеры с радиопередатчиком nRF24l01 на 2.4 ГГц, но он будет выступать в качестве маяка. Передавать с ракеты буду только один бит, просто, чтобы другим nRF24l01 я мог понять где сигнал сильнее и где мне стоит искать упавшую ракету. Конечно с радио передачей есть много нюансов (выбор передающей и принимающей антенны, компоновка всего оборудования в корпус ракеты и тд.), но я думаю, что справлюсь с этой задачей)
БЧ — боевая часть
Интересно будет почитать.

+1 для imageman


P.S. Нужны дополнительные тесты под ускорением — вдруг от ускорения меняются показания?

Мембрана датчика давления является инертной массой и работает как акселерометр. Смотрите, какой "пичок" проходит во время старта. Попробуйте повернуть ПН на 180° перпендикулярно продольной оси ракеты.

Очень интересная идея! Получается, что мембрана установлена параллельно металлической крышке датчика?
В моем случае BMP280 был установлен так, что эта крышка была горизонтальна, и вектор ускорения был перпендикулярен ей. Так что, если мембрана расположена, так как я предположил, то ускорение во время старта возможно и повлияло на показания в этот момент!
Спасибо за идею)
P.S. Сейчас еще раз пересмотрел график с аномалией во время старта — «пинок» длиться примерно 1-1.5 с, что как раз укладывается во время работы самого двигателя — 1.2 с. Так что это еще одно подтверждение идеи с мембраной и ускорением!
А скорость набегания воздуха при полете на показания не влияет?

Теоретически — может (эффект Бернулли?).
Практически — надо смотреть как полость ГО сообщается с атмосферой. Если сделать отверстие на "носу" — будет небольшой(?) наддув. Если сделать 2..3 отверстия в нижней части — может быть эжекция из полости ГО.

Если установить барометр прям на головной обтекатель, чтобы он был снаружи ракеты и прямо обдувался воздухом, то набегание воздуха будет влиять на показания. В моем случае прямого отверстия из атмосферы к барометру нет, воздух проникает к нему лишь через маленькие щели в корпусе, через стык ГО с основной трубой ракеты и т.д, так что прямого обдува датчика нет

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

Главный вопрос не придут ли за автором органы.
Это не главный, а дежурный вопрос под всеми такими статьями:) На пикабу ребята трубу больше роста запускают и на такие вопросы у них ответ: «Пока мы не совершеннолетние — надо успеть» :)
Они кстати и Амперку стебут за местные статьи:)

В том то и беда, я и сам непрочь что-нибудь летающее собрать, и есть интересные идеи по конструкции ракет, но законы отбивают всякое желание((.
Так что ограничусь летающим кировым — в 250 грамм можно довольно большой дирижабль упихать.

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

Можно еще использовать gps-модуль, тогда вы будете записывать весь трек полета, а не только высоту и избавиться от влияния ускорений на измерения. Для снижения массы рекомендую с макеток все "сдувать" на платы (ток нада немного руку набить).

Те, gps модулю, которые я видел имеют частоту обновления примерно 1 Гц, а для моих движков это мало, потому за секунду ракета может взлететь на очень большую высоту. Максимальная вертикальная скорость по расчетам составляет 100 м/с.
а вы ставьте два модуля — тогда будет шанс удвоить частоту обновления!

во-вторых — это только пока горит топливо она быстро летит, когда двигатель выключится и в пике она будет лететь уже не так быстро.
Интересно, а сколько ПН кушает? Что еще можно с CR2032 запитать/запустить из датчиков? (какой запас по мощности?)

Максимальный ток разрядки 2032 — не более 1..2 мА (по памяти), номинальный еще меньше. Для питания более мощных нагрузок следует добавлять конденсаторы (имея увеличение утечек как плату).
Coin cells and peak current draw
High pulse drain impact on CR2032 coin cell battery capacity

О спасибо, надо зарубку на память сделать.
BMP при частоте считывания 10 Гц потребляет 27 мкА, STM32 2,5 мА, а CR2032 может выдавать 3 мА
Ядро STM32L031K6 на частоте 32 МГц в Run mode потребляет 5 мА (таблица 24 в даташите), плюс периферия.
Energizer, например, советует своим 2032 батареям длительно давать токи не более 0,19 мА. Токи больше — только импульсные.
Советую все HAL_Delay заменить на переход в низкопотребляющий режим, тогда батарейки хватит на большее время.
Еще обратите внимание, что вы включаете тактирование всех GPIO портов, хотя все явно не используете, а также включаете USART2, хотя его тоже не используете в коде. Это лишнее энергопотребление, которое можно снизить.
Спасибо за советы, учту их в следующих проектах. В этом же альтиметре я особо не гнался за снижением энергопотребления, мне хватало того, что STM'ка L-серии имеет пониженное энергопотребление, да и BMP280 тоже ест не много энергии. При испытаниях нареканий к времени автономной работы альтиметра не было, оно в основном было ограничено памятью МК, потому что 8 Кбайт заполнялись примерно за 7 минут работы
Превышение энергопотребления над возможностями батареи приводит к тому, что напряжение питания может временно проваливаться ниже, чем допустимо для работы контроллера и датчиков, что может привести к трудноуловимым глюкам. Советую как минимум заходить в кубе в раздел Power Consumption Calculator (PCC) и смотреть там максимум энергопотребления (чтобы он не превышал возможности батареи).
А если керамикой/танталами обвешать?
Это так себе решение без достаточных интервалов с пониженной нагрузкой. От резких коротких импульсов частично поможет, но превышать номинальный ток источника — всегда плохая идея. Разные производители для cr2032 пишут номинальный ток порядка 0,18 — 0,2 мА. Превышать его можно импульсно (до 6-7 мА) с длительными промежутками пониженного потребления. В вашем случае можно уложиться в эти требования, если переводить контроллер в sleep режим всегда, когда контроллер ничем не занят, и работать на пониженной частоте, вам тут 32 МГц «не в коня корм».
Ну понятно, что в среднем меньше должно получиться…
Sign up to leave a comment.

Articles