pi_pico_lab/piano.py

26 lines
709 B
Python
Raw Permalink Normal View History

2022-04-08 11:30:22 +00:00
from time import sleep
from telemetrix_rpi_pico import telemetrix_rpi_pico
2022-04-08 18:10:39 +00:00
from siwatlib.debounce import debounce
2022-04-09 16:20:02 +00:00
from siwatlib.sound import piano_key
2022-04-08 18:10:39 +00:00
2022-04-08 11:30:22 +00:00
import winsound
index_shift = 2
2022-04-08 18:10:39 +00:00
debouncers = []
2022-04-08 11:30:22 +00:00
def handle_button_press(data):
2022-04-09 16:20:02 +00:00
try:
print(str(data[1])+' Pressed')
recieved_state = not data[2]
if debouncers[data[1]-index_shift].set_state(state=recieved_state):
piano_key((data[1]-1)*2-1)
except KeyError:
pass
2022-04-08 11:30:22 +00:00
mcu = telemetrix_rpi_pico.TelemetrixRpiPico(com_port='COM10')
2022-04-08 18:10:39 +00:00
2022-04-08 11:30:22 +00:00
for i in range(2,10):
2022-04-09 16:20:02 +00:00
debouncers.append(debounce(state=False,debounce_time=0.2))
2022-04-08 11:30:22 +00:00
mcu.set_pin_mode_digital_input(i,callback=handle_button_press)
while True:
sleep(100)