LED-Laufschrift fürs Vereinsheim

Version vom 20. Juli 2014, 15:56 Uhr von Cfr34x (Diskussion | Beiträge) (Layoutänderung + Client-Doku)
LUMINO hängt und zeigt den aktuellen Song

Idee

  • Aufbau einer LED-Laufschriftanzeige, die das Topic aus dem IRC-Channel anzeigt (wird an der Tür des Vereinsheims installiert Das Lumino ist 1,38 m breit und dafür nicht geeignet).
  • + evtl. LED-Matrix als Leuchtreklame
  • LUMINO als Anzeige für das aktuelle Lied aus dem MPD
  • LUMINO zeigt den Song, scrollt zu lange Zeilen, zeigt eine Fortschrittsanzeige an und zeigt den Staus (Play, Pause oder Stop) an
  • LUMINO hängt gut sichtbar Benutzer:Juhe

Verantwortlich

Funktionsweise

 
Lumino mit internem Aufbau und Client-Struktur

Lumino-intern

Im Lumino befinden sich ein STM32F4Discovery, das die 5 LED-Panels ansteuert sowie ein Raspberry Pi, das die Funktion eines Display-Servers übernimmt und Zeichenfunktionen über das Netzwerk zur Verfügung stellt.

Das Lumino besteht aus 5 LED-Panels, auf denen sich jeweils 32x24 LEDs befinden. Diese sind wiederum in Blöcken von 4x8 LEDs organisiert, wobei jeder Block von einem Treiberbaustein angesteuert wird. Innerhalb dieser 4x8-Blöcke ist die Anordnung der LEDs willkürlich gewählt, allerdings sind alle Blöcke gleich (Dokumentation zum LED-Mapping). Die Zuordnung eines Bits aus dem Framebuffer auf die richtige LED wird durch das STM32F4Discovery vorgenommen.

Die Kommunikation des Raspberry Pis mit dem STM32F4Discovery erfolgt über UART. Es werden grundsätzlich vollständige Frames übertragen.

Auf dem Raspberry Pi läuft der Display-Server, der die Ansteuerung des Displays auf höherer Ebene ermöglicht. Dazu wartet er auf TCP-Port 12345 auf Befehle (siehe API-Doku). Zur vereinfachten Anzeige von Text wird ein zweizeiliger Textbereich („textarea“) zur Verfügung gestellt, der beliebig platziert werden kann. Ist der gesetzte Text zu groß für den Textbereich, wird automatisch gescrollt.

Extern (Client-Skript)

Auf einem Rechner im Vereinsheim (derzeit Stern, Stand 20.07.2014) läuft ein Client-Skript, das die Koordination der Ansteuerung des Luminos übernimmt.

Folgende Funktionen sind derzeit implementiert:

  • Anzeige des MPD-Status (laufendes Lied, aktueller Fortschritt u.ä.)
  • Begrüßung von Mitgliedern, die sich in das NDATool eingetragen haben (dies hat Vorrang vor dem MPD-Status)

Dazu kommuniziert das Skript sowohl mit dem Music Player Daemon als auch dem MACTracker-Skript, das eine Liste der anwesenden Personen generiert. Kommt jemand neu hinzu, wird dieser 1 Minute lang begrüßt, ansonsten wird der aktuelle MPD-Status angezeigt.

Das Skript befindet sich auf Stern unter /home/bingo/scripts/lumino-client.py .