Pymata4 propose un réglage particulier pour le buzzer.
L’initialisation se fait par la méthode set_pin_mode_tone(pin).
Ensuite, deux méthodes existent pour jouer un son :
- play_tone(pin,fréquence,durée)
- play_tone_continuously(pin, fréquence)
Dans les exemples suivants, on utilise le module keyboard de Python pour détecter les événements clavier (touches 1 à 8 pour les notes).
Exemple d’utilisation de play_tone()
from pymata4 import pymata4 import sys import time import keyboard #------------ Les notes à jouer def on_1(): carte.play_tone(Buzzer,261, Duree) # DO def on_2(): carte.play_tone(Buzzer,294, Duree) # RE def on_3(): carte.play_tone(Buzzer,330, Duree) # MI def on_4(): carte.play_tone(Buzzer,349, Duree) # FA def on_5(): carte.play_tone(Buzzer,392, Duree) # SOL def on_6(): carte.play_tone(Buzzer,440, Duree) # LA def on_7(): carte.play_tone(Buzzer,494, Duree) # SI def on_8(): carte.play_tone(Buzzer,523, Duree) # DO carte = pymata4.Pymata4() print("--------------- Début --------------") # Constantes Buzzer = 5 # port du buzzer : D8 Duree = 300 #---------------- programme principal try : keyboard.add_hotkey("1",on_1) keyboard.add_hotkey("2",on_2) keyboard.add_hotkey("3",on_3) keyboard.add_hotkey("4",on_4) keyboard.add_hotkey("5",on_5) keyboard.add_hotkey("6",on_6) keyboard.add_hotkey("7",on_7) keyboard.add_hotkey("8",on_8) carte.set_pin_mode_tone(Buzzer) time.sleep(1) while True: time.sleep(1) except KeyboardInterrupt : # si on tape Ctl + C print("--------------- Fin --------------") carte.shutdown() sys.exit(0)
Exemple d’utilisation de play_tone_continuously()
from pymata4 import pymata4 import sys import time import keyboard #------------ Les notes à jouer def on_1(data): carte.play_tone_continuously(Buzzer,261) # DO def on_2(data): carte.play_tone_continuously(Buzzer,294) # RE def on_3(data): carte.play_tone_continuously(Buzzer,330) # MI def on_4(data): carte.play_tone_continuously(Buzzer,349) # FA def on_5(data): carte.play_tone_continuously(Buzzer,392) # SOL def on_6(data): carte.play_tone_continuously(Buzzer,440) # LA def on_7(data): carte.play_tone_continuously(Buzzer,494) # SI def on_8(data): carte.play_tone_continuously(Buzzer,523) # DO #------------ Les notes à arrêter def off(data): carte.play_tone_off(Buzzer) carte = pymata4.Pymata4() print("--------------- Début --------------") # Constantes Buzzer = 5 # port du buzzer : D8 #---------------- programme principal try : keyboard.on_press_key("1",on_1) keyboard.on_press_key("2",on_2) keyboard.on_press_key("3",on_3) keyboard.on_press_key("4",on_4) keyboard.on_press_key("5",on_5) keyboard.on_press_key("6",on_6) keyboard.on_press_key("7",on_7) keyboard.on_press_key("8",on_8) keyboard.on_release_key("1",off) keyboard.on_release_key("2",off) keyboard.on_release_key("3",off) keyboard.on_release_key("4",off) keyboard.on_release_key("5",off) keyboard.on_release_key("6",off) keyboard.on_release_key("7",off) keyboard.on_release_key("8",off) carte.set_pin_mode_tone(Buzzer) time.sleep(1) while True: time.sleep(1) except KeyboardInterrupt : print("--------------- Fin --------------") carte.shutdown() sys.exit(0)