RGB-подсветка для APM с индикацией режима полета + подключение батарей с разным количеством банок + улучшенный мониторинг напряжения
1. Индикация текущего режима
Часто читал о разных некрасивых ситуациях, когда автор взлетал на APM не в том режиме, или неожиданно переключался не в тот режим, а автор этого не заметил. И решил для себя, что надо всегда знать, какой в данный момент у него режим. И еще несколько других параметров. Лучше всего это было сделать при помощи полноцветного RGB светодиода или ленты. Я использовал 1м влагозащищенной ленты, купленную в ближайшем электротехническом магазине. Лента была нарезана на 5 сегментов и они скреплены между собой “телефонным” 4-х жильным проводом из chipdip. Поскольку у меня H-рама, я натянул куски ленты вдоль сторон сбоку, и еще дополнительный кусок сзади снизу, чтобы ее было видно, когда коптер прямо над головой.
Схема драйвера RGB-светодиодов с оптронной развязкой (применил оптроны, т.к. хотел не допустить помех из переключающихся светодиодов на землю APM) была ранее: rcopen.com/blogs/5271/19510
В config.h LEDы инвертированы:
#define COPTER_LED_ON LOW
#define COPTER_LED_OFF HIGH
и переставлены на другие пины (под плату MultiWii Pro):
#define COPTER_LED_1 44
#define COPTER_LED_2 45
#define COPTER_LED_3 46
#define COPTER_LED_4 -1 // Motor LED
Цвета режимов я настроил под себя:
1 Acro - red
2 Stable - white
3 Baro - yellow
4 Loiter - magenta
5 RTL - blue
6 LAND - green
7 Other - aqua
2. Подключение батарей с разным количеством банок.
В настройках APM есть параметр напряжение FailSafe батареи. Что делать, если приходится летать то на 3s, то на 4s? Я сделал автоопределение количества банок и корректировку значение FailSafe напряжения в зависимости от этого. Некоторые информационные сообщения об этом выводятся в окно Messages в Mission Planner.
3. Улучшенный мониторинг напряжения.
В обычном leds.pde подсветка начинает мигать при наступлении FailSafe напряжения батареи. Я сделал три уровня мигания - для трех уровней напряжения батареи (уровень FailSafe + еще два предварительных). В batt_levels.pde их отделяет от уровня FailSafe 0.1V на банку и 0.2V на банку соответственно.
Мигает не текущий цвет режим, а раз в три секунды через него “пробивается” 1, 2, или 3 красных вспышки, соответственно для малой просадки, средней и FailSafe уровня напряжения.
4. Еще индикация.
Если приходит навигационная команда (Waypoint sent или Waypoint reached), будет несколько зеленых вспышек “пробиваться” раз в 3 секунды. Это я еще не проверял.
Если нет 2D или 3D GPS lock - 3 синих вспышки будут “пробиваться” раз в 3 секунды.
Если есть 3D lock, но Home position не установлен - будут 2 синих вспышки будут “пробиваться” раз в 3 секунды.
Если GPS glitch (ненормальный скачок координат) - будет 1 синяя вспышка “пробиваться” раз в 3 секунды.
5. Конкретно:
Код MegaPirateNG версии 3.1 с моими изменениями тут: yadi.sk/d/_GiN7bWfcWvZY
Мои изменения выделены комментарием: // AP;
Появились новые файлы: rgb_leds.pde, batt_levels.pde, batt_levels.h. Убран файл leds.pde. ArduCopter.pde переименован в ArduCopterAP.pde, чтобы имя совпадало к каталогом.
- Входы драйвера LEDов подключаются к пинам COPTER_LED_1, 2, 3 (B, G, R соответственно).
- Надо включить define COPTER_LEDS ENABLED.
- Установить параметр LED_MODE в не 0 значение.
- Чтобы включить расширенный мониторинг напряжения ходовой батареи, включить define BATT_LEVELS ENABLED, и настроить мониторинг напряжения или напряжения+тока.
Видео, снятое на GoPro вечером: