← Zurück zu den Projekten
Archiv

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.

  • Android
  • Java
  • UDP
  • WLAN
  • Mikrocontroller
  • RGB-LED-Strip

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.

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.