From 5e7a923c3a5182f60628ef42d9a8f37147d61b36 Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Sat, 9 Apr 2022 01:10:39 +0700 Subject: [PATCH] add piano example --- piano.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/piano.py b/piano.py index 3c599cc..42ed849 100644 --- a/piano.py +++ b/piano.py @@ -1,20 +1,26 @@ from time import sleep from telemetrix_rpi_pico import telemetrix_rpi_pico +from siwatlib.debounce import debounce +from siwatlib.sound import beep + import winsound index_shift = 2 -sound = [261.6256,293.6648,329.6276,349.2282,391.9954,440.0000,493.8833,523.2511] +freqs = [261.6256,293.6648,329.6276,349.2282,391.9954,440.0000,493.8833,523.2511] + +debouncers = [] def handle_button_press(data): - freq = sound[data[1]-index_shift] + freq = freqs[data[1]-index_shift] print(freq) - if data[2] == 0: - winsound.Beep(int(freq),500) - - + recieved_state = not data[2] + if debouncers[data[1]-index_shift].set_state(state=recieved_state): + beep(frequency=freq,duration=0.25) mcu = telemetrix_rpi_pico.TelemetrixRpiPico(com_port='COM10') + for i in range(2,10): + debouncers.append(debounce(state=False,debounce_time=0.15)) mcu.set_pin_mode_digital_input(i,callback=handle_button_press) while True: sleep(100) \ No newline at end of file