Hallo Zusammen,
ich habe die letzten Tage aus Spaß etwas Zeit mit dem Einlesen des WS2811-Signals mittels Mikrocontroller gemacht. Im Gegensatz zu z.B. der Servo-/Charlieplexing Platine war mein Ziel, das Signal einzulesen und weiterzuleiten, ohne dafür noch einen externen WS2811 Chip zu benutzen.
Ein AVR ist dafür ja leider zu langsam; aber es ist ein schönes Projekt für einen Raspberry Pi Pico (4€).
Nach etwas hin und her habe ich es nun geschafft, auf dem Microcontroller zwischen 1 und 10 WS2811 zu emulieren. D.h. man könnte den Pi Pico nutzen, um das WS2811 Signal exakt einzulesen, ohne dass man sich auf das PWM-Signal eines WS2811 Chips verlassen zu müssen.
Ich habe aktuell keinen konkreten Plan, was ich damit jetzt machen kann. Es ging mir auch hauptsächlich darum, mal mit dem Pi Pico rumzuspielen. Es ist also nur ein Proof of Concept, das zeigt, dass es theoretisch geht. Das tolle ist, dass ich das ganze mit dem "PIO" ("programmable input/output") des Pi Picos programmiert habe. Das heißt, dass das einlesen des WS2811 Signals _keinerlei CPU-Takte_ verbraucht. Für das eigentliche Programm, was auf dem Pi Pico laufen kann, z.B. die Ansteuerung von Servos, Motoren, Signalen, etc., hat man also immer noch beide Cores des Prozessors zur vollen Verfügung.
Den Code für das Einlesen habe ich mal hier hochgeladen: https://github.com/cmfcmf/rp2040-ws2811-client
Grüße
Christian