Änderungen
Aus Hackerspace Ffm
/* 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, zwei 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