Rainbow effects added

Former-commit-id: deb3051bfb
This commit is contained in:
johan 2013-11-30 17:42:57 +01:00
parent 1ec84005c0
commit 4784b4ec42
2 changed files with 71 additions and 0 deletions

31
effects/rainbow-mood.py Normal file
View File

@ -0,0 +1,31 @@
import hyperion
import time
import colorsys
# Get the rotation time
rotationTime = hyperion.args.get('rotation-time', 3.0)
# Get the brightness
brightness = hyperion.args.get('brightness', 1.0)
# Get the saturation
saturation = hyperion.args.get('saturation', 1.0)
# Get the direction
reverse = hyperion.args.get('reverse', False)
# Calculate the sleep time and hue increment
sleepTime = 0.1
hueIncrement = sleepTime / rotationTime
# Switch direction if needed
if reverse:
increment = -increment
# Start the write data loop
hue = 0.0
while not hyperion.abort():
rgb = colorsys.hsv_to_rgb(hue, saturation, brightness)
hyperion.setColor(int(255*rgb[0]), int(255*rgb[1]), int(255*rgb[2]))
hue = (hue + hueIncrement) % 1.0
time.sleep(sleepTime)

40
effects/rainbow-swirl.py Normal file
View File

@ -0,0 +1,40 @@
import hyperion
import time
import colorsys
# Get the rotation time
rotationTime = hyperion.args.get('rotation-time', 3.0)
# Get the brightness
brightness = hyperion.args.get('brightness', 1.0)
# Get the saturation
saturation = hyperion.args.get('saturation', 1.0)
# Get the direction
reverse = hyperion.args.get('reverse', False)
# Initialize the led data
ledData = bytearray()
for i in range(hyperion.ledCount):
hue = float(i)/hyperion.ledCount
rgb = colorsys.hsv_to_rgb(hue, saturation, brightness)
ledData += bytearray((int(255*rgb[0]), int(255*rgb[1]), int(255*rgb[2])))
# Calculate the sleep time and rotation increment
increment = 3
sleepTime = rotationTime / hyperion.ledCount
while sleepTime < 0.05:
increment *= 2
sleepTime *= 2
increment %= hyperion.ledCount
# Switch direction if needed
if reverse:
increment = -increment
# Start the write data loop
while not hyperion.abort():
hyperion.setColor(ledData)
ledData = ledData[-increment:] + ledData[:-increment]
time.sleep(sleepTime)