LED-Tafel (Blinkenlights)

Hauptseite
Beruf
Spiele
Geschichten
Zitate
HP48
ct-Bot
(ct-)Hardware
MP3-Wetterstation
LED-Tafel
LED-Licht
Nixie-Uhr
Nanoleaf Lichtpanel
Diverses
Rechenmaschine AE13
Grundgesetz
Jargon Lexikon
Holgi on Tour
Bilder
Rückmeldung?
Impressum
[LED-Tafel] Nach der MP3-Station folgt nun ein weiteres Geld und Zeit verbrauchendes Konstrukt, basierend auf dem Blinkenlights-Starterkit der Firma Tinkerforge . Auf das System dieser Firma war ich ja früher schon gestossen, was dann die MP3-Station zur Folge hatte. Dort sind auch die Grundlagen dieses Systems aufgeführt.

Dieses Kit besteht primär aus 200 RBG-Pixeln (auf der Tinkerforge-Seite sind auch einige Fotos des zusammengebauten Systems sowie der Einzelteile zu sehen). Angeschlossen an ein "LED-Strip"-Bricklet (und damit natürlich auch an einen "Master Brick" des Tinkerforge-Systems), kann man jede einzelne dieser 200 Pixel in einer beliebigen Farbe (Rot, Grün und Blau in jeweils 255 Helligkeitsschritten) leuchten lassen. Im Set ist dann noch eine große Grundplatte aus schwarzem Plastik enthalten, in welcher die Pixel eingesetzt werden und dann eine Matrix von 20 x 10 Pixeln darstellen.

Das Set habe ich dann wieder an einen Raspberry Pi angeschlossen, damit man die LED-Tafel ohne Anschluss eines "grossen" Computers autark betreiben kann. Ich habe dann das Grundgerüst der Funktionalität des Java-Programmes meiner MP3-Station als Basis genommen, um das Steuerprogramm der LED-Tafel zu schreiben. Grundlage ist dabei ein kleines Framework, in welchem einzelne Plugins gewählt werden können, welche Darstellungen auf der LED-Tafel vornehmen (laufende Lichter, Uhrzeit etc pp). Diese Plugins können dazu auf zentrale Hilfsfunktionen zum Darstellen der grafischen Daten zugreifen, d.h. die eigentliche Arbeit der Ansteuerung der LED-Pixel wird von einer zentralen Funktion durchgeführt.

Zur autarken Bedienung war es auch nötig, ein Anzeige- und Bedienelement anzuschliessen. Dazu diente das auch schon bei der MP3-Station verbaute "LCD-Bricklet", welches neben einer 20x4-LCD-Anzeige auch 4 Button bietet. Mit Hilfe dieses Bricklets können nun die vorhandenen Plugins gestartet und gesteuert werden.

Wie bei der MP3-Station ist hier auch wieder ein kleiner Web-Server am Start, über den die LED-Tafel zusätzlich bedient werden kann. Das betrifft natürlich das Starten und Stoppen der Plugins, aber auch die Konfiguration des jeweils laufenden Plguins. Dazu stellt das Plugin eine Liste der änderbaren Parameter dem Framework zur Verfügung. Diese werden auf der Weboberfläche angezeigt und können dort geändert werden. Das Framework leitet diese Daten dann an das Plugin weiter.

Tinkerforge bietet in einem Demo-Programm bereits einige grafische Effekte an. Ein paar davon habe ich dann in dieses Framework überführt und auch bereits selbst ein paar Plugins geschrieben. Auf jeden Fall ist da noch Potential für mehr ;-)

