Seit dem letzten Bericht über mein Projekt ist schon wieder einige Zeit vergangen. Doch während dieser Zeit war ich nicht ganz untätig.
Die Weihnachtsbeleuchtung mit den einzeln ansteuerbaren RGB LED’s soll durch ein digitales System kontrolliert werden. Dabei zielte ich hauptsächlich auf eine Lösung mit einem Arduino Mikroprozessor ab. Diesen Weg verfolgte ich unzählig viele, nächtliche Stunden.
Nachfolgend ein Abriss über meine Hochs und Tiefs der letzten Wochen und wie es weiter geht.
Mein Fokus setzte ich auf den mir bekannten Arduino Uno
Mit diesem kleinen Mikroprozessor Board baute ich schon einige Schaltungen und Anwendungen. Daher lag es nahe, mein RGB LED Projekt auf diesem System aufzubauen. Leider stiess ich rasch an die Grenzen und so suchte ich nach Alternativen.
Mit dem Arduino Ethernet glaubte ich die Lösung gefunden zu haben
Dieses Board hat einen Netzwerkanschluss und einen Steckplatz für microSD Karten. Mein Plan war es die Lichteffekte (Lichtmuster) auf der micro SD Speicherkarte abzuspeichern und damit den winzig kleinen Arbeitsspeicher von 32 Kilobyte zu schonen.
Als erstes stellte ich jedoch fest, dass man das Board nicht über die vorhandene Netzwerkschnittstelle programmieren. Die vom Arduino Uno bekannte USB Schnittstelle fehlt jedoch bei diesem Board. Dank einer Anleitung im Internet konnte ich das Board über den vorhandenen Arduino Uno programmieren. Nach etwa 4 Stunden verstand ich langsam wie man Daten von der microSD Speicherkarte auslesen kann. Und so entstand rasch ein Prototyp für meine zukünftige Weihnachtsbeleuchtung. Das Ganze funktionierte einwandfrei nach meinen Vorstellungen. Nur hat die Lösung einen grossen Haken. Ich kann nur etwa 70 LED’s ansteuern. Mehr Daten kann der Arduino Ethernet nicht zwischen speichern. Für die Zwischenspeicherung nutze ich sogenannte Array Variablen. Da ich aber pro LED Kanal bis zu 1024 LED ansteuern will, reicht das hinten und vorne nicht. Verzweifelt legte ich das Projekt für eine Weile auf die Seite.
(Suche einen Arduino Profi der mit Arrays und Speicheroptimierung umgehen kann. Dann würde ich diesen Weg weiter verfolgen.)
Dazwischen googelte ich immer mal wieder nach Alternativen. Mit dem Raspberry Pi glaubte ich wiederum die Lösung gefunden zu haben.
Diesen Fehltritt hätte ich mir sparen können. Denn dieses Board hat zwar einen massiv höheren Speicher (256 Megabyte) und eine viel höhere Taktrate als der Arduino. Dafür ist der Raspberry Pi nicht in der Lage meine WS2811 LED’s taktgenau anzusteuern. In diversen Foren wird über diese Problematik diskutiert und philosophiert. Der IC WS2811 hat keinen Clock Anschluss und muss deshalb sehr präzise mit Daten gefüttert werden.
Noch mehr Ärger
Auf der Suche nach geeigneten Lösungen ärgerte ich mich immer wieder. Bei Youtube gibt es unzählige Filme welche dokumentieren wie WS2811 LED’s erfolgreich angesteuert werden. Leider scheinen diese Leute jedoch nicht in der Lage zu sein, eine Dokumentation zu schreiben wie sie das geschafft haben. Dazu ärgern mich auch die meist unscharfen und Über- oder Unterbelichteten Filmaufnahmen. Es scheint Menschen zu geben, die zwar elektronische Schaltungen bauen und programmieren können aber nicht in der Lage sind ein gescheites Youtube Filmchen und eine anständige Dokumentation zu erstellen. Schade.
Wiederum ein paar Nächte später schien ich DIE Lösung gefunden zu haben. Intel präsentiert im Internet ein Board das absolut Arduino kompatibel sei, mehr Speicher hat und allgemein wesentlich mehr Möglichkeiten bietet als die Arduinos.
Und so entschied ich mich zur bisher grössten Fehlinvestition meines Projektes. Wie ich wegen diesem Board das Alphabet hoch und runter fluchte darf ich hier gar nicht beschreiben.
Das Intel Galileo Board ist fernab von kompatibel mit dem Arduino. Es läuft praktisch keine der Standard Arduino Applikationen ausser der Testapplikation “Blink”. Wer Arduino kennt, weiss was ich damit meine. Um eine einzige LED blinken zu lassen, brauche ich jedoch kein Mikroprozessor Board. Auch die sogenannten Shields funktionieren nicht. In der Bedienungsanleitung steht zudem, dass man immer zuerst die Speisung anschliessen muss und erst danach das USB Kabel anschliessen darf. Ansonsten würde man das Board zerstören. Gehts noch?
Ich habe den Eindruck, dass Intel hier einen misslungenen Prototypen auf den Markt gebracht hat. Viele Blog- und Forumsberichte scheinen zudem meinen Eindruck zu bestätigen.
Wie weiter?
Warum tu ich mir so etwas überhaupt an?
Keine Ahnung. Vermutlich weil ich ein bisschen verrückt bin. 🙂
Aufgeben? Auf keinen Fall!
Und so entschloss ich mich am Wochenende für einen Schritt nach vorne und bestellte kurzerhand 6’000 RGB LED Pixel vom Typ WS2811 direkt in China. Dazu bestellte ich mir einen WS2811 kompatiblen LED Controller mit 8 Kanälen a je 1024 LED’s. Mit diesem Controller sollte man also bis zu 8192 RGB LED Pixel ansteuern können. Da die erste Lieferung per China Post einen Monat dauerte, bestellte ich dieses Mal per EMS resp. DHL. Bin mal gespannt wie lange das dauert.
Auf Grund des hohen Betrages werden dieses mal Zollgebühren und die MWST anfallen. Da der Schweizer Zoll sein eigenes Gebührensystem nicht versteht (oder nicht in der Lage ist dieses verständlich zu kommunizieren), werde ich die Kosten erst erfahren wenn die Ware an mich ausgeliefert ist.
Das nächste Mal werde ich wohl über den LED Controller berichten. Wie kompliziert ist die China Software um Lichtprogramme zu erstellen? Zudem sind erste Berechnungen für die Stromverteilung nötig. Zudem suche ich noch immer nach einer bezahlbaren Lösung für eine wasserdichte Verkabelung. Weihnachten ist bald. 🙂