Project_OKI’s diary

エンジニアの勉強ブログ

DFplayer使い方メモ

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にスイッチを接続して使用する。

マイコンでUSB又はUART通信制御する。

 などの方法で使用することが可能

・データシート: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.ピン配置

DFplayerピン配置

 参考:データシートの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プレーヤー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