DENKIグループ★電子工作ブログ★

趣味でガラクタ工作をやっています。作ったものについてまとめていきます。

DF player mini とPICで簡易MP3プレーヤーを作る

こんにちは、DENです。
よく電子工作で使われるであろうMP3再生モジュール「DF player mini」とPICマイコンで簡易的なMP3プレーヤーを作りました。

DF player miniは、mp3ファイルの入ったSDカードを差し込んで使うモジュールで、アマゾンで1個500円くらいで売ってます。
f:id:DENkiGroup:20210130141412j:plain
(画像はDF player mini のマニュアルより)
Arduinoにはライブラリがあるらしく簡単に扱えるようですが、基本的にUARTでコマンドをやり取りするだけなので、PICでも問題なく扱えます。

DF Player mini のコマンドフォーマット

f:id:DENkiGroup:20210130141802j:plain
(画像はDF player mini のマニュアルより)
UARTのボーレートは9600bps, パリティビットは無し、ストップビットは1個です。上記の10バイトをこの順にUARTで送ることで、PICからDF Player Miniを操作できます。
$S, Ver., $Oは固定値。LengthはVer.~Para_LSBまでのバイト数ですが、マニュアル見る限り結局0x06固定です(マニュアルにはcheck_LSBまでとありますが間違いのようです)。
check_MSB, check_LSBは、送らなくても動きます。チェックサムの意味とは。。。

状態の読み出しなど、DFPlayerからの返信が欲しい場合はFeedbackを1にしますが、安物MP3プレイヤー程度の機能しか使わない場合は、Feedbackを1にするコマンドを使用する機会はないと思います。私は結局使用しませんでした。

PICと組み合わせた回路図

f:id:DENkiGroup:20210130143713j:plain

注意点
  • DFPlayerのRX, TX端子は、3.3VのTTLレベルです。今回はマイコン及びDFPlayerをニッケル水素電池x4の約5Vで駆動しているので、マイコンのTX, RX端子との間に抵抗が必要です。回路図ではRXに抵抗が入っていませんが、あったほうがいいと思います。
  • DFPlayerの音量は30段階ありますが、初期設定がかなり大音量(たぶん最大値)になっています。イヤホンで聞くとびっくりします。なのでマイコンが起動したらすぐに音量設定コマンドを送って、初期音量を下げといたほうがいいです。
  • 曲の再生が終わっても、自動で次の曲は再生されません。回路図のようにBUSY端子を監視して、BUSYがLowからHighになったら「次の曲を再生する」コマンドを送る必要があります。BUSY端子は再生状態を表し、曲を再生しているときはLow、そうでないときHighになります(回路図ではデジトラをかませているので、マイコンに入る論理は逆になります)。

終わりに

今回はとりあえずDFPlayerをPICで操作する練習として作成しました。モジュールとして色々応用できそうです。