Starterkit: Blinkenlights

Features

  • Riesiges 90x50cm 200 Pixel RGB Display mit Aktualisierungsraten bis zu 100Hz
  • Entwickle Party Spiele, Messeauftritte und kundenspezifische Anzeigen jeglicher Art
  • Frei programmierbar, konfigurierbar und erweiterbar
  • Pixel: 12mm Durchmesser, wasserdicht (IP65), vollfarb RGB mit 1600mcd pro Pixel

Beschreibung

Das Starterkit: Blinkenlights ist ein großes, frei programmierbares Display. Es besteht aus 200 individuell steuerbaren vollfarb RGB LED Pixel, deren Farbe bis zu 100 mal pro Sekunde geändert werden kann. Es gibt vielfältige Anwendungen, dazu zählen eigene (Party-) Spiele, Messeauftritte, schicke Moodlights oder individuelle Anzeigen aller Art.

Das Basiskit besteht aus einem Master Brick, einem LED Strip Bricklet, vier 50 LED Pixel Sets, einer LED Stromversorgung, vier Wandbefestigungsplatten, einer gelochten Rückplatte, einer Frontplatte sowie alle notwendigen Kabel und Befestigungsmaterialien. Das Basiskit kann per USB von jedem (Embedded-) PC (z.B. Raspberry Pi), Laptop, Server oder Tablet gesteuert werden.

Über andere Tinkerforge Produkte kann das Kit erweitert werden. Bei Spiele-Anwendungen kann das Giant Game Pad zur Steuerung verwendet werden. Des weiteren kann das Piezo Speaker Bricklet zur musikalischen Untermalung sowie das Segment Display 4x7 zur Punktedarstellung verwendet werden. Pong lässt sich mit zwei Dual Button Bricklets spielen. Mit der Ethernet Extension kann die USB Schnittstelle durch Ethernet ausgetauscht werden, so dass Smartphone oder Tablet gesteuerte Anwendungen möglich sind. Ein größeres Display kann durch das Hinzufügen weiterer Pixel realisiert werden.

Eine Demo-Anwendung implementiert Klone von Tetris und Pong und beinhaltet verschiedene andere Anwendungen. Zum Beispiel können individuelle scrollende Texte in diversen Farben, Regenbogen oder individuelle Bildsätze mit konfigurierbarer Dauer angezeigt werden. Ein virtuelles Feuer erwärmt das Herz auch in den kältesten Wintermonaten. Die Spiele können über eine PC Tastatur gesteuert werden aber auch per Multi Touch (Giant Game Pad) oder Dual Button Bricklet.

Der Name des Kits "Blinkenlights" wird im Hackerjargon benutzt um blinkende Lampen von Netzwerk-Equipment zu beschreiben. Er ist auch über das Blinkenlights Projekt bekannt.

Das nachfolgende Video zeigt die Beispiele und den Zusammenbau im Zeitraffer:

Technische Spezifikation

Eigenschaft Wert
Maximale Update Rate (LED Strip Bricklet) 100Hz (pro Pixel)
RGB Auflösung (LED Strip Bricklet) 3 x 8bit
Helligkeit 1600mcd pro Pixel
   
Anzahl der RGB Pixel 10 x 20
Abmessungen (B x T x H)
40 x 80 x 7cm (ohne Frontplatte)
50 x 90 x > 7cm* (mit Frontplatte)
Gewicht 4kg (zusammengebautes Kit)

* hängt von dem eingestellten Abstand zwischen Front- und Rückplatte ab

Ressourcen

Firmware aktualisieren und erste Tests

Im ersten Schritt sollten die Bricks und Bricklets ausprobiert und die Firmwares ggf. aktualisiert werden.

Dazu müssen der Brick Daemon und der Brick Viewer installiert werden. Schließe das LED Strip Bricklet an den Master Brick an und verbinde es per USB mit dem PC. Anschließend kann über den Brick Viewer bestimmt werden, ob alle Firmwares aktuell sind. Falls nicht so sollten diese aktualisiert werden (Bricks aktualisieren, Bricklets aktualisieren):

Blinkenlights Update im Brick Viewer

Im nächsten Schritt sollte das LED Strip Bricklet und die Pixel wie hier beschrieben getestet werden. Anschließend kann damit begonnen werden das Kit zusammenzubauen.

Konstruktion

Blinkenlights Kit Konstruktionsschritt mit 40cm Kabel

Die Aufbauanleitung ist hier im Detail beschrieben.

Beispielanwendung und Beispielprojekte

