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