ESP32-S3と赤外線センサーでUSBサーマルカメラを自作、PCからは通常のWebカメラとして認識

FabScene(ファブシーン)

ESP32-S3と赤外線サーモパイルセンサー「MLX90640」を組み合わせ、PCに接続するだけで通常のWebカメラとして認識されるUSBサーマルカメラを自作するプロジェクトが公開された。制作者はESP32関連のプロジェクトで知られるChris Greening氏(atomic14)。ファームウェアのソースコードはGitHubでMITライセンスのもと公開されている。

Melexis製のMLX90640は、32×24画素の遠赤外線サーモパイルアレイセンサーだ。I2Cインターフェースで温度データを出力し、-40〜300℃の範囲を測定できる。モジュール単体はAmazonやWaveshareなどで20〜50ドル(約3100〜7800円)程度で入手可能で、業務用サーマルカメラと比べて桁違いに安い。

ただし、32×24画素のデータはそのままでは粗すぎて使いにくい。Greening氏のファームウェアは、センサーから読み取った温度データをフォールスカラー(疑似カラー)に変換し、最近傍補間またはバイリニア補間で320×240画素に10倍拡大する。拡大後の画像をJPEGにエンコードし、USB Video Class(UVC)のMJPEGストリームとしてホストPCに送る仕組みだ。

ESP32-S3のネイティブUSB機能を活用しているため、PC側に専用ドライバーやソフトウェアは不要で、標準のカメラアプリからそのまま映像を確認できる。画面には最高温度、最低温度、中心温度のオーバーレイ表示に加え、FPS表示も出る。GPIO0のBOOTボタンを押すとカラーマップをGray、Iron、Jet、Rainbowの4種類に切り替えられる。

FabScene(ファブシーン)

開発にはEspressifのESP-IDFを使った。Greening氏はブログ記事で、I2C通信が動作しない問題に長時間悩まされた経緯も紹介している。I2Cアドレスのスキャン、プルアップ抵抗の確認、電圧の変更など一通りの手順を試したが解決せず、最終的に顕微鏡でボードを確認したところ、オンボードの3.3Vレギュレーターのはんだ付け不良が原因だった。ソフトウェアの問題だと思い込み、ハードウェアの検査を後回しにしてしまうのは、電子工作では起きがちなことだろう。

Greening氏は前段のプロジェクトとして、ESP32-S3をカメラなしでUSB Webカメラとして動作させる「Pong Cam」も公開している。テストカード表示やアニメーションGIF再生、30fpsで動作するPongゲームをUSB経由でストリーミングするもので、ESP32-S3のUSBデバイス機能の可能性を示す実験だ。サーマルカメラはその応用例にあたる。

関連情報

GitHubリポジトリ
Greening氏のブログ記事

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!
目次