From fb8c10876b6cc9ebe0a49521342292371ad8ce26 Mon Sep 17 00:00:00 2001 From: jm-github Date: Thu, 30 Oct 2014 16:02:30 +0000 Subject: [PATCH] 5 more effects Former-commit-id: e6a826299ad48143cb155e7113a34bd6d3b20246 --- effects/loop.json | 7 +++++++ effects/loop.py | 34 ++++++++++++++++++++++++++++++++++ effects/loop2.json | 7 +++++++ effects/loop2.py | 33 +++++++++++++++++++++++++++++++++ effects/random.json | 7 +++++++ effects/random.py | 25 +++++++++++++++++++++++++ effects/sparks-color.json | 7 +++++++ effects/sparks-color.py | 35 +++++++++++++++++++++++++++++++++++ effects/sparks.json | 7 +++++++ effects/sparks.py | 33 +++++++++++++++++++++++++++++++++ 10 files changed, 195 insertions(+) create mode 100644 effects/loop.json create mode 100644 effects/loop.py create mode 100644 effects/loop2.json create mode 100644 effects/loop2.py create mode 100644 effects/random.json create mode 100644 effects/random.py create mode 100644 effects/sparks-color.json create mode 100644 effects/sparks-color.py create mode 100644 effects/sparks.json create mode 100644 effects/sparks.py diff --git a/effects/loop.json b/effects/loop.json new file mode 100644 index 00000000..9415f8b1 --- /dev/null +++ b/effects/loop.json @@ -0,0 +1,7 @@ +{ + "name" : "Loop", + "script" : "loop.py", + "args" : + { + } +} diff --git a/effects/loop.py b/effects/loop.py new file mode 100644 index 00000000..93011e97 --- /dev/null +++ b/effects/loop.py @@ -0,0 +1,34 @@ +import hyperion +import time +import colorsys +import random + +# Initialize the led data +ledData = bytearray() +for i in range(hyperion.ledCount): + ledData += bytearray((0,0,0)) + +sleepTime = 0.002 + +runners = [ +{ "i":0, "pos":0, "c":0, "step":9 , "lvl":255}, +{ "i":1, "pos":0, "c":0, "step":8 , "lvl":255}, +{ "i":2, "pos":0, "c":0, "step":7 , "lvl":255}, +{ "i":0, "pos":0, "c":0, "step":6 , "lvl":0}, +{ "i":1, "pos":0, "c":0, "step":5 , "lvl":0}, +{ "i":2, "pos":0, "c":0, "step":4, "lvl":0}, +] + +# Start the write data loop +while not hyperion.abort(): + for r in runners: + if r["c"] == 0: + #ledData[r["pos"]*3+r["i"]] = 0 + r["c"] = r["step"] + r["pos"] = (r["pos"]+1)%hyperion.ledCount + ledData[r["pos"]*3+r["i"]] = int(r["lvl"]*(0.2+0.8*random.random())) + else: + r["c"] -= 1 + + hyperion.setColor(ledData) + time.sleep(sleepTime) diff --git a/effects/loop2.json b/effects/loop2.json new file mode 100644 index 00000000..77f2c438 --- /dev/null +++ b/effects/loop2.json @@ -0,0 +1,7 @@ +{ + "name" : "Loop2", + "script" : "loop2.py", + "args" : + { + } +} diff --git a/effects/loop2.py b/effects/loop2.py new file mode 100644 index 00000000..3498ac4e --- /dev/null +++ b/effects/loop2.py @@ -0,0 +1,33 @@ +import hyperion +import time +import colorsys +import random + +# Initialize the led data +ledData = bytearray() +for i in range(hyperion.ledCount): + ledData += bytearray((0,0,0)) + +sleepTime = 0.005 + +runners = [ +{ "pos":0, "step":4 , "lvl":255}, +{ "pos":1, "step":5 , "lvl":255}, +{ "pos":2, "step":6 , "lvl":255}, +{ "pos":0, "step":7 , "lvl":255}, +{ "pos":1, "step":8 , "lvl":255}, +{ "pos":2, "step":9, "lvl":255}, +] + +# Start the write data loop +count = 0 +while not hyperion.abort(): + count += 1 + for r in runners: + if count%r["step"] == 0: + ledData[r["pos"]] = 0 + r["pos"] = (r["pos"]+3)%(hyperion.ledCount*3) + ledData[r["pos"]] = r["lvl"] + + hyperion.setColor(ledData) + time.sleep(sleepTime) diff --git a/effects/random.json b/effects/random.json new file mode 100644 index 00000000..dc1d79ae --- /dev/null +++ b/effects/random.json @@ -0,0 +1,7 @@ +{ + "name" : "Random", + "script" : "random.py", + "args" : + { + } +} diff --git a/effects/random.py b/effects/random.py new file mode 100644 index 00000000..0f5406b1 --- /dev/null +++ b/effects/random.py @@ -0,0 +1,25 @@ +import hyperion +import time +import colorsys +import random + +# Initialize the led data +ledData = bytearray() +for i in range(hyperion.ledCount): + ledData += bytearray((0,0,0)) + +sleepTime = 0.001 + +# Start the write data loop +while not hyperion.abort(): + hyperion.setColor(ledData) + for i in range(hyperion.ledCount): + if random.randrange(10) == 1: + hue = random.random() + sat = 1.0 + val = random.random() + rgb = colorsys.hsv_to_rgb(hue, sat, val) + ledData[i*3 ] = int(255*rgb[0]) + ledData[i*3+1] = int(255*rgb[1]) + ledData[i*3+2] = int(255*rgb[2]) + time.sleep(sleepTime) diff --git a/effects/sparks-color.json b/effects/sparks-color.json new file mode 100644 index 00000000..1c3e8146 --- /dev/null +++ b/effects/sparks-color.json @@ -0,0 +1,7 @@ +{ + "name" : "Sparks color", + "script" : "sparks-color.py", + "args" : + { + } +} diff --git a/effects/sparks-color.py b/effects/sparks-color.py new file mode 100644 index 00000000..34b5acf5 --- /dev/null +++ b/effects/sparks-color.py @@ -0,0 +1,35 @@ +import hyperion +import time +import colorsys +import random + +# Get the parameters +rotationTime = float(hyperion.args.get('rotation-time', 3.0)) +brightness = float(hyperion.args.get('brightness', 1.0)) +saturation = float(hyperion.args.get('saturation', 1.0)) +reverse = bool(hyperion.args.get('reverse', False)) + +# Check parameters +rotationTime = max(0.1, rotationTime) +brightness = max(0.0, min(brightness, 1.0)) +saturation = max(0.0, min(saturation, 1.0)) + +# Initialize the led data +ledData = bytearray() + +sleepTime = 0.05 + +# Start the write data loop +while not hyperion.abort(): + ledData[:] = bytearray(3*hyperion.ledCount) + for i in range(hyperion.ledCount): + if random.random() < 0.005: + hue = random.random() + sat = 1 + val = 1 + rgb = colorsys.hsv_to_rgb(hue, sat, val) + ledData[i*3] = int(255*rgb[0]) + ledData[i*3+1] = int(255*rgb[1]) + ledData[i*3+2] = int(255*rgb[2]) + hyperion.setColor(ledData) + time.sleep(sleepTime) diff --git a/effects/sparks.json b/effects/sparks.json new file mode 100644 index 00000000..d4040309 --- /dev/null +++ b/effects/sparks.json @@ -0,0 +1,7 @@ +{ + "name" : "Sparks", + "script" : "sparks.py", + "args" : + { + } +} diff --git a/effects/sparks.py b/effects/sparks.py new file mode 100644 index 00000000..821719e2 --- /dev/null +++ b/effects/sparks.py @@ -0,0 +1,33 @@ +import hyperion +import time +import colorsys +import random + +# Get the parameters +rotationTime = float(hyperion.args.get('rotation-time', 3.0)) +brightness = float(hyperion.args.get('brightness', 1.0)) +saturation = float(hyperion.args.get('saturation', 1.0)) +reverse = bool(hyperion.args.get('reverse', False)) + +# Check parameters +rotationTime = max(0.1, rotationTime) +brightness = max(0.0, min(brightness, 1.0)) +saturation = max(0.0, min(saturation, 1.0)) + +# Initialize the led data +ledData = bytearray() +for i in range(hyperion.ledCount): + ledData += bytearray((0, 0, 0)) + +sleepTime = 0.05 + +# Start the write data loop +while not hyperion.abort(): + ledData[:] = bytearray(3*hyperion.ledCount) + for i in range(hyperion.ledCount): + if random.random() < 0.005: + ledData[i*3] = 255 + ledData[i*3+1] = 255 + ledData[i*3+2] = 255 + hyperion.setColor(ledData) + time.sleep(sleepTime)