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()