-
Notifications
You must be signed in to change notification settings - Fork 495
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #227 from helgibbons/main
Couple of festive examples for Plasma 2040
- Loading branch information
Showing
2 changed files
with
87 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# This super simple example sets up two alternating colours, great for festive lights! | ||
|
||
import plasma | ||
from plasma import plasma2040 | ||
import time | ||
|
||
# Set how many LEDs you have | ||
NUM_LEDS = 50 | ||
|
||
# Pick two hues from the colour wheel (from 0-360°, try https://www.cssscript.com/demo/hsv-hsl-color-wheel-picker-reinvented/ ) | ||
HUE_1 = 0 | ||
HUE_2 = 127 | ||
|
||
# Set up brightness (between 0 and 1) | ||
BRIGHTNESS = 0.5 | ||
|
||
# Set up speed (wait time between colour changes, in seconds) | ||
SPEED = 1 | ||
|
||
# Pick *one* LED type by uncommenting the relevant line below: | ||
|
||
# APA102 / DotStar™ LEDs | ||
# led_strip = plasma.APA102(NUM_LEDS, 0, 0, plasma2040.DAT, plasma2040.CLK) | ||
|
||
# WS2812 / NeoPixel™ LEDs | ||
led_strip = plasma.WS2812(NUM_LEDS, 0, 0, plasma2040.DAT) | ||
|
||
# Start updating the LED strip | ||
led_strip.start() | ||
|
||
while True: | ||
for i in range(NUM_LEDS): | ||
# the if statements below use a modulo operation to identify the even and odd numbered LEDs | ||
if (i % 2) == 0: | ||
led_strip.set_hsv(i, HUE_1 / 360, 1.0, BRIGHTNESS) | ||
else: | ||
led_strip.set_hsv(i, HUE_2 / 360, 1.0, BRIGHTNESS) | ||
time.sleep(SPEED) | ||
|
||
for i in range(NUM_LEDS): | ||
if (i % 2) == 0: | ||
led_strip.set_hsv(i, HUE_2 / 360, 1.0, BRIGHTNESS) | ||
else: | ||
led_strip.set_hsv(i, HUE_1 / 360, 1.0, BRIGHTNESS) | ||
time.sleep(SPEED) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# This simple example randomises LED colours and brightness for a subtly sparkly effect. | ||
|
||
import plasma | ||
from plasma import plasma2040 | ||
import time | ||
# Random functions! randrange is for picking integers from a range, and uniform is for floats. | ||
from random import randrange, uniform | ||
|
||
# Set how many LEDs you have | ||
NUM_LEDS = 50 | ||
|
||
# Pick what bits of the colour wheel to use (from 0-360°, try https://www.cssscript.com/demo/hsv-hsl-color-wheel-picker-reinvented/ ) | ||
HUE_START = 180 | ||
HUE_END = 260 | ||
|
||
# Set up brightness minimum and maximum (between 0.0 and 1.0) | ||
BRIGHTNESS_MIN = 0.2 | ||
BRIGHTNESS_MAX = 0.7 | ||
|
||
# Set up speed (wait time between updates, in seconds.) | ||
SPEED = 0.3 | ||
|
||
# Pick *one* LED type by uncommenting the relevant line below: | ||
|
||
# APA102 / DotStar™ LEDs | ||
# led_strip = plasma.APA102(NUM_LEDS, 0, 0, plasma2040.DAT, plasma2040.CLK) | ||
|
||
# WS2812 / NeoPixel™ LEDs | ||
led_strip = plasma.WS2812(NUM_LEDS, 0, 0, plasma2040.DAT) | ||
|
||
# Start updating the LED strip | ||
led_strip.start() | ||
|
||
# Light up all the leds random colours and brightnesses from the specified ranges... | ||
for i in range(NUM_LEDS): | ||
led_strip.set_hsv(i, randrange(HUE_START, HUE_END) / 360, 1.0, uniform(BRIGHTNESS_MIN, BRIGHTNESS_MAX)) | ||
|
||
while True: | ||
# ...and then update one random pixel at a time to keep things fresh and sparkly. | ||
# Comment out the lines below if you want static lights. | ||
led_strip.set_hsv(randrange(0, NUM_LEDS), randrange(HUE_START, HUE_END) / 360, 1.0, uniform(BRIGHTNESS_MIN, BRIGHTNESS_MAX)) | ||
time.sleep(SPEED) |