LED-Stripe
Installation der Hardware
Zwei LED-Streifen à 3 m (206 LEDs) hängen an labilen Böcken in den Vorhangaufhängenischen über den Fenstern im großen Raum im GCHQ. Zusätzlich sind nun auch 20 LEDs rundum im Hardware-Kasten an der Wand.
Steuerung
Controller ist der Pi ledbeere.
Auf ledbeere kann sich per ssh verbunden werden.
- Ein Verbinden soll nur innerhalb des Netzes des HQ möglich sein.
ssh pi@172.22.99.206
- fe80::ba27:ebff:fe6d:b29b
Layout
- 0 <= x < 20
- Gehäusebeleuchtung (TODO: Details?)
- 20 <= x < 123
- Östlicher LED-Stripe
- 123 <= x < 226
- Westlicher LED-Stripe
Code
Bislang gibt es folgende Komponenten:
- ustriped
- Kleiner C-Server der Pixeldaten über UDP entgegennimmt und auf GPIO schreibt; kann Prioritäten
- ustripe-simplex
- Das gute alte Simplex-Plasma auf Priorität 255
- ustripe-pulse
- Musikvisualisierung von cider, läuft auf flatbert im Container ustriper, auf Priorität 253
- piletop
- Sollte das Serversystem in node.js werden, soll mal Konfiguration oder gar Code entgegennehmen und mehrere Ziele bespielen können.
- https://github.com/DjangoOne/led-stripe-py
- Python-Projekt
Protokoll
Per UDP an ledbeere:2342 für 226 LEDs:
- Byte 0: Priorität (255 für etwas was andauernd läuft, niedriger für kurzzeitigere Sachen)
- Byte 1: Kommando (0: CMD_SET_PIXEL_COLORS)
- Bytes 2 & 3: Länge der folgenden Daten in Network Byte Order; für 226 LEDs mit je 3 Byte: 678 = [0x02, 0xA6]
- Dann: 8 bit blau, 8 bit grün, 8 bit rot für 226 LEDs
Ein einfaches Beispiel in Shell-Skript:
( echo -en '\x00\x00\x02\xA6'; for i in {1..226}; do echo -en '\x00\xFF\x00'; done ) | ncat --send-only --udp ledbeere 2342
Das sollte alle LEDs auf grün stellen.