Einen Kubus aus 125 LEDs mit dem RasPi steuern

© Sergey Mironov, 123RF

Würfelspiele

Über die GPIO eine LED aufleuchten zu lassen gehört zu den ersten Schritten jedes RasPi-Bastlers. Ein animiertes Gesamtkunstwerk aus 125 Dioden zu verdrahten und anzusteuern erfordert neben Lötkunst auch ausgeklügelten Echtzeit-Maschinencode.

Was dem Programmier sein "Hallo, Welt!", das ist dem RasPi-Geek die via GPIO angesteuerte LED. Selbst ein zweidimensionales LED-Array stellt einen erfahrenen Bastler vor keinerlei Probleme. Als logische Konsequenz geht es daher in die dritte Dimension: In diesem Artikel bringen wir einen Würfel aus über hundert LEDs zum Leuchten (Abbildung 1).

Einen solchen LED-Kubus zu bauen stellt keine ganz einfache Aufgabe dar. Unser Würfel besteht aus 5 mal 5 mal 5 LEDs – es gilt also, 125 LEDs akkurat zu verdrahten und anschließend zu verlöten. Das sollte Sie jedoch nicht abschrecken, denn nicht jeder kann einen selbst gebauten LED-Kubus sein Eigen nennen. Nach fester Überzeugung des Autors gehört ein solcher LED-Quader in jeden echten Geek-Haushalt.

Abbildung 1: Der LED-Kubus in Aktion – die Animation lässt sich leider nicht im Bild einfangen.

Der Kubus

Der komplette Aufbau besteht aus zwei Platinen: eine für den eigentlichen Kubus mit den LEDs, eine zweite für die Elektronik zur Ansteuerung. Um nicht das Rad neu erfinden zu müssen, verwenden wir den LED-Kubus von Qube Solutions [1] als Basis. Das Open-Source-Projekt steht unter der Creative-Commons-Lizenz, von daher dürfen wir Teile davon in eigenen Projekten verwenden.

Unser LED-Kubus ist fast baugleich mit jenem von Qube Solutions. Die Ansteuerungsplatine erforderte allerdings eine Reihe von Änderungen, um mit dem Raspberry Pi als Controller zusammenzuarbeiten. Abbildung 2 zeigt beide Platinen nebeneinander. Später fügen Sie den LED-Würfel und die Controller-Platine zu einem "Gerät" zusammen.

Abbildung 2: Die zwei Platinen des LED-Kubus: links die Leuchten, rechts das Controller-Board.

Den Zusammenbau des LED-Kubus beschreibt die Bauanleitung von Qube Solutions [2] auf knapp 40 Seiten so gut, dass sich dem wenig hinzufügen lässt. Sie sollten sich daher an diese Anleitung halten. Für den Kubus kommt eine einfache Lochraster-Europlatine zum Einsatz, die Sie auf das passende Maß kürzen (10 x 10 cm). Den Schaltplan der für die Ansteuerung der LEDs verwendeten Schaltung zeigt Abbildung 3.

Abbildung 3: Der Schaltplan der für die Ansteuerung der LEDs verwendeten Controller-Boards.

Das Eagle-Projekt der Schaltung finden Sie auf der Heft-DVD. Der Vollständigkeit halber stellt Abbildung 4 den Schaltplan zum Kubus dar. Eine Aufstellung mit allen für den Aufbau benötigten Teilen zeigt die Tabelle "Bauteilliste". Die einzelnen Komponenten erhalten Sie online wie offline in gängigen Elektronikgeschäften. Möchten Sie hingegen ein paar Euro sparen und spielt die Lieferzeit keine Rolle, dann bestellen Sie die Teile über Versender wie Aliexpress in Fernost.

Abbildung 4: Diesem Plan entsprechend gilt es, die 125 LEDs des Projekts zu verdrahten.

Bauteilliste

Anzahl

Bauteil

125

LED

5

Flipflop 74HC574N

25

Widerstand 75 Ohm

5

Widerstand 10 kOhm

5

MOSFET IFRZ44N

1

Anschluss GPIO, Pfosten

1

Anschluss, 30 LEDs, Pfosten

1

Anschluss, 30 LEDs, Stecker

1

Spannungsregler LD1117v33 (3,3 Volt)

1

Kühlkörper für LD1117v33

1

Kerko 0,1 µF

1

Elko 10 µF

2

Europlatine-Punktraster (auf 10 x 10 cm gekürzt)

1

Anschluss, externe Spannungsversorgung

Funktionsweise der Ansteuerung

Die Ansteuerung von 125 LEDs erweist sich als knifflige Angelegenheit. Wollte man jede Diode einzeln ansteuern, müsste der Raspberry über 125 GPIO-Pins verfügen; außerdem bräuchte man eine einzelne Steuerleitung zu jeder LED. Das würde nicht nur eine Menge Arbeit machen, sondern auch bescheiden aussehen. Es braucht daher einen tiefen Griff in die Trickkiste, um die LEDs eleganter und mit weniger Aufwand anzusteuern.

Das Schalten der in Ebenen organisierten LEDs erfolgt über 74HC574-Flipflops als eine Art Zwischenspeicher. Ein 74HC574 hält dabei die Informationen für eine Reihe von LEDs. Wir beladen ihn der Reihe nach mit den Werten für je fünf LEDs. Der Schaltungsaufbau auf der Eingangsseite der 74HC574-Bausteine entspricht einem kleinen Bussystem. Die Clock-Leitungen der einzelnen ICs legen fest, welcher der Zwischenspeicher beladen wird. Nach dem Beladen aller 74HC574N mit Werten aktiviert das System über deren OE-Eingang alle ICs gleichzeitig .

