SSブログ

ESP32で音を出す [ds-DCCデコーダ]

 なんか仕事に追われていたら、週末が3連休であることに金曜日の夜に気づくとかかなり残念な状況になっています。海の日は7月20日前後だと勘違いをしていたので来週ぐらいかなあと勝手に思い違いをしていたのもあるのですが。
 で、このごろESP32でどうにかMp3やWAVを再生しつつ、デコーダーにならないかなあと実験をしていて、進んでいません。
 いくつか理由があり、現状ESP8266Audioのライブラリを使っているのですが、

(1)ESP8266Audioライブラリの出来の問題:
(1-1)Mp3を複数音(4音ぐらい)出すとピーっという音が鳴り、私がやろうとしていることに対して、CPUパワー的に微妙かなと感じています。WAVにしたら8音ぐらいまでピーっというのは無くなったのですが、内蔵メモリは1M程度ですので、22KHzで10秒程度しか再生できないためスペックが微妙です。
(1-2)PCでのコンパイルが遅い。一回のコンパイルと書き込みに5分ぐらい掛かって、もちろん、何も考えずに実機デバッグしているため、かなり、効率が悪いです。今更Core2 Quadを使っているのが問題なんだとは思いますが。
(1-3)また、IMA ADPCM対応にライブラリを改造しようかとなんとなく眺めているのですが、継承を使った美しいClass構造で作られており、どこをどう改造すればよいのか検討がつきません・・・。どうしようか?

(2)音質の問題:
(2-1)アナログ出力できるDACによる音は余り良くなく、また、波形は無音時は0V、ファイルの再生開始すると、電圧的に256段階(3.3V)の中間の128(1.65Vぐらい)から開始するため、音の開始と終了でブツ音が入ります。ライブラリの構造がよくわからなく、電圧を0→128段階に徐々に持っていく方法についても考えなければいけないようだし。(でよくわかんないし)
(2-2)ライブラリにはPWMの矩形波で音を出すモジュールもあり、こちらの方が幾分DACよりもましですが、まあ、電圧中心の問題は変わらないですし。
(2-3)ということで、I2S接続でデジタルで繋げているのですが、どうもプツ音などが聞こえ、音質がいまいちです。(音を少しずつ大きくしてから、再生とした方が良いかもかなあ)
(2-4)音が悪い理由が、ESP32からの命令自体ががわるいのか、それともブレッドボードの使用で、電源が弱い、信号が変になっている?とか、なのか。

(3)DCC対応:
(3-1)ブレッドボードで実験するときに、音系の実験配線とDCC系の実験配線で変更を行ったりしたため、週末だけ実験しようとすると、頭がこんがらがってワケが分からなくなってきました。

(4)やる気の問題:
(4-1)ということで総合的に、やる気が失せてきました。

(現状の写真。何度も変わっていませんが)
DSC02833.jpg

これではダメだと思い、
 まずは、PCを買い換えました。このごろブルースクリーンもよく出るので。買ったのはドスパラのミニタワー。ちょっと、3Dの性能が悪いのが気になったので、近くのハードオフで安いGTX1060も買ってきて、つけておきました。3Dゲームなんてしないけど、なんとなく。で。コンパイルは早くなりました。前の5分ぐらいから1-2分ぐらいになった感じでしょうか?これで(1-2)コンパイル遅い問題解決です。
 次に、(2-4)ブレッドボードのせいで音が悪い?、(3-1)の配線がこんがらがってきたについて、解決するため、適当な実験ボードを作ることにしました。
「ESP32 Decoder Test Board」です。DCC部分はMp3V5などをそのまま3.3V用に定数を変更して、使っているだけのボードになります。あとはMotorDriverを2ch用意したので、自動車や戦車とかのラジコンカーにもなるかもです・・・。もちろん両極性のヘッドライト、テールライト用に付けたのですが。
ESP32_DecoderTest_sch.png

 今回、Elecrowに7/7(日)の夜に頼んで、7/12(金)に届きました。5枚頼んで1900円。早くて素晴らしいサービスです。今までだと1週間ちょっとはかかっていたのですが、この頃、シンセンも景気悪いんでしょうか?
DSC02831.jpg

で、組み立てして。
DSC02837.jpg

ちゃんと全景を写すとこうで、
DSC02838.jpg

まあ、新規一転実験を始めました。Mp3,WAVが鳴ることは確かめました。次はDCCスケッチとつなげてみるのと、IMA ADPCMどうするか?とか、なんとか。まあ、7月末までに終わらせて、一度お蔵入りさせるつもりです。(ここから車載デコーダを作る気にもならないため)


コメント(2) 

コメント 2

あやのすけ

嗚呼っ面白そう!
MP3の音声合成できるんですね!すごい。
無線LANは使わないで、直接ESP32‑D2WDのチップを
使用して作るの良いですね。
by あやのすけ (2019-07-14 16:01) 

fujigaya2

コメントありがとうございます。
Mp3の合成は4音でぶっ飛んでいたので、実用上は2音か3音までっぽいです。(まだDCCのライブラリと一緒に使っていないので、あと、どのくらいまでパフォーマンス落ちるのかわからないです)
直接ESP32-D2WDを使えば、小さくできそうですが、なんか、ハードル高そうですよね。
by fujigaya2 (2019-07-15 10:22) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。