Blinkenceiling: Unterschied zwischen den Versionen
Anlumo (Diskussion | Beiträge) K (sourcecode-link) |
Anlumo (Diskussion | Beiträge) (Zukunftplanung -> Vergangenheitsbericht) |
||
Zeile 109: | Zeile 109: | ||
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. | + | 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 | + | 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 == | == Erfahrungsbericht == | ||
Zeile 122: | Zeile 128: | ||
* Rahmen, um das ganze leicht transportieren und montieren zu können? | * 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. | * 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 = |
Version vom 28. April 2014, 01:37 Uhr
Sprache: | Deutsch |
---|
Blinkenceiling | |
Gestartet: | 2013-09-30 |
Involvierte: | pepi |
Status: | waiting for funding |
Beschreibung: | It blinks, it's bright, it's the Metalab! |
Shutdownprozedur: | |
Zuletzt aktualisiert: | 2014-04-28 |
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!
- Led Strip Connector Cable, $11.69 für 200 Kabel mit je 15cm (ab 2 lots)
- 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.
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