Added various animation scripts
This commit is contained in:
parent
8e72cce8cc
commit
1d25136d95
36
fader.py
Executable file
36
fader.py
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sk6812
|
||||||
|
import time
|
||||||
|
import random
|
||||||
|
|
||||||
|
s = sk6812.SK6812("zybot", 2703)
|
||||||
|
s.set_fadestep(10)
|
||||||
|
|
||||||
|
colorcycle = [
|
||||||
|
(255, 0, 0, 0),
|
||||||
|
(0, 255, 0, 0),
|
||||||
|
(0, 0, 255, 0),
|
||||||
|
(0, 0, 0, 255),
|
||||||
|
(255, 0, 0, 255),
|
||||||
|
(0, 255, 0, 255),
|
||||||
|
(0, 0, 255, 255),
|
||||||
|
(255, 255, 255, 255),
|
||||||
|
]
|
||||||
|
|
||||||
|
k = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
r = colorcycle[k][0]
|
||||||
|
g = colorcycle[k][1]
|
||||||
|
b = colorcycle[k][2]
|
||||||
|
w = colorcycle[k][3]
|
||||||
|
|
||||||
|
for i in range(300):
|
||||||
|
s.fade_color(i, r, g, b, w)
|
||||||
|
s.commit()
|
||||||
|
time.sleep(0.01)
|
||||||
|
|
||||||
|
k = (k + 1) % len(colorcycle)
|
||||||
|
time.sleep(1)
|
||||||
|
|
56
fireworks.py
Executable file
56
fireworks.py
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sk6812
|
||||||
|
import time
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
class Rocket:
|
||||||
|
def __init__(self, sk, color = [0,0,0,255], alt = 100, size = 10):
|
||||||
|
self.sk = sk
|
||||||
|
self.color = color
|
||||||
|
self.alt = alt
|
||||||
|
self.size = size
|
||||||
|
|
||||||
|
self.pos = 0
|
||||||
|
self.dist = 0
|
||||||
|
|
||||||
|
def draw(self):
|
||||||
|
if self.pos < self.alt:
|
||||||
|
# launching
|
||||||
|
self.sk.add_color(self.pos, 64, 32, 0, 0)
|
||||||
|
self.sk.add_color(self.pos+1, 64, 32, 0, 0)
|
||||||
|
self.pos += 2
|
||||||
|
elif self.dist < self.size:
|
||||||
|
# exploded
|
||||||
|
self.sk.set_color(self.alt, 0, 0, 0, 255)
|
||||||
|
self.sk.add_color(self.alt + self.dist, self.color[0], self.color[1], self.color[2], self.color[3])
|
||||||
|
self.sk.add_color(self.alt - self.dist, self.color[0], self.color[1], self.color[2], self.color[3])
|
||||||
|
self.dist += 1
|
||||||
|
|
||||||
|
|
||||||
|
num_modules = 300
|
||||||
|
|
||||||
|
interval = 0.05
|
||||||
|
|
||||||
|
w = sk6812.SK6812("zybot", 2703)
|
||||||
|
w.set_fadestep(1.00/interval)
|
||||||
|
w.set_num_modules(num_modules)
|
||||||
|
|
||||||
|
rockets = []
|
||||||
|
frame = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
if frame % 30 == 0:
|
||||||
|
rockets.append(Rocket(w, [randint(0, 255), randint(0, 255), randint(0, 255), randint(0, 255)], randint(50, 249), randint(10, 50)))
|
||||||
|
|
||||||
|
for r in rockets:
|
||||||
|
r.draw()
|
||||||
|
|
||||||
|
for i in range(num_modules):
|
||||||
|
w.fade_color(i, 0, 0, 0, 0)
|
||||||
|
|
||||||
|
w.commit()
|
||||||
|
|
||||||
|
frame += 1
|
||||||
|
|
||||||
|
time.sleep(interval)
|
42
hsv_fade.py
Executable file
42
hsv_fade.py
Executable file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
from hsv2rgbw import hsv2rgbw
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
sk = sk6812.SK6812(sys.argv[1], 2703)
|
||||||
|
sk.set_fadestep(10)
|
||||||
|
|
||||||
|
interval = 1/30
|
||||||
|
|
||||||
|
nled = 16
|
||||||
|
nstrip = 8
|
||||||
|
|
||||||
|
h = 0
|
||||||
|
s = 192
|
||||||
|
v = 255
|
||||||
|
|
||||||
|
loop = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
v = (loop // 30) % 255
|
||||||
|
|
||||||
|
# update colors
|
||||||
|
for led in range(nled):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
color = hsv2rgbw(h + 360 * strip//nstrip, s, v)
|
||||||
|
color = color * 50 // 100
|
||||||
|
sk.set_color(strip, led, color[0], color[1], color[2], color[3])
|
||||||
|
|
||||||
|
|
||||||
|
sk.commit()
|
||||||
|
|
||||||
|
loop += 1
|
||||||
|
|
||||||
|
time.sleep(interval)
|
|
@ -1,41 +1,44 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import ws2801
|
import sk6812
|
||||||
import time
|
import time
|
||||||
|
|
||||||
num_modules = 20
|
num_modules = 300
|
||||||
|
|
||||||
interval = 0.1
|
interval = 0.05
|
||||||
|
|
||||||
w = ws2801.WS2801("192.168.23.222", 2703)
|
w = sk6812.SK6812("zybot", 2703)
|
||||||
w.set_fadestep(1.0/interval)
|
w.set_fadestep(0.05/interval)
|
||||||
|
w.set_num_modules(num_modules)
|
||||||
|
|
||||||
# dictionary which maps {module: [r, g, b]}
|
# dictionary which maps {module: [r, g, b]}
|
||||||
set_colors = {}
|
set_colors = {}
|
||||||
|
|
||||||
curModule = [0, 0, 0]
|
curModule = [0, 0, 0, 0]
|
||||||
speed = [0.49, 0.65, 1]
|
speed = [0.49, 0.65, 1, 0.81]
|
||||||
#countUp = [True, True, False]
|
#countUp = [True, True, False]
|
||||||
while True:
|
while True:
|
||||||
set_colors = {}
|
set_colors = {}
|
||||||
|
|
||||||
set_colors[int(curModule[0])] = [0, 0, 0]
|
set_colors[int(curModule[0])] = [0, 0, 0, 0]
|
||||||
set_colors[int(curModule[1])] = [0, 0, 0]
|
set_colors[int(curModule[1])] = [0, 0, 0, 0]
|
||||||
set_colors[num_modules-1-int(curModule[2])] = [0, 0, 0]
|
set_colors[num_modules-1-int(curModule[2])] = [0, 0, 0, 0]
|
||||||
|
set_colors[num_modules-1-int(curModule[3])] = [0, 0, 0, 0]
|
||||||
|
|
||||||
set_colors[int(curModule[0])][0] = 255
|
set_colors[int(curModule[0])][0] = 255
|
||||||
set_colors[int(curModule[1])][1] = 255
|
set_colors[int(curModule[1])][1] = 255
|
||||||
set_colors[num_modules-1-int(curModule[2])][2] = 255
|
set_colors[num_modules-1-int(curModule[2])][2] = 255
|
||||||
|
set_colors[num_modules-1-int(curModule[3])][3] = 255
|
||||||
|
|
||||||
for k in set_colors.keys():
|
for k in set_colors.keys():
|
||||||
w.add_color(k, set_colors[k][0], set_colors[k][1], set_colors[k][2])
|
w.add_color(k, set_colors[k][0], set_colors[k][1], set_colors[k][2], set_colors[k][3])
|
||||||
|
|
||||||
for i in range(num_modules):
|
for i in range(num_modules):
|
||||||
w.fade_color(i, 0, 0, 0)
|
w.fade_color(i, 0, 0, 0, 0)
|
||||||
|
|
||||||
w.commit()
|
w.commit()
|
||||||
|
|
||||||
for i in range(3):
|
for i in range(4):
|
||||||
curModule[i] += speed[i]
|
curModule[i] += speed[i]
|
||||||
if curModule[i] >= num_modules:
|
if curModule[i] >= num_modules:
|
||||||
curModule[i] -= num_modules
|
curModule[i] -= num_modules
|
||||||
|
|
52
knightrider_multistrip.py
Executable file
52
knightrider_multistrip.py
Executable file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
|
||||||
|
num_modules = 16
|
||||||
|
|
||||||
|
interval = 1/60
|
||||||
|
|
||||||
|
w = sk6812.SK6812("192.168.42.1", 2703)
|
||||||
|
w.set_fadestep(0.20/interval)
|
||||||
|
#w.set_num_modules(num_modules)
|
||||||
|
|
||||||
|
# dictionary which maps {module: [r, g, b]}
|
||||||
|
set_colors = {}
|
||||||
|
|
||||||
|
curModule = [0, 0, 0, 0]
|
||||||
|
#speed = [0.49, 0.65, 1, 0.81]
|
||||||
|
speed = [0.24, 0.31, 0.5, 0.41]
|
||||||
|
#countUp = [True, True, False]
|
||||||
|
|
||||||
|
brightness = 32
|
||||||
|
|
||||||
|
strip = 0
|
||||||
|
while True:
|
||||||
|
set_colors = {}
|
||||||
|
|
||||||
|
set_colors[int(curModule[0])] = [0, 0, 0, 0]
|
||||||
|
set_colors[int(curModule[1])] = [0, 0, 0, 0]
|
||||||
|
set_colors[num_modules-1-int(curModule[2])] = [0, 0, 0, 0]
|
||||||
|
set_colors[num_modules-1-int(curModule[3])] = [0, 0, 0, 0]
|
||||||
|
|
||||||
|
set_colors[int(curModule[0])][0] = brightness
|
||||||
|
set_colors[int(curModule[1])][1] = brightness
|
||||||
|
set_colors[num_modules-1-int(curModule[2])][2] = brightness
|
||||||
|
set_colors[num_modules-1-int(curModule[3])][3] = brightness
|
||||||
|
|
||||||
|
for strip in range(8):
|
||||||
|
for k in set_colors.keys():
|
||||||
|
w.add_color(strip, k, set_colors[k][0], set_colors[k][1], set_colors[k][2], set_colors[k][3])
|
||||||
|
|
||||||
|
for i in range(num_modules):
|
||||||
|
w.fade_color(strip, i, 0, 0, 0, 0)
|
||||||
|
|
||||||
|
w.commit()
|
||||||
|
|
||||||
|
for i in range(4):
|
||||||
|
curModule[i] += speed[i]
|
||||||
|
if curModule[i] >= num_modules:
|
||||||
|
curModule[i] -= num_modules
|
||||||
|
|
||||||
|
time.sleep(interval)
|
|
@ -1,23 +1,24 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import ws2801
|
import sk6812
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
|
|
||||||
w = ws2801.WS2801("192.168.23.222", 2703)
|
s = sk6812.SK6812("zybot", 2703)
|
||||||
w.set_fadestep(2)
|
s.set_fadestep(2)
|
||||||
|
|
||||||
# dictionary which maps {module: [r, g, b]}
|
# dictionary which maps {module: [r, g, b]}
|
||||||
set_colors = {}
|
set_colors = {}
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
r = random.randint(0, 255)
|
r = random.randint(0, 254)
|
||||||
g = random.randint(0, 255)
|
g = random.randint(0, 254)
|
||||||
b = random.randint(0, 255)
|
b = random.randint(0, 254)
|
||||||
|
w = random.randint(0, 254)
|
||||||
|
|
||||||
for i in range(20):
|
for i in range(300):
|
||||||
w.fade_color(i, r, g, b)
|
s.fade_color(i, r, g, b, w)
|
||||||
w.commit()
|
s.commit()
|
||||||
time.sleep(0.1)
|
time.sleep(0.01)
|
||||||
|
|
||||||
time.sleep(120)
|
#time.sleep(120)
|
||||||
|
|
118
rgbw_flame.py
Executable file
118
rgbw_flame.py
Executable file
|
@ -0,0 +1,118 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
s = sk6812.SK6812(sys.argv[1], 2703)
|
||||||
|
s.set_fadestep(10)
|
||||||
|
|
||||||
|
phase = 0
|
||||||
|
nled = 16
|
||||||
|
nstrip = 8
|
||||||
|
|
||||||
|
interval = 1.0/30
|
||||||
|
|
||||||
|
scale = 0.15
|
||||||
|
|
||||||
|
strip = 0
|
||||||
|
|
||||||
|
tiltphase = 0
|
||||||
|
|
||||||
|
ENERGY_MULT = 92
|
||||||
|
ENERGY_DIV = 100
|
||||||
|
|
||||||
|
MAXENERGY_ADD = 160
|
||||||
|
ENERGY_SUB = 7
|
||||||
|
ENERGY_PULL_MAX_PCT = 100
|
||||||
|
|
||||||
|
energy = np.zeros( (nled+1, nstrip), dtype=int )
|
||||||
|
energy_smooth = np.zeros( energy.shape, dtype=int )
|
||||||
|
|
||||||
|
COLORMAP_X = [ 0, 70, 120, 200, 225, 255]
|
||||||
|
COLORMAP_Y = [(0, 0, 0, 0), (128, 0, 0, 0), (192, 64, 0, 0), (255, 128, 0, 0), (255, 128, 0, 20), (255, 128, 0, 40)]
|
||||||
|
|
||||||
|
def colormap(x):
|
||||||
|
i = 0
|
||||||
|
while i < len(COLORMAP_X)-1 and COLORMAP_X[i+1] < x:
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
if i >= len(COLORMAP_X)-1:
|
||||||
|
return np.array(COLORMAP_Y[len(COLORMAP_Y)-1])
|
||||||
|
|
||||||
|
start_x = COLORMAP_X[i]
|
||||||
|
end_x = COLORMAP_X[i+1]
|
||||||
|
|
||||||
|
start_col = np.array(COLORMAP_Y[i], dtype=int)
|
||||||
|
end_col = np.array(COLORMAP_Y[i+1], dtype=int)
|
||||||
|
|
||||||
|
col = (x - start_x) * 100 // (end_x - start_x) * (end_col - start_col) // 100 + start_col
|
||||||
|
return col
|
||||||
|
|
||||||
|
|
||||||
|
loop = 0
|
||||||
|
intensity = MAXENERGY_ADD
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
if loop % 5 == 0:
|
||||||
|
intensity = random.randint(MAXENERGY_ADD*3//4, MAXENERGY_ADD*5//4)
|
||||||
|
|
||||||
|
# inject random energy in bottom row
|
||||||
|
for i in range(nstrip):
|
||||||
|
energy[0, i] += random.randint(0, intensity)
|
||||||
|
|
||||||
|
# pull energy from the cell below
|
||||||
|
for led in range(nled, 0, -1):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
wanted_energy = random.randint(0, ENERGY_PULL_MAX_PCT) * energy[led-1, strip] // 100
|
||||||
|
pulled_energy = min(wanted_energy, energy[led-1, strip])
|
||||||
|
energy[led, strip] += pulled_energy
|
||||||
|
energy[led-1, strip] -= pulled_energy
|
||||||
|
|
||||||
|
# decrease global amount of energy
|
||||||
|
for led in range(nled+1):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
#energy[led, strip] *= ENERGY_MULT
|
||||||
|
#energy[led, strip] //= ENERGY_DIV
|
||||||
|
energy[led, strip] -= min(ENERGY_SUB, energy[led, strip])
|
||||||
|
|
||||||
|
# smooth the energy distribution
|
||||||
|
for led in range(nled):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
strip_left = (strip + nstrip - 1) % nstrip
|
||||||
|
strip_right = (strip + nstrip + 1) % nstrip
|
||||||
|
led_above = led + 1
|
||||||
|
led_below = led - 1
|
||||||
|
|
||||||
|
energy_smooth[led, strip] = 100 * energy[led, strip]
|
||||||
|
energy_smooth[led, strip] += 30 * energy[led, strip_left]
|
||||||
|
energy_smooth[led, strip] += 30 * energy[led, strip_right]
|
||||||
|
|
||||||
|
gain = 160
|
||||||
|
|
||||||
|
if led_above < nled:
|
||||||
|
energy_smooth[led, strip] += 10 * energy[led_above, strip]
|
||||||
|
gain += 10
|
||||||
|
if led_below >= 0:
|
||||||
|
energy_smooth[led, strip] += 10 * energy[led_below, strip]
|
||||||
|
gain += 10
|
||||||
|
|
||||||
|
energy_smooth[led, strip] //= gain
|
||||||
|
|
||||||
|
# update colors
|
||||||
|
for led in range(nled):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
color = colormap(energy_smooth[led, strip])**2//255
|
||||||
|
s.fade_color(strip, led, color[0], color[1], color[2], color[3])
|
||||||
|
|
||||||
|
|
||||||
|
s.commit()
|
||||||
|
|
||||||
|
loop += 1
|
||||||
|
|
||||||
|
time.sleep(interval)
|
131
rgbw_hsv_flame.py
Executable file
131
rgbw_hsv_flame.py
Executable file
|
@ -0,0 +1,131 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
from hsv2rgbw import hsv2rgbw
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
s = sk6812.SK6812(sys.argv[1], 2703)
|
||||||
|
s.set_fadestep(10)
|
||||||
|
|
||||||
|
phase = 0
|
||||||
|
nled = 16
|
||||||
|
nstrip = 8
|
||||||
|
|
||||||
|
interval = 1.0/30
|
||||||
|
|
||||||
|
scale = 0.15
|
||||||
|
|
||||||
|
strip = 0
|
||||||
|
|
||||||
|
tiltphase = 0
|
||||||
|
|
||||||
|
ENERGY_MULT = 92
|
||||||
|
ENERGY_DIV = 100
|
||||||
|
|
||||||
|
MAXENERGY_ADD = 160
|
||||||
|
ENERGY_SUB = 7
|
||||||
|
ENERGY_PULL_MAX_PCT = 100
|
||||||
|
|
||||||
|
HIGHLIGHT_OFFSET = -60
|
||||||
|
|
||||||
|
energy = np.zeros( (nled+1, nstrip), dtype=int )
|
||||||
|
energy_smooth = np.zeros( energy.shape, dtype=int )
|
||||||
|
|
||||||
|
COLORMAP_X = [ 0, 70, 120, 200, 225, 255]
|
||||||
|
COLORMAP_Y = [
|
||||||
|
(0, 255, 0),
|
||||||
|
(0, 255, 128),
|
||||||
|
(0, 255, 192),
|
||||||
|
(0, 192, 192),
|
||||||
|
(0, 128, 255),
|
||||||
|
(0, 128, 300)]
|
||||||
|
|
||||||
|
|
||||||
|
def colormap(x, h):
|
||||||
|
i = 0
|
||||||
|
while i < len(COLORMAP_X)-1 and COLORMAP_X[i+1] < x:
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
if i >= len(COLORMAP_X)-1:
|
||||||
|
return hsv2rgbw(*COLORMAP_Y[len(COLORMAP_Y)-1])
|
||||||
|
|
||||||
|
start_x = COLORMAP_X[i]
|
||||||
|
end_x = COLORMAP_X[i+1]
|
||||||
|
|
||||||
|
start_col = np.array(COLORMAP_Y[i], dtype=int)
|
||||||
|
end_col = np.array(COLORMAP_Y[i+1], dtype=int)
|
||||||
|
|
||||||
|
col = (x - start_x) * 100 // (end_x - start_x) * (end_col - start_col) // 100 + start_col
|
||||||
|
|
||||||
|
col[0] = (col[0] + h + 360) % 360
|
||||||
|
|
||||||
|
return hsv2rgbw(*col)
|
||||||
|
|
||||||
|
|
||||||
|
loop = 0
|
||||||
|
intensity = MAXENERGY_ADD
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
if loop % 5 == 0:
|
||||||
|
intensity = random.randint(MAXENERGY_ADD*3//4, MAXENERGY_ADD*5//4)
|
||||||
|
|
||||||
|
# inject random energy in bottom row
|
||||||
|
for i in range(nstrip):
|
||||||
|
energy[0, i] += random.randint(0, intensity)
|
||||||
|
|
||||||
|
# pull energy from the cell below
|
||||||
|
for led in range(nled, 0, -1):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
wanted_energy = random.randint(0, ENERGY_PULL_MAX_PCT) * energy[led-1, strip] // 100
|
||||||
|
pulled_energy = min(wanted_energy, energy[led-1, strip])
|
||||||
|
energy[led, strip] += pulled_energy
|
||||||
|
energy[led-1, strip] -= pulled_energy
|
||||||
|
|
||||||
|
# decrease global amount of energy
|
||||||
|
for led in range(nled+1):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
#energy[led, strip] *= ENERGY_MULT
|
||||||
|
#energy[led, strip] //= ENERGY_DIV
|
||||||
|
energy[led, strip] -= min(ENERGY_SUB, energy[led, strip])
|
||||||
|
|
||||||
|
# smooth the energy distribution
|
||||||
|
for led in range(nled):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
strip_left = (strip + nstrip - 1) % nstrip
|
||||||
|
strip_right = (strip + nstrip + 1) % nstrip
|
||||||
|
led_above = led + 1
|
||||||
|
led_below = led - 1
|
||||||
|
|
||||||
|
energy_smooth[led, strip] = 100 * energy[led, strip]
|
||||||
|
energy_smooth[led, strip] += 30 * energy[led, strip_left]
|
||||||
|
energy_smooth[led, strip] += 30 * energy[led, strip_right]
|
||||||
|
|
||||||
|
gain = 160
|
||||||
|
|
||||||
|
if led_above < nled:
|
||||||
|
energy_smooth[led, strip] += 10 * energy[led_above, strip]
|
||||||
|
gain += 10
|
||||||
|
if led_below >= 0:
|
||||||
|
energy_smooth[led, strip] += 10 * energy[led_below, strip]
|
||||||
|
gain += 10
|
||||||
|
|
||||||
|
energy_smooth[led, strip] //= gain
|
||||||
|
|
||||||
|
# update colors
|
||||||
|
for led in range(nled):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
color = colormap(energy_smooth[led, strip], (loop // 20) % 360)**2//255
|
||||||
|
s.fade_color(strip, led, color[0], color[1], color[2], color[3])
|
||||||
|
|
||||||
|
|
||||||
|
s.commit()
|
||||||
|
|
||||||
|
loop += 1
|
||||||
|
|
||||||
|
time.sleep(interval)
|
39
rgbw_prime_sinus.py
Executable file
39
rgbw_prime_sinus.py
Executable file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
import sys
|
||||||
|
|
||||||
|
s = sk6812.SK6812(sys.argv[1], 2703)
|
||||||
|
|
||||||
|
phase = 0
|
||||||
|
nled = 16
|
||||||
|
nstrip = 8
|
||||||
|
|
||||||
|
interval = 1.0/60
|
||||||
|
|
||||||
|
scale = 0.15
|
||||||
|
|
||||||
|
strip = 0
|
||||||
|
|
||||||
|
tiltphase = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
for i in range(nled):
|
||||||
|
for strip in range(nstrip):
|
||||||
|
x = 2*math.pi * i / nled
|
||||||
|
y = 2*math.pi * strip * 2*math.sin(tiltphase) / nstrip
|
||||||
|
r = scale * (127 + 127 * math.sin(y + x + 13*phase + 0 * math.pi/2))
|
||||||
|
g = scale * (127 + 127 * math.sin(y + x + 23*phase + 1 * math.pi/2))
|
||||||
|
b = scale * (127 + 127 * math.sin(y + x + 42*phase + 2 * math.pi/2))
|
||||||
|
w = scale * 0.6 * (127 + 127 * math.sin(y + x + 5*phase + 3 * math.pi/2))
|
||||||
|
|
||||||
|
s.set_color((strip+5)%nstrip, i, r, g, b, w)
|
||||||
|
|
||||||
|
s.commit()
|
||||||
|
|
||||||
|
phase += 2*math.pi * interval / 41
|
||||||
|
tiltphase += 2*math.pi * interval / 11
|
||||||
|
time.sleep(interval)
|
||||||
|
|
34
rgbw_sinus.py
Executable file
34
rgbw_sinus.py
Executable file
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
|
||||||
|
s = sk6812.SK6812("192.168.42.1", 2703)
|
||||||
|
|
||||||
|
phase = 0
|
||||||
|
nled = 16
|
||||||
|
nstrip = 8
|
||||||
|
|
||||||
|
interval = 1.0/60
|
||||||
|
|
||||||
|
scale = 0.1
|
||||||
|
|
||||||
|
strip = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
for i in range(nled):
|
||||||
|
x = 2*math.pi * i / nled
|
||||||
|
r = scale * (127 + 127 * math.sin(x + 8*phase + 0 * math.pi/2))
|
||||||
|
g = scale * (127 + 127 * math.sin(x + 4*phase + 1 * math.pi/2))
|
||||||
|
b = scale * (127 + 127 * math.sin(x + 2*phase + 2 * math.pi/2))
|
||||||
|
w = scale * (127 + 127 * math.sin(x + 1*phase + 3 * math.pi/2))
|
||||||
|
|
||||||
|
for strip in range(nstrip):
|
||||||
|
s.set_color(strip, i, r, g, b, w)
|
||||||
|
|
||||||
|
s.commit()
|
||||||
|
|
||||||
|
phase += 2*math.pi * interval / 10
|
||||||
|
time.sleep(interval)
|
||||||
|
|
33
rundumleuchte.py
Executable file
33
rundumleuchte.py
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sk6812_multistrip as sk6812
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
|
||||||
|
num_modules = 16
|
||||||
|
num_strips = 8
|
||||||
|
|
||||||
|
interval = 1/30
|
||||||
|
|
||||||
|
w = sk6812.SK6812("10.42.7.145", 2703)
|
||||||
|
w.set_fadestep(0.80/interval)
|
||||||
|
|
||||||
|
color = [255, 0, 255, 0]
|
||||||
|
|
||||||
|
cur_strip = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
for k in range(num_modules):
|
||||||
|
f = math.sin(math.pi * k / num_modules)
|
||||||
|
w.add_color(cur_strip, k, f*color[0], f*color[1], f*color[2], f*color[3])
|
||||||
|
|
||||||
|
for strip in range(8):
|
||||||
|
for i in range(num_modules):
|
||||||
|
w.fade_color(strip, i, 0, 0, 0, 0)
|
||||||
|
|
||||||
|
w.commit()
|
||||||
|
|
||||||
|
cur_strip += 1
|
||||||
|
cur_strip %= num_strips
|
||||||
|
|
||||||
|
time.sleep(interval)
|
Loading…
Reference in a new issue