LED-Laufschrift fürs Vereinsheim: Unterschied zwischen den Versionen

Aus bytewerk-Wiki
Zur Navigation springen Zur Suche springen
(Lumino-interne Kommunikation)
(Layoutänderung + Client-Doku)
Zeile 1: Zeile 1:
[[Datei:LUMINO2.jpg|300px|thumb|right|LUMINO hängt und zeigt den aktuellen Song]]

==Idee==
==Idee==


Zeile 6: Zeile 8:
* LUMINO zeigt den Song, scrollt zu lange Zeilen, zeigt eine Fortschrittsanzeige an und zeigt den Staus (Play, Pause oder Stop) an
* 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]]
* LUMINO hängt gut sichtbar [[Benutzer:Juhe]]
[[Datei:LUMINO2.jpg|400px|thumb|left|LUMINO hängt und zeigt den aktuellen Song]]


==Verantwortlich==
==Verantwortlich==
Zeile 15: Zeile 16:


==Funktionsweise==
==Funktionsweise==
[[Datei:lumino_infrastruktur.svg|400px|thumb|left|Lumino mit internem Aufbau und Client-Struktur]]
[[Datei:lumino_infrastruktur.svg|250px|thumb|right|Lumino mit internem Aufbau und Client-Struktur]]


===Lumino-intern===
===Lumino-intern===
Zeile 26: Zeile 27:


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 [https://rhodecode.bytewerk.org/LED-Schild/files/master/Dokumentation/Text/API.txt 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.
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 [https://rhodecode.bytewerk.org/LED-Schild/files/master/Dokumentation/Text/API.txt 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 .


[[Category:Projekt]]
[[Category:Projekt]]

Version vom 20. Juli 2014, 15:56 Uhr

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 .