Lesezeit ca. 9 Min.
arrow_back

Leuchtwürfel


Logo von Raspberry Pi Geek
Raspberry Pi Geek - epaper ⋅ Ausgabe 6/2022 vom 07.04.2022

Artikelbild für den Artikel "Leuchtwürfel" aus der Ausgabe 6/2022 von Raspberry Pi Geek. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: Raspberry Pi Geek, Ausgabe 6/2022

README

NeoPixel lassen sich per Software individuell ansteuern. In einem Würfel angeordnet, ergeben sie interessante Leuchtobjekte. Der Cube:Bit Magical RGB Cubes of Awesome erspart Tüftlern viel Lötarbeit und ermöglicht die Konzentration auf die Entwicklung der Software. Als Steuerzentrale kommt ein Raspberry Pi Zero zum Einsatz.

Nachdem ich schon einige Modelle

von LED-Würfeln im Eigenbau konstruiert hatte, bin ich auf die Cube:Bit Magical RGB Cubes of Awesome aufmerksam geworden. So lautet der Name für den Bausatz und die Softwarebibliothek, deren Basis wir nutzen und weiterentwickeln wollen. Das interessante Konzept unterscheidet sich von anderen LED-Cubes, setzt man hier doch auf den Einsatz von NeoPixel-Elementen.

Die mittlerweile gut bekannten RGB-LEDs lassen sich über nur eine Datenleitung einzeln ansprechen und in Farbe und Helligkeit verändern. Schon länger gibt es Tafeln sowie strang-und ...

Weiterlesen
epaper-Einzelheft 9,99€
NEWS Jetzt gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von Raspberry Pi Geek. Alle Rechte vorbehalten.
Lesen Sie jetzt diesen Artikel und viele weitere spannende Reportagen, Interviews, Hintergrundberichte, Kommentare und mehr aus über 1050 Magazinen und Zeitungen. Mit der Zeitschriften-Flatrate NEWS von United Kiosk können Sie nicht nur in den aktuellen Ausgaben, sondern auch in Sonderheften und im umfassenden Archiv der Titel stöbern und nach Ihren Themen und Interessensgebieten suchen. Neben der großen Auswahl und dem einfachen Zugriff auf das aktuelle Wissen der Welt profitieren Sie unter anderem von diesen fünf Vorteilen:

  • Schwerpunkt auf deutschsprachige Magazine
  • Papier sparen & Umwelt schonen
  • Nur bei uns: Leselisten (wie Playlists)
  • Zertifizierte Sicherheit
  • Freundlicher Service
Erfahren Sie hier mehr über United Kiosk NEWS.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 6/2022 von 10 tolle Jahre. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
10 tolle Jahre
Titelbild der Ausgabe 6/2022 von Abfrageblocker. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Abfrageblocker
Titelbild der Ausgabe 6/2022 von Log-Auswerter. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Log-Auswerter
Titelbild der Ausgabe 6/2022 von Ausgepackt. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Ausgepackt
Mehr Lesetipps
Blättern im Magazin
Open-Source -Kino
Vorheriger Artikel
Open-Source -Kino
Noch mehr Roboter
Nächster Artikel
Noch mehr Roboter
Mehr Lesetipps

... ringförmige Module. Seit einiger Zeit sind auch sogenannte Slices erhältlich, speziell konstruierte Gitter zum Aufbau von Würfelebenen. Von 4tronix entwickelt, werden sie derzeit mit 3er-, 4er-und 5er-Kantenlängen angeboten .

Magical RGB Cube

Wie sonst auch verfügt jedes Pixel über einen eigenen Steuerchip (WS2812) und lässt sich per Eindrahtbus in 256 Helligkeitsstufen und Vollfarben steuern. Einsteiger finden im Web ausführliche Anleitungen zum Ansteuern der LEDs. Damit bringen die Eigenschaften der fertigen Gitter1 1 einige Vorteile für den Würfelaufbau mit sich: Es entfallen zusätzliche Schieberegister, Controller und LED-Treiber sowie die Verdrahtung umfangreicher Zusatzelektronik.

Im Gegensatz zu klassischen Würfeln muss man sich nicht mehr um das Multiplexen der einzelnen Ebenen kümmern, und es treten kaum Helligkeitsunterschiede bei unterschiedlicher Anzahl von gerade leuchtenden LEDs auf. Unser hier vorgestellter NeoCube erfordert neben der Stromversorgung nur noch eine in-Moderner LED-Cube telligente Beschickung der Datenleitung. Die kann ein Controller-Board übernehmen; mit einem Kleinrechner wie dem Raspberry Pi lässt sich aber noch wesentlich mehr umsetzen.

