出力ポートに直接スピーカーを接続して音を出せます。
高い音、低い音は周波数の違いになります。
PWMという機能を使って周波数を指定して出力する機能があります。
音楽にするには、音の大きさも変化させないといけませんが、簡単なメロディであれば難しくはありません。
音階の周波数 リンク
# PWM信号でスピーカーでメロディー演奏
from machine import Pin, PWM, Timer
speaker = PWM(Pin(17, Pin.OUT)) # スピーカー
# 使用する音の周波数を宣言しておく。
C5 = 523.251
D5 = 587.330
E5 = 659.255
F5 = 698.456
G5 = 783.991
mspb = 75 #テンポ
i = 0
# レベルアップのデーター
melody = [F5,0,F5,0,F5,0,F5,0,0,F5,0,0,E5,E5,0,G5,G5,0,0,F5,F5,F5,F5,F5]
i = 0
# 音を鳴らすための関数
def beat(timer):
global melody
global i
global speaker
if i >= len(melody): # メロディー終了?
speaker.deinit() # スピーカーのPWMを破棄
timer.deinit() # タイマーを終了
elif int(melody[i]) == 0: # 無音(休符)
speaker.duty_u16(0)
else:
speaker.freq(int(melody[i] + 0.5))
speaker.duty_u16(0x8000)
i += 1
# メロディースタート
tim = Timer()
tim.init(period=mspb, mode=Timer.PERIODIC, callback=beat)
