pwmsound

14. SOUND MIT PWM

 

 

DU LERNST HIER...

 
wie du mit einem gewöhnlichen Lautsprecher mit PWM-Signalen Töne abspielst. Den Kleinlautsprecher schliesst du einfach am GPIO-Port (GND und IO19) an. Die Polarität ist unwesentlich.  

 

 

MUSTERBEISPIEL

 

Das Modul pwmsound mit der Klasse PWMSound kapselt den Code zur Erzeugung des PWM-Signals mit einem Dutycycle von 50%. Es handelt sich also um eine "Rechteckschwingung". Mit der Methode playTone(freq, duration) spielst  du einen Ton mit gegebener Frequenz (in Hertz) und Dauer (in ms).

Programm:

from pwmsound import PWMSound

sound = PWMSound()
sound.playTone(400, 500)
sound.playTone(600, 500)
► In Zwischenablage kopieren

Du kannst auch eine Tonfolge abspielen, indem du playSong(song) eine Liste mit einzelnen Noten als Strings übergibst, welche den folgenden Frequenzen der wohltemperierten Tonleiter entsprechen ('r' ist eine Pause):

{'r':0, 'C':131, 'C#':139, 'D':147, 'D#':156, 'E':165,
'F':175, 'F#':185, 'G':196, 'G#':208, 'A':220, 'A#':233,
'H':247, 'c':262, 'c#':277, 'd':294, 'd#':313, 'e':330,
'f':349, 'f#':370, 'g':392, 'g#':415, 'a':440, 'a#':466,
'h':494, 'c2':523, 'c2#':524, 'd2':587, 'd2#':622,
'e2'
:659,'f2':698, 'f2#':740, 'g2':784, 'g2#':831,
'a2':880, 'a2#':932, 'h2':988, 'c3:1046}

Damit ist es möglich, Songclips relativ einfach zu erzeugen, beispielsweise kannst du den Beginn des Chorus des Bräutigams aus Wagner's Oper "Lohengrin" wie folgt notieren und abspielen:

Programm:

from pwmsound import PWMSound

chorus = ('c:4', 'f:3', 'f', 'f:8', 'c:4', 'g:3', 'e', 'f:8', 
'c:4', 'f:3', 'a', 'c2:4', 'a:3', 'f', 'f:4', 'e:3', 'f', 'g:8')

sound = PWMSound()
sound.playSong(chorus)
► In Zwischenablage kopieren

Es gibt einige vordefinierte Songs als Konstanten der Klasse PWMSound:
ENTERTAINER,  RINGTONE, BIRTHDAY,  JUMP_UP,  JUMP_DOWN,    DADADADUM,   POWER_UP,  POWER_DOWN, PUNCHLINE, WEDDING,    BOOGYWOODY, PRELUDE.
Den Boogywoody spielst du wie folgt ab:

Programm:

from pwmsound import PWMSound

sound = PWMSound()
sound.playSong(PWMSound.BOOGYWOODY, duration = 100)
► In Zwischenablage kopieren

duration ist ein optionaler Parameter, der die Dauer eines einzelnen Tons festlegt (default: 170 ms).


 

 

MERKE DIR...

 

Du kannst unter Verwendung des Moduls pwmsound mit einem gewöhnlichen kleinen Lautsprechen Töne und Tonfolgen erzeugen.

 

 

ZUM SELBST LÖSEN

 

 

1.

Erzeuge den Sound, der folgender Notennotation entspricht:


2.

Durch Klicken eines von dir gewählten Buttons kannst du 4 verschiedene vordefinierte Soundclips abspielen. Dabei werden die Zahlen 0..3 auf dem LED-Display angezeigt.

3.

Die Oxocard ist ein Access Point auf dem ein Webserver läuft. Dieser sendet dem Webbrowser eines Handys eine HTML-Seite mit 4 Buttons. Beim Klicken eines Buttons auf dem Handy wird ein bestimmter vordefinierter Soundclip auf der Oxocard abgespielt.