2024年5月30日木曜日

LGT8F328Pのシリアル通信でDfPlayerを操作

  以前、うまくいってなかった、arduino互換 LGT8F328Pのシリアル通信によるDfplayer操作に再度挑戦してみたら、今回はうまくいきました。音量をあまり大きくすると、電圧降下が起きるためか、不安定になるようなので、初期化で音量を下げるようにしています。DfplayerとつなぐPinは5,6にしたらうまくいくようです。スイッチはタッチセンサttp223を使用。LGT8F328Pはサイズが小さいのでコンパクトにまとめることができました。

 使い方は、一方のスイッチをOnにするたびに、フォルダを変更します。もう片方のスイッチをOnにするたびに、そのフォルダ内のファイルを順に再生します。なお、今回は01~05までのフォルダにしてみました。必要に応じて、スケッチの定数maxfを変更すれば、98までフォルダを増やせます。99のフォルダには001.mp3に「フォルダ1です」のように音声ファイルを入れておきます。フォルダ内のファイル名は先頭が0の3桁数字が必要です。多くの音声ファイルを手軽に再生するのに便利に使えそうです。 

 ただ、先頭に数字をつける作業があるので、ここは、.netでツールを作成してなるべく効率よくできるようにしているところです。

Pin接続とスケッチは以下のようにしてみました。

delay時間を調整したりしないと、各フォルダ内のファイル数の取得がうまくいかず、試行錯誤必要だった。まだ、完全でないところもあるかもしれません。


※追加機能として、内蔵LEDでカレントFile番号を光モールス信号で、電子ブザーでも出力する形式にしてみた。ChatGPTに必要な関数を聞いて、それを使ったところ、速攻で完成。
電子ブザーは、音量調整できるように可変抵抗とともに9番ピンに接続した。ディスプレイなしで手軽に扱えるようにしてみた。
※さらに、追加機能として、ファイルのタッチスイッチは長押しすると、ピッという音が何回か鳴るようにし、鳴った回数だけファイル番号を先に進めるようにした。これで、スムーズにファイル番号を先に進められるようになった。使っているうちに、いろいろアイデアが出てくるが、それを簡単にコードに反映できるのが、arduinoの利点。
※フォルダ切り替えスイッチを長押し(ピッピッが3回以上)すると、連続再生できるようにした。必要なmp3音声ファイルは、コード内にコメントを入れました。

0 件のコメント:

コメントを投稿