Screenshot Blinkenlights Demoanwendung: Setup

Die Demoanwendung demonstriert verschiedene Anwendungen des Kits. Es besteht aus 6 Teilanwendungen die als individuelle Projekte zur Verfügung stehen (siehe unten). Jedes Projekt wird durch ein eigenes Tab dargestellt. Zwei Dual Button Bricklets und ein Multi Touch Bricklet können zusätzlich zur Steuerung der Spiele genutzt werden. Ist ein Piezo Speaker Bricklet oder ein Segment Display 4x7 Bricklet angeschlossen, so werden diese von den Spielen genutzt um ein akustisches Feedback zu geben und den Spielstand anzuzeigen.

Vor Beginn müssen Host und Port konfiguriert werden. Falls das normale Kit benutzt wird und dieses direkt per USB an einem PC angeschlossen ist, sind "localhost" und "4223" die korrekten Einstellungen. Falls das Kit mit Extensions erweitert wurde oder es von einem anderen PC gesteuert werden soll muss die IP Adresse oder der Hostname des Rechners oder der Extension eingestellt werden zu dem das Kit verbunden wurde. Die Tabelle unter der Host/Port Konfiguration gibt einen überblick über die angeschlossenen Bricks und Bricklets.

Tetris

Die Demoanwendung implementiert ein typisches Tetris mit allen Besonderheiten. Es kann mit:

Blinkenlights Kit Tetris

oder ohne Frontplatte:

Blinkenlights Kit Tetris

gespielt werden.

Dieser Tetris-Klon kann über drei verschiedene Arten gesteuert werden. Als erstes können die Buttons im Tab genutzt werden um das Spiel zu steuern. Alternativ funktioniert dies auch über die PC Tastatur. Als letzte Möglichkeit kann ein Mutli Touch Bricklet mit einem Giant Game Pad oder selbstgebauten Elektroden angeschlossen werden.

Screenshot Blinkenlights Demo Anwendung: Tetris

Das einzelne Python Projekt kann von GitHub heruntergeladen werden. Dieses beinhaltet auch das Pong Projekt und beseht hauptsächlich aus zwei Dateien: tetris.py implementiert das Spiel und config.py definiert Konfigurationen (Host, Port, UIDs, LED Matrixlayout und Keymap).

Die config.py muss entsprechend angepasst werden und die Anwendung mittels:

python tetris.py

ausgeführt werden.

Zusätzlich ist dieses Projekt in C# implementiert worden. Diese kann von GitHub heruntergeladen werden.

Pong

Wie Tetris kann Pong mit oder ohne Frontplatte genutzt werden.

Die folgenden Bilder zeigen Pong bei Dunkelheit und Tageslicht.

Screenshot Blinkenlights Demoanwendung: Pong Screenshot Blinkenlights Demoanwendung: Pong bei Tageslicht

Das Spiel kann über Buttons, Tastatur oder Multi Touch Bricklet gesteuert werden. Zusätzlich ist eine Steuerung über zwei Dual Button Bricklets möglich.

Screenshot Blinkenlights Demoanwendung: Pong

Das einzelne Python Projekt kann von GitHub. heruntergeladen werden. Dieses beinhaltet das Tetris Projekt und besteht hauptsächlich aus zwei Dateien: pong.py implementiert das Spiel und config.py definiert Konfigurationen (Host, Port, UIDs, LED Matrixlayout und Keymaps).

Die config.py muss entsprechend angepasst werden und die Anwendung mittels:

python pong.py

gestartet werden. Zusätzlich ist dieses Projekt in C# implementiert worden und kann von GitHub herunter geladen werden.

Feuersimulation

Wenn der Fire Tab gewählt wird erscheint eine Feuersimulation. Diese sieht besonders gut aus, wenn das Frontplatte in einem Abstand von 42mm (2x9mm und 2x12mm Abstandsbolzen) zur Rückplatte angebracht wird.

Die folgenden Bilder zeigen die Feuersimulation bei Dunkelheit und bei Tageslicht.

Blinkenlights Feuer Simulation Blinkenlights Feuer Simulation bei Tageslicht

Die Simulation basiert auf einem Partikelsystem und kann über vier Schieberegler beeinflusst werden:

  • Frame Rate: Definiert die Bildrate in Hz. Die Simulation wird jedes neue Bild (Frame) aktualisiert. Wenn die Bildrate erhöht wird, dann brennt das Feuer schneller.
  • Hue: Definiert die Farbe des Feuers.
  • Start: Definiert die Startposition der Feuerpartikel.
  • End: Definiert die Position bei dem die Feuerpartikel ausgehen.

