myMP3Playerがでけた。


てか、DFPlayerMiniなんですがね。シリアルで1曲再生を送る。alduinoで曲数分の整数を配列化して、配列要素をシャッフルで混ぜ、1番めの数字を16進数に変換してシリアルでDFPlayerMini(以下DF)に1曲再生指示で送る。再生が終わったかはDFのBUSY PINを参照すればOK。再生されていないことを確認して次の曲の番号を16進数に変換…。の繰り返し。
全曲シャッフル機能がついたDFでなぜそんなことを?となるのだが、DFのシャッフルには癖がある。1曲目は必ずSDに入った順番リストの最初の曲が再生される。1曲飛ばせば解決する問題だろうと飛ばした次の曲は、シャッフルじゃなく2番目に保存した曲だったり。つまりシャッフルリストの参照での曲飛ばしではなく、SDに入った順番リストを参照している感じ。で、MyShuffleをつくる最大の理由は、一度曲を飛ばすとシャッフルには戻ってこずに、そこから先のSDに入った順に再生してしまうこと(1~2度の経験なのでちゃんと確認していません。たまたまかも!?)。いくら安価なPlayerとは言っても、これは譲れない。無いなら作ってしまえ~!
いや~これ楽しいは!だってねAlduinoだから結果がすぐに確認できるんですよ。C言語だからネットでの情報が豊富だし、なにより1コインで中国から郵便で届くのがイイ(半月~1か月かかるけど)。留守のときでもポストに入っている手軽さ(ハンコも求められない。最近のアマゾンはそうなの?)。だからと言って制御が簡単な訳でもない。C言語での配列のシャッフル。16進数に変換してシリアルを送信っていう事もなかなか敷居が高い。シリアルはPCとDFヘ2系統必要だったりとそれなりの壁が用意されている。さらにハードの癖も絡んでくるので、すんなりとはいかない。MP3という音楽好きな若者に対するアピール度も含めて、ま~教材にはこれ以上ない優秀さ!
まだ問題は残っている。曲替わりの時に次曲を認識しきれないまま(DFの準備が整わない?)、次の曲に移ってしまう感じ。ひどいときには5曲ほど連続でその症状が出るとこがある。たぶん私のプログラムの問題だと思う。もしタイムオーバー的な問題なら試してみたいアイデアがある。アイデアがどう結果に出るのか?結果が楽しみである。 

で、そろそろパッケージを考える。ボタン操作か?加速度で操作?無線ランでスマホ操作もいいかも。
まー当分は車での操作がメインになると思うので距離センサーで手かざしでNext操作かな。マイコンだから気軽にエンジン連動だな。あ~そうだ車の純正スピーカーが余っているのでそいつでラジカセ風プレーヤもイイかも、イコライザも5種から選べるし(選択機能を忘れてた、これも楽しみ)。

コメント