Copterbeleuchtung mit WS2811 RGB LED Stripe

Status
Nicht offen für weitere Antworten.
#61
Ich denke als nächstes werde ich mich an einer GUI zur Erstellung der Farbpalette und LED-Konfigurationen versuchen. Dazu werde ich mir die Tage mal MultiWiiConf und Processing ein wenig genauer anschauen. Ich glaueb zumindest die Konfiguration wird damit ein wenig einfacher.
 
#62
Ich habe heute etwas Zeit gefunden, mich an eine GUI zu setzen.
Dazu gibt es eine neue Input-Variante, INPUT_GUI.

Es ist noch nicht fertig. Im Moment kann ich aber die Farbpalette über die GUI erstellen, laden und speichern.
Hier mal ein Screenshot:
MclcConfig.jpg

Ich denke am WE werde ich dazu kommen, auch noch die LED-Konfigurationen, also die Zuordnung der Paletten-Farben an die einzelnen LEDs, per GUI zu ermöglichen.
 
#63
So, eine neue Version (v0.3) ist im GitHub verfügbar. Diese unterstützt nun die Konfiguration über die ebenfalls neu verfügbare GUI MclcConf. Die GUI habe ich für Linux32, Linux64, MacOSX und Win32 hinzugefügt, allerdings konnte ich diese bisher nur auf Win32 testen. Diese läuft auch unter Win64.
Die Readme auf GitHub ist ebenfalls angepasst und man findet unter Konfiguration eine kurze Erklärung der GUI. Aber ich denke diese sollte recht einfach zu bedienen sein.

Hier mal zwei Screenshots:
AvailablePorts.jpg
MclcConf_v0.3.jpg
 
#64
Ich habe den Sketch im GitHub gerade aktualisiert, damit er mit dem RC1 der Bibliothek FastSPI_LED2 kompatibel ist. D.h. man muss sich nun den RC1 der Bibliothek runterladen, um den Sketch zu kompilieren. Durch die neue Version der Bibliothek, werden auch einige Code-Zeilen im Sketch überflüssig. Diese werde ich bei Gelegenheit entfernen und den Code entsprechend anpassen.
 
#65
echt cooles Projekt habt ihr da gestartet ^^ vor fast 2 Jahren hab ich für meinen 1/10 RC Drifter eine Unterboden-Beleuchtung gebastelt, aber dazumal noch mit einfachen RGB LED Streifen, Darlington Transistor zum switchen usw aber hab mich dann nicht weiter damit beschäftigt :( das kam in der kurzen zeit dabei heraus ein paar Effekte und Farbverläufe

Ziel war auch die einzelnen Segmente getrennt anzusteuern und gleichzeitig eine einzelne RGB Led und einfärbige Led zu schalten

http://www.youtube.com/watch?v=qwffvZ8YkQs
 
#66
Es gibt wieder ein kleineres Update im GitHub.

Da ich letztens auf die neue Version der FastSPI_LED2 Bibliothek umgestellt hatte, wurden einige Funktionen im Code überflüssig bzw. einfacher umsetzbar, da in der Bibliothek einiges an Features dazu gekommen ist.
Den überflüssigen Code habe ich entfernt (z.B. HSV2RGB Konvertierung) und an anderen Stellen (z.B. pluseBrightness) den Code durch die Verwendung der neuen Features vereinfacht.

Zusätzlich habe ich blockierenen Aufrufe von delay(...) durch eine nicht blockierende Variante mit einem Timer ersetzt. Bringt im Moment noch keinen großen Vorteil, aber ich bin einfach kein Freund von blockierenden Aufrufen, sodass der Arduino in der Zeit nichts mehr macht. Rein theoretisch sollte davon zumindest die Variante mit MultiWii Serial Protocol profitieren, da nun das Abfrageintervall unabhängig(er) von der Verzögerung des Beleuchtungseffekt ist.
 
#67
Hi,

ich will euch auch ein Nebenprodukt nicht vorenthalten, auch wenn es nichts mit dem eigentlich Topic zu tun hat. Ich finde es trotzdem sehr cool :)

Es handelt sich um eine MoodLamp / MoodOrb. Hierzu habe ich eine günstige Lampe von Ikea (FADO) (~ 10€) umgebaut. Dazu habe ich die E27 Fassung entfernt und den Schalter an ein 5V Steckernetzteil gebastelt. Dann braucht es wieder einen Arduino Nano und ausreichend RGB-LED-Strips, hier 8x6 LEDs. Zusätzlich braucht man noch eine runde Papp-Dose (in meinem Fall eine leere Chipsdose von Aldi) und ein Bluetooth-Modul. Zur Steuerung der Farben, Helligkeit, Effekt-Geschwinigkeit, Effekt-Auswahl etc. habe ich eine kleine Android-App programmiert, die aber noch ziemlich Buggy ist, da ich in diese noch nicht viel Zeit investiert habe. Aber wenn man die Bugs kennt und vermeidet, funktioniert es super xD

