DFPlayerMini・Arduinoプログラミング
DFPlayerMiniをArduinoでコントロールする。
一旦ブレットボード上で回路を組み、プログラミングし、動作を確認。
使用するのは、ピックアップワインダー製作の際に購入した
Arduinoスターターキット。
DFPlayerMiniとArduinoは
2本のシリアル接続用線とDC5vの電源線を繋いでやる。
次いで再生STARTボタンとPAUSEボタン、スピーカーを接続。
とにかく接続はシンプルだ。
ここからは、専門的だがご容赦。
ArduinoにはLibralyと呼ばれる、便利機能?があり、
これらを拝借すると簡単にプログラミングできる。
DFPlayerMiniとArduinoはシリアル接続するので、
Libraly<SoftwareSerial>を読み込む。
次にDFPlayerを制御するためのLibraly<DFRobotDFPlayerMini>を読み込む。
void loop部分は2番のSWがONすると音声ファイルが再生され続け、
3番のSWがONすると1時停止するスケッチ(プログラム)。
ここまでのプログラミングは初心者でも可能だろう。
だが、このプログラムでは、おもちゃのサウンドガンと同様の機能にならない。
サウンドガンは7種類の効果音を内蔵しており、
トリガーを引けば効果音が出て、トリガーを戻すまで音は鳴り続ける。
再びトリガーを引けば、二番目の効果音が出て、
という具合に7種類の効果音がループする。
1つのスイッチのみを使用し、
そのスイッチを押している間だけ音声を再生し、離せば再生が止まり、
再びスイッチを押せば、次の音声ファイルが再生され、
最終トラックが再生されれば、先頭の音声ファイルに戻るように、
ループするプログラムを作成する必要がある。
ブレットボード上のスイッチを1つにして、プログラムを組み直す。
色々とプログラミングしたが、
スイッチのON/OFFの判定が曖昧なため上手くいかない。
そこで再び、便利機能のLibralyを頼ることに。
Library<ezButton>を読み込んで使用。
問題は一挙に解決。
void loop部分だが、僅か5行で目的の機能を実現。
ボタンが押されると次のトラックが再生され、
ボタンがRelease(離される)されるとPause(1時停止)。
この手のボタン系Libralyは複数あるが、
最もシンプルなezButtonが一番使い易いかもしれない。