#Created By: Justin Healy and Vin Presciutti || 2021 #Based off of work done by 2020 Melissa LeBlanc-Williams, written for Adafruit Industries, MIT #!/usr/bin/python3 import board import neopixel from PIL import Image from adafruit_pixel_framebuf import PixelFramebuffer import time import argparse gpio_pin = board.D18 pixel_width = 8 scroll_width = pixel_width + 1 pixel_height = 16 scroll_height = pixel_height + 1 pixel_max = pixel_width * pixel_height - 1 led_message = "Jaki is the love of my life" # Main program logic follows: if __name__ == '__main__': # Process arguments parser = argparse.ArgumentParser() parser.add_argument('-c', '--clear', action='store_true', help='clear the display on exit') args = parser.parse_args() # Create NeoPixel object with appropriate configuration. neo_pixel = neopixel.NeoPixel(gpio_pin, pixel_width * pixel_height, brightness=0.1, auto_write=False) #Create PixelFramebuffer object with appropriate configuration. pixel_framebuf = PixelFramebuffer(neo_pixel, pixel_width, pixel_height, reverse_x=True,alternating=True) print ('Press Ctrl-C to quit.') if not args.clear: print('Use "-c" argument to clear LEDs on exit') try: while True: led_message_len = len(led_message) led_message_scroll_height = led_message_len * 16 for led_scroll in range(0, led_message_scroll_height , 1): led_char_counter = 1 pixel_framebuf.fill(0x000000) # pixel_framebuf.display() for led_char in led_message: led_char_spacing = 8 * led_char_counter led_char_pos = pixel_height - led_scroll + led_char_spacing pixel_framebuf.text(led_char, 0, led_char_pos , 0x00FF00) led_char_counter += 1 pixel_framebuf.display() time.sleep(25/500) except KeyboardInterrupt: if args.clear: neo_pixel.deinit()