Im Video ist zwischendurch teilweise das Tablet zu sehen, auf dem die App zur Steuerung ist. Ganz am Ende des Videos nehme ich den Glaskörper ab und ihr könnt die auf der Chipsdose montierten LED-Strips sehen.

Hier noch das Video dazu:

http://www.youtube.com/watch?v=xpt_SYJSF-s
 

Puppo

FPV Pilot in Ausbildung
#68
Hammer!!! (10 Zeichen..)
 

McJameson

Erfahrener Benutzer
#69
Au weiah, das Video darf ich niemals meiner Frau zeigen! Ansonsten will sie das Ding haben! ;)

Super Arbeit ! :D
 
#70
Wow, das ist echt nice, was du bisher gemacht hast. Soviel Arbeit, ne GUI und co. Wow. Und das "so nebenbei". Ein Hoch auf die Coder, speziell dlarts ^^

:cool:

Meine Idee zum Lipowächter.

Spannungsteiler -> AnalogIn -> Farben nach Spannung (12,6V = Grün, 11,6V = Gelb, 10,8V = Rot, 10,5 = Rot blinkend)

Das müsste doch so gehen, oder? Mit einem Teiler im Code, das man ihn auch auf 4S und co einstellen kann.

Ich hatte zwar schon etwas probiert, aber ich bekomme den Code einfach nicht hin. ;)
 

ionic

Neuer Benutzer
#71
An alle dir hier mit gewirkt haben


Respekt super

meine 1 frage wird die structs.h nicht mehr benötigt ich finde sie nicht mehr
2 frage wenn ich etwas in der terminal einen Befehl eingebe bekomme ich eine bestätigung oder

Micha
 
Zuletzt bearbeitet:
#72
1 frage wird die structs.h nicht mehr benötigt ich finde sie nicht mehr
Die Datei 'structs.h' wird nicht mehr benötigt. Seitdem die neue Verseion der Bibliothek FastSPI_LED2 benutzt wird, sind die Definitionen nicht mehr nötig, da sie bereits in der Bibliothek vorhanden sind. Dahingehend muss ich die Dokumentation im GitHub noch aktualisieren.

2 frage wenn ich etwas in der terminal eine gebe bekomme ich eine bestätigung oder
Das erste was du im Terminal sehen solltest, wenn die Verbindung funktioniert (richtiger Port und richtige Baudarate = 115200) ist folgendes : '*** SETUP COMPLETE ***'. Damit wird angezeigt, dass die setup()-Methode für das Terminal erfolgreich durchlaufen wurde. Von dem Moment an kannst du Befehle per Terminal an den Sketch schicken. Diese werden in der Regel auch mit einer Ausgabe bestätigt. Ich bin mir allerdings nicht zu 100% sicher ob das bei jedem Befehl der Fall ist. Die Terminal-Verbindung wurde primär für das Enwickeln und Debuggen geschrieben. Mit der Weile gibt es für das Konfigurieren der Farben eine GUI. Diese Konfigurationsart ist auch standardmässig in der 'config.h' aktiviert. Einfach im Ordner 'MclcConf' bzw. den für dein Betriebssystem entsprechenden Unterordner öffnen und dort die GUI starten.

Update:
Ich habe das GitHub gerade bzgl. der Datei 'structs.h' aktualisiert. Da man in dieser Datei vorher die Reihenfolge der internen Verdrahtung der LED-Strips anpassen konnte, haben ich ebenfalls einen kleinen Abschnitt am Ende der Readme angefügt. Dieser erklärt wie dies nun angepasst werden kann.
Schlussendlich habe ich noch ein Bild zur Verkabelung des Arduinos mit den LED-Strips, MultiWii-Boards und eines RC-Empfängers in die Readme eingefügt

Falls ich die nächsten Wochen mal wieder etwas Zeit für das Projekt finde, werde ich mich mal um die MavLink-Anbindung kümmern. Ich denke das wird recht ähnlich sein wie beim MultiWii Serial Protocol.

Nochmal der Link zum GitHub:
https://github.com/DLArts/MultiCopterLightControl
 
Zuletzt bearbeitet:

ionic

Neuer Benutzer
#74
Led WS 2801 LPD8806

Hat jemand die Copterbeleuchtung für die WS2801 und LPD8806 umgeschrieben
die beiden laufen doch unter der Fastspi

ich kann zwar den Code auf den Nano laden ohne Fehlermeldung
aber die dinger leuchten nicht.

mfg Michael
 
Zuletzt bearbeitet:
#75
Soweit ich weis sind WS2801 bzw. LPD8806 verschiedene aber ähnliche Controller. D.h. du solltest zuerst einmal herausfinden, welche RGB-Strips du genau hast.

