RGB Stripes mit Arduino und iPhone
Es ist mal wieder an der Zeit, etwas zu bloggen: Bei meinem aktuellen Projekt befasse ich mich damit, einen RGB Stripe mit meinem iPhone fernsteuern zu können. Zum Einsatz kommt ein RGB Streifen von Watterott mit einem LPD8806 Chipsatz. Der Streifen besitzt pro Meter 32 RGB LEDs die sich alle einzeln mittels 7bit PWM ansteuern lassen. Außerdem lässt sich der Streifen alle 2 LEDs abschneiden und beide Teile weiter benutzen. Das macht ihn zu einem sehr flexiblen RGB Stripe. In meinem Fall kommen 2m zum Einsatz.
Arduino
Die Ansteuerung des Streifens erfolgt über ein Arduino Ethernet. Für den LPD8806 Chip gibt es bereits eine Arduino Library, was einiges an Arbeit erspart. Der Arduino empfängt über seine Netzwerkschnittstelle Farbänderungen und gibt diese an den Stripe weiter. Zum Schluss sollen neben einfachen Farbänderungen auch Animationen wie Blending und Lauflicht möglich sein. Das größte Problem hierbei ist, wie sich herausstellt, auf dem iPhone ein vernünftiges Interface dafür zu schaffen, was sich einfach und intuitiv bedienen lässt. Die gesamte Netzwerk Kommunikation läuft Socketbasiert über ein eigenes UDP basiertes Protokoll was mczonk größtenteils entwickelt hat.
Für die Verkabelung auf dem Arduino habe ich mir eine Platine gebaut, die auf das Arduino aufgesteckt wird. An dieser Platine befindet sich neben einer Stromversorgung auch der Anschluss für den RGB Stripe. Über diese Stromversorgung bekommt sowohl der Arduino als auch der RGB Stripe seinen Strom. Da der RGB Stripe bei voller Helligkeit bei 2m insgesamt gute 3A benötigt, habe ich mich für eine externe Stromversorgung entschieden um den Arduino nicht so stark zu belasten.
Selbstverständlich sind alle Anschlüsse auf der Platine steckbar und können jeder Zeit abgenommen werden. Es sind keine Kabel direkt auf die Platine gelötet – mit Ausnahme der Brücken auf der Platine selber. Für den Fall, dass es jemand nachbauen möchte, habe ich das Platinenlayout mal dazu gepackt. Die dickeren Linien sind Lötbrücken auf der Unterseite, die dünneren Linien sind Kabelbrücken auf der Oberseite. Die ganze Platine lässt sich über zwei Steckleisten genau auf die Pins des Arduinos stecken. Der Strom- und RGB Stripe Anschluss ragt über den Arduino hinaus und zeigt in Richtung des Arduinos. So ist das ganze Paket kaum dicker als der Arduino selber und passt auch in ein vergleichsweise kleines Gehäuse noch gut hinein.
iPhone
Die iPhone App ist ebenfalls eine gemeinsame Entwicklung mit mczonk zusammen. Mittels Bonjour baut die iOS App eine Verbindung zum Arduino Board auf. Anschließend lassen sich vorher gespeicherte Farben an das Arduino senden. Der Farbwechsel findet sofort und ohne merkliche Verzögerung statt. Außerdem lassen sich weitere Farben problemlos einfügen und über eine Live Vorschau, die die Farbe direkt über den RGB Stripe ausgibt, auswählen.
Auf der ToDo Liste für die App steht noch ein Animationssystem – hier muss sicherlich auch am Arduino Source Code noch etwas getan werden – und eine generelle Konfiguration für den Arduino. Es sollte möglich sein, über die iPhone App dem Arduino mitzuteilen, wieviele LEDs angeschlossen sind und wie der Bonjour Broadcast heißen soll. Diese Daten sollte der Arduino dann speichern und auch nach einem Neustart behalten.
Das gesamte Projekt, zusammen mit dem Arduino Source Code, gibt es auf GitHubzur freien Verwendung. Falls das ganze jemand nachbauen möchte, würde ich mich über einen Kommentar sehr freuen.