読者です 読者をやめる 読者になる 読者になる

のぼゆエンジニアリング

ゼロから機械設計を勉強してみたりするブログ

『FN-M16P(DFPlayer Mini)』電子工作で音楽(MP3)を鳴らすなら、これ。Arduinoから制御もできるよ。



スポンサーリンク

のぼゆエンジニアリング

AuduinoでMP3を鳴らすのに、便利な基板がある。
購入してみたので、機能や使い方を紹介する。

2017/4/15 修正(シリアルコマンドの使い方)

ちなみに、関連記事はこちら。
こちらは、今回の基板に出会う前。市販のMP3プレーヤーをバラして使うという荒業だ。

『 FN-M16P Embedded MP3 Audio Module 』(DFPlayer Mini)― 300円程度で入手可能

今回紹介したいのはこれです。
アマゾンのおすすめ欄に表示されていて、ふとクリックして知った商品です。

一言で言うと、電子工作でMP3を再生するためのモジュール
マイコンと一緒に使う事を想定されているので、Arduinoからの制御が出来ます。
単体でも使えますよ。

メリット(良い所)

  • 安い
    300円程度で入手が出来る。

  • アンプいらない
    3Wのアンプが内臓されてる。
    コーン繋ぐだけでいいから、楽です。

  • 細かい制御が簡単
    以前の記事の方法では、再生・停止以外の制御ができなかった。
    (トランジスタを通してリレーからON/OFFしているだけなので)
    しかしこのモジュールを使えば、ランダム再生や一時停止など自由にできる。

デメリット(悪い所)

  • 海外からの発送なので納期がかかる
    明日欲しい!!なんて時には辛いです。
    私の場合は、注文から入手まで20日程度かかりました。
    アマゾンの注文画面の「お届け日数」はアテにせず、余裕をみて注文した方が良いです。 国際普通郵便なので、かなり延着することもあります。



動かしている様子

テストしてみました。

f:id:noboyu:20161030202210j:plain:w450


テスト仕様

SW1で再生、SW2で次の曲、SW3で停止します。
このテスト回路のArduinoのスケッチ(プログラム)は、後述しています。

20161030202207

microSDカードにMP3を入れます

ファイル名の詳細な命名規則は、後述のデータシートなど技術資料をご覧ください。
配布されているライブラリを使うには、SDカード直下に「mp3」フォルダを作り、その中にMP3ファイルを格納します。

f:id:noboyu:20161030202208p:plain:w400

動画を撮りました

ほぼカットしていませんので、全曲通してノイズもなくきれいに聞こるのがわかるかと思います。



接続図

ブロック図

上に貼った動画のブロック図です。
Arduinoと接続して、制御しています。

20161030202209


3Wのアンプが内蔵されているので、コーンを繋ぐだけです。
出力に不満なら、もちろんアンプを接続することもできます。

Arudinoからは、操作したいコマンドのシリアルコマンドを送ります。

ちなみに再生や停止など基本的なコマンドなら、Arduinoのライブラリが提供されています。 プログラムがめちゃくちゃシンプルになります。
詳しくはこちらのサイトの、「Tutorial」の項目をご覧ください。
「DFPlayer library V2.0」をダウンロードしましょう。



シリアルコマンドの使い方

「シリアルコマンド」とは、FN-M16P基板への命令です。
スイッチ1を押したら再生せよ、など工作物によって様々な命令をすることになります。

(これをシンプルに扱えるようにしたものが、青枠で上述した「DFPlayer library V2.0」になります)

例えば、基板へ「フォルダとMP3ファイル名を指定して再生する」コマンドを送るとします。

この場合、コマンドは「7E FF 06 0F 00 01 01 EF」になります。

なんのこっちゃ?となりますが、ルールなので従うだけです。

7EからEFまで1セットで、順番にコマンドを送ったら良いだけです。

ここで、表を見てください。

FN-M16P(DFPlayer Mini)でシリアルコマンド送る例7E FF 06 0F 00 01 01 EF

ほぼ固定で、基本的には濃い色の箇所を都度機能に応じて、書き換えることになります。

実際のプログラム例としては、こんな感じ。

このコマンドは16進数で指示しますので、頭に0xを付けています。

FN-M16P(DFPlayer Mini)でシリアルコマンド送る例

  • 省略無しのテスト用回路のプログラムは、後述のスケッチ例をご覧ください。

命令したい機能のコマンドは、どこに書いてあるの?

こんな感じで、データシートに記載されています。
詳しくは、データシート(PDFファイルです)をご覧ください。

例えば上記で紹介したコマンド0Fも「Specify playback of a folder(フォルダを指定して再生)」として載ってます。 FN-M16P(DFPlayer Mini)データシートの例

FN-M16P Embedded MP3 Audio Module Datasheet(PDFファイル p4)より引用

回路図

上に貼った動画の回路図はこちら。
tx、rxには、ノイズ防止のために抵抗を入れています。

f:id:noboyu:20161030221251p:plain


上記回路を配線すると、こんな感じです。

  • コーンは100円ショップ
  • Arduinoの電源は9Vのスイッチングアダプターから。
  • 5VはArduinoの5V端子から、DFPlayerやスイッチに供給しています。
  • DFPlayerにブレッドボード2枚も使っているのは、微妙にピッチが合わなくて力づくでやると壊れそうだったからです

f:id:noboyu:20161103222759j:plain:w450



Arduinoのスケッチ(プログラム)の例

シリアルコマンドを指定して制御する場合

シリアルコマンドとは何ぞや?という方は、シリアルコマンドの使い方をご覧ください。

startスイッチで再生開始、nextスイッチで次の曲を再生、stopスイッチで止まります。

ライブラリを使う場合

このスケッチではnextスイッチで2曲目に行った後はBREAKしてstartスイッチの待機状態に戻ります。
SDカードには3曲入れていますが、3曲目は再生されません。
下手なプログラムの所為ですが、テストスケッチなので良しとしました。
(そのまんま使う場合は注意してください。)



技術資料

  • PDFでデータシートが配布されています(英語)
    制御コマンドや回路の例など、詳しく掲載されています。
    [PDF] データシート

  • このサイトでもコンパクトにまとまっています(英語)
    サイト下部のBBSで、質問する事もできるようです。
    DFPlayer Mini SKU:DFR0299 - Robot Wiki



今回買ったもの

FN-M16P(DFPlayer Mini)

名前は出品者によってまちまちですが、写真などで判断できるかと思います。
複数の出品者をチェックしたほうが良いです。
1社だけだと、国際普通郵便なので延着の場合があります。 私は1回目は2ヶ月弱、2回目は20日程度で入手しました。

microSDHCカード

MP3を入れます。

Transcend microSDHCカード 16GB Class10 (無期限保証) TS16GUSDHC10

Transcend microSDHCカード 16GB Class10 (無期限保証) TS16GUSDHC10

関連記事

© 2017 のぼゆエンジニアリング