Merge branch 'main' into fix_glitching

pull/18/head
Blaž Rolih 2024-03-31 22:49:15 +02:00 zatwierdzone przez GitHub
commit 15f27b80cc
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 21 dodań i 6 usunięć

Wyświetl plik

@ -229,14 +229,29 @@ class Neopixel:
npix[15:21] = (255,0,0) # <- sets 16,17 .. 20 to red
npix[21:29:2] = (0,0,255) # <- sets 21,23,25,27 to blue
npix[1::2] = (0,0,0) # <- sets all odd pixels to 'off'
npix[:] = [(0,5,0),(0,5,0)] # <- replaces all pixels with those from the array
(the 'slice' cases pass idx as a 'slice' object, and
set_pixel processes the slice)
:param idx: Index can either be indexing number or slice
:param rgb_w: Tuple of form (r, g, b) or (r, g, b, w) representing color to be used
:return:
:param rgb_w: Tuple (or list of tuples) of form (r, g, b) or (r, g, b, w) representing color to be used
:return: None
"""
self.set_pixel(idx, rgb_w)
if type(rgb_w) is list:
# set some subset, if idx is a slice:
if type(idx) is slice:
for rgb_i, pixel_i in enumerate(range(*idx.indices(self.num_leds))):
self.set_pixel(pixel_i, rgb_w[rgb_i])
else:
raise ValueError("Index must be a slice when setting multiple pixels as list")
else:
self.set_pixel(idx, rgb_w)
def __len__(self):
return self.num_leds
def __getitem__(self, idx):
return self.get_pixel(idx)
def colorHSV(self, hue, sat, val):
"""
@ -326,9 +341,9 @@ class Neopixel:
cut = 8
if self.W_in_mode:
cut = 0
sm_put = self.sm.put
for pixval in self.pixels:
sm_put(pixval, cut)
self.sm.put(self.pixels, cut)
time.sleep(self.delay)
def fill(self, rgb_w, how_bright=None):