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. https://www.youtube.com/watch?v=0LKW1T64hFE
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. https://www.youtube.com/shorts/zyarw-Vtvl4