SyntaxHighlighter

2016年9月6日火曜日

Grove MP3モジュール v2.0 (KT403A)の仕様について(曲選択機能)

Grove MP3モジュール v2.0 (KT403A)の仕様について。

秋月で売られているKT403Aのモジュールは、安価で、
SDカード(およびUSBメモリ)からmp3音楽を再生できる、非常に便利なモジュールであるが、
曲選択機能においてわかりづらい場所があって困ったので、記録しておく。

このモジュール、単に入れた曲を再生したり、切り替えたりするのは問題ない。
しかし、このモジュールを使いたい多くの人は、特定のmp3ファイルを指定して再生したいだろう。
ここで引っかかりが出る。

まず、予め言っておくが、秋月のページに有る英文データシートは明らかに項目数が少ない。
翻訳の際の誤植もある。中国版データシートを参照することをおすすめする。

ちなみに、通信のチェックサムがさもあるかのように書かれているが、実際に通信する際には
チェックサムは不要である。有効にするオプションが有るのかもしれないが。


まず、最初に、特定のファイルを再生しようとして使うのは、
"Play specific track*" だろう。
Groveのサンプルで言うところの
void SpecifyMusicPlay(uint16_t index)
である。

0x7E 0xFF 0x06 0x03 0x00 FF FF 0xEF
と送れば、65535.mp3が再生される、と思うかもしれない。
実際には、65535番目に記録されたファイルが再生される。

0.mp3
1.mp3
999.mp3

があったとき、
0x7E 0xFF 0x06 0x03 0x00 00 02 0xEF
と送ると、999.mp3が再生される。(02ではなく、03だったかもしれないが)

データシートをよく読むと、「Note that the empty filed need to be filled with specific numbers.」と
書かれているが、それはこの仕様のためである。


"2.3.7 Specify a file to play tracks inside [0x14]"
も同じで、

Play track 0255 (track’s name) in folder 0001 : 7E FF 06 14 00 10 FF FD D8 EF
Play track 1999 (track’s name) in folder 0001 : 7E FF 06 14 00 17 CF FE 01 EF
Play track 0001 (track’s name) in folder 0012 : 7E FF 06 14 00 C0 01 FE 26 EF
Play track 0255 (track’s name) in folder 0012 : 7E FF 06 14 00 C0 FF FD 28 EF
Play track 1999 (track’s name) in folder 0012 : 7E FF 06 14 00 C7 CF FD 51 EF

と書かれていることから、

例えば
7E FF 06 14 00 10 FF FD D8 EF
と送れば、フォルダ0001の、0255.mp3が再生される。
...と思うだろう。実際には、1番目のフォルダの、255番目に記録されたファイルが再生される。
255番目である。ファイル名に関係なく、FATに記録された順番で再生されるらしい。


特定のファイル名を再生したいならば、
"Specify a certain folder and play tracks inside [0x0F]"
Groveのサンプルで言うところの
void SpecifyfolderPlay(uint8_t folder, uint8_t index)
を使う必要がある。

Specify folder name 01 and track name 001xxx.mp3 7E FF 06 0F 00 01 01 EF
Specify folder name 11 and track name 100xxx.mp3 7E FF 06 0F 00 0B 64 EF
Specify folder name 99 and track name 255xxx.mp3 7E FF 06 0F 00 63 FF EF

※255が誤植で001になっているので注意。

これも表記がわかりにくいのだが、

Specify folder name 01 and track name 001xxx.mp3 7E FF 06 0F 00 01 01 EF
というのは、つまり、01という名前のフォルダの、001から始まるファイル名が再生されるということである。
中国版データシートでは、スクリーンショットとともに丁寧に説明されている。

つまり、
01\001Test.mp3 → 7E FF 06 0F 00 01 01 EF
01\002Wow.mp3 → 7E FF 06 0F 00 01 02 EF
02\255Buzz.mp3 → 7E FF 06 0F 00 02 FF EF
ということである。

もちろんこちらは空のファイルで埋める必要はない。きちんとファイル名で再生してくれる。

とりあえず以上。

0 件のコメント:

コメントを投稿