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.
2. Hardware
Die Hardware der MateLights besteht aus
- leeren Mate Kisten,
- Leiterplatten, die wir in der Jugendgruppe angefertigt haben,
- 3D gedruckten Schraubverschlüssen, die perfekt an die Leiterplatten angepasst sind und
- einem Raspberry Pi als Server.
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.
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,
- ein MateLight Objekt für beliebig große MateLight (beliebig viele Kästen) zu erstellen,
- den dazugehörigen Verkabelungsplan auszugeben und
- einzelne Punkte auf dem MateLight anzusteuern.
Repo des MateLight Treibers: MateLight
Außerdem existiert im selben Repo das Geometriepaket draw.py, welches es erlaubt einfach
- Punkte,
- Linien,
- Vierecke und
- Kreise
zu zeichnen.
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.
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.
- Repo für die Webseite: matelight_webfrontend
- Repo für die Software des MateLight Raspberry Pis: rc3_mleffects
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 |