Mostfun

Die ursprüngliche Idee dazu ist nicht von mir. In Youtube findet man diverse Lösungen um ein kleines Feuerwerk mit WS2812-Leuchtdioden zu realisieren. Die meisten sind jedoch gelinde gesagt, grottig. Ein einziges Video hat mich dann doch begeistert:

 

So habe ich mich entschlossen so etwas in klein nachzubauen. Ich habe weder den Platz noch eine entsprechende Werkstatt um mit einem nicht vorhandenen Schweißgerät so eine tolle Konstruktion zu machen. Aber um es gleich vorweg zu nehmen, wer die Möglichkeiten hat, kann mit einigen wenigen Änderungen auch das große Outdoor-Feuerwerk bauen, denn die Leuchtdiodenketten sind kompatibel, was die Ansteuerung an geht.

 

Die Vision

Meine Idee ist die, dass wenn das Projekt mehreren Leuten gefällt, und die das EFire nachbauen, dass so was wie eine Community entsteht und immer wieder neue Effekte programmiert werden können. Außerdem würde ich dann den Nachbau vereinfachen in dem die Leiterplatten als fertig layoutete Files hier zur Verfügung gestellt werden. Die Zukunft wird es zeigen. Welches Potential in der Lösung steckt. Der Sourcecode würde natürlich auf github gehostet und jeder könnte daran rum entwickeln :-)

Das Projekt ist in mehrere Stufen geteilt. Die erste Stufe ist ein Nachbau der Lösung wie oben beschrieben als "Proof of Concept". In der Zweiten Stufe will ich die LED einzeln ansteuern. Dazu gibt es zwei Lösungen die beide parallel getrieben werden. 

 

Hinweis: Dieses Projekt ist ein laufendes Projekt, d.h. es wird sich immer wieder etwas erweitern.

 

Konzept

 

Wie erwähnt, plane ich, das Projekt in mehreren Stufen auszubauen. Deshalb will ich hier kurz auf die Topologie eingehen. Die einfache Topologie dies obigen Videos sieht so aus, das 20 Stränge a 15 LED parallel betrieben werden. 

Das hat mehrere Vorteile, aber auch einen Nachteil. Der Vorteil ist dass die Streifen ohne jede Rückführung auskommen. Es kann also 20 mal der Din, 5V, GND miteinander verbunden werden, dann kommt der mechanische Aufbau und fertig ist die Laube. 

So was bekommt man locker an einem Nachmittag aufgebaut. 

Der Nachteil ist, dass nur konzentrische Effekte dargestellt werden können. Das ist schon sehr schön, aber bei weitem nicht alles, was nahezu mit der gleichen Hardware möglich wäre.

 

 Hier die zweite Stufe des Ausbaus, ich nenne es die "Ein-Ketten-Lösung". Hier wird am Ende jeden Strings der Dout wieder (zusammen mit Masse, ich hab da so meinen "Fitzer") nach oben geführt. Auf der Platine werden die Strings miteinander in Serie, nicht parallel geschaltet. Auf die Weise kann nun jede LED einzeln angesteuert werden. Das bedeutet, dass asymmetrische Effekte (Wasserfall, Komet) und auch Effekte wie Päonien möglich sind. Mit dieser kleinen Änderung ergeben sich neue Welten. 

Die Nachteile der Lösung sollen aber auch nicht verschwiegen werden:

  • Die CPU muss 20 mal mehr leisten, um die Effekte darzustellen, dazu kommt auch der Aufbau der Bilder.
  • Es muss der Rückkanal verkabelt werden, d.h. es muss zusätzlicher Lötaufwand betrieben werden und das bei jedem Streifen, also 20 mal.
  • Der Vorteil der Lösung ist, dass nach wie vor eine Steuerleitung nötig ist.

 

Wer das Löten scheut, für den gibt es eine zweite Lösung (Multistring-Lösung). Dabei werden alle Streifen separat mit je einer Datenleitung an der CPU angebunden:

 

Dadurch reduziert sich das Vorfertigen der Strings darauf, dass die Strings von der Rolle geschnitten werden und ein dreipoliger Steckverbinder auf das DIn-Ende gelötet werden muss.

