Blinkenceiling

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche
Sprache: Deutsch




Blinkenceiling
Blinkenroof.jpg

Gestartet:

2013-09-30

Involvierte:

pepi

Status:

on hold

Beschreibung:

It blinks, it's bright, it's the Metalab!

Zuletzt aktualisiert:

03.04.2014


WTF

Idee: Die Decke im Hauptraum muss leuchten! Überall sollen LEDs hin.

Auflösung

ca. 20cm Abstand zwischen LED, macht eine Auflösung von etwa 64x24 = 1536 LEDs. Bei 12cm Abstand zwischen LEDs könnte man ein Bild mit 96×32 = 3072 Pixeln machen.

Auf der restlichen Seite wird mal von 3072 LEDs ausgegangen.

Montage

Um das möglichst einfach montieren zu können, kann man die LEDs auf ein oder mehrere billige Deko-Fischernetze aufknüpfen. Damit wird der Abstand auch automatisch in etwa eingehalten.

Alternative Auflösungen? Muss an das Fischernetz angepasst werden, die meisten groben haben ca. 6cm Abstand → 6cm, 12cm oder 18cm.

Das Fischernetz hat ~6cm Auflösung.


Alternative: Die Leitungen zwischen den LEDs so verbinden, dass dadurch schon ein Netz entsteht. Dann bräuchte es keine extra Montage, und Verbindungsdrähte braucht es sowieso.

Wenn man die Spannungsversorgung spaltenweise und die Datenversorgung zeilenweise macht, ergibt sich sowieso ein Netz. Die Lötstellen müssten halt genug aushalten.

Elektronik

Es handelt sich da um 3072 Treiber-ICs, die angesteuert werden wollen.

Variante 1: Teensy 3.0

Plattform: Teensy 3.0 mit OctoWS2811 LED Library. Dieser kann 8 Leisten parallel ansteuern, und mehrere Teensies können sich synchronisieren. Lt. Webseite sollte man maximal 1000 LEDs pro Teensy verwenden.

Das bedeutet, dass wohl am besten jede Leitung für eine Länge (= 96 LEDs) verantwortlich ist. Ein Teensy kann 8 Längsstreifen ansprechen, d.h. wir haben 32/8 = 4 Teensies in Betrieb. Ein Raspberry Pi, BeagleBone Black o.ä. kann die Ansteuerung dann übernehmen.

Variante 2: Beaglebone Black

Es gibt eine Implementation für die Echtzeiteinheiten vom Beaglebone Black, mit der man bis zu 32 Zeilen ansteuern kann (also mehr als wir brauen). Die Echtzeiteinheiten haben vollständigen Zugriff auf den RAM, d.h. der ARM-Core kann gleich die Datenquelle zur Verfügung stellen. Alles in einem Paket!

This afternoon I hacked up a quick proof of concept in PRU assembly that use one of the units to drive 32 of the WS2811 strips at full speed with zero CPU load and easy double-buffering of the image.

Hier gibts ein Cape für 24 strips (anlumo hat schon eins davon bestellt)

Mit 24*128 hat man ebenfalls die 32*96 = 3072 LEDs abgedeckt mit einer locker ausreichenden Framerate, allerdings wird es etwas schwierig, die 32 96er Streifen in 24 128er aufzuteilen. Hier müsste ein sinnvolles Mapping ohne 12m-Leitungen dazwischen gefunden werden.

Idee: Einfach immer jeweils 2 Spalten in Serie, d.h. 16*192 LEDs. Das ist sowohl hardware- als auch softwaremäßig recht leicht zu handhaben (entspricht interlacing, und 16 ist immer leichter handhabbar als 24). Es geht so trotzdem eine Framerate von ca. 170Hz, was mehr als genug ist.

Variante 3: KromaLights

Würde vermutlich auch gehen, bringt aber keine Vorteile gegenüber der Variante 2.

Spannungsversorgung

Die LEDs brauchen 5V Versorgung, mit 60mA peak. Bei 3072 LEDs macht das 184.32A, was nicht so toll ist. Deswegen die Idee: Ein oder mehrere größere Netzteile mit einer höheren Spannung, die dann pro Zeile (32 LEDs) einen Step-Down Converter haben, der das ganze auf 5V runterbringt. Damit bekommen wir viel niedrigeren Strom zusammen, d.h. die Leitungen vom Netzteil weg müssen nicht so fett sein, und die Leitungsverluste sind auch niedriger.

Die Step-Down Converter bekommt man als Modul um sehr wenig Geld, zB. hier um $83 für ein 100er Pack mit free shipping. Dieses Modul packt maximal 2A ohne Kühlung, wobei eine Zeile mit 32 LEDs nur maximal 1.92A braucht, d.h. das geht sich genau aus.