Dann kannst du folgende Zeile in der Datei 'MultiCopterLightControl.ino'
Code:
LEDS.addLeds<WS2811, LED_PIN, GRB>(leds, NUM_LEDS);
mit einer der beiden folgenden ersetzen:
Code:
LEDS.addLeds<LPD8806, LED_PIN, GRB>(leds, NUM_LEDS);<br/>
LEDS.addLeds<WS2801, LED_PIN, GRB>(leds, NUM_LEDS);
und schauen ob es funktioniert. Da ich keiner der beiden Strips hier habe, kann ich es leider auch nicht testen.
 

ionic

Neuer Benutzer
#76
Hallo
Die Copterbeleuchtung geht auch mit den LPD88o6

update to the FastSPI_2_RC2
http://code.google.com/p/fastspi/downloads/detail?name=FastSPI_LED2.RC2.zip&can=2&q=


//LEDS.addLeds<WS2811, LED_PIN, GRB>(leds, NUM_LEDS); // deaktivieren

LEDS.addLeds<LPD8806, BRG>(leds, NUM_LEDS);// Einfügen Falls die Farben vertauscht sind BRG in GRB oder RGB ändern


getestet mit Nano clock 13 Data 11
Lpd8806 52er Strip





Update

Der WS2801 geht auch


LEDS.addLeds<WS2801>(leds, NUM_LEDS); //evt. die Farbe tauschen



Michael
 
Zuletzt bearbeitet:

kathy82

Neuer Benutzer
#77
ich versuche nun schon seit geraumer Zeit eine RGB LCD-Stripe in Betrieb
zu nehmen. Der Chip auf dieser LED-Stripe ist der WS2811 welcher extrem
kurze Timings hat.
Und genau diese kurzen Timings sind mein Problem.

Nun habe ich verschiedene Ansätze im Netz gefunden (von SPI über I2C bis
zu one-Wire) allerdings nirgends ein konkretes Beispiel an welchem ich
mich orientieren kann.

Deswegen meine Frage, wie bekomme ich es hin mit meinem atmega8 (welche
mit 8Mhz und externem Quarz) läuft so genaue Timngs hin ?
 

ApoC

Moderator
#78
Mit der Fast SPI Lib, die hier auch genutzt wird.

Ansonsten brauchste andere Stripes und n 32-Bitter, wie zb den Teensy und dann wirds etwas komplexer. ;)
Und wir wollten es ja eigentlich möglichst einfach haben.

Schau dich mal bei Adafruit um.
 
#79
Genau, laut Erläuterungen im Blog des Entwicklers sollte die Bibliothek auch mit 8MHz funktionieren. Getestet habe ich das allerdings nicht.
Hier der Link zu der Library: http://code.google.com/p/fastspi/

Ansonsten könnte es sich lohen, sich auch mal diese Seite genauer anzuschauen: rurandom.org/justintime/index.php?title=Driving_the_WS2811_at_800_kHz_with_an_8_MHz_AVR

Falls es wider Erwarten nicht funktionieren sollte. kannst du dir auch günstig einen Arduino Nano V3 besorgen (gibt es ab 7-8€). Damit funktioniert es bei mir super.
 

jvi

Neuer Benutzer
#80
Speicherproblem?

Erstmal Danke für die Initiative und den ganzen SourceCode für die Copterbeleuchtung!

Eigentlich wollte ich gerne zusätzliche Modi beitragen, allerdings bin ich schon deutlich früher steckengeblieben. Ich habe WS2811-LED-streifen (60LEDs/m), die ich mit meinen eigenem Programm auf einem Arduino Nano wunderbar ansteuern kann.

Leider habe ich mit Deinem Code weder Terminal-Mode noch GUI zum Laufen bekommen. Erst nach langem bin ich darauf gestossen, was das Problem ist: Es wird wohl zuviel Speicher verwendet, sodass bei Einstellungen (z.B. 4 Arme mit jeweils 20LEDs) das Programm sich wohl selbst den Heap überschreibt.

Im GUI-Mode sind das die 3 Puffer mit 512 Bytes jeweils, die vermutlich für die Checksum-Berechnung verwendet werden?
Im Terminal-Modus vermute ich, es ist die SerialCommand-Bibliothek, die beim Realloc nicht testet, ob noch Speicher zur Verfügung steht.

Einfacher test im GUI-Modus:
#define NUM_ARMS 4
#define LEDS_PER_ARM 20

Hast Du eine schnelle Idee, wie der Speicherbedarf für den GUI-Modus runterschrauben könnte, ich habe mir die Verwendung der Puffer im GUI-Modus nicht genauer angeschaut? Ein schneller Test mit 256 B pro Puffer geht bis 15 LEDs bei 4 Armen noch gut, dann reicht aber wohl der Puffer nicht mehr aus.

Johannes
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten