Arducopter Usercode für z.B. WS2811 (Eigener Code) Flugmodus anzeigen

Grundidee:
Arduino Pro Micro als ws2811 Steuerung zur Vorder/Rückseitenbestimmung -> Vorne 3 Rote Leds und hinten 3 Blaue Leds mit kurzem Flash auf grün bei Flugmoduswechsel durch Ansteuerung vom MegapirateNG Arducopter.

Wenn man die Arducopter Firmware schon selbst kompiliert kann man durch die schon fertig integrierten Routinen sehr einfach eigenen Code einschleusen. Das wichtige hier is das der Code Lightweight bleibt damit andere wichtige Hauptroutinen zur Flugsteuerung  nicht verlangsamt werden.

(Mit dem WS2811 nur durch einen 2. Arduino, das wird hier das Beispiel)

Durch das entkommentieren der gewünschten USERHOOK Funktion in der APM_Config.h wird die Routine in der usercode.h aktiviert. Die Init sollte man auch entkommentieren da hier der Serialport RX1TX1 als uartD aktiviert wird.

Beispiel für einen Mediumloop@10Hz:

Jezt kann man in „usercode“ in der Mediumloopfunktion eigenen Code integrieren, ich bringe hier einen Code ein der eine Unterfunktion für den Flugmodus abfragt. Im Prinzip gibt die Funktion nur aus welcher Flugmodus gewählt ist, bei einer Änderung des Flugmodus wird einfach das Wort „CHANGEMOD“ über uartD gesendet. Der Clou is nun einen zB. Arduino Micro Pro oder Mini an diesen Port anzuschliessen.

Zuguterletzt noch ein kleines Beispiel das am Copter vorne 3 blaue Leds und hinten 3 Rote Leds eines WS2811 Verbundes immer leicht glimmen lässt und das dann bei ändern des Flugmodus kurz grün blinkt. Diese Funktion sollte mir erleichtern zu erkennen in welchem Flugmodus ich bin.