Eingangsspannung ist bei diesen Modulen maximal 40V, d.h. ein 48V-Netzteil geht sich grade nicht aus, das nächstkleinere handelsübliche ist vermutlich 24V.

Eingangsdaten

Womit sollen die LEDs bespielt werden? Ideen:

  • (anonymes) Personentracking, und wo jeder steht leuchtet es (→ wie Scheinwerfer auf einer Bühne)
  • Ein spezieller Partymode, ähnlich dem bei den Zumtobels, nur viel höhere Auflösung.
  • Kombination von Personentracking und Partymodus: Eine Flüssigkeitssimulation ablaufen lassen, wo die durch den Raum gehenden Personen diese Flüssigkeit verwirbeln. (Beispiel)
  • Pong!
  • Tetris!
  • Snake
  • Red Alert™
  • Öffentliche Verkehrsmittel
  • Uhrzeit
  • Magic-Shifter™ XXL Effekte im gesamten Raum
  • Audio/Musik Visualisierung
  • Raumbeleuchtung (Zu banal)
  • Ambilight
  • Screensaver (Als endlose Quelle von bunten Animationen)
  • Wettersimulation (ggf. des Wetters draussen.)

BOM

  • Fischernetz 6 Stück → 4m×12m, 6×€5.95 (nur als Referenz, der Händler liefert nicht nach Österreich! Ersatz?)
  • LEDs, 31 Lots zu je 100 LEDs → $538.26 (inkl. Shipping mit EMS) (gleicher Händler auf Alibaba, wo man wegen Mengenrabatt verhandeln könnte)
  • 1.5mm² Kabel, haben wir im Metalab vermutlich einiges lagernd. Die Versorgung sollte möglichst parallel sein, d.h. am Besten jede Breite (mit je 32 LEDs) mit einem extra Kabel versorgen!
  • BeagleBone Black €37.13
  • Netzteile $20.50*3 + $36.75 shipping (gibts was besseres?)
  • Step-Down Converter $83, free shipping

Mit den beiden Netzteilen kann man das Ding auf der vollen Leistung betreiben, wobei wir dann eine kleine Sonne im Metalab hätten. Sonnenbrille ist dann Pflicht, um permanente Augenschädigung zu verhindern!

Fehlt: Notwendige Sensoren, da ist nicht klar, wie überhaupt sensoriert werden soll.

Prototyp 1

Erster Prototyp des Prototypen 1 mit 8cm Abstand zwischen den LEDs, 9 LEDs breit. Nicht sichtbar: die 53 Lötpunkte.

Vorschlag von m68k: Zuerst das Klo mal ver-LED-en, damit das ganze getestet werden kann.

Die Decke am Klo hat eine Fläche von ca. 134x77cm. Bei einem LED-Abstand von 8cm ergibt das eine LED-Dichte von 15x9, d.h. 135 Stück. Dafür sind die LED-Module schon im Metalab lagernd, ebenso die Kabeln. Zur Aufhängung soll ein Nylon-Netz verwendet werden, das normalerweise zum Fischen verwendet wird (ebenfalls bereits lagernd).

Als Ansteuerung könnte man da einfach einen einfachen Arduino (z.B. einen Pro Mini) verwenden. Da gibts schon eine fixfertige Ansteuerungsimplementation. Als Input-Sensor könnte zB. ein PIR zum Einsatz kommen, und ein Reedschalter für die Tür.

Erfahrungsbericht

Dinge, die bei der Montage von Prototyp 1 gelernt wurden:

  • Zuschneiden des Netzes ist sehr schwierig, das kann nur nach Augenmaß passieren. Das ist noch dazu erschwert, dass man das Nylonnetz kaum sieht.
  • Wenn die Leitung 8cm lang ist, dann ist damit der Teil, den man auf das Pad lötet, miteingerechnet. Nachdem bei den Datenleitungen dieser Teil um 90° geknickt wird, ist da der Abstand effektiv 7cm.
  • Das Fischernetz hat so dünne Fäden, dass diese sich zwischen LED und Platine verhaken, was sehr mühsam beim einflechten ist. Wir haben eine Art Stricknadel entwickelt, die das ganze vereinfacht.
  • Rahmen, um das ganze leicht transportieren und montieren zu können?
  • Im Hauptraum sollten es kleinere Module sein, die man einzeln herstellen, montieren und austauschen kann. Da sollte auch eine Rahmenkontruktion her.

Bezugsquellen

Auf Aliexpress nach WS2812B heatsink suchen, dann findet sich einiges.

Zitate

„Wir sind im Metalab, das muss blinken!“ — Harald