用意するもの
用意するものはM5Stack TimerCameraXとLEDテープのみです。LEDテープに付属するGroveケーブルで接続します。
改変元
esp-whoのexamplesにあるhandpose_estimation_webを改変して実現しました。handpose_estimation_webはブラウザ経由で動画を確認しながら手の検出を行うサンプルで、実際に稼働させるときはhand_detection_with_command_lineを改変した方が楽だと思います。
使用した環境
- Ubuntsu 20.04
- esp-idf v4.4
- esp-who
examples/single-chip/handpose_estimation_webを改変しました。 - FastLED-idf
componentsを利用しています。
ビルドするまでの簡単な手順
esp-whoのサンプル(handpose_estimation_web)をビルドする手順です。(LEDと連携はしません。)
- esp-idfをセットアップし、idf.pyを実行できる環境を作ります。
- esp-whoをgit cloneします。※ add_handpose_estimation_web_with_ledブランチです。
git clone https://github.com/mongonta0716/esp-who/tree/add_handpose_estimation_web_with_led
- サブモジュールをupdateします。
cd esp-who
git submodule update --init --recursive
- esp-who/examples/single-chip/handpose_estimation_web_with_led に移動します。
- idf.py menuconfig を実行し、「Camera Web Server」の下記の項目を設定します
WiFi Settings
Camera Host Name
任意のホスト名<例、m5camera>WiFi STA SSID
WiFi STA Password
Camera Pinout
- M5Stack Camera With PSRAM
[*]ESP-WHO Hand Detection
[*] ESP-WHO Hand Pose Estimation
M5TimerCameraXをPCに接続し、 idf.py -p /dev/ttyUSB0 -b 1500000 flash monitor を実行します。
起動するとIPアドレスがシリアルモニターに表示されるのでブラウザで開くと操作ができるようになります。
Resolution - QVGA(320x240)を選択
Hand DetectonをON
「Start Stream」をクリックするとストリーミングが開始され手を認識できるようになります。
注意事項
FastLEDとカメラが干渉するらしく、不定期でストリーミングが停止してしまう不具合があります。粘ったのですが、現象を回避できませんでした。実際に使う場合はhand_detection_with_command_lineを改変した方がいいと思います。