Keine zusätzlichen Kabel, keine Schrumpfschlauchabschnitte.

Natürlich hat auch die Alternative ein paar Nachteile:

  • Da jeder Streifen einen eigenen Port an der CPU benötigen, scheiden manche CPU-Boards mangels Pins aus.
  • Wenn man jedem Signal einen eigenen Masse-Rückpfad zubilligt, benötigt man ein 40-poliges Kabel zwischen den Platinen der Streifen und der CPU. Das ist ein echt breites Flachbandkabel.
  • Einizige Alternative ist, ein CPU-Board, das nicht am Fuß des Feuerwerks platziert ist, sondern gleich an den Verteilerplatinen oben auf der Gewindestange sitzt. Dann sind die vielen Kabel vertretbar.

 

Memory-Mapping

Die gute Nachricht: nach einigen Überlegungen wie der Speicheraufbau (Mapping) am günstigsten ist, habe ich folgendes für die drei Lösungen festgelegt: 

 

 Damit ist die Ein-Ketten-Lösung und die Multistring-Lösung vom Aufbau im Speicher gleich, d.h. der Code sollte bis auf einen Schalter der die Lösung definiert, gleich sein. Dadurch sind auch die zu programmierenden Effekte kompatibel mit beiden Konzepten.

Vorher hatte ich noch ein Schattenregister für das einfachere einschieben von Effekten vorgesehen, aber das hat das Konzept inkompatibel gemacht. 

 

Für den Sound habe ich vorerst ein MP3-Modul vorgesehen (Stückliste). Dieses ist billig und funktioniert gut. Allerdings wäre zum Schluß eine Teensy 4.1-Lösung mein Wunschtraum. Dieses Modul hat eine SD-Karte für Updates/Effekte/MP3-Files, genügend Pins für die Multistring-Lösung und in jedem Fall völlig ausreichend Rechenpower selbst für ausgefallene Effekte und es ist rech klein. Des weitern hat es auch einen Soundausgang. Was zu einer kompakten Lösung führen würde.

Natürlich können alle Alternativen mit LED-Ketten oder LED-Streifen (WS2811, WS2812) gebaut werden

 

 

Stufe 1 (parallele Strings):

Meine Lösung sollte locker auf einen Tisch passen und auch zerlegbar wieder wenig Platz benötigen. Ich habe Statt den "Lichterketten" WS2812B-Streifen bei Aliexpress geordert. Die Streifen sind in verschiedenen Leuchtdioden-Dichten erhältlich. Meine Wahl hat sich an dem obigen Originalvideo orientiert, weil sie einen guten Kompromiss zwischen LED-Zahl und Kosten- und Stromaufwand darstellt.

Hier die Einkaufsliste (Links sind ein Vorschlag):

 

Wie das so mit Einkaufslisten ist, die einzelnen Posten sind gering, in Summe komme ich geschätzt auf ca. 70EUR, wobei sich der Betrag auch leicht deutlich reduzieren kann wenn man das eine oder andere in der Bastelkiste findet. Außerdem ist meine Akkulösung nicht die billigste Variante.

 

 

Schritt 1: Zerschneiden des 5m-Streifens  

Ich habe mit einer Haushaltsschere an den markierten Stellen die Streifen nach jeweils 15 LEDs zerschnitten. Nicht wundern, alle 30 LEDs ist bereits Lötzinn auf den Pads, weil die 5m Streifen dadurch hergestellt werden, dass jemand Streifen zu je 30 LEDs (0,5m) zu einem 5m Band zusammenlötet.

 

Schritt 2: Stecker anlöten

Die 4-polige Steckerleiste So auf den Streifen löten (bitte genau so). Der eine Pol (rechts) schwebt in dieser Lösung in der Luft.

Der nicht angeschlossene Pol ist für die zweite Lösung nötig, und vielleicht wollt ihr den Schritt auch mit gehen.

 

Sorry, vor lauter Eifer habe ich gleich die Verkabelung vorweg genommen.

