mp3player,audio recorder,human voice synthesizerは成功ずみ,memsマイクは未踏、max98357は2個とも実施後にusb interfaceがあかんようになり再起動必要であきらめた
結局単純なドレミでOK牧場とした
from machine import Pin, PWM
import utime
# GP0をPWM出力に設定
buzzer = PWM(Pin(0))
# 音階と周波数の対応表 (Hz)
notes = {
'do': 262,
're': 294,
'mi': 330,
'fa': 349,
'so': 392,
'la': 440,
'si': 494,
'do2': 523
}
def play_tone(frequency, duration):
if frequency == 0:
buzzer.duty_u16(0) # 無音(休符)
else:
buzzer.freq(frequency) # 周波数を設定
buzzer.duty_u16(32768) # デューティ比50%で音を鳴らす
utime.sleep_ms(duration)
buzzer.duty_u16(0) # 音を止める
utime.sleep_ms(50) # 音の切れ目を作るための短い休止
# ドレミファソラシドを順番に鳴らす
scale = ['do', 're', 'mi', 'fa', 'so', 'la', 'si', 'do2']
for note in scale:
print(f"Playing: {note}")
play_tone(notes[note], 400) # 各音を400ms鳴らす
# プログラム終了時に確実に止める
buzzer.deinit()
ーーーーーーーーーちょうちょは以下のごとしーーーーーーーーーーーーーーーーーーーー
from machine import Pin, PWM
import utime
buzzer = PWM(Pin(0))
# ハ長調
notes = {
'C': 262,
'D': 294,
'E': 330,
'F': 349,
'G': 392,
'A': 440,
'C2': 523, # 高いド
'rest': 0
}
def play(f, t):
if f == 0:
buzzer.duty_u16(0)
else:
buzzer.freq(f)
buzzer.duty_u16(32768)
utime.sleep_ms(t)
buzzer.duty_u16(0)
utime.sleep_ms(40)
# 🦋 ちょうちょ ちょうちょ
melody = [
('G', 400), ('E', 400), ('E', 800),
('F', 400), ('D', 400), ('D', 800),
# なーのはに とーまれ
('C', 400), ('D', 400), ('E', 400), ('F', 400),
('G', 800),
('rest', 400)
]
for n, t in melody:
play(notes[n], t)
buzzer.deinit()
0 件のコメント:
コメントを投稿