やりたいこと
ESP32ボードとDFplayerを接続してサウンドを鳴らしたい
環境
Windows10 PRO (version 1909 Build 18363.1016)
ESP32 Developer 32 https://www.switch-science.com/catalog/3210/
micro python (version 1.12)
adafruit-ampy (version 1.0.7)
esptool(version 2.8)
pip(version 20.2.2)
参考にしたサイト
https://github.com/PLdeSousa/micropython-dfplayer
実行したこと
[1] ESP32のメモリ内容を消去
esptool --port COM8 erase_flash
[2] ESP32用のmicro python ファームウェアをインストール
esptool --chip esp32 --port COM8 write_flash -z 0x1000 binファイル名フルパス
[3] boot.pyの作成
import esp
esp.osdebug(None)
import gc
gc.collect()
[4] 他に必要なpyファイル
https://github.com/PLdeSousa/micropython-dfplayerのページに記載のサンプルコード。これをmain.pyとしました。
scanplayer.py
dfplayer.py
[5] ピン結線(ドキュメントを参考に)
・ESP32 3.3V --> DFplayerのVCC
・ESP32 GND --> DFplayerのGND
・ESP 5番ピン --> DFplayerのBUSY
---->scanplayer.pyの8行目をk['busy_pin'] = Pin(5)に修正(オリジナルは、k['busy_pin'] = Pin(0)、0番ピンがなかったため)
---->dfplayer.pyの129行目をplayer = Player(busy_pin=Pin(5))に修正(オリジナルは、player = Player(busy_pin=Pin(0))、0番ピンがなかったため)
・ESP32 RXピン --> DFplayer TXピン
・ESP32 TXピン --> DFplayer RXピン
・SPK_1とSPK_2とにはスピーカーを接続
[6] microSDカードの構成
ドキュメントには、
""It will first scan all available folders for files called 000_XXX.mp3 001_XXX.mp3 and so on. It considers only folders named 00-09.""との記述があります。
フォルダは、00,01,02,03,04,05,06,07,08,09のいずれかとする必要があり、これらのフォルダの中に、000_XXX.mp3、001_XXX.mp3という名前でmp3ファイルを格納する必要がある、と書かれていると解釈し、私は、
00
+--001.mp3
というようなmicroSDカードを作成し、DFPlayerにセットしました。
発生するエラー
コマンドラインで、boot.py、main.py、dfplayer.py、scanplayer.pyを転送し、ピン結線をしてから、PuTTYでシリアルポートの応答が見えるように準備した上で、ESP32のリセットボタンを押しました。すると、PuTTYに"No available tracks"と出力されます。ファイル名を001_abc.mp3に変更しても同じエラーが出力されました。
このエラーを出力しているのは、
- main.pyでavaialbleFoldersに正数がセットされていないから、というところまでは分かるのですが、その先をどう解釈して良いのか解りません。
- main.pyの中で、player = scanplayer.ScanPlayer()と書かれているので、scanplayer.pyの中の初期値設定に問題を変更するべきなのか?とも思ったのですが、どう修正すれば良いのか解りませんでした。
どのように設定したら動作するようになるのか教えて下さい。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。