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向けのプログラム修正