Forum: Mikrocontroller und Digitale Elektronik Rat und Hinweise gesucht: quad-Stream LED-Programmierung + Zusatzfeatures -> welche Hardware?


von Ronny D. (psymagic)


Lesenswert?

Hallo zusammen!

Ich habe zwar Ahnung von IT und Programmierung, aber Mikrokontroller 
sind mir absolutes Neuland, daher verzeiht bitte die eine oder andere 
Idiotenfrage.

Ich beschreibe mein Problem mal in seinem ganzen Umfang, eh es späer 
Fragen gibt, ich hoffe das ist nicht TLDR;.

Ausgangssituation:
Ich habe ein Nebelportal gebaut (Auslass auf der Innenseite), mit 
integrierter LED Beleuchtung auf der Vorder- und Rückseite.
Die LEDs sind WS2813 und fallen damit protokollseiteig in die 2811er 
Familie.
Angesteuert wird das ganze im Moment durch einen X2 Music Controller 
Marke China. Das ganze ist phsysikalisch so ausgeführt, das es 4 
Halbseiten gibt und der X2 über einen 4-Fach Splitter angeschlossen ist. 
Pro halbseite sind rund 90 Neopixel anzusteuern, macht in Summe 360.
Die Nebelmaschine hat einen eigenen kabelgebundenen Kontroller über 
einen 5-Pol Eurostecker.

Zielstellung grob:
Ich möchte mit einem eigenen Kontroller das ganze etwas aufpeppen und in 
der Lage sein eigene Programme live zu fahren, als auch intelligente 
Auto Modi.
Dazu soll ein Mikrokontroller integriert werden. Das ganze soll als 
Parallelsystem zum X2 ausgeführt werden, so dass dieser als Fallback 
weiter dienlich ist. Als Bonusfunktion wäre interessant, die Daten vomn 
X2 in den Mikrokontroller hinein zu streamen und dort weiter zu 
Manipulieren.
Für all das braucht es dann logischerweise ein vernünftiges 
fernbedienbares Interface. Idealerweise eine Lösung die auf nem 
Smartphone funktioniert.
Die Nebelmaschine soll auch über den Kontroller automatisiert werden, 
dazu werde ich den Kabelkontroller Emulieren müssen - das soll hier aber 
nicht der primäre Gegenstand sein.
Als weiteres Gimmick will ich einen Ultraschall Sensor einbauen um beim 
durchschreiten des Portals automatisch Aktionen mit den Leds und dem 
Nebel auslösen zu können.

Überlegungen Soweit:
Mir ist klar, das das ein ambitioniertes Unterfangen ist.
Mit einem Arduino habe ich zwar schon mal WS281X gesteuert, aber der hat 
schlicht nicht die Resourcen für das was die Software können soll.
Nächster Kandidat wäre daher ein Raspberry.
Einige Freunde haben mir schon geraten, in diesem Fall einen Arduino als 
IO Modul vorzulagern da dessen Ports wohl weniger empfindlich sein soll.

Infolge entstand mein Plan A:
Man nehme einen Arduino und einen Raspberry. Den X2 kann ich mittels 
Relais vom Restlichen System trennen, so das dieser als Default Option 
verfügbaar bleibt auch wenn der Mikrokontroller aus ist. Den Arduino 
würde nur als Schnittstelle nach aussen nutzen und per USB vom Raspberry 
mit aktuellen Frames füttern. Den Raspi könnte ich dann wie gewohnt mit 
eine Java-App mit Swing versehen (ja ich weis- das ist wahrscheinlich 
nicht die effizienteste wahl, aber das kann nich halt gut). Dann über 
Ad-Hoc Wlan und Remote Desktop drauf zugreifen zum Steuern.

Vorhandene Bedenken:
Bei weitergehender Recherche bin ich skeptisch geworden, ob mein 
Vorhaben nach Plan A realisierbar ist und habe keine Lust aufs falsche 
PFerd zu setzen um später festzustellen, das alles für die Katz war weil 
ich die Plattform wechseln muss, oder aber nicht realisierbare Ziele 
anstrebe.
Nach dem was ich gelesen habe, übersteigt die maximale Pixelanzahl von 
allen 4 Halbseiten schon das Mixmimum was ein normaler Arduino Uno 
verkraftet.
Auserdem muss ich ja 4 Stripes parallel ansteuern und der Arduino ist 
soweit ich weis ein single Task Prozessor. Wenn ich eine der bekannten 
LED-Bibliotheken prallel nutze, dürfte ich letztlich in irgendwelche 
timing oder synchronisaionsproblemen laufen. Ein gewisser Josh hat wohl 
schon 8 Strips prarallel angesteuert aber in wieweit dies 
proof-of-concept Lösung ausgereift ist kann ich nicht beurteilen.
Davon abgesehen will ich ja obendrein noch, das mir der Arduino einen 
Stream-Input vom X2 realisiert, die Daten vom Ultraschall-Sensor 
weiterleitet, den Nebelmaschinen-Controller emuliert und die Releais für 
den X2 steuert.
Das ich mit Java wahrscheinlich auf fürchterliche Timings komme davon 
wollen wir mal garnicht reden, weiss ich. Da müsste ich mit reduzierter 
Framerate Leben. Im Zweifel muss die Steuersoftware dann nach C++ 
portiert werden sobald ich das Framework in Java zum laufen bekommen 
habe.

Meine konkreten Fragen:
a) Welche Hardware empfehlt Ihr? Kann ich mein Vorhaben nach Plan A 
realisieren? Was empfehlt Ihr als Alternativen?
Sollte ich lieber unterhalb des Raspis mehrere Arduinos parallel 
verwenden, zb für jede Halbseite einen, einen für den Input, einen für 
Nebelmaschine und Ultraschall? Sollte ich vielleicht ganz was anderes 
als Arduinos und Raspis nehmen?
Ich habe jetzt erst gesehen das es auch Kontroller wie den Beaglebone 
gibt, mit 2 integrierten Echtzeiteinheiten - wäre das evntuell die 
Lösung für mein Problem?
b) Speziell das Thema Ws281X Stream Input scheint ja kein populäres Feld 
zu sein. Kennt jemand eine anwendbare Lösung für irgend einen 
Mikrokontroller ohne die Ws281X Signale von der untersten Ebenen an 
dekodieren zu müssen?

Ich weis das ich mir hier einiges vorgenommen habe als blutiger 
Einsteiger, daher will ich die übergeordnete Steuersoftware auch als 
modulares Framework entwickeln, so dass einzelne Elemente wie zb. 
Nebelsteuerung oder den X2-input später realisieren kann.

Danke fürs durchlesen und Rat geben!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.