> Thread-Intention
Dieser Thread soll erstmal eher Smalltalk-Niveau sein, ohne Code. Eher
eine Konzept-Betrachtung und ein Try-Of-Concept.
-
Zu einem guten Teil auch für mich als Gehirnjogging gedacht, habe ich
nicht nach existierendem gesucht.
Bin jetzt aber interessiert, wenn jemand eine Bibliothek in der Richtung
kennt.
>Motivation
Aus der Verbindung von meinem sekundär RC-Hobby und Faible für Licht,
habe ich während Corona eine dieser Karren mit jeder Menge WS2812
ausgestattet.
BES - jede Menge LED´s (youtube.com)
>Grobe Konzept-Skizze
Weil ich auch Lauflichteffekt wie den Night-Rider oder ähnliche haben
wollte (Betonung liegt auf "ähnliche"), wollte ich nicht einfach ein
rotes Pendel-Licht hard coden, sondern ein Konzept, welches den Effekt
abstrahiert und auch andere Erscheinungsformen zulässt. Z.B. sind ja
diese Teardrops sehr ähnlich zum Night-Rider Effekt.
Grundsätzlich wollte ich mir eine "Chaser-Effekt-Engine" ausdenken, wo
a) Die Effektform (also z.B. Night-Rider oder Teardrop) von außen
vorgebbar ist
b) es sollen mehrere Effekte-Instanzen auf einem LED-Segment
gleichzeitig laufen können
c) ein Effekt soll auf LED-Segmenten mit unterschiedlich vielen LEDs
gleich schnell laufen können
Meine Lösung ist, einen Kernel zu definieren - die Namensgebung ist in
Anlehnung an Filter-Kernel, als eine Abfolge von Werten. Die Denkweise
ist "den Kernel über das Segment zu schieben".
Die Position des Kernels ist eine relative in 0 bis 1000. In einem
"Kernel-Mover", welcher eine Referenz auf den Kernel und das Zielsegment
bekommt, wird mit der Position die Zielpixel auf dem Segment berechnet.
-
Dazu kommen Überlegungen, ob z.B. das LED-Segment ein Kreis ist und
immer alle Kernel-Pixel sichtbar sein sollen, also ein implementierter
Wrap-Around, oder ob Kernel-Pixel deren Position außerhalb des Segmentes
liegen, unsichtbar sein sollen.
Das ist ein erstes Try-Of-Concept mit Wrap-Around und ohne unsichtbare
Pixel.
Chaser Engine Try_1 (youtube.com)
Lesezeichen