「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

micro:bit Lab.【マイクロビット】

micro:bit Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。

コマンドで音声ファイル(MP3・WAV)を再生する
5-17

MP3プレイヤー「Voice Module」の制御

2022-12-072022-12-08

DFROBOTのMP3プレイヤー「Voice Module(DFR0534)」を、micro:Maqueenに接続して、制御する方法を解説します。

5-17-1.Voice Module(DFR0534)

Voice Module(DFR0534)

Voice Module(DFR0534)は、22mm×30mmの基板上に8MBのメモリーを内蔵したMP3プレイヤーです。アンプを搭載しているので直接スピーカーを接続することができます。対応するフォーマットは、MP3・WAVです。パソコンとUSBケーブル(マイクロUSB Type-B)を接続することで直接内蔵メモリーにファイルを書き込めます。

図5-17-1-1.Voice Module(DFR0534)の表面
図5-17-1-1.Voice Module(DFR0534)の表面

インターフェースはUART、動作電圧は3.3V/5Vです。Gravityコネクターとスピーカーコネクター、およびDAC出力を備えています。ADKEYには未対応です。

図5-17-1-2.Voice Module(DFR0534)の裏面
図5-17-1-2.Voice Module(DFR0534)の裏面

音声ファイル(MP3・WAV)を保存する

パソコンとVoice ModuleをUSBケーブルで接続して、音声ファイルを保存します。対応するフォーマットは、MP3・WAVです。音声ファイルは、8.3形式の短いファイル名にします。例えば「01.mp3」「abcdefgh.wav」などです。

音声ファイルは、読み上げソフトウェアなどを使って作成します。無料で使える「VOICEVOX(ボイボ)」がおすすめです。

図5-17-1-3.VOICEVOX(ボイボ)
図5-17-1-3.VOICEVOX(ボイボ)

5-17-2.Voice Moduleとmicro:Maqueenの接続

Voice ModuleのGravityコネクターに付属の4線ケーブル、スピーカーコネクターにスピーカーを接続します。JST PHコネクター(2ピン)付きのスピーカー(Stereo Enclosed Speaker - 3W 8Ωなど)が用意できればそのまま接続できます。

図5-17-2-1.Gravityコネクター・スピーカーコネクターの接続
図5-17-2-1.Gravityコネクター・スピーカーコネクターの接続

4線ケーブルの他方はピンソケットになっています。micro:bit用の拡張ボードを用意すると使いやすいでしょう。本記事では、Gravity拡張インタフェース(GPIO)を搭載したmicro:Maqueen(V4.1)を使用します。4線ケーブルの黒・赤・青をそれぞれP2の黒・赤・緑、緑をP1の緑に接続します。

図5-17-2-2.4線ケーブルとmicro:Maqueenの接続
図5-17-2-2.4線ケーブルとmicro:Maqueenの接続

以上で、Voice ModuleとmicroMaqueenの接続は完了です。

図5-17-2-3.Voice Moduleとmicro:Maqueenの接続
図5-17-2-3.Voice Moduleとmicro:Maqueenの接続

5-17-3.プログラム(ブロック)

Voice Moduleコマンドフォーマット

Voice Moduleのインターフェースは、UART(シリアル通信)です。micro:bitからシリアル通信でコマンドを送信することにより、Voice Moduleを制御します。コマンドのフォーマットは次の通りです。戻り値がある場合も同様のフォーマットになります。

図5-17-3-1.Voice Moduleコマンドフォーマット
図5-17-3-1.Voice Moduleコマンドフォーマット

コマンドの内容については、Voice ModuleのProduct wikiに掲載されています。後述のプログラムでは、ファイル総数の取得(Command Code:0x0C)・音声ファイルの選択(0x1F)・短いファイル名の取得(0x1E)・音声ファイルの再生(0x07)・ボリュームの設定(0x13)を使用しています。

グレーのブロック

本プログラムには、ブロックに変換できないコード(グレーのブロック)が含まれています。後述のプログラム(JavaScript)で入力してください。

最初だけ実行するプログラム

変数の定義と初期化、シリアル通信の設定を行っています。受信端子は、Voice ModuleのTransmit(送信)が接続されている「P1」となります。送信端子は、同様にReceive(受信)が接続されている「P2」です。通信速度は「9600」です。最後に、保存されている音声ファイルのファイル名を取得する関数「GetFileName」を呼び出します。

図5-17-3-2.最初だけ実行するプログラム
図5-17-3-2.最初だけ実行するプログラム

関数:GetFileName

保存されている音声ファイルのファイル名(8.3形式)を取得する関数です。ファイル総数の取得(Command Code:0x0C)した後、順番に音声ファイルを選択(0x1F)して、それぞれのファイル名の取得(0x1E)します。取得したファイル名は、配列「FileNameList」に追加します。なお、ファイル名は、8.3形式の短いファイル名ですべて大文字です。例えば「01.mp3」は「01.MP3」、「abcdefgh.wav」は「ABCDEFGH.WAV」となります。

図5-17-3-3.関数:GetFileName
図5-17-3-3.関数:GetFileName

関数:Play

指定された音声ファイルを再生(0x07)します。ファイル名を、配列「FileNameList」から探して、その番号の音声ファイルを再生します。

図5-17-3-4.関数:Play
図5-17-3-4.関数:Play

関数:Volume

ボリュームを指定したレベルに設定(0x13)します。指定できるレベルは0~30です。

図5-17-3-5.関数:Volume
図5-17-3-5.関数:Volume

ボタンAが押されたときに実行されるプログラム

サンプルとして、ボタンAが押されたときに、ボリュームレベル15で音声ファイル「01.mp3」を再生するコードです。Play関数の呼び出し時に指定するファイル名は大文字となります。

図5-17-3-6.ボタンAが押されたときに実行されるプログラム
図5-17-3-6.ボタンAが押されたときに実行されるプログラム

ボタンBが押されたときに実行されるプログラム

同様に、ボタンBが押されたときに、ボリュームレベル30で音声ファイル「abcdefgh.wav」を再生するコードです。

図5-17-3-7.ボタンBが押されたときに実行されるプログラム
図5-17-3-7.ボタンBが押されたときに実行されるプログラム

プログラム(ブロック)

プログラム(JavaScript)です。

おすすめ品

DFPlayer Mini(DFR0299)

小型のMP3プレイヤーモジュールです。SDカードに入れたMP3形式の音声ファイルを再生することができます。

この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動