2018年8月15日水曜日

ESP32の内蔵DACを利用してBluetoothスピーカーとして動かしてみた


背景

ESP32とは、BluetoothとWiFiの通信機能を備えたモジュールです。
ESP32をBluetoothスピーカーとして動かしている方が居たので、真似してみました。

自分で新しく追加した機能などはありませんが、やったことの備忘録として記事を残します。

使ったもの

esp-idfを設定したPC


esp-idfとは、ESP32の開発環境です。
READMEを見ながら環境を構築しました。

この記事で利用したesp-idfとxtensa-esp32-elfのバージョンはこちらです。

esp-idf
最終コミット
1c7a8b3b712c4020562551f692d0ced8f7470d2c
Tue Jul 31 15:31:55 2018 +0800

xtensa-dfp32-dlf
5.2.0

ESP32開発ボード


ESP32BBを使いました。
ESP-WROOM-32が載ったボードなら、同じことを試せると思います。

スピーカー 8Ω 7W


似たようなスピーカーは秋月電子で買えます。

秋月電子 スピーカー

プログラムを書き込み

背景で紹介した記事を書いた方がプログラムを公開しているので、それを利用させてもらいました。

ESP32_bt_speaker

PCにダウンロードします。
git clone https://github.com/h-nari/ESP32_bt_speaker.git
cd ESP32_bt_speaker

READMEにかかれているように、初回make時、もしくはmake menuconfig実行時に
「A2DP Example Configuration」 ->
「A2DP Sink Output (Internal DAC)」 ->
「Internal DAC」
 を選択します。
make

makeが成功するようなら、ESP32開発ボードをPCに接続して、下記のコマンドで書き込みます。
make flash

回路を構成


このように接続しました。
D25 - スピーカー - GND

Bluetoothスピーカーとして設定

ESP32が期待通りに動いていれば、PCのBluetooth設定でESP_SPEAKERが見つかると思います。
OSごとに設定方法が異なると思いますので、設定方法は利用されているOS + Bluetooth設定などで調べてください。


接続できたらスピーカーとして動作します。

音の感想

ESP32内臓のDACは8bitなので、音質はそんなによくありませんでした。
(CDは16bit、DVDは24bit)

良い音を出力したい場合は、外付けDACとESP32を連携させる記事を参考にしながら、下記のような対応ビット数の多い外付けDACを利用するのが良いと思います。

インタフェースi2s PCM5102 dacデコーダGY-PCM5102 i2sプレーヤーモジュールラズベリーパイ常微分方程式フォーマットボードデジタルオーディオボード

まとめ

ESP32をスピーカーとして動かせました。
しかし、DACが8bitなためか、これを常時利用するのは、音質が良くなくて個人的に厳しいと分かりました。

何かの参考になれば嬉しいです。

0 件のコメント :