Jump to content

Python-Beispiel für Auslesen der LED's gesucht


derAngler

Recommended Posts

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?

Link zu diesem Kommentar
Share on other sites

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].

Link zu diesem Kommentar
Share on other sites

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...