10x20 Matrix - ArtNet - OLA - Project

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hi Leute

    Ich bin dabei eine 10x20 Matrix zu bauen in der Größse von ca 600x1200.
    Ansteuerbar über das Artnet Protokoll.
    Beispiel:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Hardware bis jetzt:
    RPi2
    4x 50-er WS2801 Pixelstränge
    NT meanwell 5v 26A

    Hintergrund:
    Ich mache seit fast 10 Jahren musik und hätte gerne ein audio triggerbares Effekt Panel für meine Musikecke. Auserdem hat mich das Thema schon immer gereizt.


    Ich gehe im Grunde nach dieser Anleitung vor

    http://pimz.blogspot.de/2015/04/raspbe…artnet-spi.html

    Mit dem Pi1 habe ich bereits die Leds per Jinx ansprechen können. Aber die z.b. Laufschrift kam nicht von einer Seite sondern von beiden Seiten....

    Da ich jetzt alles auf einem Pi2 aufsetze (es sollte doch auch problemlos mit dem pi2 funkltionieren oder?)
    und immoment noch nichts funktioniert. Obwohl alles wie vorher gemacht wollte ich wissen wie genau ich diesen Anleitungspunkt verstehen soll:
    -------------------------


    Software Setup

    You'll need a suitable udev config, so that OLA has permission to talk to your SPI port. There is also some Raspberry Pi specific config (enabling a kernel module) on the same page.


    Also gebe ich ein: sudo nano /etc/udev/rules.d/99-spi.rules
    Und trage dort ein: SUBSYSTEM=="spidev", MODE="0666"
    speichern

    If you're using the GPIO pins to drive an hardware demultiplexer, you'll need to run the following as root prior to starting olad.

    for pin in 17 21; do
    echo $pin > /sys/class/gpio/export;
    chmod a+w /sys/class/gpio/gpio${pin}/value;
    chmod a+w /sys/class/gpio/gpio${pin}/direction;
    done



    ----------------------------------------


    das muss vor olad geladen bzw ausgeführt werden.
    aber wie stelle ich das an ? :daumendreh2:


    Danke für eure Hilfe.

    Ihr werdet zum Schluss natürlich mit Bildern entlohnt!

    :danke_ATDE:


    Sources:

    http://luisgg79.blogspot.be/2014/03/ola-ra…810-artnet.html

    http://grechi.it/blog/2013/11/0…n-raspberry-pi/

    http://pimz.blogspot.de/2015/04/raspbe…artnet-spi.html

    https://wiki.openlighting.org/index.php/OLA_LED_Pixels

    https://wiki.openlighting.org/index.php/OLA_…nfiguration#SPI

    Einmal editiert, zuletzt von polykoma (7. Januar 2016 um 18:57)

  • Moinsen polykoma,


    Du musst lediglich obigen Code als root ausführen.
    Dazu ist es sinnvoll, die Kommandos als bash-script abzuspeichern.
    Also bash-Fenster öffnen oder Konsole nutzen, Editor öffnen

    Code
    vi demultiplex.sh


    oder mit nano oder ...
    Eine Zeile mit shebang einfügen,

    Bash
    #!/bin/bash


    dann die Kommandos einfügen

    Bash
    #!/bin/bash
    for pin in 17 21; do
       echo $pin > /sys/class/gpio/export;
       chmod a+w /sys/class/gpio/gpio${pin}/value;
       chmod a+w /sys/class/gpio/gpio${pin}/direction;
    done


    abspeichern und ausführbar machen

    Code
    chmod +x demultiplex.sh


    und dann als root ausführen

    Code
    sudo ./demultiplex.sh

    So, ich hoffe, ich hab' jetzt nix vergessen,
    ciao,
    -ds-

  • Hi dreamshader.
    Danke für deine tolle Antwort.

    Ich versuche noch Sie richtig zu verstehen. Irgendwie tue ich mir schwer dadurch das du mehrere ansätze beschreibst.

    Also ich greife mit Windows über putty auf den pi zu.
    logge mich ein

    öffne den editor ?! mit :

    vi demultiplex.sh


    trage ein:

    #!/bin/bash
    for pin in 17 21; do
    echo $pin > /sys/class/gpio/export;
    chmod a+w /sys/class/gpio/gpio${pin}/value;
    chmod a+w /sys/class/gpio/gpio${pin}/direction;
    done


    den rest verstehe ich wieder mit speichern und ausführbar machen.

    wird es dann immer automatisch vor olad geladen oder muss ich dazu noch etwas machen ?


    am besten ich probiere heute abend einfach mal rum und schaue was dabei rauskommt.
    vielen vielen Dank !

    Einmal editiert, zuletzt von polykoma (6. Januar 2016 um 15:09)

  • Hi,
    passt schon - alles richtig verstanden :thumbs1:
    Das mit dem Editor - da kommts halt drauf an, welchen Du nutzt bzw. genutzt hast.

    Da startet jetzt allerdings noch nichts "automatisch" oder "von selbst".
    Du müsstest jetzt erst den script mit sudo aufrufen und anschliessen olad starten.
    Ich würde sagen, das probierst Du mal aus damit es erst einmal fehlerfrei läuft.
    Anschliessend machen wir einen service draus bzw. erweitern das service-script von olad ( so das denn ein Service ist). Aber dazu später mehr.

    ciao,
    -ds-

  • Der Teil betrifft dich doch gar nicht? Du besitzt doch gar keinen Hardware Demultiplexer? Oder überseh ich was?
    Was hättest du denn da jetzt an diesen GPIO Pin anschließen wollen? :)
    Du musst eigentlich nur die udev Regel setzten.

    Die 10A reichen rein rechnerisch nicht ganz: 200 * 60mA(3*20mA pro RGB LED) = 12A alleine für die LEDs (bei einer Weissphase)

    DON'T PANIC!

    Einmal editiert, zuletzt von joh.raspi (6. Januar 2016 um 17:08)


  • Der Teil betrifft dich doch gar nicht? Du besitzt doch gar keinen Hardware Demultiplexer? Oder überseh ich was?
    Was hättest du denn da jetzt an diesen GPIO Pin anschließen wollen? :)
    Du musst eigentlich nur die udev Regel setzten.

    Die 10A reichen rein rechnerisch nicht ganz: 200 * 60mA(3*20mA pro RGB LED) = 12A alleine für die LEDs (bei einer Weissphase)


    Hi

    Danke fuer dein Feedback.

    Das wuerde erklaeren wieso ich sie schon zum leuchten gebracht hatte ohne dieses script. Aber das war an meinem Pi1.
    Evtl liegt es ja am Pi2 das noch nichts leuchtet?!

    Nein ich habe keinen hardware demultiplexer.
    Dann hab ich wohl da etwas falsch verstanden!

    Die udev regel setze ich ja so:

    sudo nano
    [font="Arial,Helvetica,sans-serif"]/etc/udev/rules.d/99-spi.rules

    und trage dort ein

    [font="Arial,Helvetica,sans-serif"]SUBSYSTEM=="spidev", MODE="0666"[/font]
    [/font]

    Da ich nur max 170 led pro universum ansteuern kann wuerde ich sie auf 2 je 100led verteilen.

    Spi config waere dann


    Ist das so stimmig ?

    Netzteil wird dann dieses hier:
    http://www.amazon.de/Schaltnetzteil-LED-Netzteil-130W-MeanWell-RS-150-5/dp/B00MWQE30S/?ie=UTF8&qid=1452102548&sr=8-9&keywords=led+meanwell+5v&tag=psblog-21 [Anzeige]

    Tausend dank!

    Einmal editiert, zuletzt von polykoma (6. Januar 2016 um 18:51)

  • Zur SPI config kann ich leider nichts sagen. Hab mich damit noch gar nicht beschäftigt und müsste mich da erst einlesen.

    Was mir bei der config aber auffällt ist dass du beiden Universen die selbe Addresse(1) und personality(was auch immer das ist :)) gegeben hast. Da würde ich ohne mich damit auszukennen eher davon ausgehen dass die verschieden sein müssen. Das ist aber auch nur geraten.

    Wenn du LEDs zum leuchten gebracht hast hatt das mir der udev Regel geklappt und kannst den Teil abhaken. :thumbs1:

    DON'T PANIC!

  • es wird nicht per adresse sondern per spidev0.0-0 bzw 0.0-1 angesteuert dswg steht da ueberall 1 bei adresse. das stimmt so. hab ich bei mehreren "how to's" so gesehen und steht so im OLA wiki.

    Hier der Wiki eintrag dazu:

    Two Pixel Strings, using a single output

    This example is a string of 300 WS2801 pixels. Since this is more than one universe of data, we need to use multiple ports.

    base_uid = 7a70:00000100
    device_prefix = spidev
    enabled = true
    spidev0.0-0-dmx-address = 1
    spidev0.0-0-personality = 1
    spidev0.0-0-pixel-count = 150
    spidev0.0-1-dmx-address = 1
    spidev0.0-1-personality = 1
    spidev0.0-1-pixel-count = 150
    spidev0.0-backend = software
    spidev0.0-ports = 2
    spidev0.0-spi-speed = 1000000
    spidev0.0-sync-port = -2

  • na klar.
    die anleitungen sind eigentlich relativ simpel und ein bisschen pi erfahrung habe ich ja schon :)

    da aber 2 anleitungen die relativ detailiert sind und diesen part beinhalten:
    " then run this

    for pin in 17 21; do
    echo $pin > /sys/class/gpio/export;
    chmod a+w /sys/class/gpio/gpio${pin}/value;
    chmod a+w /sys/class/gpio/gpio${pin}/direction;
    done"


    siehe:
    http://luisgg79.blogspot.be/2014/03/ola-ra…810-artnet.html (ich glaube der hat sich verschrieben und meint 2801er)
    http://pimz.blogspot.de/2015/04/raspbe…artnet-spi.html

    aber nirgendwo wird was von hardware demultiplexer gesprochen in den anleitung deswegen war ich verwirrt und dachte der schritt wär unbedingt nötig.

    im wiki steht aber das dieser nur nötig ist wenn man einen hardware demultiplexer nutzt (whatever that is...)
    "If you're using the GPIO pins to drive an hardware demultiplexer, you'll need to run the following as root prior to starting olad. "

    --------------------------------------------------
    ich mache jetzt nochmals alles mit dem pi1 wie ich es mit dem pi2 gemacht habe.
    vielleicht liegt der fehler einfach dort

    Einmal editiert, zuletzt von polykoma (6. Januar 2016 um 21:11)

  • hi again

    also habe alles aufd em pi1 neu aufgesetzt. schritt für schritt. (sind ja nicht so viele)

    aber wieder das selbe problem. wenn ich in Jinx z.b. eine laufschrift durchlaufen lassen möchte.
    kommt diese von beiden seite durch die LED Matrix. nicht wie sie sollte von einer.
    davon sind auch die anderen effekte betroffen. ich seh einfach den fehler nicht.

    spi config ist wie im wiki. da ich gerade nur 150 pixel am testen bin ( da 170 max pro universe - und ich erst mal das grundprinzip ganz verstehen muss) ist diese auch vereinfacht:

    base_uid = 7a70:00000100
    device_prefix = spidev
    enabled = true
    spidev0.0-0-dmx-address = 1
    spidev0.0-0-pixel-count = 150
    spidev0.0-0-personality = 1
    spidev0.0-backend = software
    spidev0.0-ports = 1
    spidev0.0-spi-speed = 1000000


    in Jinx habe ich schon alle optionen per try+error durchprobiert.
    ich glaub ich muss noch ne nacht drüber schlafen

  • hey poly,

    ich hab zwar null gelesen in den anderen seiten, und null ahnung aber ich rate einfachmal nach bauchgefühl :D

    base_uid = 7a70:00000100
    device_prefix = spidev
    enabled = true
    spidev0.0-0-dmx-address = 1
    spidev0.0-0-personality = 1
    spidev0.0-0-pixel-count = 150
    spidev0.0-1-dmx-address = 1
    spidev0.0-1-personality = 1
    spidev0.0-1-pixel-count = 150
    spidev0.0-backend = software
    spidev0.0-ports = 2
    spidev0.0-spi-speed = 1000000
    spidev0.0-sync-port = -2

    dmx-address = 1

    ich glaube du setzt bei spidev0.0 und spidev0.1 JEWEILS einen startpunkt was dazu führt das es doppelt erscheint?

    bin schon am googeln ob ich was dazu finde :)

    Hier war mal eine Signatur.

  • um das auszuschließen habe ich erstmal mit 150 pixeln gearbeitet und die einfache config:

    base_uid = 7a70:00000100
    device_prefix = spidev
    enabled = true
    spidev0.0-0-dmx-address = 1
    spidev0.0-0-pixel-count = 150
    spidev0.0-0-personality = 1
    spidev0.0-backend = software
    spidev0.0-ports = 1
    spidev0.0-spi-speed = 1000000


    verwendet. leider immer noch falsche Darstellung. Ich habe mal den Jinx Macher angeschrieben.

  • :)

    hätte eh dann alles fein und sauber als beitrag verfasst wenn es soweit ist.

    aber ich löse auch gerne vorab auf:

    ich hatte in jinx beim "fast patch" die option zur anordnung der linien (snake / line) übersehen.
    dadurch war jede zweite zeile quasi seitenverkehrt. völlig banal.
    2 wochen gegrübelt :D
    au man

    danke dir ! :)

    auf bald

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!