Porównaj commity

...

9 Commity

Autor SHA1 Wiadomość Data
Blaž Rolih 7e59515bf9
Merge pull request #18 from mcarlson/fix_glitching
Update default delay to 300 microseconds per Adafruit
2024-03-31 22:49:51 +02:00
Blaž Rolih 15f27b80cc
Merge branch 'main' into fix_glitching 2024-03-31 22:49:15 +02:00
Blaž Rolih 7c97c8b15a
Merge pull request #19 from mcarlson/Add-length,-getter-and-array-replacement-for-better-list/array-like-support
Add array/list-like methods
2024-03-31 19:52:38 +02:00
blaz-r 89b06f4383 Decouple color and pixel indexing 2024-03-31 19:46:20 +02:00
Blaž Rolih 8f158e6390
Merge branch 'main' into Add-length,-getter-and-array-replacement-for-better-list/array-like-support 2024-03-31 19:15:27 +02:00
Blaž Rolih 30f8314330
Merge pull request #21 from blaz-r/improve_show
Improve data transfer in show()
2024-03-31 19:00:51 +02:00
Max Carlson 9e956e518d Add array/list-like methods 2024-02-02 16:34:28 +02:00
Max Carlson 093b30ea17 Update default delay to 300 microseconds per Adafruit
https://adafruit.github.io/Adafruit_NeoPixel/html/class_adafruit___neo_pixel.html says we need 300 microseconds delay. This definitely helped glitching on my setup!
2024-02-02 15:58:53 +02:00
blaz-r aef5b0db81 Improve data transfer in show() 2023-07-03 13:47:50 +02:00
1 zmienionych plików z 22 dodań i 7 usunięć

Wyświetl plik

@ -73,7 +73,7 @@ class Neopixel:
# 'brightnessvalue', # brightness scale factor 1..255
# ]
def __init__(self, num_leds, state_machine, pin, mode="RGB", delay=0.0001):
def __init__(self, num_leds, state_machine, pin, mode="RGB", delay=0.0003):
"""
Constructor for library class
@ -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):