1. Grafische Benutzeroberfläche
Die
Steuerung des Systems erfolgt über eine Website wie sie in den
folgenden Abbildungen zu sehen ist. Diese wurde von der Gruppe
Launchpad-Lightshow programmiert. Diese Website wird auf dem
Panasonic Notebook gehostet.
Abb.1: Lightshow Launchpad Web-App
In Abb. 1 ist die Website
dargestellt, welche über Node-Red erzeugt wurde. Im Modus "Single
Control" (Auswahl: siehe Abb. 2) kann auf der linken Seite die Farbe
ausgewählt werden, mit welcher dann, per klick auf die entsprechende
Kachel, einer der 16 Pixel aufleuchtet.
Abb. 2: Modus-Auswahl
In Abb. 2 Sieht man das ausgeklappte
drop-down Menü zur Modusauswahl, mit einem klick auf Lightshow 1, 2
oder 3, wird eine Message an die ESP32 der Swimming Pixel gesendet,
welche diese in die entsprechende Lightshow-Funktion bringt.
2. C/C++ Programm auf den ESP's
Die
Arduino Programme für die Microcontroller wurden von
dieser Gruppe erstellt.
Um das System
mobil mit der Akkubetriebenen Fritzbox zu verwenden, muss der code
auf die neuen Routerdaten angepasst werden, siehe Abb. 3:
Abb. 3: Router ssid und Schlüssel sowie
IP-Adresse des MQTT-Servers (main.cpp)
Bei einem Test am
Haydnplatz waren die Pixel anfangs sehr dunkel und wurden im Laufe
des Tests plötzlich hell, es stellte sich bei nachträglicher analyse
des codes heraus, dass die Anfangshelligkeit zu niedrig gesetzt
wurde, welche sich allerdings innerhalb der Lightshow 3 ändert. Der
Code-Abschnitt in Abb. 4 wurde angepasst um das Problem zu beheben.
Die Brightness wurde von 5 auf 250 (0 bis 255) gesetzt.
Abb. 4: setup der Helligkeit
Aufrund
der verschiedenen Lightshows hat jeder der 16 Pixel eine eigene
.h-Datei die von der main aufgerufen wird. Um für den Upload
lediglich den namen des includes ändern zu müssen.
zum
Beispiel von: #include "pixel_1_1.h" zu #include
"pixel_1_2.h"
Somit können die Pixel schnell nacheinander mit
dem code bespielt werden. Allerdings sind änderungen die jeden
Pixel betreffen mühselig umzusetzen, da jeder der 16 codes angepasst
werden muss. Um dies zum Beispiel bei der Verwendung eines anderen
Routers oder eines anderen MQTT-Servers zu umgehen, wurden diese
Variablen Global in der main.cpp definiert und innerhalb der
einzelnen .h-Dateien mit "extern" bekannt gemacht.
Abb. 5: Router ssid und Schlüssel
sowie IP-Adresse des MQTT-Servers (pixel_N_M.h)
Einige Pixel
waren von den vorgängergruppen noch mit 16-LED-Ringen anstelle der
8x8-LED-Matrizen ausgestattet, dies muss im code mit der Variable
LED_COUNT angepasst werden (wert: 64 für die 8x8-LED-Matrizen).
Außerdem werden die Digital-Inputs der Matrizen mit dem GPIO-5 des
Microcontrollers verbunden, dies ist auch in jedem code mit LED_PIN
angepasst worden. (siehe Abb. 6)
Abb. 6: Einstellungen für die Anzahl der LEDs pro Pixel und die
Pin-Nummer
|