[Projekt] Arduatmo - Ambilight auf Arduino-Basis

  • Ich möchte Euch mal mein derzeitiges Projekt vorstellen. Ziel ist es eine möglichst kostengünstige Alternative zum Ambilight mit SEDU-Baord zu basteln.


    Fangen wir mal mit der Hardware an:


    Hardware:


    Arduino Duemilanove


    Hab mich derzeit für das Board entschieden, da hier gleich der FTDI Chip für die USB-Kommunikations onBoard ist. Hatte das ganze auch mit einem Leonardo probiert, aber hier konnte ich keine befriedigende USB-Geschwindigkeit erreichen. Für die WS2811 LEDs ist wohl mindestens ein Board mit 16Mhz notwenig.


    ACHTUNG: Es gibts Clones, die anstatt des FTDI Chips einen pl2303 drauf haben. Damit hab ich auch keine gute Geschwindigkeit hinbekommen.


    Gekauft bei Aliexpress für 15.99/Stck.
    http://www.aliexpress.com/item…-USB-Cable/582046427.html


    LED-Strip mit WS2811 und 60 LEDs/m


    Hab mich für eine 4m Rolle dieser LEDs entschieden, da ich eine Alternative zu den bekannten LEDs mit WS2801 probieren wollte. Außerdem waren die günstiger und haben doppelt soviele LEDs. Ob das notwendig ist? Egal :D Nachteil: meine LEDs haben keine Klebestreifen an der Rückseite.


    Generell sollten aber eigentlich LED-Strippen gehen, die von der FastSPI_LED Library unterstützt werden: https://code.google.com/p/fastspi/


    Gekauft bei Aliexpress für USD 45.00/Stck.
    http://www.aliexpress.com/item…50-smd-rgb/633124138.html


    Netzteil 5V/7A


    Scheint zuimindest bisher für die LEDs auszureichen.


    Gekauft bei Aliexpress für USD 5.20/Stck.
    http://www.aliexpress.com/item…240V-input/539634945.html


    Macht Gesamt von Aliexpress 66.19 USD, was ungefähr 51 EUR entspricht. Wenn man sich bei Aliexpress umschaut, findet man auch immer mal wieder versandkostenfreie Angebote. Ggfs. fallen Kredikartengebühren und/oder Mwst an. Ich hatte mich mit einem anderen Forenteilnehmer zusammen getan und LEDs sowie Netzteil zusammen bestellt und in die Versankosten geteilt.


    Befestigung am TV


    Für die Befestigung am TV wollte ich mal einen alternativen Weg probieren, den ich hier im Forum gelesen hab ([HELP-Needed] How-To Sedu-Light). Die LEDs werden mit Kabelbindern auf Rohren befestigt und die Rohre mittels Kabelschellen auf dem TV. Der Vorteil ist, dass man dann die LEDs nach seinen Wünschen ausrichten kann. Plastikrohre hab ich genommen, da diese auch noch ein wenig flexibel sind.


    2 Kabelrohre á 2m x 16mm
    klebbare Kabelschellen
    Kabelbinder


    Gekauft im Baumarkt: ca. 16 CHF


    Sonstiges


    Hohl-Kupplung 2,1/5,5mm Schraubklemmen
    diverse Stecker und Kabel aus der Wühlkiste
    Büroklammerbox für Arduino (passt perfekt)


    Was braucht man sonst für den Aufbau?


    Einen guten und feinen Lötkolben und etwas Bastelgeschick. :D


    So, das wars erstmal, Bilder der Hardware, des Aufbaus sowie das Sketch für den Arduino folgen bald. :D


    Grüsse
    TheChief


    EDIT: Im Anhang noch ein Beispiel-Anschlussplan.

    Files

    • arduatmo.pdf

      (18.72 kB, downloaded 1,870 times, last: )

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

    The post was edited 3 times, last by TheChief ().

  • Anbei mal die ersten Bilder, hier der Arduino inkl. Selbstbaubox - vorher waren da Büroklammer drin, passt verfekt rein, nur ein paar Aussparungen musste ich reinfräsen. :D


    Datenleitung für die LEDs sowie GND hab ich gleich ans Board gelötet, da die Box zu flach war. Gibt aber auch höhere, da könnte man das Kabel auch stecken. Das Arduino-Board wird über USB mit Strom versorgt, die LEDs über Nezteil.


    Das letzte Bild zeigt den Testaufbau.

  • Hallo Christian,
    bist doch wieder zurück auf die FastSPI_LED Lib ?


    Ich habe mein Arduino Seduadmo Projekt vorerst mal auf Eis gelegt, da ich gerade an einem andern Arduino Projekt bastle


    Im Prinzip funktionierte alles, nur am Plugins hatte es noch nicht gestestet.
    Wenn ich deine Erfahrungen in Sachen Performance Tests so lese braucht es unter Linux zwingend einen FTDI.
    Den hat Arduino auf Aktuellen Boards leider wegrationalisiert, das Duemilanove wird nicht mehr produziert.
    Kann also schon sein das der China Nachbau bald vergriffen sein wird.


    Dann halt mit nem FTDI (TTL Pegel) Adapter.


    Für die WS2811 LEDs ist wohl mindestens ein Board mit 16Mhz notwenig.

    Wenn ich die FastSPI_LED Lib richtig verstehe läuft das Timeing der Eindraht Stripes nicht via SPI, sondern hier wird das Timeing wird mit NOP's realisiert.
    Da die Dauer eines NOP von der Taktfrequenz abhängt, denke ich das die CPU genau mit 16MHZ getaktet sein muss.


    Aber die meisten Arduino laufen ja mit 16MHZ.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

  • das Duemilanove wird nicht mehr produziert.
    Kann also schon sein das der China Nachbau bald vergriffen sein wird.


    Es gibt ja noch die Arduino Nano V 3.0 Klone, die einen FTDI-Chip mitbringen :)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Sicher tut auch jedes andere Arduino Board mit mindestens 16 MHz. Entweder per Breakout-Board/-Kabel mit FTDI oder eben mit einem anderen Clone. Kann aber bisher nur Erfolg mit FTDI verzeichnen, daher auch der Hinweis darauf.


    Quote


    Wenn ich die FastSPI_LED Lib richtig verstehe läuft das Timeing der Eindraht Stripes nicht via SPI, sondern hier wird das Timeing wird mit NOP's realisiert.
    Da die Dauer eines NOP von der Taktfrequenz abhängt, denke ich das die CPU genau mit 16MHZ getaktet sein muss.


    Ja genau. Gibt übrigens eine neue Version der FastSPI Library. In wiefern die WS2811 nur mit 16 MHz laufen, weiss ich nicht - oder ob höhere Taktraten möglich sind. Wollt eventuell irgendwann mal ein teensy 3.0 probieren. Mal schaun.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Wollt eventuell irgendwann mal ein teensy 3.0 probieren. Mal schaun.

    Das ist ein ARM, läuft der auf 5V Logic Pegel ?
    Spontan würde ich sagen das der mit 3.3 Volt Logic arbeitet, dann braucht es eine Pegelumsetzung zu dem Stripe.

    Gibt übrigens eine neue Version der FastSPI Library. In wiefern die WS2811 nur mit 16 MHz laufen,

    Ich habe die aktuelle Lib noch nicht angesehen, aber meiner Meinung nach würde die alte Lib nicht mit Cpu's <> 16 MHZ funktionieren.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

  • Hallo,


    ich wollte Arduino Micro verwenden. Die haben, wie die Leonardos, USB eingebaut. Wo lagen da die Geschwindigkeitsprobleme?


    Tschüß Frank

  • Ich weiß nicht mehr genau. Zumindest hat es keinen Effekt, eine Baudrate einzustellen, denn die wird zumindest beim Leonardo ignoriert. Wir hatten damals ein Testprogramm geschrieben, um zu sehen, ob alle LEDs gehen und wie schnell das ganze läuft. Eventuell muss man den USB CDC unter Linux auch anders handlen. Dann müsste man aber auch das seduatmo-Plugin umschreiben, denn das verwendet quasi den gleichen Code, wie das Testprogramm.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • eine Mega2560 wäre dann auch erstmal nicht geeignet, oder?
    Meine SEDU Board macht nämlich Zicken, und es wäre gut festzustellen, ob es die Ursache für mein Problem ist.


    VG,
    Micha

    oldVDR: 1.7.14-2yavdr1 | SkyStar HD2 | AMD XP 1700+ @1100Mhz & 1,1V | Geforce 4MX onboard NVIDIA CS Treiber (jemand Interesse an diesem stromsparenden SD VDR?)
    newVDR: yavdr 0.5a | TBS 6981 | Intel E5300 underclocked | Zotac 9300 | TBS RC + Harmoy 895 | Pearl LCD | 37W bei HD


    Panasonic TX-P50S20E & Onkyo NR-509 & Jamo S606 HCS 3

  • Kann ich Dir jetzt nicht sagen, so tief steck ich bei Arduinos auch nicht drin. Als was wirds denn erkannt unter Linux, wenns Du es ansteckst?

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Hi,

    eine Mega2560 wäre dann auch erstmal nicht geeignet, oder?

    Einen FTDI hat das Mega2560 nicht drauf, dies wird mit dem ATmega16U2 und dessen Firm gemacht.


    Aber der Mega hat ja 4 serielle, du braucht dir nur nen FTDI TTL Adapter besorgen.
    Zum Beispiel sowas


    Und die Atmega Software so ändern das die richtige Serielle angesprochen wird.
    Laufen tut das Projekt mit Sicherheit auf dem Mega.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

    The post was edited 1 time, last by rudirabbit ().

  • Arduino Mega2560:


    dmesg

    Code
    1. [25185.808036] usb 4-3: new full-speed USB device number 2 using ohci_hcd
    2. [25186.574924] cdc_acm 4-3:1.0: ttyACM0: USB ACM device
    3. [25186.579206] usbcore: registered new interface driver cdc_acm
    4. [25186.579211] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters


    lsusb


    es wird ein Device Namens ttyACM0 angelegt.


    VG,
    Micha

    oldVDR: 1.7.14-2yavdr1 | SkyStar HD2 | AMD XP 1700+ @1100Mhz & 1,1V | Geforce 4MX onboard NVIDIA CS Treiber (jemand Interesse an diesem stromsparenden SD VDR?)
    newVDR: yavdr 0.5a | TBS 6981 | Intel E5300 underclocked | Zotac 9300 | TBS RC + Harmoy 895 | Pearl LCD | 37W bei HD


    Panasonic TX-P50S20E & Onkyo NR-509 & Jamo S606 HCS 3

  • Hi,

    es wird ein Device Namens ttyACM0 angelegt.

    Wenn du nun einen Link auf das Device erstellst

    Code
    1. ln -sf /dev/ttyACM0 /dev/ttyS0.


    Dann sollte das Plugin den Atmel finden.
    Wobei - TheChief hat die Firmware noch nicht hochgeladen, dann wäre ein Test möglich.


    Ich habe zwar meine eigene Version, letzte Änderung Januar 2013, aber halt nie am Plugin getestet.
    Christian feilt wohl schon länger am Code um diesen zu Optimieren, und auch Jörg hatte da seine Erfahrungen mit eingebracht.
    Deshalb will ich meinen Test nicht hochladen, denke das der Code von TheChief bald online sein wird.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

  • jo, kann noch nicht testen, weil es noch keine Software gibt.
    Ich teste es, sobald es eine Sketch gibt.


    VG,
    Micha

    oldVDR: 1.7.14-2yavdr1 | SkyStar HD2 | AMD XP 1700+ @1100Mhz & 1,1V | Geforce 4MX onboard NVIDIA CS Treiber (jemand Interesse an diesem stromsparenden SD VDR?)
    newVDR: yavdr 0.5a | TBS 6981 | Intel E5300 underclocked | Zotac 9300 | TBS RC + Harmoy 895 | Pearl LCD | 37W bei HD


    Panasonic TX-P50S20E & Onkyo NR-509 & Jamo S606 HCS 3

  • Gäbe es schon was zum testen? Ich hab ws2801 Stripes am TV.


    Grüße!

    oldVDR: 1.7.14-2yavdr1 | SkyStar HD2 | AMD XP 1700+ @1100Mhz & 1,1V | Geforce 4MX onboard NVIDIA CS Treiber (jemand Interesse an diesem stromsparenden SD VDR?)
    newVDR: yavdr 0.5a | TBS 6981 | Intel E5300 underclocked | Zotac 9300 | TBS RC + Harmoy 895 | Pearl LCD | 37W bei HD


    Panasonic TX-P50S20E & Onkyo NR-509 & Jamo S606 HCS 3

  • Für WS2801 muss ich erstmal mal schauen, was ich da im Code noch ändern muss, da die zwei anstatt einem Pin und SPI nutzen. Hab zwar auch welche, aber die kleben noch am TV mit SEDU Board.


    Was komisch ist, ist die initialisierung in der neuen Library (http://waitingforbigo.com/2013…pi_led2_preview_release):


    WS2801Controller<DATAPIN, CLOCKPIN, SELECTPIN, SPISPEED> LedController;


    Was ist der SELECTPIN? Hab nur Data und Clock. Mit SPISPEED kann ich auch noch nichts anfangen. Naja, hab dort mal gepostet.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Was ist der SELECTPIN? Hab nur Data und Clock.

    Denke damit ist der SS Pin gemeint.
    Ist quasi die Chip Select Line, braucht man wenn mehrere SPI Devices am Bus hängen.
    Zum Beispiel bei dem Ethernet Shield hat ja den W5100 und eine SD Karte drauf und beide hängen am SPI.


    Ist hier obselet denke ich.

    VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
    VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

  • So, gestern hab ich mich mal an die Montage gemacht. Anbei ein paar Bilder.


    1. Bild: Zuerst hab ich mal die Plastikrohre zugeschnitten um am TV platziert. Da mein TV nicht an der Wand hängt, musste ich unten erstmal improvisieren. Sobald ich das Teil mal an die Wand bringe, sieht das dann schicker aus.


    2. Bild: Detailaufnahme

  • Als nächstes ging es an die Verdrahtung. Da kam mir doch die geniale idee, die Kabel durch die Rohre nach innen zu führen. :D


    1. Bild: LED-Stripes zugeschnitten, mit Kabelbindern am Rohr befestigt. Loch in Rohre gefräst und Kabel gelegt


    2. Bild: Noch ne Idee gehabt - das ganze steckbar gemacht mit Molex-Steckern.


    3. Bild: Frontansicht


    4. Bild: Am Fernseher montiert und zusammengesteckt.

  • Und das ganze fertig montiert und ein erster Test mit Testprogramm.