Zudem war es für den Hobbyelektroniker bisher immer recht schwierig, einen einwandfreien Würfel zu konstruieren, sodass der Eigenbau auch optisch etwas hermacht. Schließlich müssen bei einem mit 5 Elementen Kantenlänge im Drahtbau schon 125 LEDs geprüft, gebogen und möglichst akkurat verlötet werden. So etwas wird schnell zur Mammutaufgabe – das nimmt die vorgestellte Lösung einem nun alles ab.

Ein paar Nachteile zeigen sich dabei allerdings auch. Sofort offensichtlich ist die deutlich stärkere Verstrebung zwischen den LEDs, die je nach Betrachtungswinkel auch Lichtpunkte ausblendet. Zum Ausgleich sitzen auf dem Leiterplattenmaterial jeweils oben und unten eine LED, die beide gleichmäßig angesteuert werden, was das Ganze etwas abmildert. Insgesamt sind also sogar doppelt so viele LEDs im Einsatz wie bei einem vergleichbaren klassischen LED-Würfel. Aber ein schlanker Drahtaufbau ist da wohl einfach transparenter.

Durch die vorgegebene Adressierung der NeoPixel, die nicht gerade die schnellste ist, lassen sich optische Effekte aber nur bis zu einer gewissen Geschwindigkeit realisieren und sind deshalb langsamer als bei individuellen Lösungen. Hinzu kommt der immer noch recht hohe Preis für einen Bausatz oder einzelner Slices.

Trotzdem fand ich es interessant, einen LED-Cube auf Basis eines solchen Bausatzes aufzubauen. Die Vorteile erschienen mir attraktiv genug – man stützt sich auf die vorhandene Hardware, kann sich so ganz auf die Ansteuerung des Cube konzentrieren und bei den optischen Effekten der eigenen Kreativität freien Lauf lassen. So entstand dieses Projekt.

Testaufbau

Um etwas mehr Informationen darstellen zu können, entschieden wir uns für ein Gitter mit einer Kantenlänge von 5 LEDs. Zum Umfang der ordentlich verpackten Lieferung gehörten auch Basisplatine und Abstandhalter. Mechanisch zu konstruieren gab es also wenig, aber wir wollten die Platine für den Anschluss des Zero und der Versorgungsleitungen in einem ansehnlichen Grundkörper unterbringen2 2 . Schließlich ging es von Anfang an auch darum, die gesamte Konstruktion als ästhetisches Dekorationsobjekt und kleine Informationszentrale im Wohnbereich nutzbar zu machen.

Die im Fuß unseres Eigenbaus enthaltene Platine passt zu den LED-Elementen, stellt Anschlüsse für die Stromversorgung bereit, und es lässt sich ein Raspberry Pi Zero W einstecken (auch der neue Zero 2 funktioniert). Damit sie durch den Holzfuß ragen, haben wir die unteren vier Verbinder durch solche mit längerem Gewinde ersetzt. Die metallischen Abstandhalter im Cube schaffen gleichzeitig die Daten-und Stromversorgung zwischen den einzelnen Ebenen. Außerdem ist die Platine bei uns im Gegensatz zum Original nach unten gewendet, da gilt es beim anschließenden Aufbau besonders aufzupassen.

Oft unterschätzt man den Strombedarf, wenn viele LEDs oder NeoPixel zum Einsatz kommen. Bei größeren Würfelaufbauten schnellt der Bedarf oft in höhere Regionen, als erwartet. So haben wir hier auch nicht über den 5-Volt-Pin des RasPi verkabelt, sondern direkt zum Netzteil, das eine gemeinsame Masse hat. Das Steckernetzteil ist bei uns ein 2-Ampere-Typ, ausreichend für die noch moderate Anzahl an Pixeln.

Jetzt muss Schritt für Schritt und sorgsam aufgebaut werden. Der 5er-Cube benötigt fünf Slices, die mit jeweils drei Abstandhaltern miteinander verbunden werden3 3 . Jedes Element bekommt eine Spannungsversorgung, der Datenausgang eines Elements wird jeweils mit dem Dateneingang des darüberliegenden Nachfolgers verbunden.

Es gilt, die Anschlüsse nicht zu verwechseln und jeweils die richtige Seite nach oben zu drehen3 3 . Dafür sind die Slices günstigerweise bereits herstellerseitig mit Side A und Side B beschriftet. Um sich den Aufbau zu erleichtern, schafft man sich vorher eine entsprechende Übersicht. Dann ist es kein Problem, den Würfel mit Gittern und Abstandhaltern mechanisch und elektrisch aufzubauen – das dauert in der Regel nur ein paar Minuten.

