rainbow effect tests
This commit is contained in:
parent
077fa4098a
commit
ecc9dfd56d
@ -14,16 +14,50 @@ class rainbowEffect(BaseEffect):
|
|||||||
#loop effect as long as not stopped
|
#loop effect as long as not stopped
|
||||||
def effect(self):
|
def effect(self):
|
||||||
debug(self)
|
debug(self)
|
||||||
if self.i < 3*255*self.speed:
|
"""Draw rainbow that fades across all pixels at once."""
|
||||||
c = self.wheel_color(self.i,self.speed)
|
for j in range(256*75):
|
||||||
#print("r: "+ str(round(c[0]/100*helligkeit,2))+" g: "+str(round(c[1]/100*helligkeit,2))+" b: "+str(round(c[2]/100*helligkeit,2)))
|
|
||||||
for rgbStrip in self.effectRGBStrips():
|
for rgbStrip in self.effectRGBStrips():
|
||||||
#print(c[0],c[1],c[2])
|
for i in range(rgbStrip.STRIP_LENGHT):
|
||||||
rgbStrip.RGB(c[0],c[1],c[2],self.helligkeit)
|
color = self.wheel((i+j) & 255)
|
||||||
time.sleep(0.01)
|
rgbStrip.WS2812b(i, color[0],color[1],color[2])
|
||||||
self.i =self.i +1
|
for rgbStrip in self.effectRGBStrips():
|
||||||
else:
|
rgbStrip.show()
|
||||||
self.i=0
|
time.sleep(100/1000.0)
|
||||||
|
|
||||||
|
"""Draw rainbow that uniformly distributes itself across all pixels.
|
||||||
|
for j in range(256*iterations):
|
||||||
|
for i in range(rgbStrip.STRIP_LENGHT):
|
||||||
|
color = self.wheel(((i * 256 // rgbStrip.STRIP_LENGHT) + j) & 255)
|
||||||
|
rgbStrip.WS2812b(i, color[0],color[1],color[2])
|
||||||
|
#strip.show()
|
||||||
|
time.sleep(wait_ms/1000.0)"""
|
||||||
|
|
||||||
|
"""Rainbow movie theater light style chaser animation.
|
||||||
|
for j in range(256):
|
||||||
|
for q in range(3):
|
||||||
|
for rgbStrip in self.effectRGBStrips():
|
||||||
|
for i in range(0, rgbStrip.STRIP_LENGHT, 3):
|
||||||
|
color=self.wheel((i+j) % 255)
|
||||||
|
rgbStrip.WS2812b(i+q, color[0],color[1],color[2])
|
||||||
|
|
||||||
|
for rgbStrip in self.effectRGBStrips():
|
||||||
|
rgbStrip.show()
|
||||||
|
time.sleep(50/1000.0)
|
||||||
|
for rgbStrip in self.effectRGBStrips():
|
||||||
|
for i in range(0, rgbStrip.STRIP_LENGHT, 3):
|
||||||
|
rgbStrip.WS2812b(i+q, 0,0,0)"""
|
||||||
|
|
||||||
|
|
||||||
|
#if self.i < 3*255*self.speed:
|
||||||
|
# c = self.wheel_color(self.i,self.speed)
|
||||||
|
# #print("r: "+ str(round(c[0]/100*helligkeit,2))+" g: "+str(round(c[1]/100*helligkeit,2))+" b: "+str(round(c[2]/100*helligkeit,2)))
|
||||||
|
# for rgbStrip in self.effectRGBStrips():
|
||||||
|
# #print(c[0],c[1],c[2])
|
||||||
|
# rgbStrip.RGB(c[0],c[1],c[2],self.helligkeit)
|
||||||
|
# time.sleep(0.01)
|
||||||
|
# self.i =self.i +1
|
||||||
|
#else:
|
||||||
|
# self.i=0
|
||||||
|
|
||||||
# for overriding by the effect, when a strip is added
|
# for overriding by the effect, when a strip is added
|
||||||
def onRGBStripAdded(self,rgbStrip):
|
def onRGBStripAdded(self,rgbStrip):
|
||||||
@ -55,6 +89,66 @@ class rainbowEffect(BaseEffect):
|
|||||||
|
|
||||||
return [r/speed, g/speed, b/speed]
|
return [r/speed, g/speed, b/speed]
|
||||||
|
|
||||||
|
# Define functions which animate LEDs in various ways.
|
||||||
|
#https://github.com/jgarff/rpi_ws281x/blob/master/python/examples/SK6812_strandtest.py
|
||||||
|
def colorWipe(self, rgbStrip, red, green, blue, wait_ms=50):
|
||||||
|
"""Wipe color across display a pixel at a time."""
|
||||||
|
for i in range(rgbStrip.STRIP_LENGHT):
|
||||||
|
rgbStrip.WS2812b(i, red,green,blue)
|
||||||
|
time.sleep(wait_ms/1000.0)
|
||||||
|
|
||||||
|
def theaterChase(self, rgbStrip , red, green, blue, wait_ms=50, iterations=10):
|
||||||
|
"""Movie theater light style chaser animation."""
|
||||||
|
for j in range(iterations):
|
||||||
|
for q in range(3):
|
||||||
|
for i in range(0, rgbStrip.STRIP_LENGHT, 3):
|
||||||
|
rgbStrip.WS2812b(i+q, red,green,blue)
|
||||||
|
#strip.show()
|
||||||
|
time.sleep(wait_ms/1000.0)
|
||||||
|
for i in range(0, rgbStrip.STRIP_LENGHT, 3):
|
||||||
|
rgbStrip.WS2812b(i+q, red,green,blue)
|
||||||
|
|
||||||
|
def wheel(self,pos):
|
||||||
|
"""Generate rainbow colors across 0-255 positions."""
|
||||||
|
if pos < 85:
|
||||||
|
return [pos * 3, 255 - pos * 3, 0]
|
||||||
|
elif pos < 170:
|
||||||
|
pos -= 85
|
||||||
|
return [255 - pos * 3, 0, pos * 3]
|
||||||
|
else:
|
||||||
|
pos -= 170
|
||||||
|
return [0, pos * 3, 255 - pos * 3]
|
||||||
|
|
||||||
|
def rainbow(self, rgbStrip, wait_ms=20, iterations=1):
|
||||||
|
"""Draw rainbow that fades across all pixels at once."""
|
||||||
|
for j in range(256*iterations):
|
||||||
|
for i in range(rgbStrip.STRIP_LENGHT):
|
||||||
|
color = self.wheel((i+j) & 255)
|
||||||
|
rgbStrip.WS2812b(i, color[0],color[1],color[2])
|
||||||
|
#strip.show()
|
||||||
|
time.sleep(wait_ms/1000.0)
|
||||||
|
|
||||||
|
def rainbowCycle(self,rgbStrip, wait_ms=20, iterations=5):
|
||||||
|
"""Draw rainbow that uniformly distributes itself across all pixels."""
|
||||||
|
for j in range(256*iterations):
|
||||||
|
for i in range(rgbStrip.STRIP_LENGHT):
|
||||||
|
color = self.wheel(((i * 256 // rgbStrip.STRIP_LENGHT) + j) & 255)
|
||||||
|
rgbStrip.WS2812b(i, color[0],color[1],color[2])
|
||||||
|
#strip.show()
|
||||||
|
time.sleep(wait_ms/1000.0)
|
||||||
|
|
||||||
|
def theaterChaseRainbow(self,rgbStrip, wait_ms=50):
|
||||||
|
"""Rainbow movie theater light style chaser animation."""
|
||||||
|
for j in range(256):
|
||||||
|
for q in range(3):
|
||||||
|
for i in range(0, rgbStrip.STRIP_LENGHT, 3):
|
||||||
|
color=self.wheel((i+j) % 255)
|
||||||
|
rgbStrip.WS2812b(i+q, color[0],color[1],color[2])
|
||||||
|
#strip.show()
|
||||||
|
time.sleep(wait_ms/1000.0)
|
||||||
|
for i in range(0, rgbStrip.STRIP_LENGHT, 3):
|
||||||
|
rgbStrip.WS2812b(i+q, 0,0,0)
|
||||||
|
|
||||||
# def wheel_color_2(self,r=255,g=0,b=0):
|
# def wheel_color_2(self,r=255,g=0,b=0):
|
||||||
# if r<255:
|
# if r<255:
|
||||||
# r=r+1
|
# r=r+1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user