Merge pull request #124 from jposada202020/blink-with-user-color-selected-background
Blink with user color selected background
This commit is contained in:
commit
37800fe313
5 changed files with 61 additions and 6 deletions
|
|
@ -37,10 +37,15 @@ class Blink(ColorCycle):
|
||||||
:param pixel_object: The initialised LED object.
|
:param pixel_object: The initialised LED object.
|
||||||
:param float speed: Animation speed in seconds, e.g. ``0.1``.
|
:param float speed: Animation speed in seconds, e.g. ``0.1``.
|
||||||
:param color: Animation color in ``(r, g, b)`` tuple, or ``0x000000`` hex format.
|
:param color: Animation color in ``(r, g, b)`` tuple, or ``0x000000`` hex format.
|
||||||
|
:param background_color: Background color in ``(r, g, b)`` tuple, or ``0x000000``
|
||||||
|
hex format. Defaults to BLACK.
|
||||||
|
:param name: A human-readable name for the Animation. Used by the string function.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, pixel_object, speed, color, name=None):
|
# pylint: disable=too-many-arguments
|
||||||
super().__init__(pixel_object, speed, [color, BLACK], name=name)
|
def __init__(self, pixel_object, speed, color, background_color=BLACK, name=None):
|
||||||
|
self._background_color = background_color
|
||||||
|
super().__init__(pixel_object, speed, [color, background_color], name=name)
|
||||||
|
|
||||||
def _set_color(self, color):
|
def _set_color(self, color):
|
||||||
self.colors = [color, BLACK]
|
self.colors = [color, self._background_color]
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,13 @@ class Volume(Animation):
|
||||||
|
|
||||||
# pylint: disable=too-many-arguments
|
# pylint: disable=too-many-arguments
|
||||||
def __init__(
|
def __init__(
|
||||||
self, pixel_object, speed, brightest_color, decoder, max_volume=500, name=None
|
self,
|
||||||
|
pixel_object,
|
||||||
|
speed,
|
||||||
|
brightest_color,
|
||||||
|
decoder,
|
||||||
|
max_volume=500,
|
||||||
|
name=None,
|
||||||
):
|
):
|
||||||
self._decoder = decoder
|
self._decoder = decoder
|
||||||
self._num_pixels = len(pixel_object)
|
self._num_pixels = len(pixel_object)
|
||||||
|
|
@ -89,8 +95,15 @@ class Volume(Animation):
|
||||||
)
|
)
|
||||||
|
|
||||||
lit_pixels = int(
|
lit_pixels = int(
|
||||||
map_range(self._decoder.rms_level, 0, self._max_volume, 0, self._num_pixels)
|
map_range(
|
||||||
|
self._decoder.rms_level,
|
||||||
|
0,
|
||||||
|
self._max_volume,
|
||||||
|
0,
|
||||||
|
self._num_pixels,
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
# pylint: disable=consider-using-min-builtin
|
||||||
if lit_pixels > self._num_pixels:
|
if lit_pixels > self._num_pixels:
|
||||||
lit_pixels = self._num_pixels
|
lit_pixels = self._num_pixels
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ class AnimationSequence:
|
||||||
animations.animate()
|
animations.animate()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# pylint: disable=too-many-instance-attributes
|
# pylint: disable=too-many-instance-attributes, too-many-arguments
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
*members,
|
*members,
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,14 @@ Demonstrates the blink animation.
|
||||||
:caption: examples/led_animation_blink.py
|
:caption: examples/led_animation_blink.py
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
|
Blink with a selcted background color
|
||||||
|
----------------------------------------
|
||||||
|
Demonstrates the blink animation with an user defined background color.
|
||||||
|
|
||||||
|
.. literalinclude:: ../examples/led_animation_blink_with_background.py
|
||||||
|
:caption: examples/led_animation_blink_with_background.py
|
||||||
|
:linenos:
|
||||||
|
|
||||||
Comet
|
Comet
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
|
||||||
29
examples/led_animation_blink_with_background.py
Normal file
29
examples/led_animation_blink_with_background.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# SPDX-FileCopyrightText: 2025 Jose D. Montoya
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
"""
|
||||||
|
This example blinks the LEDs purple with a yellow background at a 0.5 second interval.
|
||||||
|
|
||||||
|
For QT Py Haxpress and a NeoPixel strip. Update pixel_pin and pixel_num to match your wiring if
|
||||||
|
using a different board or form of NeoPixels.
|
||||||
|
|
||||||
|
This example will run on SAMD21 (M0) Express boards (such as Circuit Playground Express or QT Py
|
||||||
|
Haxpress), but not on SAMD21 non-Express boards (such as QT Py or Trinket).
|
||||||
|
"""
|
||||||
|
import board
|
||||||
|
import neopixel
|
||||||
|
|
||||||
|
from adafruit_led_animation.animation.blink import Blink
|
||||||
|
from adafruit_led_animation.color import PURPLE, YELLOW
|
||||||
|
|
||||||
|
# Update to match the pin connected to your NeoPixels
|
||||||
|
pixel_pin = board.A3
|
||||||
|
# Update to match the number of NeoPixels you have connected
|
||||||
|
pixel_num = 30
|
||||||
|
|
||||||
|
pixels = neopixel.NeoPixel(pixel_pin, pixel_num, brightness=0.5, auto_write=False)
|
||||||
|
|
||||||
|
blink = Blink(pixels, speed=0.5, color=PURPLE, background_color=YELLOW)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
blink.animate()
|
||||||
Loading…
Reference in a new issue