JustPaste.it

import digitalio

import simpleio
import board
import busio
import time
from adafruit_adxl34x import ADXL345

 

i2c = busio.I2C(board.SCL, board.SDA)
accelerometer = ADXL345(i2c)

 

clock = digitalio.DigitalInOut(board.D1)
dataPin = digitalio.DigitalInOut(board.D4)
latchPin = digitalio.DigitalInOut(board.D3)

 

clock.direction = digitalio.Direction.OUTPUT
dataPin.direction = digitalio.Direction.OUTPUT
latchPin.direction = digitalio.Direction.OUTPUT

 

 

cols = [
0b00000001,
0b00000010,
0b00000100,
0b00001000,
0b00010000
]

 

rows = [ # column 1, 2, through 5
0b11111110,
0b11111101,
0b11111011,
0b11110111,
0b11101111
]

 

 

leftArrowAnim = [
[
 [rows[2], cols[0]],
 [rows[4], cols[3]],
 [rows[0], cols[3]],
 [rows[3], cols[4]],
 [rows[1], cols[4]]
],
[  
 [rows[3], cols[0]],
 [rows[1], cols[0]],
 [rows[2], cols[1]],
 [rows[4], cols[4]],
 [rows[0], cols[4]]
],
[  
 [rows[4], cols[0]],
 [rows[0], cols[0]],
 [rows[3], cols[1]],
 [rows[1], cols[1]],
 [rows[2], cols[2]]
],
[  
 [rows[4], cols[1]],
 [rows[0], cols[1]],
 [rows[3], cols[2]],
 [rows[1], cols[2]],
 [rows[2], cols[3]]
],
[  
 [rows[4], cols[2]],
 [rows[0], cols[2]],
 [rows[3], cols[3]],
 [rows[2], cols[4]],
 [rows[1], cols[3]]
]
]

 

 

rightArrowAnim = [
[
 [rows[2], cols[4]]
],
[  
 [rows[2], cols[3]],
 [rows[3], cols[4]],
 [rows[1], cols[4]]
],
[  
 [rows[2], cols[2]],
 [rows[3], cols[3]],
 [rows[1], cols[3]],
 [rows[4], cols[4]],
 [rows[0], cols[4]]
],

 

[  
 [rows[2], cols[1]],
 [rows[3], cols[2]],
 [rows[1], cols[2]],
 [rows[4], cols[3]],
 [rows[0], cols[3]]
],
[  
 [rows[2], cols[0]],
 [rows[3], cols[1]],
 [rows[1], cols[1]],
 [rows[4], cols[2]],
 [rows[0], cols[2]]
],
[
 [rows[3], cols[0]],
 [rows[1], cols[0]],
 [rows[4], cols[1]],
 [rows[0], cols[1]]
],
[  
 [rows[4], cols[0]],
 [rows[0], cols[0]]
]  
]

 

rightArrowAnimTwo = [
[
 [rows[2], cols[4]],
 [rows[3], cols[0]],
 [rows[1], cols[0]],
 [rows[4], cols[1]],
 [rows[0], cols[1]]
],
[  
 [rows[2], cols[3]],
 [rows[3], cols[4]],
 [rows[1], cols[4]],
 [rows[4], cols[0]],
 [rows[0], cols[0]]
],
[  
 [rows[2], cols[2]],
 [rows[3], cols[3]],
 [rows[1], cols[3]],
 [rows[4], cols[4]],
 [rows[0], cols[4]]
],

 

[  
 [rows[2], cols[1]],
 [rows[3], cols[2]],
 [rows[1], cols[2]],
 [rows[4], cols[3]],
 [rows[0], cols[3]]
],
[  
 [rows[2], cols[0]],
 [rows[3], cols[1]],
 [rows[1], cols[1]],
 [rows[4], cols[2]],
 [rows[0], cols[2]]
]
]

 

 

growingCircleAnim = [
[
 [rows[2], cols[2]]
],
[  
 [rows[3], cols[1]],
 [rows[2], cols[1]],
 [rows[1], cols[1]],
 [rows[3], cols[2]],
 [rows[1], cols[2]],
 [rows[3], cols[3]],
 [rows[2], cols[3]],
 [rows[1], cols[3]],
],
[
 [rows[0], cols[0]],
 [rows[0], cols[1]],
 [rows[0], cols[2]],
 [rows[0], cols[3]],
 [rows[0], cols[4]],
 [rows[1], cols[0]],
 [rows[1], cols[4]],
 [rows[2], cols[0]],
 [rows[2], cols[4]],
 [rows[3], cols[0]],
 [rows[3], cols[4]],
 [rows[4], cols[0]],
 [rows[4], cols[1]],
 [rows[4], cols[2]],
 [rows[4], cols[3]],
 [rows[4], cols[4]]
]
]

 

progressUpAnim = [
[ # 1
 [rows[1], cols[0]]
],
[ # 1
 [rows[1], cols[0]],
 [rows[1], cols[1]]
],
[ # 1
 [rows[1], cols[0]],
 [rows[1], cols[1]],
 [rows[1], cols[2]]
],
[ # 1
 [rows[1], cols[0]],
 [rows[1], cols[1]],
 [rows[1], cols[2]],
 [rows[1], cols[3]]
],
[ # 1
 [rows[1], cols[0]],
 [rows[1], cols[1]],
 [rows[1], cols[2]],
 [rows[1], cols[3]],
 [rows[1], cols[4]]
],
]

 

def animate(animation):
for frame in animation:
 startTime = time.monotonic()
 while time.monotonic() < startTime + 0.1:
  for bytepack in frame:
   latchPin.value = False
   for byte in bytepack:
    simpleio.shift_out(dataPin, clock, byte, msb_first = True)
   latchPin.value = True

 

def rightArrow():
animate(rightArrowAnimTwo)

 

def leftArrow():
animate(leftArrowAnim)

 

def growingCircle():
animate(growingCircleAnim)

 

def X():
animate(Xanim)

 

def stop():
latchPin.value = False
simpleio.shift_out(dataPin, clock, 0b00000000, msb_first = True)
simpleio.shift_out(dataPin, clock, 0b00000000, msb_first = True)
latchPin.value = True

 

 

while True:

rightArrow()