Damit die LEDs aufleuchten, müssen Sie zudem mit einem der IFRZ44N-Leistungstransistoren die entsprechende Ebene aktivieren. Dies geschieht, indem der Transistor die Kathoden der Dioden auf Masse schaltet. Dieser Aufbau macht es möglich, jede LED einzeln anzusteuern. Möchte man nun allerdings gleichzeitig LEDs schalten, die in unterschiedlichen Ebenen und nicht untereinander liegen, bekommt man ein Problem: Ohne Weiteres funktioniert dies mit dem Aufbau nicht.

Das Unmögliche doch möglich zu machen erfordert einen weiteren Griff in die Trickkiste: Zum Einsatz kommt ein Verfahren, das sich Multiplexing nennt. Im Prinzip beladen und schalten wir dabei die einzelnen Ebenen unseres Kubus so schnell neu, dass es für das bloße Auge aussieht, als würden die LEDs konstant leuchten. Ab einer Frequenz von 50 Hz nimmt das Auge das schnelle Durchschalten der Ebenen nicht mehr wahr.

Daher verwenden wir auch die Programmiersprache Go, um den Kubus anzusteuern: Go erzeugt Maschinencode, der schnell genug läuft, um diese Illusion für unsere Augen zu erzeugen. Sollte der Kubus trotzdem etwas flackern, liegt das daran, dass das Betriebssystem des Raspberry Pi dem Programm unterschiedlich viel CPU-Zeit zuteilt. Dadurch gerät das Multiplexing etwas aus dem Takt.

Auf der Platine befindet sich ein zusätzlicher Spannungsregler LD1117v33, der die Zwischenspeicher und damit die LEDs mit 3,3 Volt versorgt. Daran führt kein Weg vorbei, denn die 125 LEDs benötigen, so sie denn alle gleichzeitig leuchten, viel mehr Strom, als die GPIO des RasPi liefert. Ein Kühlkörper schützt dabei den Spannungsregler vor Überhitzung.

Achtung: Sie dürfen die Betriebsspannung (3,3-Volt-Anschlüsse) des Raspberry Pi und der LEDs keinesfalls zusammenschließen; die Massenleitungen hingegen müssen Sie miteinander verbinden. Als externe Spannungsquelle eignet sich zum Beispiel ein stabilisiertes Steckernetzteil mit einer Ausgangsspannung von 5 bis 12 Volt.

In Tabelle "GPIO-Belegung" finden Sie noch einmal eine Übersicht, welche Komponente der Schaltung an welchem GPIO-Pin des Raspberry Pi hängt. Sie benötigen diese Informationen sowohl beim Löten der Platine als auch später beim Programmieren. Die Platinen selbst verdrahten Sie in Fädeltechnik (siehe Kasten "Fädeltechnik"). Je nachdem, wie akkurat Sie fädeln, kann das Verlöten viele Stunden in Anspruch nehmen. Sicherheitshalber sollten Sie daher alle Verbindungen durchmessen, bevor Sie den Aufbau in Betrieb nehmen: Bei einem solchem Aufbau schleicht sich schnell ein Fehler ein, der das Gesamtkunstwerk dann lahmlegt.

GPIO-Belegung

GPIO

Schaltung

0

D1 an allen 74HC574

1

D2 an allen 74HC574

2

D3 an allen 74HC574

3

D4 an allen 74HC574

4

D5 an allen 74HC574

5

Transistor GND1

6

Transistor GND2

7

Transistor GND3

8

Transistor GND4

9

Transistor GND5

10

Output Enable OE

11

Clock 74HC574 #1

12

Clock 74HC574 #2

13

Clock 74HC574 #3

14

Clock 74HC574 #4

15

Clock 74HC574 #5

Kasten Fädeltechnik

Bei der Fädeltechnik handelt es sich um ein Verfahren, mit dem man Prototypen elektronischer Schaltungen auf Lochrasterplatinen erstellen kann. Die Basis dafür bilden mit einem speziellen Lack ummantelte Kupferdrähte, die Fäden. Der Lack verbrennt, sobald er mit heißem Lot in Berührung kommt; nach Abkühlen der Lötstelle bildet sich eine leitende Verbindung zwischen Lot und Kupferdraht.

So weit die Theorie – in der Praxis passiert es allerdings oft, dass der Lack nicht so schnell schmilzt, wie man es gerne hätte. In diesem Fall entstehen elektrisch nicht leitende Verbindungen. Folgende Tipps helfen Ihnen das zu verhindern:

  • Verzinnen Sie die Drahtenden vor dem eigentlichen Verlöten. Das hilft generell beim Arbeiten mit dieser Technik.
  • Drehen Sie die Temperatur des Lötkolbens hoch. Bei höherer Temperatur verbrennt der Lack schneller, allerdings erhitzen sich dabei das Zinn und alle Bauteile ebenfalls stärker. Bei thermisch empfindlichen Halbleitern sollten Sie dies daher vermeiden. Auch IC-Sockel verformen sich, sobald sie zu heiß werden. Das führt später beim Einstecken der Chips zu Problemen. Auch bei zu hoch erhitztem Lötzinn besteht die Gefahr, dass es sich verändert und instabile Lötstellen entstehen.
  • Verlängern Sie alternativ die Lötdauer. Das hat allerdings ähnliche Nebenwirkungen wie das Löten bei hoher Temperatur. Zudem kann langes Heizen dazu führen, dass sich die Kupferpunkte von der Platine lösen.

Um ein Gefühl zu bekommen, wann der Lack schmilzt und die Verbindung gelingt, sollten Sie generell das Verlöten der Fäden ein wenig üben. Messen Sie auf jeden Fall nach dem Löten alle Verbindungen durch. Damit kontrollieren Sie, ob alle Lötstellen in Ordnung sind und der Strom wie gewünscht fließt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Aktuelle Ausgabe

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.