Spiele mit den Schiebereglern und erstelle dein persönliches Feuer. Mit dem "Default" Button können die Regler wieder auf die Ausgangswerte zurückgesetzt werden.

Screenshot Blinkenlights Demoanwendung: Fire

Das einzelne Python Projekt kann von GitHub heruntergeladen werden. Es besteht hauptsächlich aus zwei Dateien: fire.py implementiert die Feuersimulation und config.py konfiguriert Host, Port, UID, LED Matrixlayout und Simulationsparameter.

Nach dem Anpassen der config.py kann die Anwendung mittels:

python fire.py

ausgeführt werden. Das Projekt ist auch in Delphi implementiert worden und kann von GitHub heruntergeladen werden.

Scrollender Text

Die "Text" Demo scrollt den eingegebenen Text in der angegebenen Geschwindigkeit.

Blinkenlights Kit Text Demo

Der Text bewegt sich eine Spalte pro Frame. Eine höhere Framerate führt also zu einem schneller bewegenden Text. Dauerhafte Farbwechsel können über klicken auf "Rainbow" aktiviert werden. Alternativ kann auch eine Farbe direkt gewählt werden.

Screenshot Blinkenlights Demoanwendung: Text

Das einzelne Python Projekt kann von GitHub heruntergeladen werden. Es besteht ebenfalls hauptsächlich aus zwei Dateien: text.py implementiert die Logik und config.py definiert Host, Port, UID, LED Matrixlayout und Farbparameter.

Nach Anpassen der config.py kann die Anwendung wie folgt gestartet werden:

python text.py Starter Kit: Blinkenlights

Das Demo ist auch in PHP implementiert worden und kann von GitHub heruntergeladen werden.

Bilder anzeigen

Die "Images" Demo kann genutzt werden um spezifische Bilder und ganze Animationen anzuzeigen.

Das folgende Bild

Blinkenlights Herz Eingabe

generiert folgende Ausgabe

Blinkenlights Herz

Wähle die Bilder, die angezeigt werden sollen, durch Klicken auf "Choose Images...". Die Demo zeigt das erste Bild an und wechselt in der angegebenen Framerate zum nächsten Bild in der Reihe. Auf diese Art können Animationen erstellt werden. Jedes Bild wird auf eine Größe von 20x10 Pixel (Größe des Displays) verkleinert und verzerrt falls das Bildformat nicht passt. Ein Bildverarbeitungstool kann benutzt werden wenn die Ergebnisse nicht zufriedenstellend sind.

Blinkenlights Demo Application Screenshot: Images

Das einzelne Python Projekt kann von GitHub heruntergeladen werden. Es besteht hauptsächlich aus zwei Dateien: images.py implementiert die Logik und config.py definiert wie bei den anderen Beispielprojekten auch Host, Port, UID und das LED Matrixlayout.

Nach Anpassen der config.py kann das Demo mit den anzuzeigenden Bildern wie folgt gestartet werden:

python text.py image1.jpg image2.jpg

Zusätzlich wurde das Projekt in Java implementiert und kann bei GitHub heruntergeladen werden.

Bewegender Regenbogen

Die "Rainbow" Demo zeigt einen mit der eingestellten Framerate und Geschwindigkeit sich bewegenden Regenbogen auf dem Display an. Die Ergebnisse hängen von dem Abstand des Frontplatte zur Rückplatte ab. Das folgende Bild zeigt das Demo mit 12mm Abstand in Tageslicht, 42mm Abstand in Tageslicht und 42mm Abstand in Dunkelheit an.

Blinkenlights Kit Rainbow Demo

Eine höhere Framerate und Geschwindigkeit führen zu einem sich schneller bewegenden Regenbogen.

Blinkenlights Demo Application Screenshot: Rainbow

Das einzelne Python Projekt kann von GitHub heruntergeladen werden. Dieses besteht hauptsächlich aus zwei Dateien: rainbow.py implementiert die Logik, wohingegen config.py die Konfiguration speichert.

Nach Anpassen der config.py kann die Demo wie folgt gestartet werden:

python rainbow.py

In C ist diese Demo ebenfalls Implementiert worden. Sie kann von GitHub heruntergeladen werden.

Zusätzliche Erweiterungen

Mods, Erweiterungen und Verbesserungen des Blinkenlight Kits veröffentlicht in unserem Wiki, in einem Blog oder ähnlich würden hier gerne vorstellen. Bitte kontaktiert uns und wir verlinken es hier!