Projekt :: LED RGB Roomlight
1. Einleitung
Zuletzt aktualisiert: 03.06.2015
Willkommen auf der Microsite meines aktuellen 3. Projekts: eine RGB-LED-Zimmerbeleuchtung.
Hinter den beiden Begriffen mit 3 Buchstaben verbirgt sich etwas, was ich schon lange mal bauen wollte.
Hintergrund
Grundlage für die Idee dazu war zum Einen mein Dad, der sich dauernd über die Stromrechnung beschwert, ich sei der größte Verbraucher im Haus. Dabei bin ich schon relativ sparsam. Habe mir extra ein energieeffizientes PC-Netzteil gekauft, Energiesparlampen, LCD Bildschirme usw.
Zum Anderen bin ich gelangweilt von der öden gelblich-weißen eher mäßigen Ausleuchtung durch die 3 Energiesparlampen. Da muss schleunigst was besseres her.
Die Idee
Mein Plan ist eine Zimmerbeleuchtung, die ich dimmen kann, wo ich die Leuchtfarbe frei einstellen kann und die auch noch interaktiv ist, also z.B. bei bestimmten Uhrzeiten an und aus geht oder per Funk oder PC gesteuert werden kann. Außerdem hätte ich gerne ein paar Effekte wie Mood- oder das sogenannte AmbiLight.
Die Umsetzung
Um die Beleuchtung möglichst stromsparend zu machen, muss das ganze mit LEDs gemacht werden, da diese ja bekanntlich sehr wenig Strom verbrauchen. Damit das Licht trotzdem schön hell ist, ausreichend für mein Zimmer und ich nicht hunderte kleine LEDs nebeneinander setzen muss (was ursprünglich mein Plan war), nehme ich s.g. High-Power LEDs. Das sind Leuchtdioden im SMD-Design, die 1, 3, 50 oder sogar 100W Leistung haben. Dabei werden diese so warm, dass man sie auf Kühlkörper kleben muss, damit sie nicht überhitzen. Außerdem sind dafür einige technische Lösungen erforderlich wie z.B. eine konstante Stromquelle.
Diese LEDs sollen dann über ein Mikrocontroller von Atmel per Pulsweitenmodulation gesteuert werden. Das ganze wiederum kommuniziert per DMX (nicht der Rapper, das ist ein Steuerstandard für Bühnenbeleuchtung wie Moving-Heads, Scanner oder kleine Laser) mit einer Control-Box, die ein Webinterface haben soll, wodurch ich dann die Lichter per Computer im Netzwerk regeln kann.
Am 27.01.2011 habe ich ein paar LEDs bestellt und wenn die hier eintreffen, werde ich sie erst einmal ausgiebig testen.
Zuletzt aktualisiert: 03.06.2015
Willkommen auf der Microsite meines aktuellen 3. Projekts: eine RGB-LED-Zimmerbeleuchtung.
Hinter den beiden Begriffen mit 3 Buchstaben verbirgt sich etwas, was ich schon lange mal bauen wollte.
Hintergrund
Grundlage für die Idee dazu war zum Einen mein Dad, der sich dauernd über die Stromrechnung beschwert, ich sei der größte Verbraucher im Haus. Dabei bin ich schon relativ sparsam. Habe mir extra ein energieeffizientes PC-Netzteil gekauft, Energiesparlampen, LCD Bildschirme usw.
Zum Anderen bin ich gelangweilt von der öden gelblich-weißen eher mäßigen Ausleuchtung durch die 3 Energiesparlampen. Da muss schleunigst was besseres her.
Die Idee
Mein Plan ist eine Zimmerbeleuchtung, die ich dimmen kann, wo ich die Leuchtfarbe frei einstellen kann und die auch noch interaktiv ist, also z.B. bei bestimmten Uhrzeiten an und aus geht oder per Funk oder PC gesteuert werden kann. Außerdem hätte ich gerne ein paar Effekte wie Mood- oder das sogenannte AmbiLight.
Die Umsetzung
Um die Beleuchtung möglichst stromsparend zu machen, muss das ganze mit LEDs gemacht werden, da diese ja bekanntlich sehr wenig Strom verbrauchen. Damit das Licht trotzdem schön hell ist, ausreichend für mein Zimmer und ich nicht hunderte kleine LEDs nebeneinander setzen muss (was ursprünglich mein Plan war), nehme ich s.g. High-Power LEDs. Das sind Leuchtdioden im SMD-Design, die 1, 3, 50 oder sogar 100W Leistung haben. Dabei werden diese so warm, dass man sie auf Kühlkörper kleben muss, damit sie nicht überhitzen. Außerdem sind dafür einige technische Lösungen erforderlich wie z.B. eine konstante Stromquelle.
Diese LEDs sollen dann über ein Mikrocontroller von Atmel per Pulsweitenmodulation gesteuert werden. Das ganze wiederum kommuniziert per DMX (nicht der Rapper, das ist ein Steuerstandard für Bühnenbeleuchtung wie Moving-Heads, Scanner oder kleine Laser) mit einer Control-Box, die ein Webinterface haben soll, wodurch ich dann die Lichter per Computer im Netzwerk regeln kann.
Am 27.01.2011 habe ich ein paar LEDs bestellt und wenn die hier eintreffen, werde ich sie erst einmal ausgiebig testen.
2. Die Konstantstromquelle
Zuletzt aktualisiert: 03.06.2015
Heute, am 28.02.2011 sind die LEDs, die ich vor über einem Monat bestellt habe, endlich angekommen. Leider sind es nur die RGB-LEDs, die weißen werden hoffentlich noch nachgeschickt.
Nun, ausprobieren kann ich sie noch nicht, weil ich noch kein gutes Netzteil besitze, was 3 Volt bringt. Ist aber quasi schon auf dem Weg hier hin.
HighPower LEDs sind sehr empfindlich, deshalb benötigen sie einen möglichst konstanten Strom. Bei den RGBs sind das 300-350 mA. Ein normaler Trafo od. normales Netzteil für LED-Lampen haben meistens Schwankungen in der Versorgung (im engl. Ripple genannt), die die Lebenszeit dieser LEDs stark verkürzen kann. Dieser Ripple-Strom kann aber auch durch PWM-Ansteuerung, die ich zum Dimmen benötige, entstehen.
Darum gibt es sogenannte "Konstantstromquellen", die aus einem LED-Treiber (oder wegen des hohen Preises auch Buck-Stromregler), Kondensatoren, Widerständen und Spulen bestehen. Je nach dem, wie viel und welche Teile man verbaut, kann man den Strom schon sehr stabil auf dem gleichen Niveau halten. Da aber eine kleine Varianz durchaus unproblematisch ist, versuche ich, das ganze nicht ganz so aufwändig zu machen.
Update 25.03.2011
So, weiter gehts. Es hat sich einiges getan. Wie bereits oben beschrieben, habe ich mir Gedanken zur Stromversorgung der LEDs gemacht.
Ich habe zwei LED-Treiber gefunden, die geeignet wären. Der erste wäre der ZXLD1360 von Zetex, der andere nennt sich HV9910B und kommt von Supertex.
Da meine RGB-LEDs Common-Anode sind, heißt, dass die eine gemeinsame Anode (+) haben, konnte ich dafür den ZXLD1360 schonmal nicht benutzen, denn es musste eine offene Schaltung sein, also nur GND (-) oder VCC (+) an der LED sollten geregelt werden. Der ZXLD1360 ist geschlossen. Das heißt, beide Anschlüsse der LED gehen in den IC und tragen beide zur Regelung bei. Das funktioniert bei Common-Anode nicht.
Der HV9910B funktioniert anders. Dabei geht man direkt mit der Hauptversorgungsspannung (12V) in die LED und regelt dann über die Kathode der LED den konstanten Strom.
Es hat einige Tage gedauert, bis ich die Schaltung soweit optimiert hatte, dass sie meinen Anforderungen entsprach. Es werden also auf der Platine 3 mal HV9910 inkl. aller erforderlichen Bauteile sowie ein ZXLD1360 für die weiße LED und ein AtMega8 Mikrocontroller von Atmel (s. Schaltkastenprojekt) verbaut. Für die DMX-Steuerung ist auch schon ein spezieller Umwandler angebracht, zu dem ich aber später noch kommen werde.
Weil die LED-Treiber sowieso SMD und nicht bedrahtet waren, habe ich mir überlegt, direkt komplett SMD Teile zu benutzen. Das war auch gut zum Üben. Die Teile sind sehr klein und daher schwieriger per Hand zu löten als bedrahtete.
Nachdem der Schaltplan fertig gestellt war, habe ich alle Bauteile bestellt und überlegt, woher ich eine Platine bekomme.
Ein Freund von mir aus einem späteren Semester, der hier in der Nähe wohnt, hat sich bereit erklärt, mir eine anzufertigen, da er über die nötigen Mittel verfügte und schon viel Erfahrung damit hat. Am gestrigen Freitag war sie dann fertig und ich konnte sie abholen gehen und anfangen, die Bauteile zu verlöten.
Unten links ist der Abschnitt für die weiße LED. Zum Größenvergleich des ZXLD1360 ein 1-Cent-Stück (leider etwas verschwommen)
Es war zwar noch nicht alles verlötet, aber immerhin schon genug, um die LEDs endlich auszutesten und zu sehen, ob die Konstantstromquellen richtig funktionieren. Und siehe da, alles klappte einwandfrei. Ich war zufrieden. Die LEDs sind wirklich enorm hell. Videos und Bilder dazu kommen demnächst.
Zuletzt aktualisiert: 03.06.2015
Heute, am 28.02.2011 sind die LEDs, die ich vor über einem Monat bestellt habe, endlich angekommen. Leider sind es nur die RGB-LEDs, die weißen werden hoffentlich noch nachgeschickt.
Nun, ausprobieren kann ich sie noch nicht, weil ich noch kein gutes Netzteil besitze, was 3 Volt bringt. Ist aber quasi schon auf dem Weg hier hin.
HighPower LEDs sind sehr empfindlich, deshalb benötigen sie einen möglichst konstanten Strom. Bei den RGBs sind das 300-350 mA. Ein normaler Trafo od. normales Netzteil für LED-Lampen haben meistens Schwankungen in der Versorgung (im engl. Ripple genannt), die die Lebenszeit dieser LEDs stark verkürzen kann. Dieser Ripple-Strom kann aber auch durch PWM-Ansteuerung, die ich zum Dimmen benötige, entstehen.
Darum gibt es sogenannte "Konstantstromquellen", die aus einem LED-Treiber (oder wegen des hohen Preises auch Buck-Stromregler), Kondensatoren, Widerständen und Spulen bestehen. Je nach dem, wie viel und welche Teile man verbaut, kann man den Strom schon sehr stabil auf dem gleichen Niveau halten. Da aber eine kleine Varianz durchaus unproblematisch ist, versuche ich, das ganze nicht ganz so aufwändig zu machen.
Update 25.03.2011
So, weiter gehts. Es hat sich einiges getan. Wie bereits oben beschrieben, habe ich mir Gedanken zur Stromversorgung der LEDs gemacht.
Ich habe zwei LED-Treiber gefunden, die geeignet wären. Der erste wäre der ZXLD1360 von Zetex, der andere nennt sich HV9910B und kommt von Supertex.
Da meine RGB-LEDs Common-Anode sind, heißt, dass die eine gemeinsame Anode (+) haben, konnte ich dafür den ZXLD1360 schonmal nicht benutzen, denn es musste eine offene Schaltung sein, also nur GND (-) oder VCC (+) an der LED sollten geregelt werden. Der ZXLD1360 ist geschlossen. Das heißt, beide Anschlüsse der LED gehen in den IC und tragen beide zur Regelung bei. Das funktioniert bei Common-Anode nicht.
Der HV9910B funktioniert anders. Dabei geht man direkt mit der Hauptversorgungsspannung (12V) in die LED und regelt dann über die Kathode der LED den konstanten Strom.
Es hat einige Tage gedauert, bis ich die Schaltung soweit optimiert hatte, dass sie meinen Anforderungen entsprach. Es werden also auf der Platine 3 mal HV9910 inkl. aller erforderlichen Bauteile sowie ein ZXLD1360 für die weiße LED und ein AtMega8 Mikrocontroller von Atmel (s. Schaltkastenprojekt) verbaut. Für die DMX-Steuerung ist auch schon ein spezieller Umwandler angebracht, zu dem ich aber später noch kommen werde.
Weil die LED-Treiber sowieso SMD und nicht bedrahtet waren, habe ich mir überlegt, direkt komplett SMD Teile zu benutzen. Das war auch gut zum Üben. Die Teile sind sehr klein und daher schwieriger per Hand zu löten als bedrahtete.
Nachdem der Schaltplan fertig gestellt war, habe ich alle Bauteile bestellt und überlegt, woher ich eine Platine bekomme.
Ein Freund von mir aus einem späteren Semester, der hier in der Nähe wohnt, hat sich bereit erklärt, mir eine anzufertigen, da er über die nötigen Mittel verfügte und schon viel Erfahrung damit hat. Am gestrigen Freitag war sie dann fertig und ich konnte sie abholen gehen und anfangen, die Bauteile zu verlöten.
Unten links ist der Abschnitt für die weiße LED. Zum Größenvergleich des ZXLD1360 ein 1-Cent-Stück (leider etwas verschwommen)
Es war zwar noch nicht alles verlötet, aber immerhin schon genug, um die LEDs endlich auszutesten und zu sehen, ob die Konstantstromquellen richtig funktionieren. Und siehe da, alles klappte einwandfrei. Ich war zufrieden. Die LEDs sind wirklich enorm hell. Videos und Bilder dazu kommen demnächst.
3. Der Mikrocontroller
Zuletzt aktualisiert: 03.06.2015
Nachdem nun die 4 Konstantstromquellen auf der Platine erfolgreich verlötet und getestet wurden, musste das ganze noch angesteuert werden. Durchgehendes Leuchten ist zwar ganz hübsch, aber nicht sehr herausfordernd.
Optimal für die Leuchte ist der AtMega 8 von Atmel, mit dem ich vorher schon Erfahrungen gesammelt habe (Schaltkasten). Allerdings die SMD-Version. Ich war ziemlich überrascht, dass der Controller kleiner ist, als ich ihn mir vorstellte. Ich hatte keine Vorstellung, ob ich das anständig gelötet bekommen würde. Aber frei nach dem Motto "Versuch macht klug" hab ich es ausprobiert und habe sogar fast ein top Ergebnis hinbekommen. Lediglich 2 Beinchen habe ich versehentlich mit Lötzinn verbunden und es war ein Mords Aufwand das Zinn da wieder wegzukriegen, da ich keine anständige Entlötsation ö.ä. habe. Aber ich habe es im Endeffekt doch noch hinbekommen.
Erneut Größenvergleich mit 1 Ct-Stück:
Jetzt wieder die RGB LED angeschlossen und ein erstes kleines Programm geschrieben, welches die drei Farben abwechselnd für eine Sekunde aufleuchten lassen soll. Aber da fing das erste Problem schon an. Die rote LED ging auf einmal aus und der gesamte Aufbau roch nach einiger Zeit etwas angekokelt. Zudem sponn der Mikrocontroller, als ich das externe 14, 7456 Mhz Quarz (komische Zahl, aber wichtig für die spätere DMX-Verbindung) aktiviert habe.
Nach einiger Fehlersuche habe ich herausgefunden, dass ich noch ein paar Änderungen einprogrammieren musste und ich stellte fest, dass eine Leiterbahn an der KSQ für die rote LED durchtrennt war, die für den Abtransport der überschüssigen Spannung nötig war. Das hat auch den Transistor zerstört. Glücklicherweise habe ich noch ein paar in Reserve.
ISP-Schnittstelle zum Programmieren des Mikrocontrollers. Ein Designfehler führte dazu, dass die Pinbelegung von dem Stecker genau verkehrtherum ist und ich daher mit einem Flachbandkabel das ganze umkehren musste.
Nachdem alle Fehler behoben waren, funktionierte alles so wie es sollte und nun kann ich mit der Programmierung der LED-Dimmung beginnen. Dazu muss ich aber wohl noch etwas C-Programmierung nachholen.
Zuletzt aktualisiert: 03.06.2015
Nachdem nun die 4 Konstantstromquellen auf der Platine erfolgreich verlötet und getestet wurden, musste das ganze noch angesteuert werden. Durchgehendes Leuchten ist zwar ganz hübsch, aber nicht sehr herausfordernd.
Optimal für die Leuchte ist der AtMega 8 von Atmel, mit dem ich vorher schon Erfahrungen gesammelt habe (Schaltkasten). Allerdings die SMD-Version. Ich war ziemlich überrascht, dass der Controller kleiner ist, als ich ihn mir vorstellte. Ich hatte keine Vorstellung, ob ich das anständig gelötet bekommen würde. Aber frei nach dem Motto "Versuch macht klug" hab ich es ausprobiert und habe sogar fast ein top Ergebnis hinbekommen. Lediglich 2 Beinchen habe ich versehentlich mit Lötzinn verbunden und es war ein Mords Aufwand das Zinn da wieder wegzukriegen, da ich keine anständige Entlötsation ö.ä. habe. Aber ich habe es im Endeffekt doch noch hinbekommen.
Erneut Größenvergleich mit 1 Ct-Stück:
Jetzt wieder die RGB LED angeschlossen und ein erstes kleines Programm geschrieben, welches die drei Farben abwechselnd für eine Sekunde aufleuchten lassen soll. Aber da fing das erste Problem schon an. Die rote LED ging auf einmal aus und der gesamte Aufbau roch nach einiger Zeit etwas angekokelt. Zudem sponn der Mikrocontroller, als ich das externe 14, 7456 Mhz Quarz (komische Zahl, aber wichtig für die spätere DMX-Verbindung) aktiviert habe.
Nach einiger Fehlersuche habe ich herausgefunden, dass ich noch ein paar Änderungen einprogrammieren musste und ich stellte fest, dass eine Leiterbahn an der KSQ für die rote LED durchtrennt war, die für den Abtransport der überschüssigen Spannung nötig war. Das hat auch den Transistor zerstört. Glücklicherweise habe ich noch ein paar in Reserve.
ISP-Schnittstelle zum Programmieren des Mikrocontrollers. Ein Designfehler führte dazu, dass die Pinbelegung von dem Stecker genau verkehrtherum ist und ich daher mit einem Flachbandkabel das ganze umkehren musste.
Nachdem alle Fehler behoben waren, funktionierte alles so wie es sollte und nun kann ich mit der Programmierung der LED-Dimmung beginnen. Dazu muss ich aber wohl noch etwas C-Programmierung nachholen.
4. Programmierung
Zuletzt aktualisiert: 04.06.2015
Oh mann, es ist schon eine ganze Weile her. Tut mir Leid !!
Der Grund war, dass ich zuerst das DMX-Controllerboard fertigstellen und ausgiebig austesten wollte, bevor es hier weitergeht. Das hat auch bis zu einem bestimmten Punkt geklappt. Ich konnte am Ende einfach keine Verbindung vom Sender zum Empfänger aufnehmen ! Also der Kontakt war da, aber der Empfänger hat das BREAK- bzw. RESET-Signal nicht erkannt und daher nicht wie erwünscht reagiert.
Nach vielen Tagen nachdenken, Freunde und Foren fragen und verzweifeln habe ich am Ende doch ein Fehler in der Programmierung entdeckt und siehe da: funktioniert ;)
Nun mal Stück für Stück:
Nachdem also die KSQ-DMX-Platine für einen Satz RGBW-LEDs habe ich natürlich erst mal getestet, ob die LEDs überhaupt leuchten und danach, ob man sie auch gedimmt bekommt.
Für letzteres habe ich mich im Internet mal na ein paar Lösungen umgeschaut und habe ein gutes Soft-PWM-Skript gefunden, welches ich dann für meine Zwecke noch etwas angepasst habe (Firmware und Codes gebe ich frei, wenn das Projekt beendet ist und alles optimal läuft). Ein Moodlight-artiges Wechseln der Farben hat schon beeindruckend gut funktioniert. Ein Stress-Test (4 Stunden durchgehendes Leuchten) hat ergeben, dass weder die LEDs noch die Elektronik auf der Platine warm werden (sie bleiben sogar ziemlich kalt xD). Soweit so gut. Die DMX-Ansteuerung konnte so natürlich erstmal noch nicht getestet werden, da der Controller fehlt. Ich habe mir zwar überlegt, einen günstigen USB-DMX-Controller zu besorgen aber die sind preislich ziemlich hoch angesiedelt und mein selbstgebauter Controller wird ja etwa die gleichen Funktionen haben.
Auf den Bildern kann man die LEDs mal in Aktion sehen und vor allem eine Vorstellung bekommen, wie verdammt hell die sind ^^
Zuletzt aktualisiert: 04.06.2015
Oh mann, es ist schon eine ganze Weile her. Tut mir Leid !!
Der Grund war, dass ich zuerst das DMX-Controllerboard fertigstellen und ausgiebig austesten wollte, bevor es hier weitergeht. Das hat auch bis zu einem bestimmten Punkt geklappt. Ich konnte am Ende einfach keine Verbindung vom Sender zum Empfänger aufnehmen ! Also der Kontakt war da, aber der Empfänger hat das BREAK- bzw. RESET-Signal nicht erkannt und daher nicht wie erwünscht reagiert.
Nach vielen Tagen nachdenken, Freunde und Foren fragen und verzweifeln habe ich am Ende doch ein Fehler in der Programmierung entdeckt und siehe da: funktioniert ;)
Nun mal Stück für Stück:
Nachdem also die KSQ-DMX-Platine für einen Satz RGBW-LEDs habe ich natürlich erst mal getestet, ob die LEDs überhaupt leuchten und danach, ob man sie auch gedimmt bekommt.
Für letzteres habe ich mich im Internet mal na ein paar Lösungen umgeschaut und habe ein gutes Soft-PWM-Skript gefunden, welches ich dann für meine Zwecke noch etwas angepasst habe (Firmware und Codes gebe ich frei, wenn das Projekt beendet ist und alles optimal läuft). Ein Moodlight-artiges Wechseln der Farben hat schon beeindruckend gut funktioniert. Ein Stress-Test (4 Stunden durchgehendes Leuchten) hat ergeben, dass weder die LEDs noch die Elektronik auf der Platine warm werden (sie bleiben sogar ziemlich kalt xD). Soweit so gut. Die DMX-Ansteuerung konnte so natürlich erstmal noch nicht getestet werden, da der Controller fehlt. Ich habe mir zwar überlegt, einen günstigen USB-DMX-Controller zu besorgen aber die sind preislich ziemlich hoch angesiedelt und mein selbstgebauter Controller wird ja etwa die gleichen Funktionen haben.
Auf den Bildern kann man die LEDs mal in Aktion sehen und vor allem eine Vorstellung bekommen, wie verdammt hell die sind ^^
5. Der Controller
Zuletzt aktualisiert: 04.06.2015
Nun ging es also daran, einen DMX-Controller zu entwerfen, der folgende Funktionen haben sollte:
- USB-Port (spätere Steuerung der LEDs mittels PC-Software wie z.B. DMXControl)
- DMX-Out
- 5V externe Stromversorgung
- 5-Kanal Eingang für Fader (Farben R, G, B, W und Master)
- 3-LED Ausgänge (On-später Eth Link, DMX act, USB Act)
- Frontpanel-Port (für LCD, 5 Taster, 5 LEDs, Strom)
- 3-Pin Anschluss für Drehregler mit Taster (Menüführung)
- Expansion-Port mit SPI und TWI (z.B. Web-Interface)
Die erste Hürde war, einen passenden µC zu finden. Von den Ports her hätte wohl ein AtMega16 oder 32 ausgereicht, aber ich benötigte einen mit 2 USARTs. Einen für DMX, den anderen für USB. Der kleinste, der diese und zusätzlich noch die ADCs (Analog-Digital-Wandler für Fader) und TWI hatte, war der Atmega64. Der ist schon etwas größer und teurer, aber noch im Rahmen. Für USB gibt es einen super Chip von FTDI, der das UART-Signal direkt in ein USB-Signal umwandelt (etwa so wie der MAX232 für den seriellen Port). Das Board sollte diesmal beidseitig gelayoutet werden, damit die Geschichte etwas kompakter und einfacher zu routen (quasi die Punkte mit Leiterbahnen verbinden) wird. Das ging auch ganz gut. Ein wenig warten auf die Fertigung (ging aber recht fix) und Teile schon bestellt, dann gings wieder los.
Beidseitiges Layout heißt aber auch, Durchkontaktieren. Da gibt es viele verschiedene Methoden, die einfachste und günstigste funktioniert mit einem Silberdraht, der einfach auf beiden Seiten verlötet wird. Vorher müssen aber noch entsprechende Löcher gebohrt werden. Ich habe also kleine Bohrer besorgt und mal ein paar Versuche mit unserer Tischbohrmaschine im Keller gestartet. Das Ding ist eigenltich eher für größere Arbeiten gedacht und ziemlich wackelig. Fazit: Ersten Bohrer beim Einspannen abgebrochen, mit dem zweiten (von drei) hat es aber bis zum Ende sehr gut geklappt. Ich habe perfekte Löcher hinbekommen und mich direkt ans Durchkontaktieren gemacht. Anfangs hielt ich das für ziemlich aufwändig, da es wirklich einige Löcher waren. Aber am Ende hatte ich viel Spaß daran und konnte meine Löt-Skills weiter aufbessern.
Gleiche Reihenfolge wie damals: Erst die ICs, dann die SMD-Teile und dann die bedrahteten. Ich habe von Andre gute Tipps bekommen, wie man saubere Lötstellen selbst bei sehr kleinen Beinabständen hinkriegt und das hat erstaunlich gut funktioniert.
Hier ist ersteinmal die Grundkonfiguration mit ISP, Stromversorgung, AtMega64, FT232 und USB-Port. Beim Versuch, den Controller zu programmieren, stieß ich auf die erste Überraschung. Es funktionierte nicht. Eine Überprüfung sämtlicher Leitungen und Schaltpläne brachte keine Lösung. Also habe ich mich im Internet und im Datenblatt vom AtMega64 schlau gemacht und siehe da: Die Programmierschnittstelle ist bei diesem Controller nicht, wie üblich, an der SPI, sondern am ersten USART. Also habe ich eine Brücke aus einer dünnen Litze gebaut und die SPI-Leitungen durchtrennt (das hat mich viel Zeit gekostet, weil ich die UART-Leitung zwischen Mega und FT232 sehr eng designed habe und kaum Spiel hatte). Als die endlich verlötet war, konnte ich den AtMega auch problemlos programmieren.
Dafür ging die Kommunikation mit dem PC sehr leicht. Der FTDI wurde sofort von Windows erkannt und entspr. Treiber installiert. Danach hatte ich einen virtuellen seriellen Port, der sich genauso ansteuern lässt wie ein normaler und damit habe ich schon Erfahrungen gesammelt. Ich war überrascht, dass Win 7 kein Terminal besitzt, aber ich habe schnell ein alternatives Programm gefunden. Baudraten richtig eingestellt und auf "Connect" geklickt und der AtMega hat mit dem PC gesprochen, indem er sekündlich ein "x" geschickt hat, welches auch im Sekundentakt im Terminal angezeigt wurde. So weit so gut.
Zum Schluss dieser Seite nochmal die fertige Controller-Platine:
Zuletzt aktualisiert: 04.06.2015
Nun ging es also daran, einen DMX-Controller zu entwerfen, der folgende Funktionen haben sollte:
- USB-Port (spätere Steuerung der LEDs mittels PC-Software wie z.B. DMXControl)
- DMX-Out
- 5V externe Stromversorgung
- 5-Kanal Eingang für Fader (Farben R, G, B, W und Master)
- 3-LED Ausgänge (On-später Eth Link, DMX act, USB Act)
- Frontpanel-Port (für LCD, 5 Taster, 5 LEDs, Strom)
- 3-Pin Anschluss für Drehregler mit Taster (Menüführung)
- Expansion-Port mit SPI und TWI (z.B. Web-Interface)
Die erste Hürde war, einen passenden µC zu finden. Von den Ports her hätte wohl ein AtMega16 oder 32 ausgereicht, aber ich benötigte einen mit 2 USARTs. Einen für DMX, den anderen für USB. Der kleinste, der diese und zusätzlich noch die ADCs (Analog-Digital-Wandler für Fader) und TWI hatte, war der Atmega64. Der ist schon etwas größer und teurer, aber noch im Rahmen. Für USB gibt es einen super Chip von FTDI, der das UART-Signal direkt in ein USB-Signal umwandelt (etwa so wie der MAX232 für den seriellen Port). Das Board sollte diesmal beidseitig gelayoutet werden, damit die Geschichte etwas kompakter und einfacher zu routen (quasi die Punkte mit Leiterbahnen verbinden) wird. Das ging auch ganz gut. Ein wenig warten auf die Fertigung (ging aber recht fix) und Teile schon bestellt, dann gings wieder los.
Beidseitiges Layout heißt aber auch, Durchkontaktieren. Da gibt es viele verschiedene Methoden, die einfachste und günstigste funktioniert mit einem Silberdraht, der einfach auf beiden Seiten verlötet wird. Vorher müssen aber noch entsprechende Löcher gebohrt werden. Ich habe also kleine Bohrer besorgt und mal ein paar Versuche mit unserer Tischbohrmaschine im Keller gestartet. Das Ding ist eigenltich eher für größere Arbeiten gedacht und ziemlich wackelig. Fazit: Ersten Bohrer beim Einspannen abgebrochen, mit dem zweiten (von drei) hat es aber bis zum Ende sehr gut geklappt. Ich habe perfekte Löcher hinbekommen und mich direkt ans Durchkontaktieren gemacht. Anfangs hielt ich das für ziemlich aufwändig, da es wirklich einige Löcher waren. Aber am Ende hatte ich viel Spaß daran und konnte meine Löt-Skills weiter aufbessern.
Gleiche Reihenfolge wie damals: Erst die ICs, dann die SMD-Teile und dann die bedrahteten. Ich habe von Andre gute Tipps bekommen, wie man saubere Lötstellen selbst bei sehr kleinen Beinabständen hinkriegt und das hat erstaunlich gut funktioniert.
Hier ist ersteinmal die Grundkonfiguration mit ISP, Stromversorgung, AtMega64, FT232 und USB-Port. Beim Versuch, den Controller zu programmieren, stieß ich auf die erste Überraschung. Es funktionierte nicht. Eine Überprüfung sämtlicher Leitungen und Schaltpläne brachte keine Lösung. Also habe ich mich im Internet und im Datenblatt vom AtMega64 schlau gemacht und siehe da: Die Programmierschnittstelle ist bei diesem Controller nicht, wie üblich, an der SPI, sondern am ersten USART. Also habe ich eine Brücke aus einer dünnen Litze gebaut und die SPI-Leitungen durchtrennt (das hat mich viel Zeit gekostet, weil ich die UART-Leitung zwischen Mega und FT232 sehr eng designed habe und kaum Spiel hatte). Als die endlich verlötet war, konnte ich den AtMega auch problemlos programmieren.
Dafür ging die Kommunikation mit dem PC sehr leicht. Der FTDI wurde sofort von Windows erkannt und entspr. Treiber installiert. Danach hatte ich einen virtuellen seriellen Port, der sich genauso ansteuern lässt wie ein normaler und damit habe ich schon Erfahrungen gesammelt. Ich war überrascht, dass Win 7 kein Terminal besitzt, aber ich habe schnell ein alternatives Programm gefunden. Baudraten richtig eingestellt und auf "Connect" geklickt und der AtMega hat mit dem PC gesprochen, indem er sekündlich ein "x" geschickt hat, welches auch im Sekundentakt im Terminal angezeigt wurde. So weit so gut.
Zum Schluss dieser Seite nochmal die fertige Controller-Platine:
6. Der Ärger mit dem DMX-Protokoll
Zuletzt aktualisiert: 04.06.2015
Wie schon auf der Seite "Programmierung" erwähnt, hatte ich ziemliche Schwierigkeiten mit der DMX-Übertragung. Dabei war nicht das DMX-Protokoll selbst ausschlaggebend, denn das ist ziemlich einfach und ich habe das auch sehr schnell nachvollziehen können, sondern die Übertragung selbst.
Das DMX-Protokoll
Zu Beginn ein paar Basics zur DMX-Ãœbertragung:
Offiziell heißt es DMX-512 und wird hauptsächlich im Bereich Bühnen-oder Discobeleuchtung verwendet. Man hat einen Controller, der 512 Kanäle über ein Kabel sendet, die verschiedene 8-Bit-Werte von 0 bis 255 annehmen können. Das kann ein Helligkeitswert, ein Drehwinkel für Pan/Tilt eines Movingheads sein usw... Dabei kann ein DMX-Gerät mehrere Kanäle haben (sogar über 20 !). Z.B. Movingheads haben Farbe, Helligkeit, Bewegung in x- und y-Richtung, Strobe, Gobo...
Man sollte auch nur maximal 32 Geräte an eine DMX-Leitung hängen, weil das Signal bei mehreren zu schwach oder störanfällig werden kann. Da hilft nur ein Verstärker oder eben eine zweite Leitung.
Das Signal ist folgendermaßen aufgebaut: BREAK-Signal (gibt den Beginn des Signals an). Haben die Empfänger das Signal erkannt, folgt eine "0" zur Überprüfung. Denn das BREAK ist häufig eine beabsichtigte Unterbrechung, kann aber auch ein Fehler in der Übertragung sein. Wenn alles passt, kommen die bis zu 512 Bytes Daten und dann geht es wieder von vorne los.
DMX beim AVR
Wenn ein Signal über den UART übermittelt werden soll, bietet sich für ein BREAK ein Framing-Error an. Ein Frame ist ein "Datenpaket" mit einem Startbit, 7-, 8- oder 9-Bit Daten (also z.B. ein Byte) und 1-2 Stoppbits. Das ist nötig, damit die Übertragung asynchron laufen kann, also keine extra Taktleitung zwischen Sender und Empfänger möglich ist. Um ein BREAK zu erzeugen, muss man einfach das FRAME kurz verändern, damit beim Empfänger ein Framing Error ausgelöst wird. Das mache ich, indem ich kurz die Übertragungsrate verlangsame.
Da war auch das Problem. Der Empfänger hat kein Framing-Error ausgelöst. Nach laaaaaaaanger Suche lag der Fehler an der Berechnung der Baudrate... oh mann ^^
Ich habe zwar schon ein 10-Meter DMX-Kabel da (3-Polig. Offiziell muss es 5-Polig sein, aber die zwei Leitungen sind nur Reserviert und außerdem ist dann das Kabel wieder teurer, daher bekommt nur der Controller einen 5-Port Anschluss und einen Adapter), aber zum Testen habe ich erst einmal eine profisorische Leitung von wenigen Zentimetern verlötet. Nachdem die Programmierung nun soweit funktioniert hat, habe ich einen, später zwei, Fader testweise angeschlossen und geschaut, ob sich etwas tut. Der eine soll die rote, der andere die blaue LED dimmen. Und das ist nun der aktuelle Stand. Ich kann zwei LEDs dimmen.
Als nächstes steht eine Optimierung des Codes und das LCD-Display an !
Zuletzt aktualisiert: 04.06.2015
Wie schon auf der Seite "Programmierung" erwähnt, hatte ich ziemliche Schwierigkeiten mit der DMX-Übertragung. Dabei war nicht das DMX-Protokoll selbst ausschlaggebend, denn das ist ziemlich einfach und ich habe das auch sehr schnell nachvollziehen können, sondern die Übertragung selbst.
Das DMX-Protokoll
Zu Beginn ein paar Basics zur DMX-Ãœbertragung:
Offiziell heißt es DMX-512 und wird hauptsächlich im Bereich Bühnen-oder Discobeleuchtung verwendet. Man hat einen Controller, der 512 Kanäle über ein Kabel sendet, die verschiedene 8-Bit-Werte von 0 bis 255 annehmen können. Das kann ein Helligkeitswert, ein Drehwinkel für Pan/Tilt eines Movingheads sein usw... Dabei kann ein DMX-Gerät mehrere Kanäle haben (sogar über 20 !). Z.B. Movingheads haben Farbe, Helligkeit, Bewegung in x- und y-Richtung, Strobe, Gobo...
Man sollte auch nur maximal 32 Geräte an eine DMX-Leitung hängen, weil das Signal bei mehreren zu schwach oder störanfällig werden kann. Da hilft nur ein Verstärker oder eben eine zweite Leitung.
Das Signal ist folgendermaßen aufgebaut: BREAK-Signal (gibt den Beginn des Signals an). Haben die Empfänger das Signal erkannt, folgt eine "0" zur Überprüfung. Denn das BREAK ist häufig eine beabsichtigte Unterbrechung, kann aber auch ein Fehler in der Übertragung sein. Wenn alles passt, kommen die bis zu 512 Bytes Daten und dann geht es wieder von vorne los.
DMX beim AVR
Wenn ein Signal über den UART übermittelt werden soll, bietet sich für ein BREAK ein Framing-Error an. Ein Frame ist ein "Datenpaket" mit einem Startbit, 7-, 8- oder 9-Bit Daten (also z.B. ein Byte) und 1-2 Stoppbits. Das ist nötig, damit die Übertragung asynchron laufen kann, also keine extra Taktleitung zwischen Sender und Empfänger möglich ist. Um ein BREAK zu erzeugen, muss man einfach das FRAME kurz verändern, damit beim Empfänger ein Framing Error ausgelöst wird. Das mache ich, indem ich kurz die Übertragungsrate verlangsame.
Da war auch das Problem. Der Empfänger hat kein Framing-Error ausgelöst. Nach laaaaaaaanger Suche lag der Fehler an der Berechnung der Baudrate... oh mann ^^
Ich habe zwar schon ein 10-Meter DMX-Kabel da (3-Polig. Offiziell muss es 5-Polig sein, aber die zwei Leitungen sind nur Reserviert und außerdem ist dann das Kabel wieder teurer, daher bekommt nur der Controller einen 5-Port Anschluss und einen Adapter), aber zum Testen habe ich erst einmal eine profisorische Leitung von wenigen Zentimetern verlötet. Nachdem die Programmierung nun soweit funktioniert hat, habe ich einen, später zwei, Fader testweise angeschlossen und geschaut, ob sich etwas tut. Der eine soll die rote, der andere die blaue LED dimmen. Und das ist nun der aktuelle Stand. Ich kann zwei LEDs dimmen.
Als nächstes steht eine Optimierung des Codes und das LCD-Display an !
7. Das Frontpanel und LCD
Zuletzt aktualisiert: 04.06.2015
Anfang Juni hatte ich nun endlich die Möglichkeit, das lang erwartete LCD-Display zu bestellen. Lang erwartet deshalb, weil es das erste Display sein sollte, das ich vollständig verstehen und mit einer eigenen Software ansteuern wollte.
Der Testaufbau für das Frontpanel fand wieder auf dem Breadboard statt, weil dort noch problemlos Änderungen gemacht werden können. Das geht natürlich nur, wenn die Bauteile bedrahtet sind. Weil das ganze nicht so aufwändige Elektronik ist, habe ich mich auch entschieden, das Frontpanel klassisch auf eine Lochrasterplatine zu löten. Also konnte ich die Teile auch erstmal aufs Steckbrett packen. Zuerst 5 blaue LEDs und 5 Taster. Damit sollten nachher die 5 Lampen einzeln angewählt werden.
Wie zu sehen ist, funktionierte das ganze auch schon. Die Tasten reagierten auf Druck und die LEDs leuchteten auch so wie geplant. Nun war das LCD dran. Ich dachte das würde einige Zeit in Anspruch nehmen, die Probleme lagen am Anfang aber wieder einmal auf der Hardware-Seite.
Zuerst hatte ich einen Anschluss am Mikrocontroller zu wenig eingeplant. So muss ich wiedermal profisorisch eine zusätzliche Verbindung anlöten. Glücklicherweise hatte ich noch eine ungenutzte Leitung zum Frontpanel frei und auch das Löten ging diesmal viel einfacher vonstatten (habe das ja schon geübt :P).
Nachdem das erledigt war, funktionierte noch immer nichts. Ich habe nicht bedacht, dass die Signalleitungen 5V Spannung haben, das Display aber nur Signale mit 3,3 V verträgt. Ich hatte nun angst, ich hätte es kaputt gemacht und meinen Kumpel Andre direkt gefragt, was ich nun tun sollte. Er hat mir gesagt, wie ich testen kann, ob es noch geht und ich habe mir bei ihm Spannungsteiler-Widerstände besorgt. Dann hat das Display auch endlich etwas ausgegeben. Zwar nur Pixelschnee, aber immerhin.
Das Prinzip habe ich erstaunlich schnell verstanden, so konnte ich auch noch am selben Tag ein kleines Pong-Spaßbildchin auf dem Display ausgeben.
Damit man auf das LCD auch Text und Zahlen schreiben kann, benötigt man einen entsprechenden Zeichensatz, der die Pixel so anspricht, dass ein lesbares Zeichen dabei rauskommt. Da dies für die 256-stellige Ascii-Tabelle aber ein ziemlich hoher Aufwand ist, habe ich mir einen fertigen Satz im Internet besorgt. Beim Code habe ich teils selbst versucht, hinter die Logik zu kommen, aber auch ein wenig Tipps aus dem Netz geholt. Man muss ja nicht immer das Rad neu erfinden ^^
Zuletzt aktualisiert: 04.06.2015
Anfang Juni hatte ich nun endlich die Möglichkeit, das lang erwartete LCD-Display zu bestellen. Lang erwartet deshalb, weil es das erste Display sein sollte, das ich vollständig verstehen und mit einer eigenen Software ansteuern wollte.
Der Testaufbau für das Frontpanel fand wieder auf dem Breadboard statt, weil dort noch problemlos Änderungen gemacht werden können. Das geht natürlich nur, wenn die Bauteile bedrahtet sind. Weil das ganze nicht so aufwändige Elektronik ist, habe ich mich auch entschieden, das Frontpanel klassisch auf eine Lochrasterplatine zu löten. Also konnte ich die Teile auch erstmal aufs Steckbrett packen. Zuerst 5 blaue LEDs und 5 Taster. Damit sollten nachher die 5 Lampen einzeln angewählt werden.
Wie zu sehen ist, funktionierte das ganze auch schon. Die Tasten reagierten auf Druck und die LEDs leuchteten auch so wie geplant. Nun war das LCD dran. Ich dachte das würde einige Zeit in Anspruch nehmen, die Probleme lagen am Anfang aber wieder einmal auf der Hardware-Seite.
Zuerst hatte ich einen Anschluss am Mikrocontroller zu wenig eingeplant. So muss ich wiedermal profisorisch eine zusätzliche Verbindung anlöten. Glücklicherweise hatte ich noch eine ungenutzte Leitung zum Frontpanel frei und auch das Löten ging diesmal viel einfacher vonstatten (habe das ja schon geübt :P).
Nachdem das erledigt war, funktionierte noch immer nichts. Ich habe nicht bedacht, dass die Signalleitungen 5V Spannung haben, das Display aber nur Signale mit 3,3 V verträgt. Ich hatte nun angst, ich hätte es kaputt gemacht und meinen Kumpel Andre direkt gefragt, was ich nun tun sollte. Er hat mir gesagt, wie ich testen kann, ob es noch geht und ich habe mir bei ihm Spannungsteiler-Widerstände besorgt. Dann hat das Display auch endlich etwas ausgegeben. Zwar nur Pixelschnee, aber immerhin.
Das Prinzip habe ich erstaunlich schnell verstanden, so konnte ich auch noch am selben Tag ein kleines Pong-Spaßbildchin auf dem Display ausgeben.
Damit man auf das LCD auch Text und Zahlen schreiben kann, benötigt man einen entsprechenden Zeichensatz, der die Pixel so anspricht, dass ein lesbares Zeichen dabei rauskommt. Da dies für die 256-stellige Ascii-Tabelle aber ein ziemlich hoher Aufwand ist, habe ich mir einen fertigen Satz im Internet besorgt. Beim Code habe ich teils selbst versucht, hinter die Logik zu kommen, aber auch ein wenig Tipps aus dem Netz geholt. Man muss ja nicht immer das Rad neu erfinden ^^
8. Menü, Moodlight, Firmware
Zuletzt aktualisiert: 04.06.2015
Da nun alles lief, konnte ich ein kleines Menü programmieren, das auf dem LCD angezeigt wurde und mit dem ich dann die Helligkeiten der Farben steuern konnte. Den Cursor-Pfeil habe ich nachträglich in den Zeichensatz eingefügt, den gibt es so in der Ascii-Tabelle nicht.
Man sieht das Hauptmenü mit Farbwahl, DMX-Einstellungen (noch inaktiv) und Programme.
Ich habe auch eine kleine Windows-Software mit Visual Studio 2010 C# geschrieben, welches aber noch in der Testphase ist und daher erst später vorgestellt wird.
Zum guten Schluss noch ein kleines Video vom momentanen Status:
Zuletzt aktualisiert: 04.06.2015
Da nun alles lief, konnte ich ein kleines Menü programmieren, das auf dem LCD angezeigt wurde und mit dem ich dann die Helligkeiten der Farben steuern konnte. Den Cursor-Pfeil habe ich nachträglich in den Zeichensatz eingefügt, den gibt es so in der Ascii-Tabelle nicht.
Man sieht das Hauptmenü mit Farbwahl, DMX-Einstellungen (noch inaktiv) und Programme.
Farbwahl | Hier kann man die Helligkeitswerte aller Farben ablesen per Knopfdruck auch einstellen. Das geht mittels Fader. |
DMX-Einstellungen | Noch nicht programmiert, damit sollen dann die DMX-Startadressen der Geräte im EEPROM gespeichert werden. |
Programme | Beleuchtungs-Programme. Momentan nur das Moodlight. Das ist ein Farbwechsel in bestimmten Zeitintervallen, die dann auch noch eingestellt werden können. Später sollen noch vorgefertigte Farben und andere Programme auswählbar sein. |
Ich habe auch eine kleine Windows-Software mit Visual Studio 2010 C# geschrieben, welches aber noch in der Testphase ist und daher erst später vorgestellt wird.
Zum guten Schluss noch ein kleines Video vom momentanen Status:
9. Platinen-Redesign
Zuletzt aktualisiert: 04.06.2015
Mir wurde schnell klar, dass die LED-Platine extrem groß geraten ist. Für den ersten Versuch mag das OK sein, aber noch 4 davon hielt ich dann für ungünstig. Also habe ich ein neues Design entworfen, welches zweiseitig ist und die Teile etwas enger aneinanderbringt. Dadurch habe ich die Fläche ein ganzes Stück reduziert.
Das Ätzen habe ich diesmal aber bei Platinenbelichter machen lassen. Dieser bietet eine sehr günstige Platinenherstellung mit Verzinnung, Bohrungen und sogar Lotstoplack bei sehr guter Qualität an.
Der grüne Lack war mir für das Hobbyprojekt zu luxuriös, aber die Verzinnung wollte ich mal ausprobieren, da der Aufpreis kaum erwähnenswert ist. Nach etwa 2 Wochen habe ich sie dann auch endlich bekommen:
Ich muss dazu allerdings noch sagen, dass ich die Bohrungen selbst gemacht habe. Anschließend dann wieder durchkontaktiert mit 0,8 mm Silberdraht:
Nun den AtMega 8 und die Stromversorgung, das Quarz und den 6-Pin Anschluss und das ganze auf Funktion getestet.
Der Mega wurde von AVR-Studio sofort erkannt und das Quarz konnte auch problemlos eingestellt werden. Also habe ich direkt stück für stück die LED-Treiber bestückt und einzeln getestet. Auch das hat super funktioniert. Für die weiße LED hatte ich im Redesign auch direkt den HV9910B gewählt, den ich für die RGBs verwendet habe, da es mit den ZXLD1360 Probleme mit der PWM gab. Die zweite Platine habe ich dann auch an einem Tag (inkl. Durchkontatkieren) fertig bestückt.
Nachdem dann alle vier Platinen fertig waren, habe ich das DMX-Kabel gelötet. Dazu habe ich LIYCY-Kabel genommen, da es einen Schirm hat und 4 Datenleitungen, von denen ich aber nur 2 benötige. Am Anfang ein 3-Pol-Buchsenleiste mit 120-Ohm-Abschlusswiderstand, dann alle 1,5 Meter eine weitere Buchsenleiste und am Ende dann die XLR-Kupplung für das DMX-Kabel. Für die Stromversorgung habe ich dann einfach 1,5mm-Litze und alle 1,5m eine Lüsternklemme verdrahtet.
Hier nun die vier fertigen Platinen und eine einzelne mit den LEDs:
Und hier die alte im Vergleich zur neuen Platine:
Zum Schluss habe ich noch ein Bild der fünf LED-Lampen in Aktion. Ich muss schon sagen, das ist verdammt hell !
(bitte ignoriert das Chaos im Hintergrund xD)
Zuletzt aktualisiert: 04.06.2015
Mir wurde schnell klar, dass die LED-Platine extrem groß geraten ist. Für den ersten Versuch mag das OK sein, aber noch 4 davon hielt ich dann für ungünstig. Also habe ich ein neues Design entworfen, welches zweiseitig ist und die Teile etwas enger aneinanderbringt. Dadurch habe ich die Fläche ein ganzes Stück reduziert.
Das Ätzen habe ich diesmal aber bei Platinenbelichter machen lassen. Dieser bietet eine sehr günstige Platinenherstellung mit Verzinnung, Bohrungen und sogar Lotstoplack bei sehr guter Qualität an.
Der grüne Lack war mir für das Hobbyprojekt zu luxuriös, aber die Verzinnung wollte ich mal ausprobieren, da der Aufpreis kaum erwähnenswert ist. Nach etwa 2 Wochen habe ich sie dann auch endlich bekommen:
Ich muss dazu allerdings noch sagen, dass ich die Bohrungen selbst gemacht habe. Anschließend dann wieder durchkontaktiert mit 0,8 mm Silberdraht:
Nun den AtMega 8 und die Stromversorgung, das Quarz und den 6-Pin Anschluss und das ganze auf Funktion getestet.
Der Mega wurde von AVR-Studio sofort erkannt und das Quarz konnte auch problemlos eingestellt werden. Also habe ich direkt stück für stück die LED-Treiber bestückt und einzeln getestet. Auch das hat super funktioniert. Für die weiße LED hatte ich im Redesign auch direkt den HV9910B gewählt, den ich für die RGBs verwendet habe, da es mit den ZXLD1360 Probleme mit der PWM gab. Die zweite Platine habe ich dann auch an einem Tag (inkl. Durchkontatkieren) fertig bestückt.
Nachdem dann alle vier Platinen fertig waren, habe ich das DMX-Kabel gelötet. Dazu habe ich LIYCY-Kabel genommen, da es einen Schirm hat und 4 Datenleitungen, von denen ich aber nur 2 benötige. Am Anfang ein 3-Pol-Buchsenleiste mit 120-Ohm-Abschlusswiderstand, dann alle 1,5 Meter eine weitere Buchsenleiste und am Ende dann die XLR-Kupplung für das DMX-Kabel. Für die Stromversorgung habe ich dann einfach 1,5mm-Litze und alle 1,5m eine Lüsternklemme verdrahtet.
Hier nun die vier fertigen Platinen und eine einzelne mit den LEDs:
Und hier die alte im Vergleich zur neuen Platine:
Zum Schluss habe ich noch ein Bild der fünf LED-Lampen in Aktion. Ich muss schon sagen, das ist verdammt hell !
(bitte ignoriert das Chaos im Hintergrund xD)
10. Gehäuse für die Lampe
Zuletzt aktualisiert: 04.06.2015
Nachdem nun fünf Lampen fertiggestellt und ausgiebig getestet waren, habe ich mir überlegt, was für ein Gehäuse sie bekommen sollen. Denn sie einfach so an die Decke zu schrauben, sieht nicht gerade stylisch aus.
Mein Stiefvater hat mir Aluminiumbleche so zurechtgebogen und -gesägt, dass ich eine Platte von 20 x 13 cm hatte, bei der links und rechts jeweils ein Dreieck von 6,5 cm Höhe nach hinten gebogen ist.
Der Platz reicht locker aus, um die LEDs mit Kühl-Sternen und Platine (mit 1 cm Abstand !) einzukleben. Somit sind auf der Vorderseite nur noch zwei Löcher für die LEDs zu sehen, die Rückseite, die nachher direkt an Wand und Decke ist, bleibt offen.
Die silberne Farbe des Aluminiums sieht zwar an sich schon nicht schlecht aus, aber da es sich hierbei um Industriereste handelt, sind einige Kratzer darauf zu sehen. Eine Möglichkeit wäre gewesen, die Flächen überzulackieren, aber ich hatte dazu eine bessere Idee: Acrylglas.
Bei Ebay habe ich dazu einige Angebote gefunden und mir 6 Stück satinierte Acrylplatten in der Größe 33 x 22 cm gekauft. Als sie hier ankamen, habe ich sie in die richtige Größe zugeschnitten (eine Platte reichte für zwei Lampen), die Kanten glatt geschliffen, Löcher in Platten und Alugehäuse gebohrt, Gewinde in das Alugehäuse gebohrt, die Löcher der Acrylplatte ein wenig versenkt und zum Schluss beide Teile mit 15mm-Abstandhaltern und 20mm langen M3-Schrauben befestigt.
Und fertig ist die DMX-RGB-Lampe !
Momentan habe ich Semesterferien, die ich nutzen wollte, um viiiel zu programmieren und zu basteln. Die Homepage war der erste Schritt. Als nächstes müssen die Lampen noch an die Decke und das Gehäuse vom Controller muss bearbeitet werden. Anschließend geht es wieder an die Verfeinerung des Controller-Codes.
Das Moodlight habe ich bereits ein wenig überarbeitet. Ich möchte aber noch Funktionen einbauen, dass die Lampen erst in einem bestimmten Zeitabstand voneinander die Farbe wechseln (also die 1. wechselt z.B. auf blau, die anderen bleiben noch auf Türkis, nach 30 Sekunden wechselt die zweite auf blau usw..)
Außerdem war ich mit einem Kurs der Uni im Fraunhofer InHaus (worüber ich in den News berichtet habe) und war sehr inspiriert von einer Sonnenaufgangs-Animation. Daran arbeite ich auch bereits.
Wenn dann noch Zeit übrig bleibt, habe ich noch einige Bauteile, um eine CAN-Bus-Verbindung zu realisieren und dann möchte ich mich weiter in das Thema ARM Cortex M3 vertiefen.
Zuletzt aktualisiert: 04.06.2015
Nachdem nun fünf Lampen fertiggestellt und ausgiebig getestet waren, habe ich mir überlegt, was für ein Gehäuse sie bekommen sollen. Denn sie einfach so an die Decke zu schrauben, sieht nicht gerade stylisch aus.
Mein Stiefvater hat mir Aluminiumbleche so zurechtgebogen und -gesägt, dass ich eine Platte von 20 x 13 cm hatte, bei der links und rechts jeweils ein Dreieck von 6,5 cm Höhe nach hinten gebogen ist.
Der Platz reicht locker aus, um die LEDs mit Kühl-Sternen und Platine (mit 1 cm Abstand !) einzukleben. Somit sind auf der Vorderseite nur noch zwei Löcher für die LEDs zu sehen, die Rückseite, die nachher direkt an Wand und Decke ist, bleibt offen.
Die silberne Farbe des Aluminiums sieht zwar an sich schon nicht schlecht aus, aber da es sich hierbei um Industriereste handelt, sind einige Kratzer darauf zu sehen. Eine Möglichkeit wäre gewesen, die Flächen überzulackieren, aber ich hatte dazu eine bessere Idee: Acrylglas.
Bei Ebay habe ich dazu einige Angebote gefunden und mir 6 Stück satinierte Acrylplatten in der Größe 33 x 22 cm gekauft. Als sie hier ankamen, habe ich sie in die richtige Größe zugeschnitten (eine Platte reichte für zwei Lampen), die Kanten glatt geschliffen, Löcher in Platten und Alugehäuse gebohrt, Gewinde in das Alugehäuse gebohrt, die Löcher der Acrylplatte ein wenig versenkt und zum Schluss beide Teile mit 15mm-Abstandhaltern und 20mm langen M3-Schrauben befestigt.
Und fertig ist die DMX-RGB-Lampe !
Momentan habe ich Semesterferien, die ich nutzen wollte, um viiiel zu programmieren und zu basteln. Die Homepage war der erste Schritt. Als nächstes müssen die Lampen noch an die Decke und das Gehäuse vom Controller muss bearbeitet werden. Anschließend geht es wieder an die Verfeinerung des Controller-Codes.
Das Moodlight habe ich bereits ein wenig überarbeitet. Ich möchte aber noch Funktionen einbauen, dass die Lampen erst in einem bestimmten Zeitabstand voneinander die Farbe wechseln (also die 1. wechselt z.B. auf blau, die anderen bleiben noch auf Türkis, nach 30 Sekunden wechselt die zweite auf blau usw..)
Außerdem war ich mit einem Kurs der Uni im Fraunhofer InHaus (worüber ich in den News berichtet habe) und war sehr inspiriert von einer Sonnenaufgangs-Animation. Daran arbeite ich auch bereits.
Wenn dann noch Zeit übrig bleibt, habe ich noch einige Bauteile, um eine CAN-Bus-Verbindung zu realisieren und dann möchte ich mich weiter in das Thema ARM Cortex M3 vertiefen.
11. Deckeninstallation
Zuletzt aktualisiert: 04.06.2015
Die Lampen sind so gut wie fertig. Nur bei der alten Revision muss ich demnächst noch eine kleine Adapter-Platine herstellen, um die weiße LED ans Laufen zu bekommen. Aber erstmal habe ich alle 5 Lampen an die Wand geschraubt und sie sehen wirklich sehr genial aus ! Und funktionieren tun sie auch alle top. Ich nutze sie mittlerweile täglich. Die normale Lampe ist nur an, wenn ich abends die LEDs ausschalte, weil der Controller dafür noch auf dem Schreibtisch am anderen Ende des Zimmers steht und ich sonst nichts sehen kann ;)
Zuletzt aktualisiert: 04.06.2015
Die Lampen sind so gut wie fertig. Nur bei der alten Revision muss ich demnächst noch eine kleine Adapter-Platine herstellen, um die weiße LED ans Laufen zu bekommen. Aber erstmal habe ich alle 5 Lampen an die Wand geschraubt und sie sehen wirklich sehr genial aus ! Und funktionieren tun sie auch alle top. Ich nutze sie mittlerweile täglich. Die normale Lampe ist nur an, wenn ich abends die LEDs ausschalte, weil der Controller dafür noch auf dem Schreibtisch am anderen Ende des Zimmers steht und ich sonst nichts sehen kann ;)