PDMインタフェース MEMS 超音波マイク SPH0641LU4H-1 を ESP32のESP-IDF で試す

Knowles の PDM(Pulse-Density Modulation)インタフェースの超音波帯までセンシング可能なMEMSマイク SPH0641LU4H-1からESP32 への入力をESP-IDFフレームワークのプログラムで試した。

PDMインタフェース MEMS マイク SPM0405HD4H を ESP32のESP-IDF で試す」で示したサンプルプログラムespidf_pdm_mic_outを基に、espidf_pdm_sph0641_mic_out を作成し、試した。

ハードウェア

  • Espressif ESP32 開発ボード
  • デジタル出力MEMSマイク変換基板
  • スピーカ
  • コンデンサー
    • PDMで直接出力する場合にローパスフィルターの一部として使う(PDMでコンデンサを外しても音は聞こえる)。
    • DACで変換して出力する場合には、なくて良いはず。
    • 0.1μF コンデンサ
      • DFRobot ECell の 100nF のコンデンサ
      • DFRobot ECell はブレッドボード用端子が付いたものだが、普通のコンデンサがあればそれでよい。
  • ブレッドボードと配線材

ブレッドボード図

PDMで直接出力する場合を示す。

Low Pass Filterの一部としてコンデンサを入れているので Digital Analog Converter (DAC)を利用する場合には、コンデンサを省略して良い。

実際の配線例

回路図

PDMで直接出力する場合を示す。

Fritzingファイル

パーツCRESCENT-006のFritzingデータ

ソフトウェア

PDMインタフェース MEMS マイク SPM0405HD4H を ESP32のESP-IDF で試す」で示したサンプルプログラムespidf_pdm_mic_outを少しだけ手直しした。サンプリング周波数の変更が主な変更点である。

再生時に、DMAのバッファの内容が繰り返し出力されて、録音の最後の部分が繰り返し再生されるようなので、録音データを再生後に、空のデータをDMAバッファに書き込んで、無音になるようにしている。

マクロ 

マクロの設定によって、サンプリング周波数や出力を切り替える。

  • FREQ_KILO
    • kHz単位のサンプリング周波数を指定する。可能な数値は、48、96。
    • 192も設定可能であるが、正常に動作しない。
  • PDM_OUT
    • 出力をPDMそのままで行う場合には1、DACで変換する場合には0にする。

また、「PDMインタフェース MEMS マイク SPM0405HD4H を ESP32のESP-IDF で試す」を基にしているので、出力をモノラルにするかステレオにするか、あらかじめ用意してあるデータをunsigned 8bit  mono にするか signed 16bit  stereo にするかなどを切り替えられるはず(動作確認はしていない)。

プロジェクトファイル

使用したプロジェクトのソースファイル等をGitHubの次のリポジトリに置いた。

https://github.com/kunsen-an/espidf_pdm_sph0641_mic_out

テスト

環境

  • Windows 10
  • Visual Studio Code
    •  バージョン: 1.39.2 (user setup)
  • PlatformIO
    • Home 2.3.3  Core 4.0.3
  • フレームワーク
    • Espressif 32 (Version 1.11.0)

結果

サンプリング周波数48kHz、96kHz、192kHzを試してみた。可聴音で試したところ48kHz、96kHzは動作しているようである。192kHzは無理のようであった。

ESP32 Technical Reference Manualをよく読んで、レジスタを操作すればできるのかもしれないが、現時点ではライブラリを使って試しただけである。

害虫よけの超音波発生器をマイクのすぐ近くにおいて録音し、それをDACで変換して再生した信号をオシロスコープの簡易FFT機能で見てみた。次のように25kHz付近の信号が観測された。

害虫よけの超音波発生器がない場合は、次のようなスペクトルであったので、少なくとも25kHzくらいまではMEMSマイクで録音できると考える。

コメント

  1. きくやん より:

    Fritzingファイルがダウンロードできないのですが

  2. きくやん より:

    fzz がダウンロードできません。
    invalid-file-type-fzzと表示されます。
    よろしくお願いいたします。

    • epi より:

      .fzz ファイルをダウンロードできるように設定を変更しました。遅くなって申し訳ありません。
      Download Managerが更新されて設定を変更しないとダウンロードできなくなっていたようでした。