Arduinoを用いて音楽再生を行いたい場合があります。この場合、後述するDFPlayerMiniを使用すると格安でMP3音楽再生ができましたので手順を記載します。
準備
・Arduino UNO R3 互換品
・DFPlayerMini
・マイクロSDカード
・ジャンパワイヤ
・スピーカ(100均のものでOK)
音楽ファイルの準備
step1.mp3ファイルを用意する。
step2.用意したmp3ファイルを、0001_.mp3,0002_.mp3,0003_*.mp3,,,とリネームする。
step3.マイクロSDのルートディレクトリに、"mp3"という名前のフォルダを作成し、リネームしたmp3ファイルをコピーする。
※注意
MACの場合はMP3ファイルをSDへコピーした際に".0001_*"のような隠れファイルが作られ、MP3ファイル再生に影響するようです。この問題を解決するにはdot_cleanコマンドで隠れファイルの削除が要るようです。(はまりました)
回路図
Arduino、DFPlayerMini、スピーカを下記の通り接続します。
マイクロSDカードはDFPlayerMiniに挿入します。
DFPlayerMiniの回路図は下記です。
BUSYピンはファイル再生中かどうかを判断するために必要です。
コード
setup関数:初期化を行います
PLAYBACK_MP3_MUSIC関数:DFPlayerが再生可能な場合に音楽再生を行います
loop関数:500msec毎に音楽再生を試みます
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#define BUSY_PINNO 7
SoftwareSerial mySoftwareSerial(10, 11); // (TX, RX)
//SoftwareSerial mySoftwareSerial(3, 2); // (TX, RX)
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup()
{
Serial.begin(115200);
// software serial init
mySoftwareSerial.begin(9600);
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true);
}
// BUSY_PINNO init
pinMode(BUSY_PINNO, INPUT);
// DFPlayer Init
myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
myDFPlayer.volume(25); //Set volume value (0~30).
// myDFPlayer.volumeUp(); //Volume Up
// myDFPlayer.volumeDown(); //Volume Down
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
myDFPlayer.play(1); //Play the first mp3
}
void PLAYBACK_MP3_MUSIC(void) {
int isBusy = digitalRead(BUSY_PINNO); // 0:playing, 1:not playing (refer website)
Serial.println(isBusy);
if (isBusy == 1) {
myDFPlayer.next(); //Play next mp3 every 3 second.
}
}
void loop()
{
PLAYBACK_MP3_MUSIC();
delay(500);
}
もしPIN10,11が他モジュールで使用されている場合は、PIN2,3をソフトウェアシリアルとして使用すればOKです。(例えばSPI通信を行う場合にPIN10,11を使うことがあると思います)
テスト
電源ON後にSDカードに保存したMP3ファイルの音楽再生を行えればOKです。
play dfplayer mini pic.twitter.com/fI6r6A98Gy
— st (@st17890027) 2019年2月11日
参考
・組み込みエンジニアでなくても週末にArduinoを使って遊ぶ
・MUDAなことをしよう
・DFPlayer Mini SKU:DFR0299