Eigene Effekte Ambilight

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    Habt ihr schonmal versucht eigene Effekte für euer Ambilight zu programmieren? Ist das möglich? Oder zumindest bestehende zu ändern?

    Ich hätte darauf Lust, weiß nur nicht, wo ich anfangen soll..

  • Bzw. hier: https://github.com/tvdzwan/hyperion/tree/master/effects
    Die Pyton files steuern den Effekt. Mit den Json Files werden Parameter übergeben. Ich hab vor einiger Zeit mal das Mood-Blobs Skript erweitert. Mit den Kommentaren die schon drinnen waren ging das auch relativ straight forward.

    Im Prinzip hast du ein Array für die Farben jeder einzelnen LED
    [Anzahl LEDs][3] (3 für Rot grün blau)

    Code
    # create a Array for the colors
    colors = bytearray(hyperion.ledCount * (0,0,0))

    führst auf diesen irgendwelche Berechnungen durch

    Code
    for i in range(hyperion.ledCount):
            amplitude = max(0.0, math.sin(-amplitudePhase + 2*math.pi * blobs * i / hyperion.ledCount))
            colors[3*i+0] = int(colorData[3*i+0] * amplitude)
            colors[3*i+1] = int(colorData[3*i+1] * amplitude)
            colors[3*i+2] = int(colorData[3*i+2] * amplitude)

    und gibts das an hyperion weiter

    Code
    # set colors
        hyperion.setColor(colors)

    Die Berechnungen befinden sich in einer Schleife die durch hyperion abgebrochen werden kann.

    Code
    while not hyperion.abort():

  • Ich grab mal den Thread aus :)

    Ich habe ein paar Python Module geschrieben, mit welchen man seine Effekte testen kann. Damit kann man sich den Effekt durch eine Gui anzeigen lassen und auch die Daten direkt an den hyperion Server schicken um sich live anzusehen was der Effekt macht.

    Schaut einfach mal hier: https://github.com/tvdzwan/hyperi…development-kit

    Servus,

    coole Sache mit den Modulen, danke fürs bereitstellen!
    Ich wollte mir einen statischen Effekt schreiben der nur drei Farben anzeigt (linke Seite des TV rot, oben grün, rechts weiss und unten wieder grün). Das klappt auch einwandfrei in deinem Effect-Developement-Kit, wird wunderbar auf der GUI angezeigt und auch korrekt an Hyperion übertragen.
    Nur: wenn ich dann die .py und .json Dateien auf den Raspberry übertrage und den Effekt laufen lasse bekomme ich folgende Meldung:

    Code
    Traceback (most recent call last):
     File "/storage/hyperion/effects/fca.py", line 27, in <module>
       hyperion.setColor(led_data)
    RuntimeError: Length of bytearray argument should be 3*ledCount


    Ich hab es wie folgt umgesetzt:

    Hast du mir nen Tipp wie das bytearray aussehen muss, dass die ersten 24 LEDs rot, die nächsten 30 grün, die folgenden 24 weiss und die letzten 30 wieder grün leuchten? Ich komm leider nicht drauf. Die anderen Effekte übertragen soweit ich das verstehe immer led_data an über ein array an alle LEDs oder?

    Vielen Dank und schöne Grüße
    Daniel

  • Hi...
    ja, dieses Effect-Developement sieht auf den ersten Blick leichter aus als es ist...

    als ich mir das mal angeschaut habe, habe ich versucht Falggen darzustellen (abgeguckt vom BobDroid),
    herausgekommen ist sowas:

    Veröffentlicht habe ich das nie, weil es eigentlich nie fertig geworden ist, das mit:

    Code
    vertical = 35
    horizontal = 60

    muss auch irgendwie eleganter zu lösen sein, aber vllt. hilfts dir da...

    //edit: wahrscheinlich ist da noch viel mehr, was man eleganter lösen kann *duck*und*weg*

    Einmal editiert, zuletzt von BooStar (4. März 2016 um 11:18)

  • Super, vielen Dank BooStar!
    Hat mir in der Tat geholfen :)
    Weiß zwar nicht genau was das Problem war an meiner Umsetzung aber mit deiner Inspiration hab ich es irgendwie umgeschrieben sodass es nun funktioniert :D
    Natürlich auch quick and dirty und alles andere als elegant aber das ist mir egal solang es funktioniert.
    Grüße

Jetzt mitmachen!

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