import board
import time
import adafruit_matrixkeypad
import digitalio
from digitalio import DigitalInOut, Direction, Pull
from rainbowio import colorwheel
import neopixel
import animation
from animation import Animation
import comet
from comet import Comet
import chase
from chase import Chase
import rainbowchase
from rainbowchase import RainbowChase
import pulseio
import adafruit_irremote
pulsein = pulseio.PulseIn(board.GP0, maxlen=120, idle_state=True)
decoder = adafruit_irremote.GenericDecode()
##COLOR LIST
RED = (255, 0, 0)
YELLOW = (150, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
ORANGE = (255, 165, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
rows = [digitalio.DigitalInOut(x) for x in (board.GP1, board.GP2, board.GP3, board.GP4)]
cols = [digitalio.DigitalInOut(x) for x in (board.GP5, board.GP6, board.GP7, board.GP9)]
keys = ((1, 2, 3, "A"),
(4, 5, 6, "B"),
(7, 8, 9, "C"),
('*', 0, '#', "D"))
keypad = adafruit_matrixkeypad.Matrix_Keypad(rows, cols, keys)
pixel_pin = board.GP27 # Neopixel(s) data on this pin
led = DigitalInOut(board.LED)
led.direction = Direction.OUTPUT
num_pixels = 20
pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=1, auto_write=False)
comet1 = Comet(pixels, .1, RED, bounce=True)
comet2 = Comet(pixels, .1, ORANGE, bounce=True)
comet3 = Comet(pixels, .1, YELLOW, bounce=True)
chase = Chase(pixels, .1, BLUE)
rainbowchase = RainbowChase(pixels, .1, size=3, spacing=2)
def color_chase(color, wait):
for i in range(num_pixels):
pixels[i] = color
time.sleep(wait)
pixels.show()
time.sleep(0.5)
def rainbow_cycle(wait):
for j in range(255):
for i in range(num_pixels):
rc_index = (i * 256 // num_pixels) + j
pixels[i] = colorwheel(rc_index & 255)
pixels.show()
time.sleep(wait)
def setline(pixel1, pixel2, color):
for i in range(pixel1, pixel2 + 1):
pixels[i] = color
pixels.show()
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
while True:
keys = keypad.pressed_keys
if keys == [1]:
INDEX0 = 0
INDEX1 = 1
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [2]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 1
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [3]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 1
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [4]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 1
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [5]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 1
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [6]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 1
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [7]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 1
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [8]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 1
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [9]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 1
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == [0]:
INDEX0 = 1
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == ["A"]:
INDEX0 = 0
INDEX1 = 1
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 1
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == ["B"]:
INDEX0 = 0
INDEX1 = 1
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 1
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == ["C"]:
INDEX0 = 0
INDEX1 = 1
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 1
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 0
if keys == ["D"]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 1
INDEXSTAR = 0
INDEXHASH = 0
if keys == ["*"]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 1
INDEXHASH = 0
if keys == ["#"]:
INDEX0 = 0
INDEX1 = 0
INDEX2 = 0
INDEX3 = 0
INDEX4 = 0
INDEX5 = 0
INDEX6 = 0
INDEX7 = 0
INDEX8 = 0
INDEX9 = 0
INDEXA = 0
INDEXB = 0
INDEXC = 0
INDEXD = 0
INDEXSTAR = 0
INDEXHASH = 1
if INDEX0 == 1:
comet1.animate()
if INDEX1 == 1:
setline(0, 4, ORANGE)
setline(5, 19, WHITE)
if INDEX2 == 1:
setline(5, 9, YELLOW)
setline(0, 4, WHITE)
setline(10, 19, WHITE)
if INDEX3 == 1:
setline(10, 14, GREEN)
setline(0, 9, WHITE)
setline(15, 19, WHITE)
if INDEX4 == 1:
setline(15, 19, BLUE)
setline(0, 14, WHITE)
if INDEX5 == 1:
pixels.fill(RED)
pixels.show()
if INDEX6 == 1:
pixels.fill(WHITE)
pixels.show()
if INDEX7 == 1:
comet2.animate()
if INDEX8 == 1:
comet3.animate()
if INDEX9 ==1:
pixels.fill(WHITE)
pixels.show()
if INDEXA == 1:
pixels.fill(WHITE)
pixels.show()
if INDEXB == 1:
pixels.fill(WHITE)
pixels.show()
if INDEXC == 1:
pixels.fill(WHITE)
pixels.show()
if INDEXD == 1:
pixels.fills(WHITE)
pixels.show()
if INDEXSTAR == 1:
chase.animate()
if INDEXHASH == 1:
rainbowchase.animate()