Jump to content

Recommended Posts

Geschrieben

Nabend,

 

ich möchte gerne in python die Farbe der LED's auslesen.

Soweit ich das sehe, geht das mit dem Befehl

LEDStrip.get_rgb_values(index, length)

 

Nur leider bekomme ich es einfach nicht auf die Reihe.

 

Kann mir jemand, oder besser, könnte das TF-Team dazu nicht ein kleines Beispiel auf der Homepage veröffentlichen?

Geschrieben

get_rgb_values ist richtig, das muss du jetzt nur wie set_rgb_values rückwärts verwenden. Hier ein kurzes Beispiel (ungetestet):

 

# the number of LEDs to get the color for
number_of_leds = ...

all_r = []
all_g = []
all_b = []

# list of indices [0, 16, 32, ...] that are smaller than number_of_leds
indices = range(0, number_of_leds, 16)

for index in indices:
    # number of LEDs remaining, but not more than 16
    length = min(number_of_leds - index, 16)

    r, g, b = led_strip.get_rgb_values(index, length)

    all_r += r[:length]
    all_g += g[:length]
    all_b += b[:length]

 

Wie set_rgb_values arbeitet auch get_rgb_values auf 16er Blöcken. Die indices Liste beinhaltet alle Startindizes der 16er Blöcke bis zur angegebenen LED Anzahl (number_of_leds). In der Schleife werden die Blöcke dann abgefragt. Die Länge des Blocks wird jeweils berechnet. Für alle Blöcke außer dem Letzten ist die Länge 16, da für diese number_of_leds - index > 16 ist. Für den letzten Block kann die Länge kürzer sein. Zum Beispiel: number_of_leds ist 40, dann ist indices [0, 16, 32] und es wird get_rgb_values(0, 16), get_rgb_values(16, 16) und get_rgb_values(32, 8) aufgerufen. 8 daher weil number_of_leds - index in diesem Fall 40 - 32 = 8 ist, also kleiner 16.

 

Da get_rgb_values aber immer 3 Listen der Länge 16 zurück gibt müssen beim letzten Aufruf diese Listen gekürzt werden auf die wahre Länge, daher r[:length].

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...