commit da4f5858ff0fe20911f6983994647866d0cf434b Author: connorroy Date: Fri Feb 28 19:26:44 2025 +0000 Initial diff --git a/main.py b/main.py new file mode 100644 index 0000000..c11f12d --- /dev/null +++ b/main.py @@ -0,0 +1,172 @@ +import machine +from machine import bitstream +import time + + + +class NewPixel: + # G R B W + ORDER = (1, 0, 2, 3, 4) + + def __init__(self, pin, n, bpp=5, timing=1): + self.pin = pin + self.n = n + self.bpp = bpp + self.buf = bytearray(n * bpp) + self.pin.init(pin.OUT) + # Timing arg can either be 1 for 800kHz or 0 for 400kHz, + # or a user-specified timing ns tuple (high_0, low_0, high_1, low_1). + # self.timing = (220, 580, 580, 580) + self.timing = (300, 650, 650, 650) + + def __len__(self): + return self.n + + def __setitem__(self, i, v): + offset = i * self.bpp + for i in range(self.bpp): + self.buf[offset + self.ORDER[i]] = v[i] + + def __getitem__(self, i): + offset = i * self.bpp + return tuple(self.buf[offset + self.ORDER[i]] for i in range(self.bpp)) + + def fill(self, v): + b = self.buf + l = len(self.buf) + bpp = self.bpp + for i in range(bpp): + c = v[i] + j = self.ORDER[i] + while j < l: + b[j] = c + j += bpp + + def write(self): + # BITSTREAM_TYPE_HIGH_LOW = 0 + # print(self.timing) + bitstream(self.pin, 0, self.timing, self.buf) + + def clear(self): + self.buf = (0,0,0,0,0) + self.write() + + def get_colour(self, pixel_number): + print(self[pixel_number]) + + +class ColorModes: + def __init__(self): + pass + + +np = NewPixel(machine.Pin(1), 10) +np[0] = (0, 0, 0, 0, 0) +np.write() +breath_value = 0 +breath_up = True +colour = "red" + + +np[1] = (0, 0, 0, 0, 0) +np.write() +np[1] = (255, 0, 255, 0, 0) +np.write() +# np[2] = (255, 0, 0, 0, 0) +# np.write() + # if breath_value < 255 and breath_up is True: + # if colour == "red": + # np[0] = (breath_value, 0, 0, 0, 0) + # np[1] = (breath_value, 0, 0, 0, 0) + # np.write() + # np.get_colour(0) + # time.sleep(0.05) + # elif colour == "green": + # np[0] = (0 ,breath_value, 0, 0, 0) + # np[1] = (0, breath_value, 0, 0, 0) + # np.write() + # time.sleep(0.05) + # elif colour == "blue": + # np[0] = (0 ,0, breath_value, 0, 0) + # np[1] = (0, 0, breath_value, 0, 0) + # np.write() + # time.sleep(0.05) + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # np[0] = (0, breath_value, 0, 0, 0) + # np.write() + # time.sleep(1) + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # np[0] = (0, 0, breath_value, 0, 0) + # np.write() + # time.sleep(1) + # np[0] = (0, 0, 0, 0, 0) + # + # np.write() + # np[0] = (0, 0, 0, breath_value, 0) + # np.write() + # time.sleep(1) + # + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # np[0] = (0, 0, 0, 0, breath_value) + # np.write() + # time.sleep(1) + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # breath_value += 5 + # print(breath_value) + # else: + # breath_up = False + # breath_value -= 5 + # print(breath_value) + # if colour == "red": + # np[0] = (breath_value, 0, 0, 0, 0) + # np[1] = (breath_value, 0, 0, 0, 0) + # np.write() + # time.sleep(0.05) + # elif colour == "green": + # np[0] = (0, breath_value, 0, 0, 0) + # np[1] = (0, breath_value, 0, 0, 0) + # np.write() + # time.sleep(0.05) + # elif colour == "blue": + # np[0] = (0, 0, breath_value, 0, 0) + # np[1] = (0, 0, breath_value, 0, 0) + # np.write() + # time.sleep(0.05) + # if breath_value == 0: + # breath_up = True + # if colour == "red": + # colour = "green" + # elif colour == "green": + # colour = "blue" + # elif colour == "blue": + # colour = "red" + + + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # np[0] = (0, breath_value, 0, 0, 0) + # np.write() + # time.sleep(1) + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # np[0] = (0, 0, breath_value, 0, 0) + # np.write() + # time.sleep(1) + # np[0] = (0, 0, 0, 0, 0) + # + # np.write() + # np[0] = (0, 0, 0, breath_value, 0) + # np.write() + # time.sleep(1) + # + # np[0] = (0, 0, 0, 0, 0) + # np.write() + # np[0] = (0, 0, 0, 0, breath_value) + # np.write() + # time.sleep(1) + # np[0] = (0, 0, 0, 0, 0) + # np.write()