commit c36c504ba4a2e175afaece18e74acb2eb75515f3 Author: Rémi BUSSIERE Date: Sun Apr 28 22:08:44 2024 +0200 Téléverser les fichiers vers "/" diff --git a/main.py b/main.py new file mode 100644 index 0000000..5f7a87a --- /dev/null +++ b/main.py @@ -0,0 +1,53 @@ +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") + diff --git a/piano_arduino.ino b/piano_arduino.ino new file mode 100644 index 0000000..ed796bf --- /dev/null +++ b/piano_arduino.ino @@ -0,0 +1,16 @@ +int pin[] = {A0, A1, A2, A3, A4, A5}; + +void setup(){ + Serial.begin(115200); +} + +void loop(){ + for( int i=0 ; i<6 ; i++){ + Serial.print(String(analogRead(pin[i])) + ","); + } + Serial.print("\n"); +} + + + +