Schild: Unterschied zwischen den Versionen
Krisha (Diskussion | Beiträge) |
Krisha (Diskussion | Beiträge) |
||
Zeile 68: | Zeile 68: | ||
===== Command line ===== | ===== Command line ===== | ||
Alle LEDs an: <code>perl -e 'print "\x7F\x7F\x7F"x126' | nc -u schild 10002</code> | Alle LEDs an: <code>perl -e 'print "\x7F\x7F\x7F"x126' | nc -u schild 10002</code> | ||
− | |||
Die folgenden Befehle werden in der Regel nicht benötigt, da die backspace API diese Aufgabe übernimmt. | Die folgenden Befehle werden in der Regel nicht benötigt, da die backspace API diese Aufgabe übernimmt. | ||
− | |||
Schild einschalten: <code>perl -e 'print "2"' | nc -u schild 10003</code> | Schild einschalten: <code>perl -e 'print "2"' | nc -u schild 10003</code> | ||
Zeile 82: | Zeile 80: | ||
Some recorded [https://drive.google.com/folderview?id=0Bz_nHnqmhfJCbnhYclBZOFY5ajg&usp=sharing videos]. | Some recorded [https://drive.google.com/folderview?id=0Bz_nHnqmhfJCbnhYclBZOFY5ajg&usp=sharing videos]. | ||
− | ===== Sine | + | ===== Sine 2 ===== |
− | github, | + | [https://github.com/krisha/backspace-sign/blob/master/clients/SignSineWave2.cs Sign 2] dreht eine doppelte Sinuswelle um das Schild und lässt dabei die Farben faden. Um einen sanften Übergang zu ermöglichen werden die LEDs in kleineren Schritten gedimmt, anstatt einfach den Sinus um komplette LEDs zu verschieben. |
===== Warsow ===== | ===== Warsow ===== | ||
− | github | + | Der [https://github.com/krisha/backspace-sign/blob/master/clients/Warsow.cs Warsow Client] lässt das Schild bei einem Kill im Deathmatch Mode von Warsow aufblitzen. Der praktische Nutzen ist an der geplanten aktuellen Position des Schildes aber natürlich nicht mehr gegeben (: |
===== Up/Down row demo ===== | ===== Up/Down row demo ===== | ||
github, desc | github, desc |
Version vom 22. Januar 2014, 05:37 Uhr
backspace Schild Status: unbekannt | |
---|---|
Beschreibung | beleuchtetes Außenschild mit unserem Logo |
Autor: | krisha |
Version | 0.8 |
PayPal |
Ziel war es ein beleuchtetes Schild mit unserem Logo außen an den Vereinsräumen anzubringen.
Erlaubnisantrag
Im ersten Schritt mussten wir einen denkmalschutzrechtlichen Erlaubnisantrag für ein Schild kleiner als 1m² bei der Bauberatung der Stadt Bamberg einholen. Hierfür haben wir uns einen Lageplan beim Vermessungsamt besorgt und eine Skizze angefertigt.
Nachdem uns die Erlaubnis erteilt wurden ist, haben wir mit der Planung angefangen. Wir haben uns schließlich auf ein transparentes Schild mit dem Logo inklusive unserem Schriftzug geeinigt.
Herstellung
Schild
Wir wollten das Schild zuerst selbst mit unserer CNC-Fräse fräsen. Probleme bereitete hierbei aber die nierdige Schmelztemeperatur des Kunststoffes. Eine Kühlung wäre sehr aufwändig geworden und hätte auch den Erfolg nicht garantiert. Zudem hatten wir temporäre Probleme, dass die Fräse bei größeren Wegen manchmal hängen blieb. Das hätte eventuell dazu geführt, dass wir mehrere Plexiglasplatten benötigt hätten. Aus Kostengründen haben wir uns entschieden, das Schild fräsen zu lassen.
Das Schild wurde schließlich von Kunststoff- und Acrylglasvertrieb in Hallstadt gefertigt. Aufgrund der Beratung haben wir uns dann auch für EndLighten Plexiglas und einer zusätzlichen Folie entschieden. Das EndLighten Material hat Vorteile für die Beleuchtung und tagsüber ist die Folie gut zu sehen.
Rahmen
Der Rahmen wurde uns von (TODO) gesponsort und besteht aus Stahl und Edelstahl. Die Abwicklung, das Lackieren, das Einkleben und das Anbringen des Rahmens wurden von hallojoh übernommen.
Das Rahmen ist so gebaut, dass das Schild schwingen kann.
Kosten
Die vom Space und den Mitgliedern getragenen Kosten belaufen sich auf ca. 310€. Vielen Dank an die Sponsoren, die Mitglieder und für den Rabatt :)
Ansteuerung
Hardware
Wir haben uns entschieden, dass das Schild mit addressierbaren RGB LEDs angesteuert werden soll. Hierfür haben wir in den USA bei Insomnia Lightning 3 Meter RGB Stripe mit dem Chip LPD8086 besorgt. Die Stripes sind angeblich IP67 wasserfest.
Für die Ansteuerung kamen verschiedene Systeme in Betracht:
- Atmel XMEGA (AVR)
- NXP LPC (ARM)
- Raspberry Pi
Die Entscheidung viel nach einem kurzen Test auf den Raspberry Pi. Hätten wir einen Mikrocontroller eingesetzt, hätten wir eine Platine fertigen müssen und, da das Schild über Netzwerk gesteuert werden soll, einen weiteren Ethernetchip verbauen müssen. Zudem hätten wir hier einen UDP Stack benötigt, oder selbst einen entwerfen müssen.
Der Raspberry Pi unterstützt von Haus aus SPI und Ethernet. Aufgrund der Linuxbasis war es auch erheblich einfacher einen entsprechenden UDP Server aufzusetzen.
Während der Entwicklung war es möglich das Schild mit einem 20MHz Signal anzusteuern. Durch die Montage mussten allerdings die Daten- und Versorgungsleitungen auf 5m verlängert werden. Deshalb mussten wir auch die Frequenz auf 10MHz reduzieren. Zu beachten ist, dass der Raspberry Pi die Frequenz vermutlich auf festgelegte Frequenzen reduziert.
Software
Server
Hardwareansteuerung
Der Server ist in C geschrieben. Der Code ist auf github verfügbar.
Der Server (backspace hostname schild) erwartet ein UDP Paket auf Port 10001 mit LED_COUNT*3 Bytes. Jede LED hat 3 Bytes für die Farben ROT, GRÜN, BLAU (in dieser Reihenfolge). Die Bytes stehen für die Helligkeit und müssen einen Wert zwischen 0 bis 127 haben. Das MSB wird ignoriert, 0x80 entspricht also einer 0.
LED_COUNT entspricht bei unserem Schild 126.
Stream Multiplexer
Um mehrere Streams zu unterstützen wurde ein Multiplexer geschrieben. Dieser erlaubt jedem Stream eine gewisse Zeit anzuzeigen. Neue Clients werden sofort angezeigt, ansonsten werden die Streams im Round-Robin Verfahren durch gewechselt.
Der Multiplexer läuft auf Port 10002. Zusätzlich können die Streams über 10003 abgeschalten werden. Hierfür wird eine ASCII '0' gesendet, mit '1' wird ein schwaches statisches Licht eingeschalten und mit '2' werden die verbundenen Clients durchgeleitet.
Clients
Command line
Alle LEDs an: perl -e 'print "\x7F\x7F\x7F"x126' | nc -u schild 10002
Die folgenden Befehle werden in der Regel nicht benötigt, da die backspace API diese Aufgabe übernimmt.
Schild einschalten: perl -e 'print "2"' | nc -u schild 10003
Schild ausschalten: perl -e 'print "0"' | nc -u schild 10003
Sine Demo
sine.cs is a simple sample client written in C#. It is drawing a sine wave around the sign, controllable by key presses.
Some recorded videos.
Sine 2
Sign 2 dreht eine doppelte Sinuswelle um das Schild und lässt dabei die Farben faden. Um einen sanften Übergang zu ermöglichen werden die LEDs in kleineren Schritten gedimmt, anstatt einfach den Sinus um komplette LEDs zu verschieben.
Warsow
Der Warsow Client lässt das Schild bei einem Kill im Deathmatch Mode von Warsow aufblitzen. Der praktische Nutzen ist an der geplanten aktuellen Position des Schildes aber natürlich nicht mehr gegeben (:
Up/Down row demo
github, desc