DFRobot社製のエッジAIカメラ "HuskyLens" を試しに触ってみると、物体の認識や追尾があまりに簡単すぎてびっくりしました。
Wio Terminalは、IoTデバイスでは珍しい5GHz帯のWi-Fiに対応したプロトタイピングボードです。両者を連携させたAIカメラデバイスを作る手習いとして、HuskyLens APIのサンプルスケッチがWio Terminal上で動作するかやってみました。
準備
Wio Terminal側はArduino IDEで開発します。
あらかじめボードライブラリは導入されていることが前提です。
今回はI2Cで受けた情報をPCのシリアルモニタに流すだけなので、Wio Terminalの機能を全く使っていませんが、動作テストということでご承知おきください。
HuskyLensのファームウェアアップデート
HUSKYLENSUploaderを用いて本体をアップデートしておきます。
Mac環境ですが、USBシリアル(VCPドライバ)とpyserialはあらかじめ入ってたので、HuskyLensをMacに接続してそのままアップデートコマンドを打つことでさらっとできました。
なおこの記事投稿時点で最新安定版は0.4.7のようです。
お互いを接続する
HuskyLens付属のケーブルで、上図のようにWio TerminalとI2Cとして接続します。
- HuskyLens側端子: Gravity: HUSKYLENS - An Easy-to-use AI Machine Vision Sensor
- Wio Terminal側端子: Get Started with Wio Terminal - Seeed Wiki
Wio Terminal側コネクタはGroveですが、HuskyLens側がどうやらそうではないようなので、両端Groveなケーブルでは接続できません。
HuskyLens側ケーブルの末端は4本のジャンパワイヤ(メス)となっており、これをまとめてWio Terminalの端子1つには接続できないため、電源系統2本を右側Groveに、I2C系統2本を左側Groveに、分散して接続します。
Wio Terminal側にHuskyLens用ライブラリをいれる
Wio Terminal側はArduino環境で開発しますので、Arduino環境ボードからHuskyLensを操作できるライブラリを導入します。
ZIPで全体をダウンロードし、解凍してから中身の HUSKYLENS
フォルダのみをArduinoのlibrariesフォルダに移動させることで、手動でインストールします。
次いで examples
内の HUSKYLENS_I2C.ino
を開き、そのまま書き込みを行います。
書き込めたらシリアルモニタを表示してみましょう。
認識ターゲットとして、実際に烏骨鶏の中雛を追尾させてみた動画がこちらです。
烏骨鶏はほとんどが真っ白、一部黒いのもいますが、毛の色がはっきりしているので色認識モードで追尾することができました。
仮に放鳥中を監視するとして、いちいちカメラ画像をオンラインで確認しなくても、色認識した座標が一定時間・一定範囲で動かなければ「脱走した」「元気がない」とみなして、LINE Notifyに通知を送ったりができそうですね。