Cytron Shiled-MP3 (MP3シールド)を使うと、マイクロSDカードに記録されている、MP3ファイルを簡単にArduinoで再生させることができます。
ご購入は、下記のサイトをご覧ください。
www.elefine.jp/SHOP/SHIELD-MP3.html
MP3再生ライブラリーのインストール
まず、専用のMP3再生ライブラリーをインストールします。
ライブラリーを下記からダウンロードします。GitHubを利用しています。
https://github.com/CytronTechnologies/Cytron_MP3Shield
ファイル一覧の右上にある “Download ZIP” ボタンをクリックすると、まとめてZIPファイルにしてダウンロードすることができます。
ダウンロードして、展開すると下記のようなファイル(フォルダー)ができます。
extrasフォルダー内のSdFatフォルダーをArduino IDEがインストールされているフォルダー内の libraries フォルダーにコピーします。
↓ Arduino IDE(開発環境)がインストールされているフォルダー
さらに Cytron_MP3Shield-master.ZIP ファイルを展開したフォルダーへ戻ります。
コピーしてできたフォルダーを MP3Player という名前に変更します。
src – コピー → MP3Player
そのMP3PlayerフォルダーをSdFatフォルダーと同様にArduino IDEがインストールされているフォルダー内の libraries フォルダーに移動します。
このsrcフォルダーの名前を変えて、libraries へ入れる点がCytronのチュートリアルの記述と異なります(チュートリアルにあるMP3Playerフォルダーがない)。
うまくインストールされると、Arduino IDEのメニュー
スケッチ → ライブラリをインクルード でMP3Player と SdFat が表示されます。
マイクロSDカードの準備
何も記録されてないマイクロSDカードを用意します。
そのマイクロSDカードのルートディレクトリー(フォルダーに入れない)にCytron_MP3Shield-master.ZIP ファイルを展開した中にある sta013.cfg というファイルをコピーします。
場所 Cytron_MP3Shield-master\extras\Configuration file
extrasフォルダー
sta013.cfg このファイルをマイクロSDカードへコピーします。
MP3ファイルのコピー
このMP3シールドでは、260kbpsまでのビットレートのMP3ファイルを再生することができます。ただし、mainループで他の処理をするためには、200kbp以下に抑えてください。通常聴く分には、128kbpsで十分でしょう。
まずは、サンプルプログラムに手を加えずに再生ができるようにMP3ファイルをサンプルプログラムの記述と同じファイル名にします。Windows PCなどでマイクロSDカード上にFavourites フォルダーを作成し、その中へ任意のMP3ファイルをコピーします。そのファイル名を Taio Cruz – Hangover ft. Flo Rida.mp3 に変更します。
そのマイクロSDカードをMP3シールドのスロットに差し込みます。
ArduinoにMP3シールドを接続
ICSPのピンにもソケットがありますので、それも差し込まれるようにArduinoに差し込みます。
ジャンパーピンが、SSはD3、ASDはD2にそれぞれセットされていることを確認してください。初期状態では、この設定になっています。
サンプルスケッチの転送
ダウンロードしたZIPファイルにサンプルスケッチが含まれています。
まずは、1トラック(1曲)再生の下記のサンプルで試すとよいでしょう。
Cytron_MP3Shield-master\examples\PlayATrack
PlayATrack.ino をダブルクリックするとArduino IDEが起動し、読み込まれます。
上述のライブラリーがきちんとインストールされていると、問題なくコンパイルできます。
MP3ファイルの再生
転送し終わると、MP3ファイルが再生されます。音が大きすぎる場合があるので耳につけずにヘッドフォンを接続してください。音の大きさに注意しながら、耳につけてください。
サンプルスケッチでは、シリアル通信で再生している曲の表示、音量調節、再生の停止ができるようになっています。
Arduino IDEのシリアルモニタでその確認ができます。
これらの処理は、サンプルスケッチの下記の部分で行っています。
これを見て、お分かりのように “d” で音量を上げる、”s”で再生停止です。
if(isNum)
{
if(mp3.isPlaying()) mp3.Stop();
mp3.PlayTrack(Folder,inputString.toInt());
Serial.println(“Currently playing…”);
Serial.print(“Track “+String(mp3.getTrackNo()));
Serial.println(“: “+mp3.getName());
}
else
{
if(inputString.equals(“a”))
mp3.setVolume(–vol);
else if(inputString.equals(“d”))
mp3.setVolume(++vol);
else if(inputString.equals(“s”))
mp3.Stop();
}
独自のプログラム作成
サンプルスケッチ、CytronのMP3ライブラリーチュートリアルを参照して、各自独自のプログラムを作成してください。