Grove MP3モジュール v3.0
Seeed Studio社から発売されている「Grove - MP3 V3 -Music Player」をM5Atom LiteからArduino IDEで利用した時の覚書です。
こちらを利用してオーディオ出力できるようにしました。
こちらは、制御するマイコン(今回はM5Atom)側から音を渡すのではなく上記MP3モジュール内にセットしているSDカードに保存している音を鳴らすものになります。
と思っていますが、もしも他にやり方があって私がそれを知らないだけだったらすみません。
M5Stack(M5Atom)から使う
https://wiki.seeedstudio.com/Grove-MP3-v3/
SeeedStudioさんの上記Wikiにサンプルコードがあるのですが、M5で使おうと思った時にどうやったら良いかわかリませんでした。
1.ライブラリのインストールとインクルード
まずはWikiにある通りGithubからSeeed_Serial_MP3ライブラリ(下記)をダウンロードしてインストールします。
https://github.com/Seeed-Studio/Seeed_Serial_MP3_Player
それからArduino IDEで「ライブラリをインクルード」すると下記3行が追加されます。
#include <WT2003S_Player.h>
#include <SeeedGroveMP3.h>
#include <KT403A_Player.h>
2.コードを書く
HardwareSerialとして下記のように定義します。
HardwareSerial hSerial(1);
WT2003S<HardwareSerial> Mp3Player;
setup時にはHardwareSerialのhSerialをbeginするのですが、この時3,4番目の引数にTX, RX のピンを定義します。
今回はM5Atom LiteのGrove端子を使っているのでTX:32, RX:26をセットします。
それからMp3Playerのinit時の引数としてhSerialを渡します。
void setup() {
hSerial.begin(9600,SERIAL_8N1,32,26);
Mp3Player.init(hSerial);
UARTを使っているのでM5.beginするときの1番目の引数はtrueにしないといけないのかなと思いましたが、試してみたところどちらでも大丈夫そうでした。
// 本体初期化(UART(どっちでもいいみたい), I2C, LED)
M5.begin(false, false, true);
あとはWiki仕様にある通りのメソッドが利用できます。
// ■ 音量の設定(MAX30)
Mp3Player.volume(30);
// ■ 音声ファイル名を指定して再生
Mp3Player.playSDSong("song.mp3");
多分M5Atom Lite以外のM5StackデバイスでもTX,RXの値を変更すれば大丈夫なのではないかなと思いますが未確認です。