DFplayerの使い方メモ
・目次
1.目的
・DFplayerの使い方についてのメモを記載する。
・Obnizを例に挙げて、説明。
2.DFplayerとは
・MP3プレーヤーDFPlayerオーディオモジュール
・microSDメモリに入っているmp3ファイルを再生できる。
・DFplayer:https://amzn.to/3XnBWcn
(互換品みたいだが、安くてこれを使っている。普通に使えてる)
・microSD:自分が使ってるもの:https://amzn.to/3VknUGB
多分これでも出来る:https://amzn.to/3U1Zz7c
→最大32GBまでのものが使用可能
・ICにスイッチを接続して使用する。
などの方法で使用することが可能
・データシート:https://akizukidenshi.com/download/ds/dfrobot/DFPlayer_Mini_Manual.pdf
3.基本仕様
・対応ファイル
→mp3、WMV
・サンプルレート
→8K,11.025k,12k,16k,22.05k,24k,32k,44.1k,48kHz
・音量レベル
→30段階で変更可能
・制御方法
→I/O(ボタンなど)
→シリアル通信(UART通信)
→ADキーモード(ボタンなど)
→USB接続
などがある。
ここでは、シリアル通信(UART通信)の方法を記載する。
ボタンでの設定参考:
4.ピン配置
参考:データシートのP2より。
簡単なピンの説明:
・Pin1 →VCC:入力電源(3.2~5V入力)
・Pin2 →UART通信のRX(受信)側
・Pin3 →UART通信のTX(送信)側
・Pin4 →イヤホンへの出力(右側)
・Pin5 →イヤホンへの出力(左側)
・Pin6 →スピーカへの出力(-)
・Pin7 →GND
・Pin8 →スピーカへの出力(+)
・Pin9 →短押し時:前の曲を再生、 長押し時:音量ボリューム-
・Pin10 →GND
・Pin11 →短押し時:次の曲を再生、 長押し時:音量ボリューム+
・Pin12 →キー入力(接続抵抗値により役割が変わる)
・Pin13 →キー入力(接続抵抗値により役割が変わる)
・Pin14 →USB+ DP
・Pin15 →USB- DM
・Pin16 → DFPlayerのBusy確認:Lowの時再生中、HIGHの時停止中
5.コマンド説明
コマンド送信フォーマット
7E:スタートコマンド
FF:バージョン情報
06:データ長(文字の長さ:チェックサムは含まない文字の長さを指定)
01:コマンド →このコマンドにより機能を指定する。
00:ackチェック(フィードバック:1:フィードバック必要。 0:フィードバック不要)
00:コマンドに付属するパラメータの上位バイト
01:コマンドに付属するパラメータの下位バイト
FF:チェックサム High byte (省略可)
E6:チェックサムLow byte(省略可)
EF:エンドコマンド
※1. チェックサムは使用しない場合、省略出来る。
※2. コマンドの01は、次の曲を再生するコマンド。
※3. コマンドの種類と内容は下記に示す。
コマンドを送る場合下記のように配列で用意して送信する。
//送信コマンドを配列で用意する。 //チェックサム無し //Start(0x7E),VER,Len,CMD,Feedback,para1,para2,$O(End bit:0xEF) let data_send = [0x7E,0xFF,0x06,0x01,0x00,0x00,0x00,0xEF];
//チェックサムあり //Start(0x7E),VER,Len,CMD,Feedback,para1,para2,Checksum(H),Checksum(L)$O(End bit:0xEF) let data_send = [0x7E,0xFF,0x06,0x01,0x00,0x00,0x00,0xFF,0xE6,0xEF];
6.コマンドの種類と機能
・レスポンスがないコマンド
コマンド | 機能の説明 | パラメータ上位 , パラメータ下位(HEX) | |
---|---|---|---|
01h | 次の曲を再生する | ||
02h | 前の曲を再生する | ||
03h | 指定したファイルを再生する。 | 0~2999 | |
04h | 音量をあげる | ||
05h | 音量を下げる | ||
06h | 音量を指定する | 0~30 | |
07h | イコライザーを指定する | 0:通常/1:ポップ/2:ロック/3:ジャズ/4:ベース | |
08h | 再生モードを指定する | 0:リピート/1:フォルダリピート/2:単体リピート/3:ランダム | |
09h | 再生するデバイスを選択する | 0:U/1:TF/2:AUX/3:SLEEP/4:FLASH | |
0Ah | 待機モード(低消費電力)に入る | ||
0Bh |
通常モードにする。 (デバイスの再選択が必要) |
||
0Ch | モジュールのリセット | ||
0Dh | 曲を再生 | ||
0Eh | 曲を停止 | ||
0Fh | フォルダーとトラック番号を指定して再生 | High:フォルダー番号、Low:トラック番号 | |
10h | 音の定位を広げる(00:初期値OFF) | Hgih:00:効果OFF/01:効果ON、Low:00~1F(0小、1F=31大) | |
11h | リピート再生 | 0:リピート停止 /1:リピートスタート |
※上記コマンド以外に、レスポンスのあるDFplayerのパラメータ取得コマンドがあるが、ここでは記載しない。(私が使わないため、出来るか確認していないため)
知りたい場合は、下記データシートを参照
→https://akizukidenshi.com/download/ds/dfrobot/DFPlayer_Mini_Manual.pdf
7.再生するファイルの構成とコマンド
フォルダとファイルで分ける場合
・フォルダの命名、分け方
01 の後に文字などを入れると、再生できない。
コマンド0Fを使用する場合は、このフォルダ分けにする。
・ファイルの命名、分け方
001の後に、文字を入れても再生可能
コマンド0Fを使用する場合のフォルダの中身
//送信コマンドを配列で用意する。 //フォルダ01のファイル001 を再生する。 //Start(0x7E),VER,Len,CMD,Feedback,para1,para2,$O(End bit:0xEF) let data_send = [0x7E,0xFF,0x06,0x0F,0x00,0x01,0x01,0xEF];
フォルダで分けず、ファイルで分ける場合
コマンド03を使用する場合。
ファイル指定の場合、名前は特になんでもよい。
厄介なのが、ファイル指定の場合、
メモリに書き込まれた順番が指定した番号の再生となる。
例えば、下記ファイル順で書き込まれた場合
0001を指定して再生すると、ファイル名:006が再生される。
0002を指定して再生すると、ファイル名:007が再生される。
000Aを指定して再生すると、ファイル名:0002 testplayerが再生される。
コマンド送信:
//送信コマンドを配列で用意する。 //ファイル2番目を再生する。(007が再生) //Start(0x7E),VER,Len,CMD,Feedback,para1,para2,$O(End bit:0xEF) let data_send = [0x7E,0xFF,0x06,0x03,0x00,0x00,0x02,0xEF];
ここではDFplayerの最低限必要な機能について記載した。
上記以外の機能などは、下記参考を参照。
参考
・マイコンの実験:MP3Player miniモジュールの実験
・シリアル通信で制御可能なMP3プレーヤー Grove MP3 DFPlayer KT403A
サンプルプログラム:010937 サンプルプログラムとプログラミングコード - Google ドライブ
DFplayerデータシート参考:
http://www.ne.jp/asahi/o-family/extdisk/MP3module/KT403A_DatasheetJP.pdf
シリアル通信で制御可能なMP3プレーヤー Grove MP3 DFPlayer KT403A