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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...