ArduinoでMP3ファイルを再生する Cytron Easy MP3シールドの使い方

Cytron SHILD-EZMP3 (Easy MP3シールド)を使うと、マイクロSDカードに記録されている、MP3ファイルを簡単にArduinoで再生させることができます。
従来品に比べ、ボタン処理はプログラムを介さずに処理可能なボタンの搭載、WAVファイルに対応、USBメモリーに対応等の利点があります。
Shield-EZMP3 ISO View-1-800x800

ご購入は、下記のサイトをご覧ください。
http://www.elefine.jp/SHOP/SHIELD-EZMP3.html

EZ MP3再生ライブラリーのインストール

まず、専用のMP3再生ライブラリーをインストールします。

ライブラリー、サンプルスケッチを下記からダウンロードします。GitHubを利用しています。
https://github.com/CytronTechnologies/Cytron-EasyMP3-Shield

ファイル一覧の右上にある “Clone or Download” ボタンをクリックすると、Download ZIPというボタンが表示されますので、それをクリックすると、まとめてZIPファイルにしてダウンロードすることができます。

ダウンロードして、展開すると下記のようなファイル(フォルダー)ができます。

src フォルダー内を見ます。

これら二つのファイルを選択して、右クリック → 送る → 圧縮(zip 形式)フォルダー でZIPファイルに圧縮します。

圧縮されたZIPファイルをArduino IDEがインストールされているフォルダー内の libraries フォルダーにコピーします。

↓ Arduino IDE(開発環境)がインストールされているフォルダー

さらに Cytron_MP3Shield-master.ZIP ファイルを展開したフォルダーへ戻り、examples → PlayATrack の順にフォルダーを選択します。
PlayATrackフォルダー内のPlayATrack.ino をクリックして、Arduino IDEに読み込ませます。

Arduino IDEが起動したら、スケッチ → ライブラリをインクルード → .ZIP形式のライブラリをインストール… の順に選択します。

先ほどコピーしたZIPファイルを選択します。

インクルードが成功すると、下記のように「ライブラリをインクルード」の中に「CytronEZMP3」が表示されます。

マイクロSDカードの準備

マイクロSDカードにMP3ファイルをコピーします。
その際、mp3というフォルダーを作成し、その中に0001.mp3、0002.mp3、0003.mp3 というような連番のファイル名を作成してください。
ファイルのコピーができたら、
MP3シールドのスロットに差し込みます。

 

ArduinoにEasy MP3シールドを接続

Easy MP3シールドをArduinoに差し込みます。

ジャンパーピンが、TXはD3、RXはD2にそれぞれセットされていることを確認してください。初期状態では、この設定になっています。
ただし、D3、D2は、Arduino UNO および、その互換品でしか使えません。

Arduino Mega 等、Uno以外の場合は、下記の表をもとに変更してください。スケッチも変更する必要があります。

ジャンパーを変更したら、スケッチの setup() 内の下記の2,3 をそれぞれジャンパーの設定に合わせてください。

if(!mp3.begin(2, 3))

サンプルスケッチの転送

スケッチ(PlayATrack.ino)をコンパイルして、Arduinoへ転送します。
上述のライブラリーがきちんとインストールされていると、問題なくコンパイルできます。

MP3ファイルの再生

転送し終わると、MP3ファイルが再生されます。音が大きすぎる場合があるので耳につけずにヘッドフォンを接続してください。音の大きさに注意しながら、耳につけてください。

サンプルスケッチでは、6秒ごとに次の曲に切り替わります。また、シリアル通信で再生している曲の表示、音量調節、再生の停止ができるようになっています。
Arduino IDEのシリアルモニタでその確認ができます。

シリアルモニターの表示例

Play/Pause, Prev/Vol-, Next/Vol+ の各押ボタンも有効です。
Prev/Vol-は、長く押すと音量が小さくなり、短いと前の曲に切り替わります。
Next/Vol+は、長く押すと音量が大きくなり、短いと次の曲に切り替わります。
Play/Pauseは、再生・一時停止です。

任意の曲の再生

サンプルスケッチ、PlayATrack.inoで は、6秒ごとに曲が切り替わります。また、トラック指定に関数 playTrack を使っています。
この playTrack  は、mp3フォルダー内の0001.mp3といったファイル名の再生に特化した関数です。それらのファイル名がない場合、再生される曲は不定です。
ほかのファイル名の曲を再生したい場合は、playTrack の代わりに playPhysical (名称どおり解釈すると物理的なトラック番号を再生)を使うとよいでしょう。
SDカードにファイルをコピーした順がトラック番号になります。

使い方例
mp3.playPhysical(1);
引数の1がトラック番号

入力に応じたMP3ファイル(曲)の再生

下記がArduinoの5番ピンをLにするとトラック1、6番ピンをLにすると、トラック2がそれぞれ再生されるようにしたスケッチです。

playPhysical などの関数は、曲の終わりまで待ちません。コマンド発行後、すぐに次の行の処理に移ります。
よって、
while(digitalRead(TUNE_1) == LOW);
で、入力がH (プルアップされているので開放状態)になるまで待機するようにしています。

Easy MP3シールド関数リファレンスマニュアル