This commit is contained in:
2025-02-28 19:26:44 +00:00
commit da4f5858ff

172
main.py Normal file
View File

@@ -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()