Nach dem Fertigstellen des Aufbaus merkt man, dass ein wirklich ansehnliches Objekt nun keine Hexerei mehr ist4 4 . Hat man das Koordinatensystem der Gitter erst einmal verstanden, kann man seine ganz eigene Ansteuerung auch ohne vorgefertigte Bibliotheken realisieren. Der Einfachheit halber wollen wir trotzdem auf den schon verfügbaren Softwarekern zurückgreifen.

Cube:Bit Library

Wie man vom Namen der Ursprungslösung ableiten kann, funktioniert alles auch mit dem BBC micro:bit : Dafür hat der Anbieter bereits eine Bibliothek in Scratch programmiert. Uns inter-essiert jedoch die Ansteuerung über einen Raspberry Pi. Dafür gibt es mit der Cube:Bit Library einen Python-Port, der das Ansprechen der eigentlich strangförmig organisierten NeoPixel in einem 3-Achsen-Koordinatensystem ermöglicht. Das gestaltet den Entwurf von Lichteffekten für den Würfelaufbau wesentlich einfacher.

Auf die allgemeine Inbetriebnahme des RasPi möchte ich in diesem Beitrag verzichten, stehen dafür doch genug Anleitungen im Web zur Verfügung. Das Vorbereiten der SD-Karte und die grundlegende Einrichtung erfolgen wie gewohnt. Dem Cube genügt ein PiOS-Image ohne Desktop. Wer mag, nutzt für das Setup noch Monitor und Tastatur. Für das spätere Testen genügt ein SSH-Zugang. Neben eingeschaltetem SSH-Zugang (via raspi‐config) braucht es noch eine funktionierende WLAN-Konfiguration.

Damit nach dem Stecken des Pi Zero auf der im Fuß befindlichen Platine noch Zugang zu dessen HDMI-und USB-Anschlüssen bleibt, ist der Sockel nach hinten offen. Aber eigentlich benötigt man diese Ports nun nicht mehr. Der Cube soll „headless“ arbeiten, aber per WLAN Zugang zum heimischen Netz haben. Die weitere Kommunikation erfolgt über ein Terminal von einem im lokalen Netzwerk befindlichen Rechner aus.

Den Python-Interpreter hat der Raspberry Pi von Hause aus schon an Bord, wir nutzen in diesem Projekt noch die 2.7er-Version. In Python müssen Sie nun zuerst den Wrapper für die NeoPixel-Library installieren. Mithilfe von Pip geschieht das ganz einfach (Listing 1, zweite Zeile). Fehlt Pip auf dem RasPi noch, lässt es sich per Apt schnell nachziehen (erste Zeile). Für den E-Mail-Empfang in sw_mail.py erfordert unser Anwendungsbeispiel die Bibliotheken imaplib (in Python enthalten) und email. Letztere ziehen wir wieder per Pip nach (letzte Zeile aus Listing 1).

Weitere Infos und interessante Links

www.raspi-geek.de/qr/47366

Die Klassen in cubebit und swc sind lokal eingebunden. In diesem Fall genügt es, alle Quelltexte aus unserem Github-Repository in einen Ordner unter dem Home-Verzeichnis auf den RasPi zu legen; von dort aus kann man nun alles starten. Damit sind schon alle Vorbereitungen für die Software erledigt.

Unser neu aufgebautes Skript sw_cube. py hält in der Klasse swc.py viele neue Methoden bereit, die den Umgang mit dem LED-Cube weiter vereinfachen. Dort sind nun unter anderem Lines, Slices, Squares, Numbers und Cubes festgelegt, mit deren Hilfe sich auf einfache Weise jede Menge neue kreative Lichtbilder umsetzen lassen. So enthält die Demo nicht nur bekannte Originale wie den Rainbow-Effekt, sondern greift auch auf unsere Klasse mit den neuen Geometrien zu. Das Skript lässt sich im Terminal mit dem Kommando sudo python sw_cube. py starten, wir lassen es nach dem Einschalten automatisch ablaufen.

Wie schon erwähnt und im Blockschema aus Abbildung5 5 recht gut zu sehen: Zusätzliche Elektronik ist kein Thema mehr. Die Software übernimmt die Steuerlogik, und der RasPi ist nur mit der Stromversorgung und über einen GPIO-Pin mit den seriell geschalteten Gittern des Cube verbunden.

Unser eigener Softwarebeitrag im Projekt findet sich im blauen und roten Bereich der Grafik wieder, jederzeit erweiterbar. Um eigene Routinen aufzusetzen, gilt es, stets den Überblick im Koordinatensystem zu behalten. Die Cube:Bit-Entwickler haben da gute Vorarbeit geleistet. Mir war ein Anliegen, weiter zu vereinfachen und von simplen Objekten zu komplexeren zu kommen, die man dann wiederum zu Neuem zusammensetzen kann.

