31 lines
No EOL
887 B
Python
31 lines
No EOL
887 B
Python
from time import sleep
|
|
import neopixel
|
|
import board
|
|
|
|
def defaultPattern(n, t):
|
|
return (255, 0, 200)
|
|
|
|
class LightStrip:
|
|
def __init__(self, data_pin = board.D18, string_length = 300, brightness = 1, pixel_order = neopixel.GRB):
|
|
self.data_pin = data_pin
|
|
|
|
self.np = neopixel.NeoPixel(self.data_pin, string_length, brightness = brightness, auto_write=True, pixel_order = pixel_order)
|
|
self.pattern = defaultPattern
|
|
self.cur_tick = 0
|
|
|
|
def set_light_level(self, level):
|
|
self.np.brightness = level
|
|
def pattern(self, pattern_callback):
|
|
self.pattern = pattern_callback
|
|
|
|
def tick(self):
|
|
np = self.np
|
|
t = self.cur_tick
|
|
n = np.n
|
|
for i in range(n):
|
|
col = self.pattern(i, t)
|
|
if np[i] != col:
|
|
np[i] = col
|
|
#print("CHANGE COLOR OF PIXEL {} ON TICK {}".format(col, t))
|
|
break;
|
|
self.cur_tick = t + 1 |