import serial import pygame import time port = 'COM13' # port de com arduino baud_rate = 115200 # baudrate ser = serial.Serial(port, baud_rate) # connexion à l'arduino pygame.mixer.init() # initialisation pygame do = pygame.mixer.Sound("notes/4-c.wav") re = pygame.mixer.Sound("notes/4-d.wav") # liste des fichiers audio pour chaque notes mi = pygame.mixer.Sound("notes/4-e.wav") fa = pygame.mixer.Sound("notes/4-f.wav") sol = pygame.mixer.Sound("notes/4-g.wav") la = pygame.mixer.Sound("notes/4-a.wav") notes = [do, re, mi, fa, sol, la] # liste des notes pour jouer keys_values_arduino = [0, 0, 0, 0, 0, 0] # liste ou seront stocker les valeurs des touches de 0 à 1023 keys_threshold = [150, ] notes_current_state = [0, 0, 0, 0, 0, 0] notes_last_state = [0, 0, 0, 0, 0, 0] first_time_clicked = [time.time() for i in range(6)] # initialisation du temps pour chaque touche for i in range(20): # output the 20 first lines to supress the errors line = ser.readline() try: while True: line = ser.readline().decode().strip() keys_values_arduino = line.split(',') print(keys_values_arduino) for i in range(len(keys_values_arduino[:-1])): if int(keys_values_arduino[i]) >= 850: notes_current_state[i] = 1 else: notes_current_state[i] = 0 if notes_current_state[i] != notes_last_state[i]: if time.time() - first_time_clicked[i] >= 0.2: pygame.mixer.Channel(i).play(pygame.mixer.Sound(notes[i])) first_time_clicked[i] = time.time() notes_last_state[i] = notes_current_state[i] except KeyboardInterrupt: print("Arrêt du programme")