Blinkenceiling: Unterschied zwischen den Versionen

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche
(Prototyp 1 info++)
(Beteiligungen)
 
(12 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 5: Zeile 5:
 
|involved=[[User:Pepi|pepi]]
 
|involved=[[User:Pepi|pepi]]
 
|startdate=2013-09-30
 
|startdate=2013-09-30
|status=on hold
+
|status=waiting for funding
 
|wtf=It blinks, it's bright, it's the Metalab!
 
|wtf=It blinks, it's bright, it's the Metalab!
 
|hidden=false
 
|hidden=false
Zeile 12: Zeile 12:
 
= WTF =
 
= WTF =
  
Idee: Die Decke im Hauptraum muss leuchten! Überall sollen LEDs hin.
+
Idee: Die Decke im Hauptraum muss leuchten! Ein LED-Netz soll installiert werden, wo die LEDs einzeln ansteuerbar sind.
 +
 
 +
Fun Fact: Der Hauptraum hat eine Fläche von 12.62m × 5.43m. Die Höhe ist 2.71m am untersten Punkt der Bögen (d.h. bei den Stahlträgern), 2.89m am obersten Punkt.
 +
 
 +
Die Leinwand vom Beamer ist ca. 1m von der Wand entfernt.
  
 
= Auflösung =
 
= 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.
+
ca. 20cm Abstand zwischen LED, macht eine Auflösung von etwa 64×24 = 1536 LEDs. Bei 12cm Abstand zwischen LEDs könnte man ein Bild mit 96×32 = 3072 Pixeln machen.
 +
 
 +
Vielleicht sollten es auch 10cm Abstand werden. Damit würden sich 110×48 ausgehen, d.h. 5280 Pixeln.
 +
 
 +
= Plan =
 +
 
 +
Mit der Erfahrung aus der Blinkentoilet und mehr Recherche, hat sich folgender Plan ergeben:
 +
 
 +
Die Heatsink-Module mit WS2812B-LEDs sind gut geeignet für so etwas.
 +
 
 +
Es sollte nicht ein großes Netz entstehen, sondern Module, die man einzeln runternehmen kann. Das erlaubt eine einfachere Fertigung, Wartung und Fehlersuche. Diese Module müssten selber gefertigt werden, evtl. mit einem Holzrahmen (ähnlich wie das, was in der Blinkentoilet montiert ist, nur dickere Leisten).
 +
 
 +
Das Einflechten in ein Fischernetz hat in der Blinkentoilet zwar funktioniert, war aber sehr mühsam und ist im großen Stil wohl nicht so sehr zu empfehlen. Die LEDs würden aber problemlos halten, wenn man nur die Leitungen dazwischen in einem Netz legt. Man muss nur aufpassen, dass es nicht zu sehr durchhängt. Evtl. einfach zwei Seile zwischen den Diagonalen des Rahmens spannen, auf denen man die LEDs teilweise aufhängt.
 +
 
 +
Für die Montage der Module an der Decke gibt es auch mehrere Möglichkeiten. Auf den Stahlträgern könnte man Permanentmagnete verwenden, dazwischen müsste man Löcher bohren (was Berichten zu folge etwas mühsam ist). Würde dann ähnlich wie bei den Zumtobel-Lichtern aussehen.
 +
 
 +
Stromversorgung sollte über mehrere 5V-Netzteile erfolgen, die auf der Längsseite entlang montiert sind. Dabei sollten welche ohne Ventilator eingesetzt werden, sonst wird der Geräuschpegel vermutlich etwas unangenehm auf Dauer (siehe Switch im WEL).
 +
 
 +
Ansteuerung kann über ein [http://beagleboard.org/Products/BeagleBone+Black Beaglebone Black] mit einem [http://rgb-123.com/product/beaglebone-black-48-output-cape/ Cape für 48 Ketten WS2812B] erfolgen. Damit ist das alles zentral steuerbar, und das Beaglebone Black kann einfach direkt am LAN hängen zwecks Steuerung (wie auch immer die aussehen wird). Jede Zeile bekommt eine eigene Ansteuerungskette, damit lässt sich auch die Framerate halten.
 +
 
 +
Bezüglich Framerate: Bei 110 LEDs pro Kette schafft man 300fps (800kHz Datenrate, 24bit pro Pixel, 110 Pixel).
 +
 
 +
Hier die bekannten Kosten für die 110x48-Lösung:
 +
 
 +
* 6000 LEDs: € 821.95 + ~€170 EUSt
 +
* Beaglebone Black und 48er Cape: ~€110
 +
 
 +
Was noch fehlt:
 +
 
 +
* ~1800m Kabel (rot/schwarz/wasanderes)
 +
* Holzrahmen
 +
* Lot (Bedarf ist schwer abzuschätzen)
 +
 
 +
Die Gesamtkosten werden wohl so um die €1200 liegen.
 +
 
 +
= Anwendungszwecke =
 +
 
 +
Im Grunde eine Erweiterung dessen, was die Zumtobel-Lichter mehr schlecht als recht machen:
 +
 
 +
* Unterschiedliche Beleuchtung in verschiedenen Bereichen des Raums (z.B. rötlicher über dem Couchtisch, weiß über dem Arbeitsbereich).
 +
* Partymode mit vielen coolen Farbanimationen. Hier kann man nicht nur Farbanimationen machen wie momentan, sondern auch Dinge bewegen lassen.
 +
* Red Alert, der diesen Namen wirklich verdient hat
 +
 
 +
Außerdem gibt es noch mehr, das mit den Zumtobel-Lichtern nicht geht:
 +
 
 +
* Red Alert mit anderen Einrichtungen im Lab koordinieren (z.B. einem Tonsignal)
 +
* ein Webinterface, wo man von der Couch aus die Beleuchtung steuern kann
 +
* mit einem Touchscreen könnte man auch auf der Decke malen
 +
* Spiele wie Pong und Tetris auf der Decke
 +
 
 +
= Beteiligungen =
 +
 
 +
Trotz mehrfacher Versuche will das Metalab als Verein keine Finanzen dafür aufbringen. Daher sind die Mitglieder jetzt an der Reihe! Wer will so eine coole Einrichtung haben? Schon die Blinkentoilet hat sehr viel positives Feedback gebracht, und den Ruf des Metalabs bei Besuchern unterstützt. Wie wäre es erst bei so einer Großrauminstallation?
 +
 
 +
Natürlich wäre es auch sehr gut, wenn wir Firmensponsoren finden könnten dafür.
  
Auf der restlichen Seite wird mal von 3072 LEDs ausgegangen.
+
{| class="wikitable"
 +
|-
 +
! Name !! Betrag !! bezahlt
 +
|-
 +
|[[User:pete|Hetti]]|| €50 ||
 +
|-
 +
| du? || €viel ||
 +
|-
 +
| der da drüben || €noch mehr ||
 +
|}
  
= Montage =
+
= Alte Information =
 +
== 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.
 
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.
Zeile 33: Zeile 101:
 
Wenn man die Spannungsversorgung spaltenweise und die Datenversorgung zeilenweise macht, ergibt sich sowieso ein Netz. Die Lötstellen müssten halt genug aushalten.
 
Wenn man die Spannungsversorgung spaltenweise und die Datenversorgung zeilenweise macht, ergibt sich sowieso ein Netz. Die Lötstellen müssten halt genug aushalten.
  
= Elektronik =
+
== Elektronik ==
  
 
Es handelt sich da um 3072 Treiber-ICs, die angesteuert werden wollen.
 
Es handelt sich da um 3072 Treiber-ICs, die angesteuert werden wollen.
  
== Variante 1: Teensy 3.0 ==
+
=== Variante 1: Teensy 3.0 ===
  
 
Plattform: Teensy 3.0 mit [https://www.pjrc.com/teensy/td_libs_OctoWS2811.html 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.
 
Plattform: Teensy 3.0 mit [https://www.pjrc.com/teensy/td_libs_OctoWS2811.html 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.
Zeile 43: Zeile 111:
 
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.
 
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 ==
+
=== Variante 2: Beaglebone Black ===
  
 
Es gibt [http://www.nycresistor.com/2013/07/27/ledscape/ 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!
 
Es gibt [http://www.nycresistor.com/2013/07/27/ledscape/ 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!
Zeile 49: Zeile 117:
 
<blockquote><i>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.</i></blockquote>
 
<blockquote><i>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.</i></blockquote>
  
= Spannungsversorgung =
+
[http://rgb-123.com/product/beaglebone-black-24-output-cape/ 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: [https://www.kickstarter.com/projects/105536416/kromalights-led-controller-and-led-panels KromaLights] ===
 +
 
 +
Würde vermutlich auch gehen, bringt aber keine Vorteile gegenüber der Variante 2. Das Projekt ist auch fehlgeschlagen.
 +
 
 +
== 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 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.
Zeile 57: Zeile 135:
 
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.
 
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 =
+
== Eingangsdaten ==
  
 
Womit sollen die LEDs bespielt werden? Ideen:
 
Womit sollen die LEDs bespielt werden? Ideen:
Zeile 77: Zeile 155:
 
* Wettersimulation (ggf. des Wetters draussen.)
 
* Wettersimulation (ggf. des Wetters draussen.)
  
= BOM =
+
== BOM ==
  
 
* [http://www.amazon.de/Fischernetz-natur-ca-400-200/dp/B000Z2HURY/ref=pd_cp_k_1 Fischernetz] 6 Stück &rarr; 4m×12m, 6×€5.95 (nur als Referenz, der Händler liefert nicht nach Österreich! Ersatz?)
 
* [http://www.amazon.de/Fischernetz-natur-ca-400-200/dp/B000Z2HURY/ref=pd_cp_k_1 Fischernetz] 6 Stück &rarr; 4m×12m, 6×€5.95 (nur als Referenz, der Händler liefert nicht nach Österreich! Ersatz?)
Zeile 91: Zeile 169:
 
Fehlt: Notwendige Sensoren, da ist nicht klar, wie überhaupt sensoriert werden soll.
 
Fehlt: Notwendige Sensoren, da ist nicht klar, wie überhaupt sensoriert werden soll.
  
= Prototyp 1 =
+
== Prototyp 1 ==
 +
 
 +
'''Update: Prototyp 1 ist im Einsatz! Seit 2014-04-25 Sourcecode ist [https://github.com/Metalab/blinkenceiling auf github].'''
  
 
[[Datei:Blinkenceiling-Prototype.jpg|miniatur|rechts|Erster Prototyp des Prototypen 1 mit 8cm Abstand zwischen den LEDs, 9 LEDs breit. Nicht sichtbar: die 53 Lötpunkte.]]
 
[[Datei:Blinkenceiling-Prototype.jpg|miniatur|rechts|Erster Prototyp des Prototypen 1 mit 8cm Abstand zwischen den LEDs, 9 LEDs breit. Nicht sichtbar: die 53 Lötpunkte.]]
 +
 +
[[Datei:Blinkentoilet.jpeg|miniatur|rechts|Blinkentoilet in der fertigen Version.]]
  
 
Vorschlag von [[Benutzer:m68k|m68k]]: Zuerst das Klo mal ver-LED-en, damit das ganze getestet werden kann.
 
Vorschlag von [[Benutzer:m68k|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.
+
Die Decke am Klo hat eine Fläche von ca. 134x77cm. Der LED-Abstand ist ca. 7cm, das ergibt eine LED-Matrix von 18x9, d.h. 162 Stück. Zur Aufhängung wird ein Nylon-Netz eingesetzt, das normalerweise zum Fischen verwendet wird. Dieses Netz ist in einem Holzrahmen eingefasst, damit man das ganze Ding leicht auf- und abmontieren kann (für Wartungsarbeiten). Leider ist es um ein paar wenige Millimeter zu breit, daher steckt es fast von alleine in der Decke. Es sind trotzdem Schrauben zur Absicherung montiert.
 +
 
 +
Als Ansteuerung wird einfach ein Arduino Pro Mini verwendet. Als Input-Sensor kommt ein PIR zum Einsatz, um Personen zu erkennen, außerdem gibt es einen Button, mit dem ein Modus mit maximaler Helligkeit aktiviert werden kann.
 +
 
 +
Zusätzliche Sensoren für die Zukunft:
 +
 
 +
* Ein Reedschalter für die Tür, damit man erkennen kann, ob sie zu ist.
 +
* Ein Schalter im Schloss der Tür, damit man erkennen kann, ob zugesperrt ist.
 +
* Die Robotoilet hat eine Erkennung, ob jemand draufsitzt. Kann man sich da irgendwie reinhängen?
 +
 
 +
=== Erfahrungsbericht ===
 +
 
 +
Dinge, die bei der Montage von Prototyp 1 gelernt wurden:
  
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.
+
* 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.
 +
* Fliegende Verkabelung des Mikrocontrollers ist nett, aber eine eigene Platine mit Anschlussleiste wäre besser. Hier muss aber zuerst mal das Projekt in der Endausbauphase sein, damit man genau weiß, was angeschlossen werden sollte und was nicht notwendig ist.
 +
* Manche Leute können nicht zwischen Bewegungssensoren und Filmkameras unterscheiden.
  
= Bezugsquellen =
+
== Bezugsquellen ==
  
 
Auf Aliexpress nach WS2812B heatsink suchen, dann findet sich einiges.
 
Auf Aliexpress nach WS2812B heatsink suchen, dann findet sich einiges.
  
= Zitate =
+
== Zitate ==
  
 
„Wir sind im Metalab, das muss blinken!“ — Harald
 
„Wir sind im Metalab, das muss blinken!“ — Harald

Aktuelle Version vom 17. Dezember 2014, 04:41 Uhr

Sprache: Deutsch




Blinkenceiling
Blinkenroof.jpg

Gestartet:

2013-09-30

Involvierte:

pepi

Status:

waiting for funding

Beschreibung:

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

Zuletzt aktualisiert:

17.12.2014


WTF

Idee: Die Decke im Hauptraum muss leuchten! Ein LED-Netz soll installiert werden, wo die LEDs einzeln ansteuerbar sind.

Fun Fact: Der Hauptraum hat eine Fläche von 12.62m × 5.43m. Die Höhe ist 2.71m am untersten Punkt der Bögen (d.h. bei den Stahlträgern), 2.89m am obersten Punkt.

Die Leinwand vom Beamer ist ca. 1m von der Wand entfernt.

Auflösung

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

Vielleicht sollten es auch 10cm Abstand werden. Damit würden sich 110×48 ausgehen, d.h. 5280 Pixeln.

Plan

Mit der Erfahrung aus der Blinkentoilet und mehr Recherche, hat sich folgender Plan ergeben:

Die Heatsink-Module mit WS2812B-LEDs sind gut geeignet für so etwas.

Es sollte nicht ein großes Netz entstehen, sondern Module, die man einzeln runternehmen kann. Das erlaubt eine einfachere Fertigung, Wartung und Fehlersuche. Diese Module müssten selber gefertigt werden, evtl. mit einem Holzrahmen (ähnlich wie das, was in der Blinkentoilet montiert ist, nur dickere Leisten).

Das Einflechten in ein Fischernetz hat in der Blinkentoilet zwar funktioniert, war aber sehr mühsam und ist im großen Stil wohl nicht so sehr zu empfehlen. Die LEDs würden aber problemlos halten, wenn man nur die Leitungen dazwischen in einem Netz legt. Man muss nur aufpassen, dass es nicht zu sehr durchhängt. Evtl. einfach zwei Seile zwischen den Diagonalen des Rahmens spannen, auf denen man die LEDs teilweise aufhängt.

Für die Montage der Module an der Decke gibt es auch mehrere Möglichkeiten. Auf den Stahlträgern könnte man Permanentmagnete verwenden, dazwischen müsste man Löcher bohren (was Berichten zu folge etwas mühsam ist). Würde dann ähnlich wie bei den Zumtobel-Lichtern aussehen.

Stromversorgung sollte über mehrere 5V-Netzteile erfolgen, die auf der Längsseite entlang montiert sind. Dabei sollten welche ohne Ventilator eingesetzt werden, sonst wird der Geräuschpegel vermutlich etwas unangenehm auf Dauer (siehe Switch im WEL).

Ansteuerung kann über ein Beaglebone Black mit einem Cape für 48 Ketten WS2812B erfolgen. Damit ist das alles zentral steuerbar, und das Beaglebone Black kann einfach direkt am LAN hängen zwecks Steuerung (wie auch immer die aussehen wird). Jede Zeile bekommt eine eigene Ansteuerungskette, damit lässt sich auch die Framerate halten.

Bezüglich Framerate: Bei 110 LEDs pro Kette schafft man 300fps (800kHz Datenrate, 24bit pro Pixel, 110 Pixel).

Hier die bekannten Kosten für die 110x48-Lösung:

  • 6000 LEDs: € 821.95 + ~€170 EUSt
  • Beaglebone Black und 48er Cape: ~€110

Was noch fehlt:

  • ~1800m Kabel (rot/schwarz/wasanderes)
  • Holzrahmen
  • Lot (Bedarf ist schwer abzuschätzen)

Die Gesamtkosten werden wohl so um die €1200 liegen.

Anwendungszwecke

Im Grunde eine Erweiterung dessen, was die Zumtobel-Lichter mehr schlecht als recht machen:

  • Unterschiedliche Beleuchtung in verschiedenen Bereichen des Raums (z.B. rötlicher über dem Couchtisch, weiß über dem Arbeitsbereich).
  • Partymode mit vielen coolen Farbanimationen. Hier kann man nicht nur Farbanimationen machen wie momentan, sondern auch Dinge bewegen lassen.
  • Red Alert, der diesen Namen wirklich verdient hat

Außerdem gibt es noch mehr, das mit den Zumtobel-Lichtern nicht geht:

  • Red Alert mit anderen Einrichtungen im Lab koordinieren (z.B. einem Tonsignal)
  • ein Webinterface, wo man von der Couch aus die Beleuchtung steuern kann
  • mit einem Touchscreen könnte man auch auf der Decke malen
  • Spiele wie Pong und Tetris auf der Decke

Beteiligungen

Trotz mehrfacher Versuche will das Metalab als Verein keine Finanzen dafür aufbringen. Daher sind die Mitglieder jetzt an der Reihe! Wer will so eine coole Einrichtung haben? Schon die Blinkentoilet hat sehr viel positives Feedback gebracht, und den Ruf des Metalabs bei Besuchern unterstützt. Wie wäre es erst bei so einer Großrauminstallation?

Natürlich wäre es auch sehr gut, wenn wir Firmensponsoren finden könnten dafür.

Name Betrag bezahlt
Hetti €50
du? €viel
der da drüben €noch mehr

Alte Information

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. Das Projekt ist auch fehlgeschlagen.

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

Update: Prototyp 1 ist im Einsatz! Seit 2014-04-25 Sourcecode ist auf github.

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

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. Der LED-Abstand ist ca. 7cm, das ergibt eine LED-Matrix von 18x9, d.h. 162 Stück. Zur Aufhängung wird ein Nylon-Netz eingesetzt, das normalerweise zum Fischen verwendet wird. Dieses Netz ist in einem Holzrahmen eingefasst, damit man das ganze Ding leicht auf- und abmontieren kann (für Wartungsarbeiten). Leider ist es um ein paar wenige Millimeter zu breit, daher steckt es fast von alleine in der Decke. Es sind trotzdem Schrauben zur Absicherung montiert.

Als Ansteuerung wird einfach ein Arduino Pro Mini verwendet. Als Input-Sensor kommt ein PIR zum Einsatz, um Personen zu erkennen, außerdem gibt es einen Button, mit dem ein Modus mit maximaler Helligkeit aktiviert werden kann.

Zusätzliche Sensoren für die Zukunft:

  • Ein Reedschalter für die Tür, damit man erkennen kann, ob sie zu ist.
  • Ein Schalter im Schloss der Tür, damit man erkennen kann, ob zugesperrt ist.
  • Die Robotoilet hat eine Erkennung, ob jemand draufsitzt. Kann man sich da irgendwie reinhängen?

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.
  • Fliegende Verkabelung des Mikrocontrollers ist nett, aber eine eigene Platine mit Anschlussleiste wäre besser. Hier muss aber zuerst mal das Projekt in der Endausbauphase sein, damit man genau weiß, was angeschlossen werden sollte und was nicht notwendig ist.
  • Manche Leute können nicht zwischen Bewegungssensoren und Filmkameras unterscheiden.

Bezugsquellen

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

Zitate

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