02.ソフトウェアプロジェクトの作成



Raspberry Pi にセットアップした ESP-IDF(Espressif Iot Development Framework) のサンプルプロジェクトの「a2dp_sink」プロジェクトを流用して、プロジェクト作成、ビルド、フラッシュしていきます。

前提

01.ハードウェア組み立て」を実施していない場合は、実施します。

ESP-IDF の Raspberry Pi へのセットアップ」を実施していない場合は、実施します。

環境変数の設定

ESP-IDFを用いたプログラム開発を行うには、ESP-IDF関連ツールのパスを通す必要があります。

以下のコマンドを実行し、関連ツールのパスを通します。(先頭のドットとパスの間には、半角スペースが一つあります)



補足)
関連ツールのパスを通すスクリプトの実行は、起動したターミナルごとに、行う必要があります。
起動したターミナルで、一度スクリプトを実行したならば、そのターミナル上では、どのディレクトリからでもESP-IDFが使用できます。

プロジェクト作成

以下のコマンドを実行し、ESP-IDFのサンプルディレクトリの「a2dp_sink」プロジェクトを、「esp」ディレクトリにコピーします。プロジェクト名(コピー先ディレクトリ名)は「bluetooth_audio_receiver」とします。



「esp」ディレクトリ下に、「bluetooth_audio_receiver」ディレクトリができます。

デバイスの接続と、シリアル通信デバイス名の確認

デバイスの接続と、シリアルポートパスの確認を行います。

Raspberry Pi に、ESP32-WROOM-32 を接続している場合は、一度、接続を抜きます。

以下のコマンドを実行し、シリアル通信デバイスをリスト表示します。



USBケーブルを用いて、Raspberry Pi に、ESP32-WROOM-32 を接続し、再度、シリアル通信デバイスをリスト表示するコマンドを実行します。

新しく表示されたシリアル通信デバイス名が、ESP-WROOM-32のシリアル通信デバイス名です。
たとえば、「/dev/ttyUSB0」。

プロジェクトの設定

以下のコマンドを実行し、プロジェクトのディレクトリに移動します。



以下のコマンドを実行し、プロジェクトのターゲットを設定します。



以下のコマンドを実行し、プロジェクトの各種設定を行うmenuconfigを起動します。



menuconfigの画面


「A2DP Exmaple Configration」を選択し、「Enter」キーを押下します。

「A2DP Exmaple Configration」の画面


デフォルトセッティングは、
A2DP Sink Output : External I2S Codec
I2S LRCK (WS) GPIO : 22
I2S BCK GPIO : 26
I2S DATA GPIO : 25

デフォルトセッティングのまま、変更しません。
「ESC」キーを押下し、menuconfigを抜けます。

ビルド

以下のコマンドを実行し、プロジェクトのプログラムをビルドします。



完了するまで、しばらく待ちます。

フラッシュ

ビルド結果を、マイコンに書き込むフラッシュのコマンドは以下の書式です。



シリアル通信デバイス名が「/dev/ttyUSB0」の場合は、以下のコマンドを実行します。



完了するまで、しばらく待ちます。

動作確認

フラッシュが完了すると、マイコンに書き込まれたプログラムが起動します。

Bluetooth機能が搭載されているデバイス(スマートフォンやパソコン)から、作成した「Bluetooth Audio Receiver」にBluetooth接続します。
作成した「Bluetooth Audio Receiver」のデバイス名は「ESP_SPEAKER」です。

作成した「Bluetooth Audio Receiver」のイヤホンジャックに接続したイヤホンやスピーカーから、接続元のデバイスで再生したオーディオを聴くことができます。

(10秒ごとにオーディオ送信側のボリュームが少しずつ上がっていく動作をすることがあります。「04.ボリューム変更シミュレーション機能の無効化」にて対策します)

関連ページ

前項目:01.ハードウェア組み立て

次項目:03.PCM5102A向けのプログラム修正