Ich wollte schon immer in unserer Küche den Wolkenhimmel sehen, doch sah ich immer nur die weisse Decke. Ein Dachfenster schneiden bringt auch nichts, ich würde dadurch nur die Decke des darüber liegenden Zimmers sehen. Also muss ein Cloudpanel her! Der Zufall will‘s, dass ein Leuchten Laden an meinem Arbeitsweg genau das im Schaufenster stehen hat: ein Lichtpanel aus Modulen zu 50x50cm, welches per Video weisse Wolken auf blauem Hintergrund vorüberziehen lässt. Die Anzahl Stellen der letzten Zahl auf der angeforderten Offerte für so 'n Teil liess mich einige Monate weiterträumen... Dann habe ich mich entschieden, so ein Cloudpanel selbst zu bauen. Schliesslich wurde die entsprechende Zahl bei mir auch vierstellig, aber zumindest nicht fünfstellig! Und das wichtigste, es hat Spass gemacht und funktioniert.
Vorab, wie’s aussieht
Und wie’s aussieht, wenn’s windet: Das Blitzen ist noch irgend ein Softwarefehler, der zum Umschaltzeitpunkt möglicherweise in einer Interrupt Schleife ‚was tut, und deshalb die PWM nicht auf die Ports rauslässt – ich muss ja noch ‚was haben zum Verbessern...
Aber nun alles der Reihe nach. Der Post steht zwar unter Tutorials, ist aber keine Anleitung bis zur letzten LED, sondern eher ein Werdegang-Logbuch, welches als Leitfaden für ähnliche Projekte herhalten kann.
Analyse
Aus der Produktbeschreibung, die der Offerte beilag, konnte ich ein wenig über den Aufbau der gesehenen Module in Erfahrung bringen. Es ist eine RGB Matrix mit 10x10 LEDs auf 50x50cm – gibt also LED-Abstand von ca. 5cm. RGB muss nicht sein, ich beschränke mich auf weiss auf blauem Hintergrund. Video muss auch nicht sein, ich werde mir ein Wolkenband in den Speicher legen. Des weiteren haben die Module eine Diffusor Platte zwischen den LEDs und der sichtbaren Frontplatte – ich denke, das ist der Trick, das Modul trotz des grossen LED-Abstandes so wenig hoch bauen zu können.
Ein bisschen skizziert und überlegt, kam ich dann für mein 60x120cm Panel auf eine dimmbare 12x23 Matrix blauer LEDs mit 11x22 weissen LEDs dazwischen. Die Ansteuerung der weissen LEDs mit einem einzelnen uC und allenfalls Treibern im Stil ‚Reihe für Reihe ein Spaltenmuster ausgeben‘ traute ich mir nicht zu. Zu unheimlich, die kurzen Zeiten (1 aus 11), welche ich zur Verfügung hätte, ein Fade in/out schön hinzukriegen. Weiter will ich trotz hohem Deko-Charakter etwas Licht aus dem Panel holen, und da ist eine Grundtastrate von 1/11 schon von sich aus finster.
Konzept
Es kristallisiert sich ein Aufbau mit Zeilen-Controllern für 11 Zeilen zu 22 LEDs. Ein Master-Controller soll den Zeilencontrollern sagen, was sie tun sollen und die Zeilen-Controller sollen jede LED persönlich bedienen. Also brauche ich einen uC mit mindestens 22 Outputs und ein paar mehr für die Kommunikation mit dem Master. Auch hier wage ich mich noch nicht an etwelchige SPI oder sonstiger Bus-Kommunikation zwischen den Controllern. Ich sehe eher vor, dass der Master-Controller die Zeilen-Controller über dedizierte Ports anspricht (als wenn ich Taster und Sensoren am Zeilen-Controller hätte).
Obiges Konzept ist Resultat langen Überlegens vor dem Einschlafen, des Lesens verschiedener Prozessor-Datenblätter und Product selection guides sowie gelegentliches Googlen zum einen oder anderen Thema.
Prototyp - Evaluation
Um die Gedankenwelt mit etwas Realem zu Unterstützen, habe ich einen ersten Prototypen designed. Der soll dazu dienen, die Auswahl der passenden LEDs für blau und weiss machen zu können, aber auch als Erweiterung zum AVR Board als Testfeld für erste Programmversuche herzuhalten. Da die Anzahl Bauteile und Wiederholung der gleichen Strukturen wie auch die schiere Fläche von 0.72m2 mit Lochraster nicht ästhetisch würde, will ich die Platinen bei einem PCB-Hersteller fertigen lassen. Da mir hier die Erfahrung gänzlich fehlt, auch im PCB Design mit Schaltplan und Layouten, kommt dieser Evaluations-Prototyp also auch hier zum Zuge. Schema und PCB Layout habe ich mit Target 3000 erstellt und beim Conrad Leiterplattenservice herstellen lassen.
Die Prototyp-Platinen sind steckbar, ein Treiberteil steckt am AVRboard, da dran kommt ein E mit neun mal drei verschiedenen weissen LEDs, und da dran ein gedrehtes U mit vier mal drei verschiedenen blauen LEDs.
Entsprechend habe ich bei Lumitronix je 10 verschiedenste weisse und blaue LEDs bestellt: Superflux, Top SMD, SMD, 5mm, kaltweiss, warmweiss, blau, royal blue... das Rennen haben schlussendlich diese beiden gemacht:
14002 Top SMD LED weiß 1500mcd 120° 3.1V
14402 Top SMD LED blau 500mcd 120° 3.1V
Vom Plexi-Händler meines Vertrauens habe ich mir Restposten verschiedener Platten geholt, um damit den mechanischen Aufbau mit der Diffusor Platte zu bestimmen und das geeignete Plexi zu finden. Ich kam dabei auf 3mm SATINICE GS WH10 (white).
Dieser Aufbau – 48.26mm LED-Abstand, 29mm zum 3mm-Diffusor und 17.4mm zur Frontplatte in 72mm Gesamthöhe – ergibt bei diesen Top SMD-LEDs gerade genug Überlappung der Streuung, dass die einzelnen LEDs zu einer Leuchtfläche verschmelzen und nicht mehr als einzelne Punkte gesehen werden. Ich dachte zuerst auch, die 120° Abstrahlwinkel sollten sich viel besser verschmelzen lassen, doch man blickt ja direkt ins Licht, und da muss das SATINICE doch schon recht streuen, dass die hier nötigen 50° Streuwinkel (noch mehr, weil diagonal die LEDs noch weiter auseinander liegen) erreicht werden.
Der Fotoapparat sieht mehr hier im fertigen Panel, die dunklen Streifen zwischen den weissen Pixeln sind von Auge kaum erkennbar.
Planung - CAD
Da jetzt die LEDs bestimmt und die Diffusor-Dimensionierung steht, geht’s in die Pläne. Viele Stunden gehen ins CAD (Creo Elements Direct Modelling Express von PTC), um aus U-Profilen die Rahmen zu gestalten, Montagereihenfolge und Befestigungen für Netzgeräte und Prints zu planen und zu optimieren.
Im CAD ist das Verschieben falsch ‚gebohrter‘ Löcher einfach. Man kann aber geradesogut vergessen, Löcher zu schieben... also jede Verbindung mehrmals prüfen und auch die Masszeichnungen immer wieder gegenchecken.
Planung - Programm
Als nächstes ging ich das Wolkenprogramm an. Grundsätzlich brauche ich ein Schieberegister, welches ein Datenmuster durch die Zeile schiebt. Das Einschalten soll aber sanft sein und während der Schrittfrequenz von 0 auf 100% hoch dimmen bzw. das Ausschalten entsprechend runter faden. Theoretisch könnte ein 22-Kanal SW-PWM hier dienen, habe ich aber nach ein paar Versuchen verworfen, weil ich nicht auf die gewünschte Taktfrequenz hochkam. Das Konzept ging dann auf vier Zustände hinaus, welche eine LED in einem Zyklus haben kann: aus, fading in, ein, fading out. Ich bau mir also ein fading in PWM-Signal und ein fading out. Abhängig vom nächsten und jetzigem Zustand häng ich dann das entsprechende Port-Bit an 0, fade in, 1 oder fade out. Muss dann nur sicherstellen, dass alle Zeilencontroller zur gleichen Zeit den gleichen Pegel für fade in und fade out haben -> der Master gibt einen Analog-Sägezahn an alle Zeilen, diese converten dies zurück auf den Fade-Index und schon sind alle synchron. Mit dem ATmega 8 konnte ich obiges Fliessen tatsächlich ausprogrammieren.
Bezogen auf diesen Ansatz und der benötigten Ports kam ich auf den ATmega 16 PU Controller und habe mir einen zum Testen besorgt. Beim Programmieren habe ich mich hauptsächlich vom Datenblatt leiten lassen. Ich habe die Funktion, die ich brauche, im Kopf und suche, welche Register wie zu setzen sind, damit der Controller das macht, was ich will. Klappt soweit gut, programmieren in kleinen Schritten vereinfacht die Fehlersuche und Korrektur bei Nichtfunktionieren ungemein.
Für die Erstellung des Wolkenbildes habe ich Excel herangezogen und ein Gif zur Visualisierung nachgelagert:
Pro Zeile im Excel werden die 11 Bits einer Reihe des Panels dargestellt. 1, wenn die weisse LED leuchten soll, 0, wenn nicht (blauer Himmel). Ein bisschen umformatiert habe ich dann die beiden Arrays mit dem Fliessbild errechnet.
Planung – Schaltung und Printlayout
Weil jetzt auch alle Portbelegungen feststehen, habe ich die Schaltpläne und Prints entwickelt. Auch hier gehen endlose Abende ins Land...
Ein Goodie von Target ist, dass das 3D Modell der Printplatte (mit Bestückung, wenn die 3D Modelle der Bauteile da sind) als Step-Datei exportiert werden kann. Diese im CAD importiert (hier vereinfacht wegen Teilelimitierung), lassen sich Kollisionen mit der Befestigungskonstruktion analysieren, um sie gegebenenfalls im mechanischen Plan oder im Leiterplattendesign zu korrigieren.
Gut zum Druck
Schliesslich steht alles am PC bereit und ist zigfach in Gedanken durchgespielt worden, in der Hoffnung, dass alles so ist, wie’s sein soll...
- Kann ich alle Teile des mechanischen Aufbaus beschaffen und bearbeiten?
- Kann ich das Panel denn zusammenbauen?
- Sind die Ports richtig verbunden (LEDs, Bus, ISP, ...) und verdrehen die Flachbandkabel den Bus nicht?
- Sind die Platinen vollständig geroutet und macht Leiterbahndicke Sinn?
Es kommt noch mehr, aber nach 20 Bilder ist fertig für einen Post. entschuldigt, dass ich zwei draus mache...
Cloudpanel – ein Fenster zum Wolkenhimmel
Moderator: T.Hoffmann
Beschaffung - Herstellung
Also los: Platinen herstellen lassen, LEDs- und andere Komponenten bestellen, warten – und nach Erhalt zusammenbauen. Überschlagsmässig waren es etwa 1550 Komponenten (SMD und Draht gemischt) und 5200 Lötstellen auf 38 Prints... Um den Einschaltstrom in Schach zu halten (es sind drei Netzgeräte: 5V für die Controller, 5V für die weissen und 16V für die blauen LEDs) habe ich mit NTC, RC-Zeitverzögerung und elektronischem Relais mit Nulldurchgangsschaltung die Spitzen geglättet und zeitlich versetzt. Somit kamen die Netzteil-Schaltmodule auch auf Prints mit Anschlussklemmen (Mitte). Die Bedienungsplatine mit Modus Schalter (grüner HEX Drehschalter), Modus set Taster, Reset, zwei Poti für Helligkeit der roten Zierleiste und des blauen Hintergrundes, Speed Poti und zwei Schalter für Links-/Rechtslauf sowie Debug-Status LEDs on/off. Die Potis, Taster und HEX Schalter werden später nach aussen geführt. Die rote Zierleiste hat 7 rote SMD LEDs und einen infineon BCR402 Treiber pro Streifen. Diese habe ich jeweils mit Drahtbrücken nahtlos zu den 1.2m zusammengelötet, um sie dann in das Vorhangschienen-Profile einzuschieben. Leider habe ich die Löcher für die Kabelausführung erst gebohrt, als die Leisten schon im Profil waren. Lebe wohl, kleiner Treiber. Ein imposanter Anblick, wenn dann alle Zeilenboards fertiggelötet nebeneinander liegen. Oben links ist angedeutet, wie die blauen und weissen LEDs angeordnet sind. Dieser erste Hinlege-Versuch zeigt auch, dass die Spannweite von 40cm zu weit ist – die Prints biegen durch und müssen in deren Mitte zusätzlich gestützt werden. Zusammenbau
Nach ein paar Stunden in der Werkstatt waren dann auch die Aluprofile bereit und ich konnte das Panel zusammensetzen. Erste Lage mit Frontplatte und ALU-Rahmen, dann Diffusor drauf und auch der zweite Rahmen. Dann die vorbereiteten roten Zierleisten und der oberste Rahmen drauf: Und zum Schluss die Prints und Netzteile montieren und einschalten (natürlich ist dieses letzte Bild von später, als auch das Programm geladen war). Oder aus anderer Perspektive: Proggen und Debuggen
Ich habe also ein in Gedanken funktionierendes Programmpaar von Master und Zeile, in Gedanken richtig geplante und bestückte Prints und viel Hoffnung. Zuerst habe ich kleine Testprogramme, welche die Funktion des Masters alleine und die der Zeile alleine durchspielen, geladen. zB ‚alles ein‘, ‚ein LED nach dem anderen‘, ... Dabei fand ich einen Fehler im Layout, wo zwei Ausgabe Bits vertauscht waren. Also dremeln und löten – zum Glück nur 11 Mal. Zum anderen funzte eine ganze Zeile nicht - der Fehler da hat sich aber ganz selbst angezeigt: ein verkehrt rum eingelöteter Elko hat sich in Rauch aufgelöst. Dann waren noch einzelne blaue Zellen, die nicht gingen – hier waren unsaubere Lötstellen der Grund.
Ein weitaus grösserer Dimensionierungsfehler ist mir bei der Speisung der weissen LEDs passiert. Hier hatte ich vor, mit 3.3V-Netzmodul, welches noch etwas hochgeschraubt werden kann, die weissen LEDs via Vorwiderstand mit dem Darlington-Treiber ULN2003/2004 zu schalten. Mit entsprechendem Vorwiderstand war da aber alles andere als hell – der Darlington-Treiber hat mehr als 0.6V Spannungsabfall, und das reichte dann nicht mehr. Ich habe dann das 3.3V Modul durch ein 5V Modul getauscht und die weissen Vorwiderstände frisch berechnet/nachgemessen/nachbestellt. Was nun folgte war mehrmaliges Umschreiben von Parametern und Programmstücken, dann immer 12-fach brennen (nach dem Trennen der Bus-Verbindung, da sonst die ISP-Signale an alle Zeilen-Controller parallel gingen). Oben die ersten Testbilder von weiss (grün durchscheinend weil von hinten die Sonne reinscheint), unten die ersten Schäfchenwolken und das eiskalte Händchen, welches mir beim Aufbau half.
Ein Blick zwischen Printplatten und Diffusor Platte zeigt unendliche Weiten von blau und weiss. Endmontage
Zum Schluss musste ich die Konstruktion der Aufhängung grundsätzlich ändern, da die vorgesehene Seilkonstruktion genau da durchläuft, wo die Speisung-Kabelbäume (welche ich im CAD nicht gezeichnet und darum diesen Konflikt nicht vorausgesehen hatte) nun sind. Neu sind L-Profile an die Decke geschraubt (mit möglichst vielen Treffern auf die unter den Rigips Platten verlaufenden Querstreben), an welche dann der oberste U-Profilrahmen des Panels geschraubt werden. Und endlich kann ich in den Himmel schauen ! Ich hoffe, es gefällt und bin offen für weiter ausführende Antworten auf Eure Fragen.
Also los: Platinen herstellen lassen, LEDs- und andere Komponenten bestellen, warten – und nach Erhalt zusammenbauen. Überschlagsmässig waren es etwa 1550 Komponenten (SMD und Draht gemischt) und 5200 Lötstellen auf 38 Prints... Um den Einschaltstrom in Schach zu halten (es sind drei Netzgeräte: 5V für die Controller, 5V für die weissen und 16V für die blauen LEDs) habe ich mit NTC, RC-Zeitverzögerung und elektronischem Relais mit Nulldurchgangsschaltung die Spitzen geglättet und zeitlich versetzt. Somit kamen die Netzteil-Schaltmodule auch auf Prints mit Anschlussklemmen (Mitte). Die Bedienungsplatine mit Modus Schalter (grüner HEX Drehschalter), Modus set Taster, Reset, zwei Poti für Helligkeit der roten Zierleiste und des blauen Hintergrundes, Speed Poti und zwei Schalter für Links-/Rechtslauf sowie Debug-Status LEDs on/off. Die Potis, Taster und HEX Schalter werden später nach aussen geführt. Die rote Zierleiste hat 7 rote SMD LEDs und einen infineon BCR402 Treiber pro Streifen. Diese habe ich jeweils mit Drahtbrücken nahtlos zu den 1.2m zusammengelötet, um sie dann in das Vorhangschienen-Profile einzuschieben. Leider habe ich die Löcher für die Kabelausführung erst gebohrt, als die Leisten schon im Profil waren. Lebe wohl, kleiner Treiber. Ein imposanter Anblick, wenn dann alle Zeilenboards fertiggelötet nebeneinander liegen. Oben links ist angedeutet, wie die blauen und weissen LEDs angeordnet sind. Dieser erste Hinlege-Versuch zeigt auch, dass die Spannweite von 40cm zu weit ist – die Prints biegen durch und müssen in deren Mitte zusätzlich gestützt werden. Zusammenbau
Nach ein paar Stunden in der Werkstatt waren dann auch die Aluprofile bereit und ich konnte das Panel zusammensetzen. Erste Lage mit Frontplatte und ALU-Rahmen, dann Diffusor drauf und auch der zweite Rahmen. Dann die vorbereiteten roten Zierleisten und der oberste Rahmen drauf: Und zum Schluss die Prints und Netzteile montieren und einschalten (natürlich ist dieses letzte Bild von später, als auch das Programm geladen war). Oder aus anderer Perspektive: Proggen und Debuggen
Ich habe also ein in Gedanken funktionierendes Programmpaar von Master und Zeile, in Gedanken richtig geplante und bestückte Prints und viel Hoffnung. Zuerst habe ich kleine Testprogramme, welche die Funktion des Masters alleine und die der Zeile alleine durchspielen, geladen. zB ‚alles ein‘, ‚ein LED nach dem anderen‘, ... Dabei fand ich einen Fehler im Layout, wo zwei Ausgabe Bits vertauscht waren. Also dremeln und löten – zum Glück nur 11 Mal. Zum anderen funzte eine ganze Zeile nicht - der Fehler da hat sich aber ganz selbst angezeigt: ein verkehrt rum eingelöteter Elko hat sich in Rauch aufgelöst. Dann waren noch einzelne blaue Zellen, die nicht gingen – hier waren unsaubere Lötstellen der Grund.
Ein weitaus grösserer Dimensionierungsfehler ist mir bei der Speisung der weissen LEDs passiert. Hier hatte ich vor, mit 3.3V-Netzmodul, welches noch etwas hochgeschraubt werden kann, die weissen LEDs via Vorwiderstand mit dem Darlington-Treiber ULN2003/2004 zu schalten. Mit entsprechendem Vorwiderstand war da aber alles andere als hell – der Darlington-Treiber hat mehr als 0.6V Spannungsabfall, und das reichte dann nicht mehr. Ich habe dann das 3.3V Modul durch ein 5V Modul getauscht und die weissen Vorwiderstände frisch berechnet/nachgemessen/nachbestellt. Was nun folgte war mehrmaliges Umschreiben von Parametern und Programmstücken, dann immer 12-fach brennen (nach dem Trennen der Bus-Verbindung, da sonst die ISP-Signale an alle Zeilen-Controller parallel gingen). Oben die ersten Testbilder von weiss (grün durchscheinend weil von hinten die Sonne reinscheint), unten die ersten Schäfchenwolken und das eiskalte Händchen, welches mir beim Aufbau half.
Ein Blick zwischen Printplatten und Diffusor Platte zeigt unendliche Weiten von blau und weiss. Endmontage
Zum Schluss musste ich die Konstruktion der Aufhängung grundsätzlich ändern, da die vorgesehene Seilkonstruktion genau da durchläuft, wo die Speisung-Kabelbäume (welche ich im CAD nicht gezeichnet und darum diesen Konflikt nicht vorausgesehen hatte) nun sind. Neu sind L-Profile an die Decke geschraubt (mit möglichst vielen Treffern auf die unter den Rigips Platten verlaufenden Querstreben), an welche dann der oberste U-Profilrahmen des Panels geschraubt werden. Und endlich kann ich in den Himmel schauen ! Ich hoffe, es gefällt und bin offen für weiter ausführende Antworten auf Eure Fragen.
- Beatbuzzer
- Auserwählter
- Beiträge: 3177
- Registriert: Fr, 17.08.07, 11:02
- Wohnort: Alfeld / Niedersachsen
- Kontaktdaten:
Na das nenne ich mal ein Projekt!
Fast schon schade um den großen Planungsaufwand, weil am Ende nur ein Paneel draus geworden ist. Aber sehr saubere und schöne Arbeit.
Etwas mehr Software-Aufwand für eine Kopplung an den aktuellen Wetterbericht wäre natürlich noch der Knüller. allerdings sind schlichte blaue oder weisse Flächen dann nicht so abenteuerlich...
Immer wieder schön, wenn sich mal jemand auch die Zeit nimmt und solche Hirngespinste dann in die Tat umsetzt.
Fast schon schade um den großen Planungsaufwand, weil am Ende nur ein Paneel draus geworden ist. Aber sehr saubere und schöne Arbeit.
Etwas mehr Software-Aufwand für eine Kopplung an den aktuellen Wetterbericht wäre natürlich noch der Knüller. allerdings sind schlichte blaue oder weisse Flächen dann nicht so abenteuerlich...
Immer wieder schön, wenn sich mal jemand auch die Zeit nimmt und solche Hirngespinste dann in die Tat umsetzt.
- R.Kränzler
- Moderator
- Beiträge: 1700
- Registriert: Mo, 26.11.07, 08:49
- Wohnort: Haigerloch
...aber natürlich reziprok, also schöner Himmel bei Sauwetter!Beatbuzzer hat geschrieben:Etwas mehr Software-Aufwand für eine Kopplung an den aktuellen Wetterbericht wäre natürlich noch der Knüller.
- unoptanium
- Mega-User
- Beiträge: 475
- Registriert: Di, 07.10.08, 19:00
- Wohnort: Berlin
Hi.
Sieht nicht schlecht aus.
Bei solchen Preisen würde ich aber wohl eher einen oder mehrere LCD TVs mit LED Hintergrundbeleuchtung verwenden.
Abspielen tun die zumeist eh schon DivX von USB Stick...
Passend dazu wäre noch ein Fenster im Boden... aber Regenwürmer sind langweilig, Fische wären was.
Wie bei so einem Boot mit Glasboden. Die Deckscheibe kann für den privaten Bereich aus 8mm ESG sein, hält locker.
Gruß, unoptanium
Sieht nicht schlecht aus.
Bei solchen Preisen würde ich aber wohl eher einen oder mehrere LCD TVs mit LED Hintergrundbeleuchtung verwenden.
Abspielen tun die zumeist eh schon DivX von USB Stick...
Passend dazu wäre noch ein Fenster im Boden... aber Regenwürmer sind langweilig, Fische wären was.
Wie bei so einem Boot mit Glasboden. Die Deckscheibe kann für den privaten Bereich aus 8mm ESG sein, hält locker.
Gruß, unoptanium