Exemplarisch ist da unser „Sub-Würfel“, dem wir mittels fcube(ox, oy, oz, le, cl) drei 3D-Koordinaten innerhalb des physischen Würfels, die Seitenlänge und die Farbe mitteilen. Er setzt sich aus Linien zusammen, die man zur sonstigen Verwendung auch separat mittels line(ori, ko1, ko2, st, le, cl) erzeugen kann. Sie funktionieren bei uns als Vektor, bei dem man im ersten Parameter zuerst die Schlagrichtung (entlang der X-Y-oder Z-Achse) festlegt. So haben wir uns mit wenig Aufwand unseren eigenen Baukasten geschaffen.

Da sich unser Cube mit dem RasPi im heimischen WLAN befindet, wird es möglich, auf ganz unterschiedliche Ereignisse zu reagieren und den Cube entsprechend aufleuchten zu lassen. Lässt man den Zugriff auf das Internet zu, kann man beispielsweise ein Wettersymbol für die Vorschau auf den nächsten Tag anzeigen oder das Eingehen neuer E-Mails signalisieren. Diese Idee greifen wir noch in einem Praxisbeispiel auf.

Sie haben Post

Zum Melden von neuen Mails findet sich auf den Github-Seiten unseres Projekts das Sample sw_mail.py. Die Python-Bibliotheken imaplib und email übernehmen die Abfrage eines IMAP-Servers und das Auswerten dort befindlicher Nachrichten. Das Skript wählt aus dem Posteingang ungelesene Mails mit einem bestimmten Betreff aus und merkt sich deren Indizes in einer Liste.

An dieser Stelle könnte man nun auch mehr tun, aber wir zählen lediglich die ungelesenen Nachrichten und übermitteln die Anzahl zur Anzeige auf den Cube

6. Das entsprechende Skript starten wir mit sudo python sw_mail.py. Die Meldung über viele neue Mails muss mitunter mehrstellig sein. Dazu zerlegt das Skript eine zweistellige Zahl zuerst in ihre Ziffern und zeigt diese dann im Würfel von hinten nach vorn geschichtet in zwei Ebenen an.

In welchen Intervallen man den Server nach neuen Mails abfragt und die Anzeige aktualisiert, lässt sich in der Crontab des RasPi festlegen. Solange man im Skript den Demomodus nicht auskommentiert, wird der Eingang simuliert, und im Gitter des Würfels erscheint eine vordefinierte Zahl. So eignet sich der Demomodus auch gut, wenn man seine eigenen Lichtfolgen ausprobieren oder ändern möchte.

Offline könnte man auf dem Würfel etwa die Raumtemperatur anzeigen oder ihn mittels Mikrofon auf das Abspielen von Musik reagieren lassen. Was der Cube im reinen Showprogramm7 7 so alles kann, ist auf Youtube zu sehen. Wer den Cube automatisch hochfahren und nur über ein Steckernetzteil ein-und ausschalten möchte, sollte noch einen Schutz für die SD-Karte im RasPi vorsehen. Wir nutzen dazu ein kleines speicherresidentes Programm, das einen GPIO-Pin abfragt. Verbindet man den mit einem Taster hinten am Sockel, kann man den Pi gezielt herunterfahren, bevor man ihm die Stromversorgung entzieht. Für eine Ereignisanzeige (wie etwa die E-Mail-Benachrichtigung) im Dauerbetrieb macht sich das Puffern von ständigen Schreibvorgängen im Dateisystem etwa unter /var/log/ nicht schlecht. Dafür leistet beispielsweise das kleine Programm Log2ram gute Dienste, das sich auf dem Raspberry Pi ohne große Mühe installieren lässt.

Fazit

In Kürze sollen noch mehr Bedienelemente für weitere Funktionen folgen, etwa um verschiedene Leuchtfolgen einzustellen, ohne dafür erst Verbindung übers Netzwerk aufnehmen zu müssen. Außerdem steht eine mattschwarze Färbung aller Streben aus PCB-Material auf dem Plan, um Reflektionen von Ebene zu Ebene zu vermindern. Doch schon jetzt bietet der NeoCube ein gutes Beispiel dafür, wie einfach man einen LED-Würfel auf dieser Basis aufbauen kann. Beim Autor hat er bereits einen festen Platz in der Wohnung gefunden.

(cla)

Der Autor

Swen Hopfe arbeitet bei einem mittelständischen Unternehmen mit Schwerpunkt Chipkarte und NFC. Wenn er nicht gerade beim Fotografieren, in der Natur oder im Garten unterwegs ist, beschäftigt er sich mit Themen rund um den RasPi, IoT und Hausautomation.