Create is31fl3741_13x9_sequential_chain.py
Possibly due to power requirements and/or inability to setup a tuple for addresses currently could only get them to run sequentially. A cheap trick that will really only work for scrolling marquee.
This commit is contained in:
parent
5ac6531e26
commit
69b0516bfe
1 changed files with 70 additions and 0 deletions
70
examples/is31fl3741_13x9_sequential_chain.py
Normal file
70
examples/is31fl3741_13x9_sequential_chain.py
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# SPDX-FileCopyrightText: 2023 DJDevon3
|
||||
# SPDX-License-Identifier: MIT
|
||||
# Chaining 4 13x9 Matrix's to run sequentially (not simultaneously)
|
||||
|
||||
import board
|
||||
from adafruit_led_animation.sequence import AnimationSequence
|
||||
from adafruit_led_animation.animation.rainbowchase import RainbowChase
|
||||
from adafruit_is31fl3741 import PREFER_BUFFER
|
||||
from adafruit_is31fl3741.adafruit_rgbmatrixqt import Adafruit_RGBMatrixQT
|
||||
from adafruit_is31fl3741.is31fl3741_pixelbuf import IS31FL3741_PixelBuf
|
||||
|
||||
# Initialize I2C Bus
|
||||
i2c = board.STEMMA_I2C()
|
||||
# i2c = board.I2C() # uses board.SCL and board.SDA
|
||||
|
||||
# Initialize each 13x9 Matrix
|
||||
Matrix30 = Adafruit_RGBMatrixQT(i2c, address=0x30, allocate=PREFER_BUFFER)
|
||||
Matrix30.set_led_scaling(0xFF)
|
||||
Matrix30.global_current = 0x01
|
||||
Matrix30.enable = True
|
||||
|
||||
Matrix31 = Adafruit_RGBMatrixQT(i2c, address=0x31, allocate=PREFER_BUFFER)
|
||||
Matrix31.set_led_scaling(0xFF)
|
||||
Matrix31.global_current = 0x01
|
||||
Matrix31.enable = True
|
||||
|
||||
Matrix32 = Adafruit_RGBMatrixQT(i2c, address=0x32, allocate=PREFER_BUFFER)
|
||||
Matrix32.set_led_scaling(0xFF)
|
||||
Matrix32.global_current = 0x01
|
||||
Matrix32.enable = True
|
||||
|
||||
Matrix33 = Adafruit_RGBMatrixQT(i2c, address=0x33, allocate=PREFER_BUFFER)
|
||||
Matrix33.set_led_scaling(0xFF)
|
||||
Matrix33.global_current = 0x01
|
||||
Matrix33.enable = True
|
||||
|
||||
# Demo scrolling pixels
|
||||
WIDTH = 13
|
||||
HEIGHT = 9
|
||||
LEDS_MAP = tuple(
|
||||
(
|
||||
address
|
||||
for y in range(HEIGHT)
|
||||
for x in range(WIDTH)
|
||||
for address in Adafruit_RGBMatrixQT.pixel_addrs(x, y)
|
||||
)
|
||||
)
|
||||
Matrix30_pixels = IS31FL3741_PixelBuf(Matrix30, LEDS_MAP, init=False, auto_write=False)
|
||||
Matrix30_chase = RainbowChase(Matrix30_pixels, speed=0.1, size=1, spacing=3, step=8)
|
||||
|
||||
Matrix31_pixels = IS31FL3741_PixelBuf(Matrix31, LEDS_MAP, init=False, auto_write=False)
|
||||
Matrix31_chase = RainbowChase(Matrix31_pixels, speed=0.1, size=1, spacing=3, step=8)
|
||||
|
||||
Matrix32_pixels = IS31FL3741_PixelBuf(Matrix32, LEDS_MAP, init=False, auto_write=False)
|
||||
Matrix32_chase = RainbowChase(Matrix32_pixels, speed=0.1, size=1, spacing=3, step=8)
|
||||
|
||||
Matrix33_pixels = IS31FL3741_PixelBuf(Matrix33, LEDS_MAP, init=False, auto_write=False)
|
||||
Matrix33_chase = RainbowChase(Matrix33_pixels, speed=0.1, size=1, spacing=3, step=8)
|
||||
|
||||
# Run animation on each 13x9 matrix sequentially
|
||||
animations = AnimationSequence(
|
||||
Matrix30_chase,
|
||||
Matrix31_chase,
|
||||
Matrix32_chase,
|
||||
Matrix33_chase,
|
||||
advance_interval=1,
|
||||
auto_clear=False,
|
||||
)
|
||||
while True:
|
||||
animations.animate()
|
||||
Loading…
Reference in a new issue