feat(patterns): add expanded animation pack with smoke tests
Add a broad set of new pattern modules and matching pattern smoke scripts so the new effects can be validated directly on-device.
This commit is contained in:
21
src/patterns/bar_graph.py
Normal file
21
src/patterns/bar_graph.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import utime
|
||||
|
||||
|
||||
class BarGraph:
|
||||
def __init__(self, driver):
|
||||
self.driver = driver
|
||||
|
||||
def run(self, preset):
|
||||
colors = preset.c if preset.c else [(0, 255, 0), (255, 80, 0)]
|
||||
level = max(0, min(100, int(preset.n1) if int(preset.n1) >= 0 else 50))
|
||||
target = (self.driver.num_leds * level) // 100
|
||||
lit = self.driver.apply_brightness(colors[0], preset.b)
|
||||
unlit = self.driver.apply_brightness(colors[1] if len(colors) > 1 else (0, 0, 0), preset.b)
|
||||
while True:
|
||||
for i in range(self.driver.num_leds):
|
||||
self.driver.n[i] = lit if i < target else unlit
|
||||
self.driver.n.write()
|
||||
yield
|
||||
if not preset.a:
|
||||
return
|
||||
utime.sleep_ms(max(1, int(preset.d)))
|
||||
Reference in New Issue
Block a user