150 lines
3.6 KiB
Markdown
150 lines
3.6 KiB
Markdown
# Benutzung
|
||
|
||
- als **root** ausführen
|
||
- ./main.py
|
||
|
||
|
||
verschiedene threads zur auswahl, die vom flask gestartet/gestoppt werden können.
|
||
|
||
- statisches bild anzeigen und sich beenden
|
||
-
|
||
|
||
ein task, der die ganze zeit im hintergrund läuft.
|
||
- statisches bild anzeigen
|
||
- eine Routine
|
||
|
||
ein globales bild. (locking?)
|
||
die einzelnen
|
||
|
||
https://github.com/hzeller/rpi-rgb-led-matrix
|
||
|
||
./main.py
|
||
curl http://localhost:6000/start/helloworld
|
||
feh --reload 0.15 image.png
|
||
|
||
https://pypi.org/project/finnhub-python/
|
||
|
||
# Locale
|
||
|
||
Für deutsche Ausgabe (z.B. den Monatsnamen):
|
||
- als root: `dpkg-reconfigure locales`
|
||
- **de_DE.UTF-8** aktivieren
|
||
|
||
# Flackern
|
||
|
||
## Erkenntnisse
|
||
|
||
"Hardware pulsing" macht zwar ein ruhiges Bild aber viele Artefakte.
|
||
Wenn man "hardware pulsing" abschaltet, muss die Software die Ansteuerung der
|
||
Panels machen. Das ist für den Raspi stressiger.
|
||
|
||
Am besten startet man den Webserver mit:
|
||
|
||
chrt -f 20 ./main.py
|
||
|
||
Dann werden Hintergrundprozesse unterdrückt und Artefakte vermieden.
|
||
|
||
Interessante Optionen:
|
||
|
||
- `options.gpio_slowdown`: Mehr=mehr Flackern. Weniger=Artifakte/Rauschen im linken Bereich.
|
||
- `options.pwm_bits`: Mehr=mehr Flackern. Weniger=weniger Helligkeitsabstufungen
|
||
|
||
## Einstellung 1
|
||
|
||
- kaum sichtbare Artefakte
|
||
- ca. 10 Hz Bildwiederholrate
|
||
- 4 Panels
|
||
|
||
```py
|
||
options = RGBMatrixOptions()
|
||
options.rows = MATRIX_HEIGHT
|
||
options.cols = MATRIX_WIDTH
|
||
options.chain_length = NUMBER_OF_PANELS
|
||
options.parallel = 1
|
||
options.hardware_mapping = 'regular' # change if using Adafruit HAT, e.g. 'adafruit-hat'
|
||
options.gpio_slowdown = 10 # try 2, 4, or even 5
|
||
options.drop_privileges = False
|
||
options.pwm_bits = 10 # default 11–12; lower = faster refresh
|
||
```
|
||
|
||
## Einstellung 2
|
||
|
||
- leichte Artifakte, hält 10 Minuten durch
|
||
- ca. 30 Hz Bildwiederholrate
|
||
- 3 Panels
|
||
|
||
```py
|
||
options.hardware_mapping = 'regular' # change if using Adafruit HAT, e.g. 'adafruit-hat'
|
||
options.gpio_slowdown = 6 # try 2, 4, or even 5
|
||
options.disable_hardware_pulsing = True
|
||
#options.show_refresh_rate = True
|
||
options.drop_privileges = False
|
||
```
|
||
|
||
## Einstellung 3
|
||
|
||
- kaum Artefakte
|
||
- ca. 30 Hz
|
||
- 3 Panels
|
||
|
||
```py
|
||
options.hardware_mapping = 'regular' # change if using Adafruit HAT, e.g. 'adafruit-hat'
|
||
options.gpio_slowdown = 7 # try 2, 4, or even 5
|
||
options.disable_hardware_pulsing = True
|
||
options.drop_privileges = False
|
||
options.pwm_bits = 10 # default 11–12; lower = faster refresh
|
||
```
|
||
|
||
## Einstellung 4
|
||
|
||
- 20-30 Hz
|
||
- 3 Panels
|
||
- keine Artefakte
|
||
|
||
```py
|
||
options.hardware_mapping = 'regular' # change if using Adafruit HAT, e.g. 'adafruit-hat'
|
||
options.gpio_slowdown = 8 # try 2, 4, or even 5
|
||
options.disable_hardware_pulsing = True
|
||
options.drop_privileges = False
|
||
|
||
## Einstellung 5
|
||
|
||
- 50 Hz
|
||
- 4 Panels
|
||
- keine Artefakte
|
||
- hält es langfristig damit durch?
|
||
|
||
options.hardware_mapping = 'regular' # change if using Adafruit HAT, e.g. 'adafruit-hat'
|
||
options.gpio_slowdown = 4 # try 2, 4, or even 5
|
||
options.disable_hardware_pulsing = True
|
||
options.drop_privileges = False
|
||
options.pwm_bits = 5 # default 11–12; lower = faster refresh
|
||
|
||
|
||
# Links
|
||
|
||
- https://github.com/hzeller/rpi-rgb-led-matrix
|
||
|
||
# TODO
|
||
|
||
Das ganze als minimalen Case ohne Multithreading und Klassen.
|
||
Ist das Geflacker dann weg?
|
||
|
||
# 2026-01-16
|
||
|
||
- git pull
|
||
- spannung auf 5,01 Volt reduziert (von 5,2 Volt)
|
||
- gpio-slowdown auf 4
|
||
- nach dem stop (ctrl-c) und start 10 sekunden warten
|
||
- mit "gunicorn -w 1 -k gthread main:app" laufen lassen
|
||
|
||
# Szenen
|
||
|
||
curl "http://localhost:8000/start/color?red=255&green=255&blue=255"
|
||
curl http://localhost:8000/start/bitcoin
|
||
curl http://localhost:8000/start/clock
|
||
curl http://localhost:8000/start/colorclock
|
||
curl http://localhost:8000/start/helloworld
|
||
curl http://localhost:8000/stop
|
||
curl http://localhost:8000/reset
|
||
|