Pingie Pie: Unterschied zwischen den Versionen

Aus RaumZeitLabor Wiki
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 96: Zeile 96:


== Limitations ==
== Limitations ==
* Unterstützt nur 7-bit ASCII (codes 32-127). Erweiterung bis zu 255 möglich, dazu muß jemand den Font anpassen. Das PHP-Script setzt UTF8 automatisch in ISO-8859-1 um.
* UTF-8 nur mit Aufwand möglich.
* UTF-8 nur mit Aufwand möglich.


== Status ==
== Status ==
* Unterstützt jetzt auch ISO-8859-15 - danke an [[Benutzer:pennylane|pennylane]].


* Die Hardware ist soweit komplett und aufgehängt
* Die Hardware ist soweit komplett und aufgehängt
* Es muß noch ein Stromkabel vom NPM zum Ping+-Board gelegt werden (derzeit hängt das Netzteil direkt an ner Steckdose)
* Es muß noch ein Stromkabel vom NPM zum Ping+-Board gelegt werden (derzeit hängt das Netzteil direkt an ner Steckdose)
* Da die USB-Verlängerung (15m!) nicht sonderlich stabil ist, haben wir ein 20m aktives USB-Kabel geordert.
* Der Mikrokontroller-Code muß beschönigt werden
* Der Mikrokontroller-Code muß beschönigt werden
* ???
* ???

Version vom 1. Mai 2012, 17:35 Uhr

         
Ping+

Release status: experimental [box doku]

Beschreibung Textanzeige für !ping <text>
Autor(en)  Felicitus, drahti, sECuRE
Letzte Version  1.0
Plattform  ATMEGA168
Lizenz  GPL

Der Ping+ ist eine Erweiterung für den Ping, welcher einen Text anzeigt, der nach dem !ping-Kommando im IRC geschrieben wird.

Benutzung im IRC:

!ping Wer ist im Raum?

Ein Video zum Ping+ gibt's auf youtube.

Implementation

Hardware

Die Implementation besteht aus dem V-USB Proto Board, einer 85x7 Pixel LED-Anzeige sowie einer Treiberplatine.

Das LED-Panel bekommt seinen Strom von einem ausgedienten D-Link-Netzteil, welches 3A bei 5V liefern kann. Das LED-Panel zieht je nach Ansteuerung zwischen 50mA und 1A. Deshalb wird das LED-Panel durch den NPM 2000 bei Bedarf angeschalten und nach einer noch zu definierenden Zeit wieder abgeschalten. Das V-USB Proto Board wird über USB dauerhaft gespeist.

Software (Controller)

Auf dem V-USB Proto Board kommt eine kleine Firmware zum Einsatz, die folgende Funktionen über Control Messages unterstützt:

Funktion bRequest wValue wIndex
Pixel setzen 2 x-Koordinate y-Koordinate
Pixel löschen 3 x-Koordinate y-Koordinate
Einzelnes Zeichen in den Offscreen-Buffer übertragen 4 - ASCII-Code (32-127)
Offscreen-Buffer in den Main Buffer kopieren 5 - -
Offscreen-Buffer leeren 10 - -
Aktuelle Zeile nach oben wegscrollen 20 - -
Wartezeit am Zeilenende/Zeilenanfang in Zyklen 25 Zyklen (0-255) -
Scrolldelay 26 Delay (0-255) -

Da Control Messages nicht besonders schnell sind und durch das permanente Neu-Aufbauen des Displays nicht ständig nach USB-Messages gepollt werden kann, werden die Zeichen zuerst in einen Offscreen-Buffer geschrieben (bRequest 4). Ist die Übertragung der Nachrichten komplett, kann der Offscreen-Buffer in den sichtbaren Main Buffer kopiert werden (bRequest 5).

Ist die Zeile länger als das Display anzeigen kann, scrollt es von Anfang bis Ende und wieder zurück. Die Scrollgeschwindigkeit und die Wartezeit am Anfang/Ende einer Zeile kann definiert werden.

Wenn sich jemand dazu berufen fühlt, kann er gerne die Firmware umschreiben, sodaß sie über etwas anderes als Control Messages arbeitet.

Software (Blackbox)

Die Implementation auf der Blackbox besteht aus 2 Programmen:

  • Ein Python-Script, welches mittels pyusb und libusb die USB-Mikrokontrollerfunktionen hostseitig anbietet und als CLI-Script implementiert ist
  • Ein kleiner Webservice, an welchen neue Zeilen aus dem IRC gepostet werden können

Limitations

  • UTF-8 nur mit Aufwand möglich.

Status

  • Unterstützt jetzt auch ISO-8859-15 - danke an pennylane.
  • Die Hardware ist soweit komplett und aufgehängt
  • Es muß noch ein Stromkabel vom NPM zum Ping+-Board gelegt werden (derzeit hängt das Netzteil direkt an ner Steckdose)
  • Der Mikrokontroller-Code muß beschönigt werden
  • ???
  • Profit!