import neopixel from machine import Pin import time from random import randint, random, seed seed() ws_pin = 0 led_zahl = 64 helligkeit = 0.05 matrix = neopixel.NeoPixel(Pin(ws_pin), led_zahl) taster_hoch = Pin(1, Pin.IN, Pin.PULL_UP) taster_runter = Pin(2, Pin.IN, Pin.PULL_UP) taster_rechts = Pin(3, Pin.IN, Pin.PULL_UP) taster_links = Pin(4, Pin.IN, Pin.PULL_UP) scalar = float # a scale value (0.0 to 1.0) def hsv2rgb(h:scalar, s:scalar, v:scalar) -> tuple: if s: if h == 1.0: h = 0.0 i = int(h*6.0); f = h*6.0 - i w = int(255*( v * (1.0 - s) )) q = int(255*( v * (1.0 - s * f) )) t = int(255*( v * (1.0 - s * (1.0 - f)) )) v = int(255*v) if i==0: return (v, t, w) if i==1: return (q, v, w) if i==2: return (w, v, t) if i==3: return (w, q, v) if i==4: return (t, w, v) if i==5: return (v, w, q) else: v = int(255*v); return (v, v, v) def zufall_farbe(): return hsv2rgb(random(), 1.0, 1.0) def setze_helligkeit(farbe): r, g, b = farbe r = int(r * helligkeit) g = int(g * helligkeit) b = int(b * helligkeit) return (r, g, b) def setze_pixel(x, y, farbe): farbe = setze_helligkeit(farbe) i = y * 8 + x matrix[i] = farbe def neue_position(): x = randint(0, 7) y = randint(0, 7) return (x, y) while True: matrix.fill((0, 0, 0)) (x, y) = neue_position() setze_pixel(x, y, zufall_farbe()) matrix.write() time.sleep(0.5)