No description
  • HTML 94.6%
  • Python 5.3%
  • Shell 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
fingadumbledore cdd717040e 39c3 colors
2025-11-01 16:25:26 +01:00
config sync sim rocket with rocket 2024-12-14 18:02:32 +01:00
effects add vga16 effect to help with color calibrations 2024-09-09 22:25:44 +02:00
ft232h switch python version, optimise ft232h scripts 2024-12-13 18:04:34 +01:00
media moved media files into new dir media 2023-10-05 12:28:20 +02:00
public fix #26 2024-12-15 00:19:29 +01:00
.env [pipenv] added Pipfile for automatic installation of dependencies | added “.env” with necessary environment variable "BLINKA_FT232H=1" as autostart | removed requirements.txt (venv default) 2024-11-28 20:26:06 +01:00
.gitignore add rocket config for simulator 2024-11-30 14:29:08 +01:00
.gitlab-ci.yml Update .gitlab-ci.yml file 2024-08-04 00:38:43 +02:00
generate_docapi.sh add helping bash scripts 2024-08-22 11:14:10 +02:00
LICENSE Add LICENSE 2023-11-11 00:16:13 +01:00
lightpipe.py prevent invalid color integers 2024-12-14 23:26:42 +01:00
logo.png add logo 2023-09-09 17:35:08 +02:00
logo_small.png add smaller logo version 2023-09-12 21:08:12 +02:00
mypy_check.sh add helping bash scripts 2024-08-22 11:14:10 +02:00
paintbag.py 39c3 colors 2025-11-01 16:25:26 +01:00
Pipfile remove python version because "no" 2024-12-13 18:17:58 +01:00
Pipfile.lock Ft232h utils 2024-11-30 20:38:04 +01:00
README.md move parts of the readme to the documentation repository 2024-12-07 23:53:21 +01:00
run.py refactor and issue 26 2025-01-01 15:42:51 +01:00
simulation.py refactor and issue #23 2024-11-22 12:11:27 +01:00
test_regions.py add effect for testing regions 2024-07-16 15:01:06 +02:00

LightPipe Treiber

Dieses Projekt beinhaltet Software für LightPipe. Der Treiber wird zum Betrieb für Lightpipes benötigt.

Die ausführliche Dokumentation befindet sich in einem eigenen Repository: documentation

Der Treiber kann zum Beispiel auf einem Raspberry Pi mit angeschlossenem LightPipe betrieben werden.

Logo

Installation

Das Projekt ist in Pyhton3.11+ geschrieben.

Vorraussetzungen

  1. Hardware (oder Simulation) bereit haben
  2. python version 3.11 oder neuer verwenden
    • Bei älteren python-Versionen (z.B. Linux Mint) ist tomli compatibility zu beachten.
    • So läuft es auch auf < 3.11.
    • Ohne tomllib oder tomli kann in lightpipe.py und simulation.py die Zeile import tomllib auskommentiert werden. So kann keine config-Datei eingelesen werden, aber die library mit default-Werten verwendet werden.
  3. Je nach serial:
    • RasperryPi: apa-Treiber nach dortiger README installieren.
    • Simulation: tk; je nach Betriebsystem heißt das zu installierende Paket anders.
    • FT232H: Dokumentation lesen!

Ausführliche und restliche Anleitung steht in der Dokumentation.

Treiber

  1. Treiber clonen git clone https://git.cccgoe.de/lightpipe/driver.git
  2. Setup entsprechend konfigurieren (siehe Konfiguration)

Effekte

Optional die Effekte aus dem Effekt-Repository lightpipe/effects runterladen und nach effects/ kopieren. Oder selber drauf los programmieren.

Alternativ kann auch das experimentelle lightflut betrieben werden.

Konfiguration

Die Konfiguration soll per Konfigurationsdatei config/<name>.toml gemacht werden. Die default-Datei ist config/config.toml. Sollte die angegebene Datei nicht existieren, werden default-Werte verwendet (welche auch in config/config_example.toml stehen). Außerdem wird für alle nicht explizit gesetzten Werte der default-Wert angenommen.

In der Konfigurationsdatei müssen die gleichnamigen Werte in der entsprechenden Sektion angegeben werden. Eine ausführliche Anleitung steht in der Dokumentation.

Usage

Der Treiber lässt sich von Effekten direkt importieren oder besser über run.py verwenden.

Effekte

Im Treiber sind unter effects/ zwei simple Beispieleffekte enthalten. Diese sollten einen guten Startpunkt über das Schreiben eigener Effekte und die Verwendung des Treibers zeigen. Weitere Effekte liegen im Repository lightpipe/effects.

Effekte müssen eine Methode effect(lp, pb) haben. pb ist optional. Dabei ist lp ein Lightpipe-Objekt und pb die statische paintbag-Klasse. Die Methode effect beinhaltet den vollständigen Effekt und wird von run.py passend aufgerufen.

run.py

Um Effekte auszuführen ist es am einfachsten, wenn run.py verwendet wird. Alle auszuführenden Effekte müssen in effects/ liegen. Dann kann einfach run.py ausgeführt werden; hier sind Beispiele:

./run.py
python run.py
python3 run.py
./run.py effects/
./run.py effects/g
./run.py effects/gradients
./run.py effects/gradients.py
./run.py effects/gradients.py effects/tra

run.py nimmt als Argumente beliebig viele Datei-patterns entgegen, die eine allow-list darstellen. Alle Patterns werden autovervollständigt zu passenden python-Dateien. Dabei müssen alle angegebenen patterns mit effects beginnen, da dies der Ordner ist, in dem alle Effekte liegen. Ist kein pattern angegeben, werden alle Effekte in effects/ nacheinander ausgeführt.

Die Reihenfolge in der die Effekte ausgeführt werden ist arbiträr.

Außerdem lässt sich mit run.py der Name der zu verwendenden Konfiguration angeben. Beispiele mit Konfigurationsdatei config/meine_config.toml:

./run.py -c config/meine_config.toml
./run.py -c config/meine_config.toml effects/gradients
./run.py effects/gradi -c config/meine_config.toml

API

Die Features von lightpipe.py und paintbag.py sind unter public/ dokumentiert. Eines Tages in der Zukunft wird es auch als Website online verfügbar sein.

Die API wird mit pdoc direkt aus dem Quelltext generiert.

Bilder

Foto

Bilder gibts bald in der Dokumentation.