Pi Pico でDFPlayer を使ってMp3を再生してみる(Arduino IDE / MicroPython)


こういう構成です。

 

 

 

 

 

 

 

 

 

 


Mp3再生の定番DFPlayer Mini を使ってみます。

スピーカーも2個ついて890円 でした( Amazon)。ただ2個あるからといってべつにステレオ再生できるというわけではないようです。

スピーカーにはリード線を半田付けします。

 

 

 

 

 

 

 

 

 

FAT32でフォーマットした16GBか32GBのMicroSDカードにMp3ファイルを保存して使います。

mp3というフォルダーを作成し、0001からの連番を曲名の先頭につけます。

0001xxx.mp3、0002xxx.mp3、0003xxx.mp3、………

参考までにMp3のサンプルは以下のサイトからダウンロードできます。

フリーWave、Mp3

 

 

Picoとの結線

RX とTX の結線はクロスしています。

諸般の事情でGP0、GP1は使っていません、理由は後で。

電源は3.3VでOKですが、安定を望むならVBUS(5V)から給電します(1kΩの抵抗が必要)。

 

 

 

 

 

 

 

 

 


Pi Pico のハードウェアシリアル通信のピンは以下のようになっているそうです。

 

ポート IDEの表記 デフォルトピン1

(TX,RX)

対応ピン2

(TX,RX)

対応ピン3

(TX,RX)

UART0 Serial1 Gp0,GP1 GP12,GP13 GP16,GP17
UART1 Serial2    - GP4,GP5 GP8,GP9

Serial1のGP0、GP1を使用する分にはsetTX(),setRX()が不要なので楽ですが、Arduino IDE では問題なかったですが、MicroPythonではTXのピンが見当たらないというエラーが発生しました。

で、次点の策でSerial2の対応でGp4,Gp5を使ってみました。

 


Arduino IDE

Pi Pico W も使う場合は、Earle Philhower版ボードマネージャーを使います。

DFPlayer用のライブラリを使います。

ツール ー>ライブラリを管理  を選択。

dfplayer で検索して、DFPlayer Mini Mp3 by Makuna を選択してインストールします。

 

 

 

 

 

 

 

 

 

 

ファイル ー> スケッチ例 -> DFPlayer Mini Mp3 by Makuna ー> PlayMp3 を選択。

 

 

 

 

 

 

 

 

 

 

 

 

 

スケッチのコードの以下の部分を変更します。

fMp3 dfmp3(Serial1); ー> fMp3 dfmp3(Serial2);

void setup()で以下のように追加して変更

Serial2.setTX(4);
Serial2.setRX(5);
Serial2.begin(115200);

で、コンパイルしてマイコンボードに書き込みます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 


MicroPython

Pico にMicoPython用uf2をセットします。

以下を参照

Pi PicoにMicroPythonをセットアップして実行してみる(メモ)

Thonny を起動します。

例えば曲再生用のコード

【main.py】

 

バイト列

[0x7E,0xFF,0x06,0x12,0x00,0x00,0x02,0xEF]

以下のような意味です。

[開始コード,バージョン情報,バイト数(開始コード・終了コードを除く),コマンド,
フィードバックの有無,上位ビット,下位ビット,終了コード]

コマンド -> 基本動作

下位ビット-> 動作オプション

上記の配列は

基本動作ー>再生

動作オプションー>2曲目 (曲順は01から)

 

詳細は マニュアル

3.2 .Serial Communication Commands
1).Directly send commands, no parameters returned

を参照。ただし、肝心部分の説明が欠落してる可能性ありです。例えば、フォルダーにmp3とadvertの2種類ある理由とか…..。

この方のブログのほうが理解しやすいです。

 

 

pauseする場合は以下のようなコマンドを発行します。

sdata = bytearray([0x7E,0xFF,0x06,0x0E,0x00,0x00,0x00,0xEF])
uart.write(sdata)

 

 


Appendix

タクトスィッチでサウンドの再生・停止・先送り・戻りなどをやる「My Mp3Player」を作ってみました。

構成

 

 

 

 

 

 

 

DFPlayer やSpeaker の結線は上と同じ。

タクトスィッチの結線はこんな感じ。

 

 

 

 

 

 

 

 

 

GNDは1個に集約しても可。

 ー> 1曲目再生
 ー> ポーズ・再生(トグル)
 ー> Next
 ー> Previous

send_data() やcalc_checksum()のコードはこの方からお借りしました、感謝。

MicroPythonコード

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*