trellism4_neopixel_toggle.py
1 import adafruit_trellism4 2 3 trellis = adafruit_trellism4.TrellisM4Express() 4 5 6 def wheel(pos): 7 if pos < 0 or pos > 255: 8 return 0, 0, 0 9 if pos < 85: 10 return int(255 - pos * 3), int(pos * 3), 0 11 if pos < 170: 12 pos -= 85 13 return 0, int(255 - pos * 3), int(pos * 3) 14 pos -= 170 15 return int(pos * 3), 0, int(255 - (pos * 3)) 16 17 18 led_on = [] 19 20 for x in range(trellis.pixels.width): 21 led_on.append([]) 22 for y in range(trellis.pixels.height): 23 led_on[x].append(False) 24 25 trellis.pixels.fill((0, 0, 0)) 26 27 current_press = set() 28 29 while True: 30 pressed = set(trellis.pressed_keys) 31 32 for press in pressed - current_press: 33 x, y = press 34 35 if not led_on[x][y]: 36 print("Turning on:", press) 37 pixel_index = (x + (y * 8)) * 256 // 32 38 trellis.pixels[x, y] = wheel(pixel_index & 255) 39 led_on[x][y] = True 40 41 else: 42 print("Turning off:", press) 43 trellis.pixels[x, y] = (0, 0, 0) 44 led_on[x][y] = False 45 46 current_press = pressed