2025年12月26日金曜日

PICO Wで音出し cf 加速度・角速度は未はんだ(倒立振り子用)メムマイク

 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 件のコメント:

コメントを投稿