Ganponブログ

趣味の模型作り、ドライブ、旅行など
since Mar.2017

JQ6500 MP3 Player Moduleを使ってみた

2021-12-12 16:54:45 | Arduino

2021-12-12
RC可動戦車などの効果音はDFPlayer miniを使っているが、microSDカードも必要でした。
DFPlayer miniが3個で800円程度。microSDカードが1個570円程度。1set合計833円程度です。
最近、JQ6500音声モジュール基板(MP3)というものを知りました。
これは、内蔵のメモリー(2MBらしい)にデータを描き込んで使用でき、お手軽です。
使ってみたのは非正規品ですが2個788円(16PT)、1個当たり390円程度で利用できます。

▼JP6500にデータを描き込むにはアップローダープログラムが必要です。

  1. JQ6500 MP3 Player Module を開きます。
  2. ページ内の下方の、English Language MusicDownload.exe Uploader for JQ6500-16P
    English Language MusicDownload.exe v1.2a をクリックして、
    Zipファイルをダウンロードし、適当な場所に解凍します。
  3. 開いたプログラムのFILESタブがMP3ファイルの選択画面、FLASHタブがアップロード画面です。
  4. JQ6500とWindowsPCをUSBケーブルで接続。
    デバイスとして認識されてないので不安でしたが、書込みは問題なく出来るようです。
  5. FILESタブをクリックし、Chose files...ボタンをクリックして、コピー元のファイルを選択してセットします。

  6. 次に、FLASHタブをクリックし、FLASHボタンをクリックしてJP6500にアップロードさせます。


    この時、メモリーは初期化され、新たに書込みされているようです。
  7. 下図の回路で、マイコン無しで動作させることができるので、
    購入したユニットが正常に動作するか、正常に描き込まれているかを確認することができます。
    電源電圧はDC3.2~5Vです。
    K1からK5までの5個の端子に各々プッシュスイッチを接続することで、
    マイコン無しでも5個のMP3音源を再生できます。
    描き込んだファイルが3個だけの場合、S4、S5を押して再生されるファイルは1番目のファイルでした。

Arduinoでコントロールすることも可能ですが、詳しいコマンドの説明が見つかりません。
サンプルプログラムを参考に試行錯誤で動作させてみました。
Arduino IDEでプログラムを書き込み、動作させるにはJQ6500_Serial Arduino Library をダウンロードします。
http://sparks.gogo.co.nz/JQ6500_Serial.zip をダウンロードします。
Zipファイルのダウンロードは「安全ではありません」と警告されますが、各自の責任でダウンロードしてください。
ダウンロードしたZipファイルは、Arduino IDEで「Zip形式のライブラリーをインストール」で処理します。
これで、File/スケッチ例/JQ6500Serial/FullDemoなどを利用できるようになります。

ArduinoとJQ6500の接続はスケッチの内容を確認。
JQ6500のTX(10pin)をArduinoの8pinに、
JQ6500のRX(9pin)をArduinoの9pinに1kΩを介して接続します。
//   Arduino Pin 8 is connected to TX of the JQ6500
//   Arduino Pin 9 is connected to one end of a  1k resistor, 
//     the other end of the 1k resistor is connected to RX of the JQ6500
//   If your Arduino is 3v3 powered, you can omit the 1k series resistor
SoftwareSerial mySerial(8, 9);
JQ6500_Serial mp3(mySerial);

▼サンプルスケッチを参考に、下記のスケッチを作成しました。
5個のMP3ファイルを順に再生するだけのプログラムです。
上手く動作したので、取り敢えずArduinoで動作する確認はできました。
mp3ファイルですが、001abc.mp3の様に3桁の数字で始まるファイル名で登録する。
指示、再生は数字の若い順で何番目という具合になる様です。

  1. /* JQ6500_TEST_5files
  2.   test controls of the JQ6500 module.
  3.   2021/12/12
  4.   5 files simple play test
  5. */
  6.  
  7. #include <Arduino.h>
  8. #include <SoftwareSerial.h>
  9. #include <JQ6500_Serial.h>
  10.  
  11. // Create the mp3 module object,
  12. // Arduino Pin 8 is connected to TX of the JQ6500
  13. // Arduino Pin 9 is connected to one end of a 1k resistor,
  14. // the other end of the 1k resistor is connected to RX of the JQ6500
  15. // If your Arduino is 3v3 powered, you can omit the 1k series resistor
  16.  
  17. SoftwareSerial mySerial(8, 9);
  18. JQ6500_Serial mp3(mySerial);
  19. int fnum ;
  20.  
  21. void setup() {
  22.   Serial.begin(9600);
  23.   mySerial.begin(9600);
  24.   mp3.setVolume(20);
  25. }
  26.  
  27. void loop() {
  28.   for (fnum = 1 ; fnum <= 5 ; fnum++) {
  29.     mp3.playFileByIndexNumber(fnum);
  30.     delay(3000);
  31.   }
  32.   delay(3000);
  33.   for (fnum = 5 ; fnum >= 1 ; fnum--) {
  34.     mp3.playFileByIndexNumber(fnum);
  35.     delay(3000);
  36.   }
  37. }

未だ未確認な点が多くあり、上記内容に誤った解釈が有るか判りませんが、
取り敢えず動作させた所までを備忘録として残します。