🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

2156閲覧

micro pythonを導入したESP32でDFplayerを使って音を再生したい

BuhKeil

総合スコア34

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/08/23 08:29

やりたいこと

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に変更しても同じエラーが出力されました。

このエラーを出力しているのは、

  1. main.pyでavaialbleFoldersに正数がセットされていないから、というところまでは分かるのですが、その先をどう解釈して良いのか解りません。
  2. main.pyの中で、player = scanplayer.ScanPlayer()と書かれているので、scanplayer.pyの中の初期値設定に問題を変更するべきなのか?とも思ったのですが、どう修正すれば良いのか解りませんでした。

どのように設定したら動作するようになるのか教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

↓これ使いましょう!!
DFPlayer Mini: simple mp3 player for micropython
https://github.com/lavron/micropython-dfplayermini

「How to use」の説明の通りでいけます。
MP3ファイルはmicroSDカードにリネームしないでそのまま入れて再生できます。
play()に渡す値で何番目のファイルを再生するか指定です。
たぶん、ファイルが何番になるかは書き込んだ順になっていると思います、

投稿2021/07/25 15:45

PowerWave

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

DFPlayer miniの秋月電子の取説には、01-99のフォルダとあります。

また、上記のmicropython-dfplayerでは、フォルダの最大数の指定も可能ですが、デフォルト10で最大99となっていますが、処理をみると00から検索しています。(それだと最大の99を指定すると98までしか検索されない)

DFPlayerモジュールの違いか、micropython-dfplayerの間違いかは、わかりませんが、一度01フォルダに
ファイルをいれてみてください。

投稿2020/09/07 08:38

tmp

総合スコア303

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問