Bluetoothオーディオレシーバーを作る ( ESP32 + PCM5102A )
「Bluetoothを搭載したマイコンである ESP32」と「PCM5102Aを使用したオーディオDACモジュール」を組み合わせ、Bluetooth送信可能なデバイスで再生したオーディオを聴くことができる「Bluetoothオーディオレシーバー」を作成する方法に関するメモを書きとめています。
「Bluetoothオーディオレシーバー」を使用すると、オーディオを再生するデバイス(※1)と、ケーブル接続なしで、イヤホンやスピーカーを使うことができます。
※1 : オーディオを再生するデバイスは、Bluetooth機能が搭載されている必要があります。スマートフォンやタブレットはほとんどの機種でBluetooth機能が搭載されています。パソコンはBluetooth機能が搭載されていない場合はBluetooth
USBアダプタによりBluetooth機能を追加できます。
主要部品
マイコン |
マイコンボードとしては、Bluetoothを搭載したマイコンである ESP32を使用した開発キットである ESP32-WROOM-32 を使用します。 |
|
オーディオDACモジュール |
オーディオDACモジュールとしては、I2S入力をアナログ音声に変換するPCM5102Aを使用したモジュールを使用します。 |
|
02.ソフトウェアプロジェクトの作成 |
|
Raspberry Pi にセットアップした ESP-IDF(Espressif Iot Development Framework) のサンプルプロジェクトの「a2dp_sink」プロジェクトを流用して、プロジェクト作成、ビルド、フラッシュしていきます。 |
05.絶対音量対応 |
|
送信側(スマートフォン等)が絶対音量(Absolute Volume)でオーディオを送信している場合は、受信したオーディオデータを、ボリューム設定に応じたデータに変更してから、オーディオDACモジュールに送ります。 |
06.ボリューム値の復元対応 |
|
Bluetoothオーディオレシーバーの電源を入れなおし、Bluetooth機能が搭載されているデバイス(スマートフォンやパソコン)からBluethoothの再接続をした際に、前回のボリューム値が復元されるようにします。 |
参考