RGB-Steuerung über UDP
Eine Android-App zur Steuerung eines RGB-LED-Strips über WLAN und UDP für den Tag der offenen Tür der HTL Waidhofen.
Ausgangslage und Ziel
Für den Tag der offenen Tür sollte ein RGB-Licht in der Elektronik-Werkstätte direkt über ein Android-Smartphone gesteuert werden. Das Smartphone verband sich dazu mit dem lokalen WLAN und sendete die gewählte Farbe an einen Mikrocontroller.
Funktionen
- Konfiguration von IP-Adresse und UDP-Port
- Getrennte Steuerung der Farbanteile Rot, Grün und Blau
- Auswahl einer Farbe über ein Farbrad
- Regelung von Sättigung und Helligkeit
- Ein- und Ausschalten der Lichtsteuerung
Technische Umsetzung
Für das Farbrad wurde der damalige Android Holo ColorPicker von Lars Werkman verwendet. Nach einer Änderung wartete die App fünf Millisekunden, bevor sie den aktuellen Wert versendete. Änderte sich die Farbe in dieser Zeit erneut, begann das kurze Intervall von vorne. Dadurch sollte die Anzahl der UDP-Pakete begrenzt werden.
Vor dem Versand wurden die drei Farbwerte in der Form {RRRGGGBBB} kodiert. Jeder Kanal belegte drei Stellen und verwendete einen Wertebereich von 0 bis 255. Der Mikrocontroller zerlegte die empfangenen Daten und erzeugte daraus die benötigten Steuersignale.
Da der Mikrocontroller den LED-Strip nicht direkt mit ausreichender Leistung versorgen konnte, steuerte er Transistoren an. Diese schalteten die einzelnen Farbkanäle des Strips.
Historische Aufnahmen
Screenshots
Rückblick
Was ich dabei gelernt habe
Das Projekt verband mobile Entwicklung, Netzwerkkommunikation, Mikrocontroller und Leistungselektronik in einem direkt erlebbaren System. Ich lernte, Eingaben nicht ungebremst als UDP-Pakete zu übertragen und ein einfaches, eindeutig parsbares Nachrichtenformat festzulegen. Die Ansteuerung des LED-Strips zeigte außerdem klar die Grenze zwischen Logiksignal und benötigter elektrischer Leistung.