48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
from telemetrix_rpi_pico import telemetrix_rpi_pico
|
|
from time import sleep as delay
|
|
import signal
|
|
import sys
|
|
import colorsys
|
|
import numpy
|
|
from scipy.ndimage.interpolation import shift
|
|
from time import perf_counter as millis
|
|
import threading
|
|
def sigint_handler(signal, frame):
|
|
|
|
print ('KeyboardInterrupt is caught')
|
|
board.shutdown()
|
|
sys.exit(0)
|
|
signal.signal(signal.SIGINT, sigint_handler)
|
|
|
|
board = telemetrix_rpi_pico.TelemetrixRpiPico()
|
|
|
|
NUM_LEDS = 60
|
|
TIME_UNIT = 0.1
|
|
|
|
global spaces
|
|
spaces = numpy.zeros(NUM_LEDS)
|
|
|
|
board.set_pin_mode_neopixel(pin_number=2,num_pixels=NUM_LEDS)
|
|
board.neopixel_clear(auto_show=True)
|
|
|
|
def updateLED():
|
|
for i in range(0,NUM_LEDS):
|
|
board.neo_pixel_set_value(i,r=int(spaces[i]*255),g=int(spaces[i]*255),b=int(spaces[i]*255))
|
|
board.neopixel_show()
|
|
def advanceTimeUnit():
|
|
global spaces
|
|
while True:
|
|
spaces = shift(spaces,1,cval=0)
|
|
updateLED()
|
|
delay(TIME_UNIT)
|
|
atu = threading.Thread(target=advanceTimeUnit)
|
|
atu.start()
|
|
|
|
while True:
|
|
input("Press Enter to Particle")
|
|
spaces[0] = 1
|
|
|
|
|
|
|
|
|