MateLight

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

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 (github.com).

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

MateLight Platinen

3 MateLight auf dem 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.

ssh pi@matelight

Passwort bei uns 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

Software#

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.

Foto von Beamer-Leinwand mit geöffnetem Editor und Code
Beim Coden des MateLights im Neotopia

MateLight Simulator#

Da beim Entwickeln neuer Effekte fürs MateLight selten 20 Matekisten zur Verfügung stehen, 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.

Screenshot MateLight Simulator
Der MateLight Simulator mit einem laufenden Uhr-Effekt

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.

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.

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)

Shell Befehl#

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

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

  • x: X-Koordinate (0…9)
  • y: Y-Koordinate (0…11)
  • 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

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