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 вечером:

www.youtube.com/watch?v=zVX9PcoMawU

  • 3238
Comments

Здравствуйте, очень понравилась ваша идея. Очень хочется ее применить к своему аппарату на apm, но понимаю что совсем далек еще от такого уровня