Die LED-Tafel besteht zur Zeit aus folgenden Komponenten:

  • Raspberry Pi: Auf diesem (zuvor Modell B, inzwischen ein Modell 2) läuft das Java-Programm, welches die Tinkerforge-Komponenten steuert, die LED-Pixel ansteuert und zudem über einen Mikro-Webserver auch neben dem LCD eine Web-Steueroberfläche für das Gerät bietet.
  • Auf dem Raspberry gibt es aus Kostengründen keine RTC, also keine Echtzeituhr, welche die Zeit auch bei abgeschaltetem Raspberry behält. Für das Uhren-Plugin (s.u.) ist aber eine korrekte Uhrzeit notwendig, also habe ich dem Raspberry eine aufsteckbare RTC von ABelectronics spendiert. Die Anbindung geschieht über den I2C-Bus.
    Inzwischen habe ich diese RTC allerdings entfernt, der Raspberry holt sich die aktuelle Uhrzeit über das Netz.
  • Master Bricks (2 Stück): Hier sind die Bricklets angeschlossen. Weil das LED-Strip-Bricklet viel internen RAM eines Bricks zur Speicherung der Zustände verbrauchen, braucht es einen weiteren Master Brick, wenn mehr als ein anderes Bricklet angeschlossen werden soll. Dieser Stapel ist per USB an den Raspberry angeschlossen.
  • LED-Strip-Bricklet: Hier sind die LED-Pixel angeschlossen. Diese bestehen im Prinzip aus einem Bus, d.h. sind alle hintereinander angeschlossen. Jedes LED-Pixel hat einen kleinen Chip, der auf dem Bus lauscht und ggf. die drei internen LEDs (grün, rot und blau) ansteuert.
  • LCD-Bricklet: das beleuchtete 4x20-stellige Display dient zu Bedienung des Systems: Auf dem Display werden vorhandene Plugins angezeigt und können mit den Buttons des Displays ausgewählt werden. Ist ein Plugin gestartet, zeigt dieses auf dem Display weitere Informationen an. Die Buttons dienen dann zur Steuerung des Plugins.
  • 7-Segment-LED-Bricklet: Hierüber kann die Uhrzeit angezeigt werden, alternativ das aktuelle Datum. Ist natürlich nur eine Spielerei, aber das ist der Rest des Systems ja auch ;-) Das Framework kümmert sich um die Anzeige, das jeweilige Plugin kann sich aber dafür entscheiden, das das Datum angezeigt wird (beim Uhrzeit-Plugin ist eine zusätzliche Zeitanzeige eher sinnlos).
  • IR-Entfernungs-Bricklet: Analog der Verwendung bei der MP3-Station wird dieser Sensor dazu verwendet, die LCD-Beleuchtung nur dann anzuschalten, wenn jemand vor dem Display steht.
Folgende Plugins habe ich Zeit implementiert:
  • Uhrzeit: Die aktuelle Uhrzeit wird auf der LED-Tafel abgezeigt. Dazu gibt es zwei Darstellungen: Einmal angenährt an Segment-Anzeigen, und einmal leicht abgerundet. Zudem kann man verschiedene Farben der Anzeige wählen, darunter auch eine "Regenbogen"-Azeige, in welcher die Spalten in verschiedenen, sich verschiebenden Farben angezeigt werden.
  • Regenbogen: Alle 200 Pixel leuchten, die Farben sind alle leicht verschieden und ziehen sich durch das gesamte Spektrum (daher "Regenbogen"). Die Farben laufen dabei langsam weiter. Basiert auf dem Tinkerforge-Demoprogramm.
  • Feuer: Eine Feuer-Simulation, also eine Art Lager- oder Kaminfeuer. Farbton und Höhe des flackernden Feuers können eingestellt werden. Basiert auf dem Tinkerforge-Demoprogramm.
  • Game of Life: Eine Implementierung der "Lebensimulation" von John Horton Conway . Es werden zufällig Punkte gesetzt und die Simulation so lange ausgeführt, bis Stillstand herrscht. Dann wird das Spielfeld gelöscht und neu gefüllt.
  • Farbmorph: Von links nach rechts verändert sich die Farbe langsam von einem zufälligen Farbton in einen anderen.
  • Lauftext: Ein Text läuft über die LED-Tafel. Am LCD-Display können dabei einige eingespeicherte Texte ausgewählt werden, und über die Weboberfläche können beliebige Texte vorgegeben werden. Basiert auf dem Tinferforge-Demoprogramm.
  • MP3-Info: Hier fragt das Programm regelmässig Daten der MP3-Station ab (macht natürlich nur Sinn, wenn diese auch läuft), unter anderem den Titel des gerade laufenden MP3-Stücks oder ggf. die Zusatzinformation des Livestreams. Diese Daten werden (abwechselnd mit Temperatur, Luftdruck etc.) auf der LED-Tafel angezeigt (ähnlich dem Lauftext). Läuft ein MP3-Stück, wird die Länge auf der 7-Segment-Anzeige angezeigt und der Fortschritt des Stücks auf einer Linie unterhalb des Textes.
  • Flicker: "Aufblitzen" einer Menge zufällig gewählter Punkte, abhängig von diversen einstellbaren Parametern.

©2020 Holger Thiele
generiert aus "ledtafel.template" vom 05 05 2016
Valid HTML 4.01!