Nabend,
ein paar Neuigkeiten. Ich komme zwar nicht im dem Umfang zu dem Projekt wie ich das gerne hätte, aber ich habe den Code etwas aufgeräumt, strukturiert und auf GitHub veröffentlicht. D.h. ihr könnt damit rumspielen, kritisieren, diskutieren und verbessern.
Ich habe mich dazu entschieden FastSPI_LED2 zu benutzen, obwohl es noch im Beta Stadium ist. Die Gründe dafür sind unter anderem, dass Fast_SPE_LED2 wesentlich schlanker ist als der Vorgänger. Ausserdem wurde die Ansteuerung der WS2811 Strips wesentlich verbessert, sodass die Timings jetzt viel besser zu den Spezifikationen der Strips passen.
Die Anzahl der Effekte wurde vorerst auf zwei reduziert, es können jedoch sehr einfach neue hinzugefügt werden. Die beiden vorhandenen sind folgende:
1) Anzeige der im EEPROM gespeicherten Farben
2) Synchron laufende Led's auf allen Armen. Hier kann zusätzlich ein Blitzeffekt eingeschaltet werden.
Um die Möglichkeiten der Konfiguration des zweiten Effekts zu demonstrieren, habe ich noch drei weitere Test-Modi erstellt. Diese werden auch im unten verlinkten Video kurz gezeigt.
Ihr könnt in der Datei "config.h" folgende Einstellungen vornehmen:
NUM_ARMS = Anzahl der Arme eures Multikopters
LED_PER_ARM = Anzahl der Led's pro Arm
LED_PIN = Led Pin des Arduinos. Hier müsst ihr dann das Kabel anschliessen, welches zu dem DataIn des 1. Strips führt
MODE_DEFAULT = der Start Modus, welcher angezeigt wird, wenn der Arduino angeschaltet wird
Konfigurieren könnt ihr das ganze momentan nur über die Konsole, wenn der Arduino über USB angeschlossen ist. Oder ihr schliesst ein Bluetooth-Modul an RX und TX des Arduinos an und dann könnt ihr auch z.B. über ein Bluetooth-Terminal mit einem Smartphone konfigurieren. In der Konsole stehen euch folgende Befehle zur Verfügung:
Color settings
setR N : Wert für den Rot-Anteil der aktuellen Farbe, 0 <= N < 256
setG N : Wert für den Grün-Anteil der aktuellen Farbe, 0 <= N < 256
setB N : Wert für den Blau-Anteil der aktuellen Farbe, 0 <= N < 256
setArm N : Färbt den Arm N in der aktuellen Farbe, 0 <= N < NUM_ARMS
save : speichert die aktuellen Farben aller Led's im EEPROM
clear : setzt alle Farben zurück auf Schwarz (0, 0, 0)
Effect settings
setV N : Setzt einen Wert für die Helligkeit (wird im Moment nicht benutzt, kann aber in Modi benutzt werden, in denen der HSV-Farbrtaum genutzt wird, z-B. Regenbogen-Effekte), 0 <= N < 256
d N : setzt einen Wert für die Verzögerung eines Effekts, je höher desto langsamer laufen die Effekte ab, 0 < N < 10000
rev : Kehrt einige Effekte in ihrer Richtung um (wird im Moment nicht benutzt)
Mode settings
+ : Wählt den nächsten Modus aus
- : Wählt den vorherigen Modus aus
m N : Wählt den Modus N aus, 0 <= N < NUM_MODES
Vorgehen für einen ersten Testlauf:
1) Den Arduino per USB anschliessen und den Sketch hochladen.
2) Arduino und Led-Strip verkabeln, d.h. GND und 5V anschliessen und den DataIn des Led-Strips mit dem LED_PIN (s. config.h) des Arduinos verbinden und Strom einschalten. ACHTUNG !!! Wenn die Led's auf voller Helligkeit laufen (also weiß (255, 255, 255)), dann verbraucht jede Led etwa 60mA. Dann sind die 500mA, welche der USB-Stecker per Spezifikation liefert schnell verbraucht. Schliesst daher unbedingt eine externe Stromquelle an, falls ihr mehr als 8 Led's verwendet und diese auf maximaler Helligkeit habt. Ich verwende ein 5V/3A Steckernetzteil.
3) In der Arduino-IDE den Serial Monitor (Strg+Umschalt+M) starten und die Farben konfigurieren.
a) Zu Beginn sind alle Led's aus. Auch die aktuelle Farbe steht auf (0, 0, 0)
b) Setzt die Farbe auf Rot, z.B. mit "setR 200" => aktuelle Farbe = (200, 0, 0)
c) Weist den Armen die aktuelle Farbe zu, z.B. mit "setArm 0" und "setArm 1"
d) Setzt die aktuelle Farbe auf Blau, "setR 0" und "setB 200" => aktuelle Farbe = (0, 0, 200)
e) Weist den Armen die aktuelle Farbe zu, z.B. mit "setArm 2" und "setArm 3"
f) Speichert die aktuelle Farbzuweisung mit "save". Beim nächsten Starten wird die Farbzuweisung automatisch geladen
g) Schaltet jetzt durch die einzelnen Modi mit "+" oder "-". Ausserdem könnt ihr die Geschwindigkeit der Effekte z.B. mit "d 50" oder "d 200" verändern. Standardmässig steht der Delay auf 100.
Hier ein das oben erwähnte Video zu den beiden aktuellen Effekten:
http://www.youtube.com/watch?v=A_W_JVOyM1c&feature=youtu.be
Dann wünsche ich viel Spass beim ausprobieren.
Kritik, Anregungen, Diskussion und Verbesserungen sind ausdrücklich erwünscht.
MfG,
Stephan
P.S.: Jetzt hätte ich doch fast den Link zum GitHub vergessen
https://github.com/DLArts/MultiCopterLightControl/
Macht aber das selbe.
Es gibt eine Platine und das umzustricken für die ws2811 sollte doch einfacher sein als alles neu zu machen.
mmmmm....
Hi, ich hatte mir dein Projekt schonmal angeguckt und ich finde es sehr gut. Ich habe mir auch erlaubt, deine Strukturierung bzgl. der gesonderten Datei für die Effekt-Sequenzen zu übernehmen. Sehr schöne Idee. Aber wie ApoC schonmal geschrieben hatte, geht es (zumindest mir) in diesem Projekt um das "selber machen". Sowohl MWCLightRGB also auch KopterLightEXT sind zu dem jetzigen Zeitpunkt mit Sicherheit die besseren Alternativen, wenn man etwas gut funktionierendes haben möchte. Mir geht es aber vor allem darum, so etwas selber zu entwickeln und es möglichst flexible zu gestalten. Jeder kann hier mitgestalten wenn er/sie möchte.