kopia lustrzana https://github.com/blaz-r/pi_pico_neopixel
62 wiersze
1.6 KiB
Python
62 wiersze
1.6 KiB
Python
import time
|
|
from neopixel import Neopixel
|
|
import random
|
|
|
|
numpix = 60 # Number of NeoPixels
|
|
# Pin where NeoPixels are connected
|
|
strip = Neopixel(numpix, 1, 1, "GRB")
|
|
|
|
colors_rgb = [
|
|
(232, 100, 255), # Purple
|
|
(200, 200, 20), # Yellow
|
|
(30, 200, 200), # Blue
|
|
(150,50,10),
|
|
(50,200,10),
|
|
]
|
|
|
|
# same colors as normaln rgb, just 0 added at the end
|
|
colors_rgbw = [color+tuple([0]) for color in colors_rgb]
|
|
colors_rgbw.append((0, 0, 0, 255))
|
|
|
|
# uncomment colors_rgbw if you have RGBW strip
|
|
colors = colors_rgb
|
|
# colors = colors_rgbw
|
|
|
|
max_len=20
|
|
min_len = 5
|
|
#pixelnum, posn in flash, flash_len, direction
|
|
flashing = []
|
|
|
|
num_flashes = 10
|
|
|
|
for i in range(num_flashes):
|
|
pix = random.randint(0, numpix - 1)
|
|
col = random.randint(1, len(colors) - 1)
|
|
flash_len = random.randint(min_len, max_len)
|
|
flashing.append([pix, colors[col], flash_len, 0, 1])
|
|
|
|
strip.fill((0,0,0))
|
|
|
|
while True:
|
|
strip.show()
|
|
for i in range(num_flashes):
|
|
|
|
pix = flashing[i][0]
|
|
brightness = (flashing[i][3]/flashing[i][2])
|
|
colr = (int(flashing[i][1][0]*brightness),
|
|
int(flashing[i][1][1]*brightness),
|
|
int(flashing[i][1][2]*brightness))
|
|
strip.set_pixel(pix, colr)
|
|
|
|
if flashing[i][2] == flashing[i][3]:
|
|
flashing[i][4] = -1
|
|
if flashing[i][3] == 0 and flashing[i][4] == -1:
|
|
pix = random.randint(0, numpix - 1)
|
|
col = random.randint(0, len(colors) - 1)
|
|
flash_len = random.randint(min_len, max_len)
|
|
flashing[i] = [pix, colors[col], flash_len, 0, 1]
|
|
flashing[i][3] = flashing[i][3] + flashing[i][4]
|
|
time.sleep(0.005)
|
|
|
|
|