2022年5月19日木曜日

Maker Pi RP2040とCircuitPythonで、ボタンクリック時にMP3をピエゾスピーカーから再生する

Maker Pi RP2040には多数のLEDや、DCモータードライバ、ピエゾ圧電スピーカーなど多数の機能を搭載されています。ボタンクリック時にMP3をピエゾスピーカーから再生するには、以下の手順を実行します。

〇Maker Pi RP2040でMP3をピエゾスピーカーから再生中の写真

実行手順

1. Maker Pi RP2040をパソコンにUSBで接続して、Mu Editorを起動します。

2. エクスプローラーなどで、Maker Pi RP2040のドライブのルートフォルダに再生したいmp3ファイルをコピーします。

3. code.pyを開いて、以下のプログラムを書き込みます。
以下のプログラムでは、good_morning.mp3という名前のmp3ファイルをデコードしてPWMAudioOutを使用して再生しています。mp3を再生中はGP0のLEDが光ります。
※circuit python 7.2.5にアップグレードしてから実行(工場出荷時は7.0.0-alpha.2とかが入っていて正常に再生できません)してください。
※Mu Editorを使用せず、code.pyを直接エクスプローラーなどから保存する事も出来ます。
import board
import audiopwmio
import audiomp3
import digitalio
import time

# mp3ファイルを読み込む
data = open("/good_morning.mp3", "rb")
mp3 = audiomp3.MP3Decoder(data)
# ピエゾスピーカーを出力先に指定
aio = audiopwmio.PWMAudioOut(board.GP22)

# GP20ボタンの初期化
dio20 = digitalio.DigitalInOut(board.GP20)
dio20.direction = digitalio.Direction.INPUT
dio20.pull = digitalio.Pull.UP

# 再生途中を示すLED
dio0 = digitalio.DigitalInOut(board.GP0)
dio0.direction = digitalio.Direction.OUTPUT

while True:
    # 再生していない時にボタンを押されたら再生開始
    if dio20.value == False:
        if not aio.playing:
            aio.play(mp3)
    # 再生中はGP0のLEDを点灯する
    if aio.playing:
        dio0.value = True
    else:
        dio0.value = False
    time.sleep(0.1)

関連情報

・Maker Pi RP2040に関する他の情報はこちらを参照してください。

・Mu Editorに関する他の情報はこちらを参照してください。

0 件のコメント:

コメントを投稿