ESP-EYE マイク を bluetooth で、PC につなげて聞きたい。
マイクロフォンを、Bluetooth で通信するには、HS(Head Set) profile を使うみたい。
HFP(Hands-Free Profile) などでもできるみたいだが、HS がシンプルなので、こちらを使うことにした。
最初、A2DP Source でもできそうなので、試していたが、結局うまく行かなかった。
esp32 で、hsp-hr を検索したら、
@atomic14/esp32-hsp-hf が出てきたので、早速試してみた。
それと同時に、Ubuntu Mate 24.04 上で、VScode で、ESP-IDF拡張機能 が使えるそうなので、それの勉強を兼ねて試してみた。
また、 esp-idf v5.5 が最新なので、こちらも使うことにした。
I2Sの最近のブログ記事
ESP-EYE Simple HTTPD Server with MIC / MIC stream server
ESP-EYE オンボードマイクの音はどんなのか知りたくて、
ブラウザーから聴けるようにしてみました。
概要は、オンボードMIC 入力信号を I2S で取り込んで、WAV フォーマットに変換して、
本、Simple Server にアクセスした、ブラウザーへ、'audio/wav' httpデータとして送ります。
WAVデータ
16bit Mono 16k sampling
開発環境
Windows 10
esp-idf.py v4.0 Getting Started Guide for ESP-IDF v4.0
python3.7
MSYS2: make のみ利用
Git: Windows版とMSYS2 版を適宜に使用
あったら便利なツール
eclipse C/C++ 2020-06
(open java 64bit : OpenJDK11U-jdk_x64_windows_hotspot_11.0.8_10)
idf-eclipse-plugin : https://github.com/espressif/idf-eclipse-plugin
HTTP サーバーのベースは、esp-idf のサンプルプログラムの、
https://github.com/espressif/esp-idf/tree/master/examples/protocols/http_server/simple
です。
上記プログラムをベースに MIC 入力部分、WAVデータへの変換、を加えて行きます。
ESP32 esp-idf I2s マスターモードで、MCLK(I2S master clock) の出力について、
何とか出来たので書いてみました。
esp32_datasheet_en.pdf の記述では、マスタークロックを出力できると記載があります。
4.1.12 I²S Interface
..
When one or both of the I²S interfaces are configured in the master mode, the master clock can be output to the external DAC/CODEC.
また、別のページには、
The MCLK (I2S master clock) output can be put out through a CLK_OUT pin only.
とあるので、下記シンボルがそれみたいです。
soc/io_mux_reg.h
CLK_OUT1 - 3