Zum Hauptinhalt springen

Summer

Die Klasse Buzzer steuert den passiven Summer von Eliobot. Es ermöglicht das Abspielen von Tönen, Musiknoten und vordefinierten Klängen.

Initialisierung

import board
import pwmio
from elio import Buzzer

buzzer_pin = pwmio.PWMOut(board.IO17, variable_frequency=True)
buzzer = Buzzer(buzzer_pin)

Grundlegende Methoden

play_tone(frequency, duration, volume)

Spielt einen Ton mit einer bestimmten Frequenz ab.

ParamètreTypeDescription
frequencyfloatFréquence en Hz
durationfloatDurée en secondes
volumeintVolume (0–100)
buzzer.play_tone(440, 0.5, 80)  # La4 pendant 0.5 seconde

play_note(note, duration, NOTES_FREQUENCIES, volume)

Spielt eine Note aus einem Frequenzwörterbuch.

NOTES = {
"Do": 262,
"Re": 294,
"Mi": 330,
"Fa": 349,
"Sol": 392,
"La": 440,
"Si": 494,
"silence": 0.1,
}

buzzer.play_note("Do", 0.5, NOTES, 80)
buzzer.play_note("silence", 0.25, NOTES, 0) # pause
tipp

Verwenden Sie den Wert 0.1, um eine Pause im Notenwörterbuch darzustellen.

sweep(start, end, dur, steps=10, pause=0.01)

Scannt einen Frequenzbereich von start bis end in steps Schritten über dur Sekunden.

buzzer.sweep(500, 1500, 0.3, steps=12)

Voreingestellte Sounds

Der Kurs umfasst eine Sammlung gebrauchsfertiger Sounds:

MéthodeDescription
sound_startup()Son de démarrage
sound_hello()Salutation
sound_happy()Son joyeux
sound_win()Victoire
sound_sad() (non disponible)
sound_jump()Saut
sound_land()Atterrissage
sound_laser()Effet laser
sound_explosion()Explosion
sound_bump()Collision
sound_error()Erreur
sound_alert()Alerte (bip répété)
sound_question()Interrogation
sound_blink()Petit bip court
sound_music() (non disponible)
buzzer.sound_startup()
buzzer.sound_hello()
buzzer.sound_happy()
buzzer.sound_win()
buzzer.sound_jump()
buzzer.sound_land()
buzzer.sound_laser()
buzzer.sound_explosion()
buzzer.sound_bump()
buzzer.sound_error()
buzzer.sound_alert()
buzzer.sound_question()
buzzer.sound_blink()

Vollständiges Beispiel – Spielen einer Melodie

import board
import pwmio
from elio import Buzzer

buzzer_pin = pwmio.PWMOut(board.IO17, variable_frequency=True)
buzzer = Buzzer(buzzer_pin)

NOTES = {
"Do": 262,
"Re": 294,
"Mi": 330,
"Fa": 349,
"Sol": 392,
"La": 440,
"Si": 494,
"silence": 0.1,
}

melodie = [
("Do", 0.3),
("Re", 0.3),
("Mi", 0.3),
("Sol", 0.6),
("silence", 0.2),
("La", 0.5),
]

for note, duree in melodie:
buzzer.play_note(note, duree, NOTES, 80)