Am Ende dieses Schrittes sollten 20 absolut gleiche Streifen vor Euch liegen. Ein wichtiger Meilenstein.

 

Schritt 3: Herstellen der Träger

Damit aus den Streifen jetzt ein Feuerwerk wird, braucht man eine Struktur. Die entsteht durch 5 Trägerplättchen.

Dazu werden die Leiterplattenreste (20x20) aufeinander gelegt und in der Mitte der Platine mit einem 3,2mm Bohrer durchbohrt. Ich habe das nach dem Löten gemacht, war keine kluge Idee. Aber da hatte ich auch noch keinen Plan wie es nach dem Schritt 2 weiter geht.

Bitte vorher bohren. 

Dann werden die Buchsenleisten an den vier Kanten fest gelötet. Ich habe 3 Plättchen "flach" gelötet, ein Plättchen in einem 45° Winkel (Buchse zu Leiterplatte) und ein Plättchen mit 90°. 

Dann wird verkabelt. Man macht sich das Leben einfacher wenn man für 5V rot, Masse schwarz und für das Din z.B. gelb nimmt. Fehler fallen auch schneller auf.

Die 5V- und Masse-Anschlüsse werden parallel verkabelt und mit einem längeren (5..10cm) roten Kabel von der Platine heraus geführt.

Beim Din kann man zwei Wege gehen. Entweder man macht sich das Leben einfach und verzichtet auf das Upgrade auf die zweite Lösung, dann kann man auch die Din-Signale parallel verkabeln und mit einem weiteren längeren Kabel raus führen. 

Alternativ ist es möglich, für jedes Din ein eingenes langes Kabel zu spendieren, dann ist man für die künftigen Updates gerüstet.

Das Bild zeigt schon die zweite Lösung....

 

 Wenn man alles verkabelt hat, kann man die 5 Leiterplatten miteinander verbinden. Alle roten 5V-Kabel werden zusammengelötet. Das gleiche gilt für GND und für Din.

Die Versorgungsleitungen gehen auf die dicken Kabel und dann zur 5V-Quelle. Ein weitere Masselitze dient als Massebezug zum Mikroprozessor, bitte nicht vergessen.

Die Din-Leitung wird mit dünner Litze verlängert und geht auf einen Stiftleiste.

 

 

 

 Schritt 4 Mechanik

Nun kommt der mechanische Aufbau.

In das Brett wird mittig ein Loch mit 2,8mm Durchmesser gebohrt. Die Gewindestange wird mit einer Zange in die Bohrung geschraubt und presst sich so das eigene Gewinde. Alternativ kann auch einen Einschlagmutter verwendet werden. 

Auf der anderen Seite der Gewindestange werden nun zwei Mutter ca. 50mm weit in die Gewindestange gedreht. Dann wird die erste Leiterplatte mit dem Loch auf die Stange gefädelt, es kommt eine weitere Mutter um die Leiterplatte zu fixieren und das ganze wird mit den restlichen Leiterplatten fortgesetzt.

 

Schritt 5 Programmierung

Der Arduino wird mit einem USB-Kabel an einen PC gesteckt und mit der Arduino IDE programmiert. Wer das noch nicht gemacht hat, findet im Internet beliebig viele Tutorials zum einrichten und programmieren von Arduinos.

Hier der Code für das unten gezeigte Beispiel:

(WS2812_Firework1.zip)

 

Schritt 6 Strom und Kontrolle

Nun wird die Stromversorgung verkabelt 

Der Massepin für den Prozessor wird an eine Buchsenleistenpositon mit GND gesteckt, der Din-Pin kommt an Pin3 des Arduinos. 

Für den Betrieb muss in dieser Lösung der Arduino noch mit einem USB-Kabel mit Strom versorgt werden.

Alternativ kann bereits jetzt der Arduino auch über die 5V-Stromversorgung betrieben werden. 

 

Schritt 7: Aufstecken der Streifen

Nun werden die Streifen an die Platinen gesteckt. Vorsicht: nicht verpolen!!!

 

 Schritt 8: Einschalten

Wenn jetzt alles richtig ist, sollte es so aussehen: