KillSwitchDuino - первый выпас на GitHub-e

Итак, спустя n-ое время после анонса, решил выложить то что причесал в проекте умного разумного киллсвитча на Ардуине в GitHub для общественности(проект открытый).

Так как я скетч переделывал раза 3 в промежутках когда муза в очередной раз приходила ко мне из далеких пучин миров Elite: Dangerous(из-за нее так и задержалось), потому в коде отсутствует полностью (только наметки) интерактивное меню прибора аля меню любого ESC. Предыдущая реализация меню меня полностью не устраивала, и я решил ее полностью переделать, потому все выкинул и поставил заготовочки-пустышки.

Весь проект выложен на GitHUB где постоянно дополняется и исправляется.
ССЫЛКА
github.com/NailAlex/KillSwitchDuino

Из того что есть и что можно посмотреть и собрать на макетке если кому интересно:

  • ловля RX сигнала через аппаратное прерывание, определение его длины,
  • генерация TX сигнала в сервисном режиме(чтобы TX/RX не использовать) с внешним потенциометром 10кОм
  • определение вольтажа RX батареи, реагирование на просадку(в течение 2сек измерений, по среднему арефметическому) по уровню1(блокировка+мигание зеленым) и уровню2(Имперский Марш).
  • включение троекратным УРА выключением зажигания режима поиска
  • сохранение настроек в EEPROM(пока не доделал новое меню - это чисто символически)
  • звуковая индикация переключения зажигания(короткие пики)

Более подробно про то что есть:

  • в константах прописаны уровни вольтажа Level1 как 6.6В для того чтобы хоть раз увидеть его отработку когда дойдет вольтаж батареи стенда до сего уровня. Нормальный уровень для отработки должен быть 6.4В. Так как я питаю стенд от 2sLiFE через внешний 5В линейный регулятор и вольтаж на изменение беру с балансирного порта, а не с входа питания ардуины, то проверить на стенде можно только Level2 путем вынимания проводочка из балансирной пипки - напряжение точно ниже 6.1В и поехал работать Имперский марш в цикле.

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

  • сервисный режим с прицепным потенциометром 10К включается подачей 5В на 12 ногу ардуины

  • как показала практика, измерение напряжения АКБ зависит от того откуда берутся 5В питания. Первоначально я подключал прямое питание 2s LiFe на Vin ардуины и его линейный рег AMS1117 выдавал 5В, но считываемые значения напряжения прыгали от 6.38В до 6.78В что категорически непреемлемо. То ли ардуина как то хитро пульсирует в шину 5В, то ли рег какой то бракованный на самой ардуинке - нифига не понял, но на Micro такая же хрень как и на Nano.

Было выяснено что внешний линейный рег LT1083CP/LM1084-5 с которого напруга в 5В попадает сразу на пин 5V на ардуину и не использует его линейник набортный, приводит к стабилизации показаний считываемых с аналогового порта до почти идеала - напряжение ровное как и должно быть. Потому я решил в конечном девайсе использовать только внешний линейный рег на плате.

В связи с этим прилагаемые 2 версии BaseBoard-а имеют внешние реги. Однако в варианте HV с тремя прямыми каналами питания от АКБ и большим регом LT1083CP(плата делается под мой паралет) стабильность выдаваемого напряжения не вызывает сомнений(такой рег на стенде используется), а вот заложенный в плату простого киллсвитча AMS1117-5 на 1А я еще не проверял. Надо будет к бздюльке припаять проводочки и подключить к стенду и замерять пульсации показаний считывания напряжения.

Это еще раз доказывает что питание чувствительной цифровой техники нельзя делать от одного АКБ вместе с зажиганием и цепи должны быть гальванически развязаны. Тот кто поскупился на лишние 30 баксов и 150г на 8кг самолет - это потенциальный преступник.

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

  • пищалки что я заюзал все 5В. Более часто встречаемые 12В на 5В тихие очень. в девайсе предполагается использование двух пищалок в параллель. Одна распаянная, вторая выносная на фюзеляж для лучшей слышимости при поиске. Пищалки подключаются через биполярник (KT3102, BC547 на макетку, BC847 на плате), так как потребление одной пьезопищалки 5В порядка 35ма, а порт ардуины выдает максимум 40ма и то крайне рекомендуется не превышать 20ма. Громкость пищалки - кровь из ушей, двух пищалок - двойная кровь из ушей.

  • также выпилил(точнее недопилил при переделке до конца) режим глушения при потере сигнала. Плюс думаю включить поисковой режим сирены при потере сигнала(внизу подробней).

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

  • к плате можно прицепить любой модуль BT (лучше всего HC-05) для выведения всей телеметрии наружу и просмотреть можно будет на любом мобильном девайсе. Скорость порта выбрана 38400 из-за того что порулярнейший модуль HC-05 не любит другие скорости и прекрасно работает с минимальной конфигурацией через ардуину или внешний USB FTDI-интерфейс командами AT.

  • есть глюк: если включить поисковую сирену и отвалить RX сигнал(я расцепляю на стенде проводки между пинами) - контроллер после некоторого времени может психануть. Пока не победил. Проще всего включить сирену при наличии NoRX события.

  • индикация трехцветным ЛЕДом описана в доках к проекту. там же схемы обоих разводок плат.

  • выложены разводки плат в SprintLayout 5. Вроде все подписано где что.

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

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

Мое мнение многим известно - питание RX свое, зажигание свое, а между ними должна стоять опторазвязка. ТОЧКА.

  • 1225