Как работает алгоритм «электроники» РП-16

Главная идея РП-16 — разделение двигателя и системы спасения. Сигнал срабатывания формируется блоком электроники.

Блок состоит из контроллера Arduino Pro mini, датчика давления ВМР280, «пищалки», тиристора для включения запала и аккумулятора.

Упрощенная схема блока показана ниже. Подключение датчика давления на ней не показано (стандартное включение по программно эмулируемому SPI).

Давно и успешно летающий «барограф» (высотомер) дополнен тиристором. В анодной цепи — нихромовая проволочка, продетая сквозь петарду. В нужный момент электроника подает сигнал, тиристор открывается, проволочка накаляется, петарда взрывается. Избыточное давление формируемое ею сбрасывает обтекатель и выбрасывает парашют.

Питание устройства производится от стандартного литиевого аккумулятора типоразмера 18650. На микроконтроллер питание подается через диод Шоттки. Конденсатор довольно большой емкости в цепи питания Arduino нужен на случай большого «проседания» питания при включении накала запала.

Примерное расположение элементов:


Алгоритм программы контроллера приведен ниже.

и то, что справа:

После включения проверяется напряжение питания, если оно выше 3,9В (это в случае подключения контроллера к компьютеру), данные из EEPROM выводятся по последовательному каналу, а затем сбрасываются признаки «полета» и «выброса парашюта». После этого — «останов» программы с индикацией «нуля» (см таблицу звуковых сигналов).

Если питание ниже 3,9В (т.е. от аккумулятора 18650), то программа работает далее: проверяется признак «полета». Если полет состоялся, то «останов» с индикацией «2». Такая проверка введена на случай сбоя по питанию при ударе ракеты о землю — чтоб повторно «не затерлись» данные в EEPROM.

Если полета еще не было — проверяем был ли выброс парашюта? Если был — регистрация продолжается с адреса, указанного в EEPROM и записанного туда перед включением запала. Эта ветка алгоритма нужна на случай «провала» по питанию при включении запала и вызванного этим перезапуска микроконтроллера.

Если парашют еще не выбрасывался, проверяем «целостность» запала и в случае его исправности включаем датчик давления ВМР280 и фиксируем значения напряжения, давления и температуры до старта ракеты. Если обнаружены ошибки — программа «останавливается» с соответствующей звуковой индикацией.

Далее работает алгоритм обнаружения старта ракеты. Признаком старта является стабильное падение давления с каждым отсчетом и его отличие от первоначального на величину, соответствующую подъему примерно на 3 метра. На этом этапе данные о давлении пишутся в ОЗУ.

После обнаружения старта (loop), данные начинают фиксироваться в EEPROM. Одновременно данные из ОЗУ также переписываются в EEPROM.

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

Продолжается регистрация давления с интервалом 100 мс. После заполнения EEPROM ставится признак «полет состоялся» и производится «останов» с индикацией «6».

Расшифровка звуковых/световых/радиосигналов состояния системы:


Разные варианты конструкции блока показаны на фото

Видеозапись испытаний тестовой версии программы (тут старт при подъеме на 1 метра, падение — тоже 1 м)


Второй и третий старты РП-16 прошли с успешным использованием блока.