CCC Jugendgruppe

Jugendgruppe CCC Göttingen

MateLight


1. Was ist MateLight?

MateLight ist ein Display, das aus leer getrunkenen Mate Flaschen und den dazugehörigen Mate Kästen gebaut wird. Dazu nimmt Mensch einen komplett leeren Mate Kasten und dreht alle Stöpsel ab. In die Flaschenhälse kommen nun adressierbare RGB-LEDs. Diese werden so fixiert, dass sie den Flaschenboden möglichst gut anstrahlen. Abschließend dreht man den Kasten ein Mal so um 90°, dass man auf die Unterseite des Kastens schauen kann. Nun kann jede einzelne Flasche als Pixel in einer 4 × 5 Matrix angesteuert werden. Durch das Hinzufügen weiterer Kisten kann das Display schnell in die Höhe und in die Breite wachsen.

MateLight - Ein Kasten

2. Hardware

Die Hardware der MateLights besteht aus

Die Leiterplatte und das 3D-Modell des Schraubverschluss findet Mensch im Repo MateLightScrewCap.

Außerdem zeigt unser Lightning Talk "Elektrische Plätzchen", wie wir die Hardware Schritt für Schritt gebaut haben.

MateLight Platinen

3 MateLight Login (Raspi)

3.1 SSH

Das MateLight kann aus dem Neotopia Netzwerk direkt über SSH angesprochen werden. Der Treiber ist hier natürlich schon vollständig installiert.

Terminal:

ssh pi@matelight

Passwort:

Im Space nachfragen

3.2 Systemd

Durch systemd wird beim Hochfahren des MateLight der Dienst matelight.service gestartet. Dieser führt das Skript /home/pi/matelight/effectlib.py aus. Durch das Editieren dieses Skripts kann der Lichteffekt auf dem MateLight geändert werden.

Um vorgenommene Änderungen im Skript effectlib.py wirksam werden zu lassen, muss der Dienst matelight.service neu gestartet werden. Nachfolgend sind die wichtigsten Befehle zum Umgang mit matelight.service aufgeführt.

Dienst starten:

sudo systemctl start matelight.service

Dienst stoppen:

sudo systemctl stop matelight.service

Dienst neu starten:

sudo systemctl restart matelight.service

Dienst Status erfragen:

sudo systemctl status matelight.service

4. Software

4.1 Treiber

Ein erster Treiber kann in folgendem Repo gefunden werden.

https://git.cccgoe.de/jugendgruppe/apa102-py/

Für das MateLight steht ein in Python geschriebene Treiber zur Verfügung. Dieser erlaubt es,

Repo des MateLight Treibers: MateLight

Außerdem existiert im selben Repo das Geometriepaket draw.py, welches es erlaubt einfach

zu zeichnen.

Beim coden des MateLights im Neotopia

4.2 MateLight Simulator

Da man beim Entwickeln neuer Effekte fürs MateLight selten 20 Matekisten dabei hat, haben wir den MateLight-Simulator entwickelt. Dieser erlaubt es, MateLight Effekte in beliebiger Größe ganz einfach zu simulieren. Der MateLight Simulator ist vollständig zum MateLight Treiber kompatibel und kann so sehr einfach verwendet werden.

MateLight Simulator

4.3 Effekte

Verschiedene Programme und Lichteffekte für das MateLight werden in dem Repo MateLight-Effects gesammelt. Diese bauen auf den MateLight Treiber auf und sind natürlich auch mit dem MateLight Simulator lauffähig.

4.4 MateLight auf dem rC3

Auf der Remote Chaos Experience (rC3) im Coronajahr 2020 haben wir unsere MateLight mit 3 × 4 Kisten (15 × 16 Flaschen/Pixel) aufgebaut und live auf die Webseite matelight.cccgoe.de und in die rC3-World gestreamt. Um mit dem MateLight zu interagieren, hatten Besuchende die Möglichkeit Lichteffekte in einer Dropdown-Liste auszuwählen. Dadurch wurde der entsprechende Effekt auf dem MateLight aktiviert und Sekunden später live übertragen.

Das MateLight auf dem rC3 im Videostream

4.5 MateFlut

Für das MateLight haben wir ein MateFlut gebaut. Dieses lehnt sich an das Projekt Pixelflut an. Dabei handelt es sich um ein Interface, dass die Ansteuerung einzelner Pixel des MateLights über das Netzwerk erlaubt. So kann man mit Bash Skripten schnell schöne Effekte erzeugen.

4.5.1 Koordinatensystem

Der Nullpunkt des Pixelflutservers befindet sich in der linken unteren Ecke des MateLights. Von hier gehen die Reihen nach oben und die Spalten nach rechts.

            ^
            |  O O O O O
 y (Reihen) |  O O O O O
            |  O O O O O
            |  O O O O O
            +-------------->
           0   x (Spalten)

4.5.2 Shell Befehl

Das MateLight kann mit der Shell angesteuert werden, wenn ihr euch im Neotopia WLAN befindet.

Befehl

echo "PX x y rrggbb" | netcat -N matelight 1234

Ort

x: X-Koordinate (0…9)
y: Y-Koordinate (0…11)

Farbe

rr: roter Farbwert Hexadezimal (00…FF)
gg: grüner Farbwert Hexadezimal (00…FF)
bb: blauer Farbwert Hexadezimal (00…FF)

Beispiele

Rotes Leuchten in Spalte 2 und Reihe 3

echo "PX 2 3 ff0000" | netcat -N matelight 1234

O O O O O
O O O O O
O O O O O
O O O O O

Gelbes Leuchten in Spalte 5 und Reihe 1

echo "PX 5 1 ffff00" | netcat -N matelight 1234

O O O O O
O O O O O
O O O O O
O O O O O

Blaues Leuchten in Spalte 3 und Reihe 4

echo "PX 3 4 0000ff" | netcat -N matelight 1234

O O O O O
O O O O O
O O O O O
O O O O O