/ examples / led_animation.py
led_animation.py
 1  import adafruit_pixelbuf
 2  import board
 3  import neopixel_write_pi5
 4  from adafruit_led_animation.animation.rainbow import Rainbow
 5  from adafruit_led_animation.animation.rainbowchase import RainbowChase
 6  from adafruit_led_animation.animation.rainbowcomet import RainbowComet
 7  from adafruit_led_animation.animation.rainbowsparkle import RainbowSparkle
 8  from adafruit_led_animation.sequence import AnimationSequence
 9  
10  
11  class Pi5Pixelbuf(adafruit_pixelbuf.PixelBuf):
12      def __init__(self, pin, size, **kwargs):
13          self._pin = pin
14          super().__init__(size=size, **kwargs)
15  
16      def _transmit(self, buf):
17          neopixel_write_pi5.neopixel_write(self._pin, buf)
18  
19  pixels = Pi5Pixelbuf(board.D13, 120, auto_write=True, byteorder="WBGR")
20  
21  rainbow = Rainbow(pixels, speed=0.02, period=2)
22  rainbow_chase = RainbowChase(pixels, speed=0.02, size=5, spacing=3)
23  rainbow_comet = RainbowComet(pixels, speed=0.02, tail_length=7, bounce=True)
24  rainbow_sparkle = RainbowSparkle(pixels, speed=0.02, num_sparkles=15)
25  
26  
27  animations = AnimationSequence(
28      rainbow,
29      rainbow_chase,
30      rainbow_comet,
31      rainbow_sparkle,
32      advance_interval=5,
33      auto_clear=True,
34  )
35  
36  try:
37      while True:
38          animations.animate()
39  finally:
40      pixels.fill(0)
41      pixels.show()