MoodLight 2x2

  • Die ursprüngliche Idee für dieses Projekt kam durch eine Anfrage im Forum. Das professionell hergestellte MoodLight war Basis der Anforderung (http://www.mood-light-galaxy.d…_Mood_Light__Classic_.php). Da es mit 2x2 Pixeln ein überschaubarer Aufwand ist, habe ich mich an die Entwicklung gemacht.


    Was man unter MoodLight versteht, ist sicher teilweise Auslegungssache. Insbesondere das Programm spielt dabei eine entscheidende Rolle. Neben weichen Farbübergängen soll es fest einstellbare Farben geben. Ergänzt wurde dies durch verschiedene Fading-Programme. Die Bedienung erfolgt über einen Encoder. Verzichtet wurde hier zunächst auf Komfort wie eine Fernbedienung.



    Aufbau


    Der mechanische Aufbau wurde mit Alu-Profilen und Plexiglas realisiert. Als Rückseite dient eine dünne Sperrholzplatte. Die Alu-Profile stammen aus der Serie mit Nuten, so dass man sie mit dem entsprechenden Zubehör (Winkel) wunderbar verschrauben kann. Zuvor wurden die Ecken auch Gehrung geschnitten (wenn man nicht das richtige Werkzeug hat, gar nicht so einfach).



    Das Profil hat eine Abmessung von 40x10mm, wobei zwei Nuten eingearbeitet sind. Eine umlaufende Nut dient dabei als Aufnahme der Plexiglas-Platte. Damit hat man nach Außen eine saubere Abdeckung und abgerundete Kanten.




    Die mechanische Konstruktion klingt einfach, hat aber ihre Tücken im Detail. So muss man die Schrauben der Nut sehr fest anziehen, da Aluminium weich ist und sonst das Gebilde instabil wird. Weiterhin wurden die Winkel auch zur Befestigung des Rückdeckels verwendet. Dazu wurde eine Bohrung angebracht und Gewinde M3 geschnitten.
    Letztendlich ist durch diesen Aufbau der Abstand der LEDs zum Plexiglas nur ca. 2,5cm. Das ist leider ein wenig zu knapp, so dass man noch geringfügig Spots sieht (allerdings weniger als auf den Fotos). Hier werde ich nochmals mit einer zweiten Schicht experimentieren. Aktuell fehlt noch der Einbau des Encoders sowie der Spannungsversorgung.


    LEDs
    Als LED-Basis dienen Samsung-RGB-LEDs, die sich durch viele positive Eigenschaften bewährt haben. Von Vorteil war dabei, dass ich bereits Stripe-Platinen dafür fertigen ließ. Das gesamte Gehäuse hat eine Abmessung von 30x30cm, so dass meine 25cm langen Platinen (geteilt) ideal dafür passen. Nach kurzem Test habe ich mich für 9 LEDs pro „Pixel“ entschieden. Insgesamt dienen also 36 LEDs als Grundlage. Da je 3 LEDs in Reihe geschaltet sind, werden 12V als Betriebsspannung verwendet.




    Steuerung
    Die Steuerung macht das eigentliche MoodLight. Klar geht man hier auf Mikrocontroller. Anbieten würden sich verschiedene Varianten wie DMX zur Steuerung oder auch die beliebten TLC-Chips, wie sie synvox auch auf seiner RGB-Wall verwendet.


    Da es sich bei 2x2 RGB-Pixeln nur um 12 Kanäle handelt und das Modul auch einzeln betrieben werden soll, habe ich mich für Software-PWM entschieden. In Mikrocontroller.net gibt es einen sehr guten Artikel, der verschiedene Varianten beschreibt und dabei in Hinblick auf die Prozessor-Auslastung Optimierungen vornimmt. Leider wird dabei maximal ein Port angesprochen, also nicht ausreichend Kanäle. Für die Erweiterung fehlte mir etwas die Ruhe, so dass ich nach ein wenig Suchen das passende (darauf aufbauende) gefunden habe: http://www.the-powl.de/knowhow/softpwm/index.php.


    Damit war die Grundlage geschaffen. Jetzt galt es nur noch, die MoodLight-Programme zu entwerfen. Entwickelt habe ich zunächst mit meinem myAVR-Entwicklungsboard und vier angeschlossenen RGB-LEDs sowie dem Encoder. Das erste Testprogramm macht dabei nichts weiter, als alle Farben (also weiß) gleichzeitig langsam hoch- und wieder herunterzufahren. Im MoodLight-Programm läuft das dann diagonal und jeweils invertiert ab.


    Das Programm 2 ist ein RGB-Fading-Programm. Die Farben werden hintereinander durchlaufen (Regebogen-Fader). Auch hier ist der Effekt über die Diagonale und invertiert hergestellt.


    Das eigentliche MoodLight-Programm folgte dann. Die Idee dahinter: für jedes Pixel wird per Zufall eine Farbe errechnet. Von der aktuellen Farbe wird dann weich auf die Zielfarbe geblendet (Fading), und das für alle vier Pixel. Da die Differenz unterschiedlich sein kann, läuft eine Farbe ggf. länge als die andere. Dann folgt eine einstellbare Wartezeit, bis die nächste Überblendung folgt. Da dieses Verfahren mit den drei RGB-Kanälen sehr aufwendig ist, habe ich mich entschlossen, das HSB-Modell zu verwenden. Dies hat den angenehmen Nebeneffekt, dass man die Helligkeit einstellen kann. Der Einfachheit halber habe ich den Wert für die Sättigung konstant auf Maximum gehalten. Somit muss je Pixel nur noch ein Wert „gefadet“ werden.


    Nach dem gleichen Prinzip erfolgte die Entwicklung des „Farbrades“. Eine Basis-Farbe wird als Ausgangswert im HSB-Modus festgelegt und anschließend wird der Wert stetig erhöht. Da der HSB-Farbraum ein Kreis (bzw. Kegel) ist, springt am Ende des Wertebereiches die Farbe nicht einfach um, sondern beginnt von vorn. eigentlich ganz einfach.
    Abgerundet wird alles durch eine fest einstellbare Farbe. Hier kann man nach belieben die Farben definieren. Diese werden aktuell noch im RGB-Mode festgelegt. Damit findet auch keine Helligkeitsregelung statt. Hier kann man noch eine Umstellung auf HSB vornehmen.


    Das letzte Programm ist eigentlich gar kein Programm. Es zeigt einfach nur die 4 Farben des Farbkreises an und ermöglicht die Einstellung der Helligkeit. Dies war erforderlich, das nur ein Encoder als Bedienelement angeschlossen sein sollte. Für spätere Anwendungen könnte man noch zwischen kurzem und langem Tastendruck unterscheiden.

  • Schaltung/Platine/Software


    Die Schaltung zum MoodLight ist relativ einfach. Der Mikrocontroller (ich habe einen ATmega8 verwendet) hat an 12 Ausgängen Darlington-Treiber (ULN2003) angeschlossen und liefert so die PWM-Signale an die LEDs. Neben der Spannungsversorgung ist noch der Anschluss für den Encoder auf der Platine. Als Buchsen/Stecker hatte ich noch 4-polige von Hirose da, die im 2mm-Raster sind.



    Der Aufbau ist einseitig möglich (2 Brücken), so dass man die Platine bequem selbst herstellen kann. Einige Änderungen/Verbesserungen sind im Layout sicher noch notwendig, aber es funktioniert auch so.


    MoodLightSchaltung.zip


    Die Software für den Controller wurde in C geschrieben und ist in der beschriebenen Version enthalten.


    MoodLight2x2_V1.zip


    Hier noch der Link zu den Steckverbindern von Hirose . Die gibt es bei Mouser. Hier der Link auf die Katalog-Seite. Man darf nur nicht vergessen, die Crimpstecker mitzubestellen ...

  • Es gibt noch eine kleine Neuigkeit zum MoodLight-Projekt: ich habe es endlich mal geschafft, das Video fertig zu stellen. Wie das so üblich ist, sieht man teilweise das Flackern der LEDs durch die PWM. Hier ist es ja Software-PWM, die wohl auch zwischen unterschiedlichen Frequenzen dynamisch umschalten soll (stand so in der Doku zum SoftPWM).


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Weiterhin habe ich eine leicht verbesserte Version der Softwar (v11) erstellt.


    MoodLight_V11_20100125.zip

  • Es gibt noch etwas Neues zum Thema MoodLight: ich habe bei meiner letzten Bestellung gleich mal eine Hand voll Platinen mit in Auftrag gegeben. Ich hatte immer mal Anfragen danach. Wer also eine haben möchte kann mir einfach eine PN schicken (2,50 EUR + 0,45 Versand). An einer ausführlichen Bau- und Bestückungsanleitung arbeite ich gerade noch. Ist aber eigentlich schon alles beschrieben hier im Forum.



    MoodLight 2x2BOM.pdf