Änderungen
Aus Hackerspace Ffm
[[Datei:Rbi frei.png|360px|right|thumb|Rundbunt Icon]]
== Idee ==
Eine günstige tallierte, zylindrische Papierlampe soll zu einem interaktiven Dekoobjekt umgebaut werden. Von Innen wird in die Lampe ein Lichtschlauch mit LPD8806 LED-Controllern eingebracht, der sich dadurch auszeichnet, das jede LED einzeln angesteuert werden kann. Ein Raspberry soll das ganze steuern, mit einem für Mobilgeräte optimierten Webinterface kann der Lichteffekt dann eingestellt werden. Einer der wichtigsten Effekte ist der
[http://de.wikipedia.org/wiki/Plasma_(Demoszene) Oldschool Plasmaeffekt], der auch realisiert werden soll. [http://www.bidouille.org/prog/plasma Hier] ist recht anschaulich erklärt, wie ein solcher Plasma-Effekt erzeugt wird.
== Umsetzung ==
</gallery>
Leider ist das innere Gestell der Lampe ziemlicher Schrott aus schlecht geschweißtem Stahldraht (kostete ja auch nix), und so musste der Innenteil mit Alustangen verstärkt werden. Jetzt ist es schon etwas stabiler. Beim Testbetrieb zeigte sich dann, dass der Widerstand des LED-Streifens nicht mehr vernachlässigbar ist, jedenfalls nicht nach 10m - hier waren von den ursprünglich eingespeisten 5V nur noch etwa die Hälfte übrig, wodurch bei voller weiß-Ansteuerung sich auch der Farbton sehr stark von weiß nach grün verschob. Daher kommt demnächst eine Einspeisung an mehreren Stellen hinzu, um die Situation zu entschärfen. Dann wird auch das testweise verwendete 5A-Als Netzteil nicht mehr sinnvoll sein und gegen dient ein stärkeres ersetzt10A Schaltnetzteil, das auch gleich den Raspberry Pi mitversorgt.
=== Software ===
** Zugriff über QR-Code, der an der Lampe hängt für jeden in der Nähe möglich
** lighttpd liefert eine Seite mit Schiebereglern (jQuery mobile basiert), wo man z.B. R/G/B-Werte sowie Animationseinstellungen machen kann
** Ein CGI nimmt veränderte Werden Werte entgegen und sendet sie verändert, werden diese in einem asynchronen Ajay-Request per TCP (oder UDP?) an das AnimationsprogramPOST Kommando zurückübertragen
* Animationsprogram
** läuft dauernd im Hintergrund
** nimmt Anfragen über TCP oder UDP oder StdInnutzt den [https:/Out oder noch was anderem hin /github.com/cesanta/mongoose Mongoose-Webserver], der durch Einbindung eines .c und wieder entgegen.h-Files einen kompletten Webserver einbindet. ** ruft möglichst 60x pro Sekunde Ein Hook auf die Animationsprozedur Seite /cgi wird genutzt, um direkt im Animationsprogramm die Post-Kommandos abzufangen und so aufEinstellungsänderungen zu reagieren* Animationsprozedur** berechnet Das Hauptprogramm kümmert sich darum, eine konstante Framerate zu erzeugen, verwaltet mehrere Animationsunterprogramme und bringt auch das nächste Bild im Speicherarray** holt gelegentlich geänderte Animationsparameter** sendet das Speicherarray an auf den LPD8806-Streifen** optional: baut Optional kann die Animation auch in ein einem X-Fenster o.ä. aufdargestellt werden
* Hardwarebackend
** Anschluss an Raspberry
*** P1-1, +5V, Hier wird der Raspberry an der Sicherung vorbei gespeist, was für das WLAN-Modul vorteilhaft ist
*** P1-19, GPIO 10 (MOSI), Daten zu LPD8806
*** P1-23, GPIO 11 (SCLK), Takt zu LPD8806
*** P1-25, Ground, GND an LPD8806
** SPI Zugriff und Timersachen über Library, mehrere Varianten gibt es*** Direkter Zugriff auf die Kernel-Treiber für SPI - wird verwendet, da sich bei großen Datenblöcken hier eine hohe Performance einstellen kann und das Animationsprogram nicht unbedingt root-Rechte mehr braucht*** [http://www.open.com.au/mikem/bcm2835/ bcm2835 library] - etwas älter, Programme müssen als root laufen*** [https://projects.drogon.net/raspberry-pi/wiringpi/ wiringPi library] - etwas moderner, Pin-Nummern neu sortiert (arg), an Arduino angelehnt
== Betrieb ==
=== Betrieb auf Raspberry ===
Erste Steuerung per Webfrontend hat geklappt. Mongoose-Webserver als Teil des Animationsprogrammes, jQuery-Mobile für Regler.
<br/>
[[Datei:Rundbuntctrlfirst.png|400px|Erstes Webfrontend und Lampe, Farbe kann eingestellt werden.]]
<br/>
=== Testbetrieb mit Arduino ===
Für einen ersten Test wurde der Lichtstreifen mit einem Arduino angesteuert. Darauf lief einfach eines der Beispielprogramme aus der [https://github.com/adafruit/LPD8806 LPD8806-Library] von Adafruit. Das sah schon sehr beeindruckend aus, wie die folgende Fotokollage zeigt:
<br/>
[[Datei:IKEA_LED_Lutz.jpg|700px|Rundbuntplama im Testbetrieb, Foto-Kollage von [[Benutzer:Oliver|Oliver]] (danke!)]]
<br/>
== Installation auf Raspberry ==
Raspberry Pi mit Raspbian aufsetzen, noch wird die das gpio-Kommando aus der wiringPi-library verwendet. Daher am besten diese Lib zunächst installieren, wie steht [http://wiringpi.com/download-and-install/ hier].
[[DateiKategorie:IKEA_LED_Lutz.jpg|left|thumb|700px|Rundbuntplama im Testbetrieb, Foto-Kollage von [[Benutzer:Oliver|Oliver]] (danke!)Projekte]]