Raspberry Pi mit TM1812 Stripes

  • kurzer Zwischenstand:


    74hct245 eingelötet
    ein 100 Ohm Widerstsand eingelötet.
    Massekabel zwischen Raspberry und Netzteil gekürzt.


    Das Ergebnis im Lowspeed Mode ist dramatisch besser. So kann man es lassen. Im HighspeedMode ist noch häufiges Flackern zu sehen. Aber besser ist es auch. Und obwohl mein Osciloskop am Limit ist und ein Überschwingen durchaus daher kommen kann sieht man eindeutig eine Abflachung und einen saubereren Übergang von der Flanke in den entsprechenden Pegel.


    Ich experimentiere noch mit dem Highspeed Mode und fixe noch zwei Bugs. Danach stelle ich mein Projekt mal für Interessierte vor und versuche die Sourcen für die Middleware, den Treiber und Android verfügbar zu machen.


    Vielen Dank für die Tipps!

  • Ich habe noch etwas experimentiert. Ganz flackerfrei wird es nicht. Das kann auch gut am spi bus liegen. Die neue middleware sendet aber nur noch daten bei änderungen. Wenn ich also einfache unbewegte farben habe flackert es garnicht. Die leds werden jetzt aber nicht im wohnzimmer zum einsatz kommen. 5M brauchen 90 watt unter vollast.


    Ich refactore gerade den client code. Selbst mir fällt inzwischen auf das ich vorher garkeine ahnung vom lifecycle modell in android hatte.


    Was wäre eigentlich die optimale plattform um code zu veröffentlichen? Und wie schafft man es nicht für patentverletzungen belangt zu werden, selbst wenn alles aus eigener feder stammt?

  • Zitat

    Was wäre eigentlich die optimale plattform um code zu veröffentlichen? Und wie schafft man es nicht für patentverletzungen belangt zu werden, selbst wenn alles aus eigener feder stammt?


    Punkt 1: SourceForge, Google Code; Punkt 2: Wenn alles aus eigener Feder stammt und Du kein Geld für den Code nimmst, solltest Du eigentlich auf der sicheren Seite sein ;)

  • Indem du ein viel zu kleiner Fisch bist... =)


    Also ich nehm an, dass es flackert, weil du pausen > Resetzeit drin hast... Das könnte ein Problem des Treibers sein... vielleicht mal ein DMA Kanal für das SPI Versenden frei machen, wenn das noch nicht getan ist... sonst fallen dir andere Prozesse sicher ins Wort/Byte :(


    Hab gestern 3 PIs bestellt... bei RS gibts die für 32,xx € aber halt einmalig 6 € Versand noch...

  • Hab gestern 3 PIs bestellt... bei RS gibts die für 32,xx ? aber halt einmalig 6 ? Versand noch...


    Was hast Du mit denen denn vor? Handelt es sich um die B Version? Ich habe hier auch einen liegen, leider scheitere bei mir schon der Versuch Raspbian auf die SD Karte zu spielen... habe alles versucht... Unter Win 7 64bit soll es anscheinend eh nicht gehen. Dann habe ich mein Notebook mit Linux gebootet und es funktionierte auch nicht :/ jetzt habe ich mir erstmal ne SD Card mit Raspbian pre-installed bestellt. Aber auf Dauer ist das auch keine Lösung, weil ich auf lange Sicht wohl noch 4 weitere Pis anschaffen werde.

  • ich habe einen gepatchten Treiber verwendet. Vorher waren die Latenzen sehr groß und extrem unregelmäßig:


    http://www.raspberrypi.org/php…6946da5d612395a0f93fa4210


    Eigentlich sieht es jetzt ganz gut aus - bis auf besagte Aussetzer. Interessant ist, das immer nur einzelne Segmente flackern wenn sie es denn tun. Der ganze Strang am Stück flackert sehr selten (zum Beispiel unter hoher CPU Last).


    Im Endeffekt habe ich aber das Problem das die TM1812 viel Energie verbrauchen und die Modulation mit 4 Bit nicht sonderlich effektiv und genau ist. Wenn ich mit 8 Bit arbeite um das Timing besser nachzustellen bleiben mir nur noch gut 5 Meter die ich mit dem Puffer von 4096 Bytes verwalten kann. Wenn ich jetzt z.B. WS 2811 Chips verwende, kann ich mit dem Puffer von 4096 Byte am Stück 1365 Leds steuern ohne groß auf Latenzen achten zu müssen. Aber für die Middleware ist das egal - ein neuer Treiber ist recht flott geschrieben.


    Ich habe gerade viel um die Ohren. Ich sehe zu das ich mal Bilder dieses Wochenende hochstellen kann. Die Eclipse Projekte haben zusammen 27MB. Falls jemand jetzt schon Interesse hat den Code zu studieren einfach melden.

  • ok hier mal eine kurze Übersicht:


    geplant ist mal eine Haussteuerung für

    • Ledstripes um sein Ambiente mit angenehmen Animationen und Lichtern zu gestalten. (Bisher ist eine einfache Farbe möglich mit einfachem Ein und Ausblendeffekt. Tron, Sonnenaufgang - und Untergang sind in Planung)
    • Elro Funksteckdosen mit RFM12B Modul (weil ich das einfach alles hier habe)
    • ELV Thermostatkontrolle

    Die Einstellungen lassen sich via Scenarien bündeln und einfach an und ausknipsen


    das ganze ist als 3 Tier Architektur geplant:


    Androind Client:

    • via Rest mit Jersey (Spring hilft bei der Deserialisierung)


    Java Middleware auf dem Raspberry:

    • die Animationen werden mit 25Hz berechnet
    • Intern wird eine 2 Dimensionale Projektion des Raumes verwendet auf der sich beliebige Lichtobjekte auch in mehreren Ebenen anordnen lassen. Darauf werden die Stripes gemapped. Die Daten werden an beliebige Ausgabegeräte verteilt.
    • Im Augenblick habe ich einen Treiber via Socket realisiert


    Treiber:
    C++ Routine die via Socket die Daten für den angeschlossenen Stripe annimmt und via SPI ausgibt. Bisher sind 10 Meter mit geringem techischen Aufand möglich. Mit nachgeschalteter Logik wären auch wesentlich mehr drin.


    mein Stand: Der Technologiedurchstoß ist einigermaßen gelungen - viel Code aber noch Kraut und Rüben. Definiert man den virtuellen Raum für die Pixel nicht zu groß braucht die Javakomponente etwa bis 50 Prozent der Rechenleistung. Der Treiber selbst bei 5 Metern etwa 3 Prozent. Flackern tut es leider noch manchmal. Eventuell wirklich Timingprobleme.

  • hier die sourcen aller projekte.


    http://ambientlight.googlecode.com/svn/trunk/


    für den treiber habe ich cdt verwendet. für die restlichen projekte (middleware, entitäten und android client) sollte eclipse mit android plugin ausreichen.

  • sodele,


    ein bisserl refactoring betrieben. jetzt geht es an die ersten Effektprogramme und daran die Basisfunktionen fertig zu implementieren. Was ich mir nicht verkneifen konnte war die Integration eines RFM12 Moduls zur Steuerung von ELRO Funksteckdosen.


    Viele Grüße

  • hallo zusammen,


    das steuern der funksteckdosen funktioniert hinreichend gut. des weiteren gibt es eine etwas schickere ui für tablets. als nächstes stehen für meine bedürfnisse effekte und die unterstützung von ws2801 stripes an. Die WS2801 sind einfach weniger Timing kritisch und haben eine wesentlich bessere Energieeffizienz.


    wenn es wünsche gibt einfach bitte melden. das betrifft auch nötige Dokumentation zum selbst starten. ich bin inzwischen soweit drin das ich nicht mehr direkt sagen könnte worüber man am Anfang stolpert oder nicht.


    Die Architektur wird über die Zeit hinweg erweitert werden. Heizungssteuerung aber vor allem die Integration von Sensoren oder regelbasierter Logik und Timer sollen das ganze ein wenig in Richtung "mieterkompatible" Heimautomatisierung treiben.


    Gerne können wir auch gemeinsam das Projekt vorantreiben. Es muss keine One-Man-Show bleiben. Die Raspberry Pi Plattform hat sich nach meiner Wahrnehmung als gute Basis erwiesen. Eine komplette Recheneinheit mit Wlan, Netzteil, Speicherkarte kommt auf unter 45 Euro Kosten, und 1Watt Stromverbrauch. Und die Entwicklung mit Java und C++ ist leistungsfähig und flexibel.


    Viele Grüße

  • oh wei. ich war gerade dabei neue led stripes für mein Projekt zu evaluieren und merke, die Zeit schreitet voran. Im Shop von Turi und bei Ebay habe ich WS2812 Stripes entdeckt. Abgesehen von der Betriebsspannung und leicht anderem Timing ähneln die doch sehr den Tm1812 Stripes. Hat jemand bereits Erfahrung sammeln können bezüglich Helligkeit, Effizienz und Programierbarkeit? Gerade zu den ersten beiden Punkten finde ich nicht so viel.


    Viele Grüße

  • OT: Warum hast Du plötzlich nur noch einen Beitrag bei Dir :?:


    Also ich verfolge das schon eine Weile und bin begeistert. Deine Künste in der App-Programmierung interessieren mich sehr. Da scheib ich nochmal eine PN.


    Bzgl. WS2812: das Timing passt leider nicht 100% zum TM18xx. Zumindest bei höherer Bildwiederholrate gibt es mit dem einen oder anderen Probleme. Die Standalone-Programme im SEDU laufen aber noch problemlos. Erst wenn es schneller wird, kommt es zum Flackern.


    Die 2812-Streifen haben 60 LEDs/m, was dazu führt, dass man schon ein kleines Kraftwerk benötigt mit ca. 18W/m. Die Helligkeit ist entsprechend der Dichte recht hoch, wobei es normale Standard-China-LEDs sind letztendlich. Die sind ok, aber die schwarzen LEDman sind einfach eine andere Klasse.

  • Danke für de info.


    Den beitrag hab ich übrigens erst seid heute wieder.


    Ich will auch mal den spi-zu-pwm-umsetzer testen der hier im forum vorgestellt wurde. Damit kann ich mir die aufwendige umsetzung der timingwerte ersparen und habe wieder 8 bit für echte 8 bit zur verfügung. Den treiber habe ich schon eingecheckt. Damit sollte das backend jetzt den ws2801 out of the box unterstützen.


    Das timing für den ws2812 würde ich dann mal via pwm ubersetzer konkret aussprobieren. Das wird ja durch ein rc glied in hardware definiert.


    Könnte man also die ws2812 stripes als ersatz für stromsparlampen einsetzen? Wieviel lumen schaft so ein meter?


    Viele grüße