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 "OpenFire" 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. 

 

 

Konzept

 

Für OpenFire gibt es viele Varianten, deshalb will ich hier kurz auf die Topologie eingehen. Zum Einsatz kommen "intelligente" Leuchtdioden (WS28xx) die entweder die Ansteuerung in der LED haben oder kleine Platinen, die mit einem Ansteuer-Chip und drei Leuchtidioden zusammen vergossen sind.

OpenFire1

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.

 

OpenFire2

Hier wird am Ende jeden Strings der Dout wieder nach zurück 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 Zurückführen der Datenleitungen vermeiden will, muss eine andere Lösung wählen, wobei wir bei der dritten Version wären:

OpenFire3

Bei der Lösung werden die Stränge nicht in Serie gespeist, sondern jeder Strang bekommt seinen eigenen Prozessorpin. Das war der Grund, warum ich auf die Library FastLED umgestiegen bin. Die unterstützt diesen Modus.

Diese Lösung hat vor und Nachteile. Ich fange einmal mit den Vorteilen an:

  • Einfacherer Aufbau, weil keine Rückführung nötig ist
  • Ausfallsicherheit: serielle Verschaltungen haben immer das Problem, dass wenn ein Teil in der Kette ausfällt, bleibt der Rest aus.
  • Es muss nicht der ganze "Baum" bestückt werden. Wer OpenFire an die Wand stellt, kann statt 20 Ketten auch nur 10 Ketten nehmen und die Rückseite sparen.

Die Nachteile:

  • Man benötigt einen Prozessor mit mindestens 21 Pins nur für die LED-Ansteuerung
  • Da nun 21 Kabel an das Prozessorboard angeschlossen werden müssen, reicht hier kein kleines, dünnes Kabel. Ist der Prozessor weiter von den LED weg, sollte neben den Signalen auch noch die Masse pro Signal verdrillt mit geführt werden: 42 Drähte.

 

Ich habe diese Lösung noch nicht probiert. Aber sie sollte funktionieren. Wer es eimal ausprobiert hat, bitte eine Email an mich.

 

 

 

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

 

 Varianten

OpenFire ist enorm variabel konzipiert. Varianten in der Größe:

  • 20cm Durchmesser Feuerwerk (144LEDs/m, "small")
  • 50cm Durchmesser (60LEDs/m "mittel")
  • 100cm Durchmesser (30LEDs/m)
  • 200cm Durchmesser (WS2811, "Big")

 

Man kann alle Strings

  • paralell mit einander Verdrahten (OpenFire1),
  • die Strings hintereinander Schalten (OpenFire2) oder
  • jeden der Strings an den Prozessor führen (OpenFire3).

 

OpenFire kann mit einem

  • Netzteil oder auch mit einer
  • Batterie versorgt werden.

Open Fire kann für den

  • Innenbereich (IP30) oder auch für den
  • Garten (IP65/IP67) gebaut werden.

 

Bei allen Varianten können die LED-Strings

  • gesteckt oder
  • fest verdrahtet werden.

 

Es gibt eine Variante

  • mit Ton oder
  • ohne Ton

 

Falls mit Ton kann ein

  • kleiner Lautsprecher, 
  • über einen Line In eines Verstärkers oder auch über ein
  • Bluetooth-Modul eine große Aktivbox

für die akustische Untermalung sorgen.

 

OpenFire kann

  • "stehend" (auf dem Tisch, im Garten) oder
  • "hängend" (von der Zimmerdecke oder vom Balkon) gebaut werden

 

Als Prozessoren können alle benutzt werden, die die Librarary FastLED unterstützt, wie z.B.

  • Arduino Uno (eingeschränkt im Code),
  • Arduino Due,
  • Teensy 2.0,
  • Teensy 3.6,
  • Teensy 4.1,
  • ESP32...

 

Neben der beschriebenen Variante 20 Strings

  • zentral als Kugel zu bauen, kann OpenFire auch als
  • "V" Feuertöpfe und Kometen darstellen. 

 

Ach ja, 

OpenFire unterstützt natürlich auch alle LED-Streifen, die die FastLED-Library unterstützt, z.B.:

  • WS2811 (5V/12V)
  • WS2812
  • WS2818 (5V/12)
  • ...

Bei der 12V-Variante muss natürlich die Stromversorgung angepasst werden.

 

Der Variantenreichtum ist kaum begrenzt, allein durch die hier aufgezählten Beispiele sind bereits 6912 Varianten möglich. Derzeit habe ich 5 davon gebaut