ロックオンせよ<1.2>

前回投稿「ロックオンせよ」のチョイ変バージョンの投稿です。輪郭追跡処理をやってみよう!シリーズの6作目です。
輪郭追跡処理をやってみよう!シリーズ
輪郭追跡処理をやってみよう!
輪郭追跡処理をやってみよう!(その2)
Python C言語による拡張モジュールで高速化
輪郭追跡処理をやってみよう!(その3)
ロックオンせよ
変更点
変更点は以下のとおり、軽微です。
- Raspberry Pi4 B (4GB)を、Raspberry Pi5(8GB)へ変更
- サーボモーターやパン/チルト機構にYahboom 2-DOF サーボパンチルトキットを採用
- RaspberryPiからの制御は、直接PWM信号を扱うのでは無く、I2CバスでPWMサーボモータードライバー基板(PCA9685 )経由に変更
- C言語で書いた画像処理のコードをPythonから動かすライブラリを新しいPhthon環境で再ビルド
- 画像フレーム内に、現在のステータスやフレームレートなどの情報表示を追加
見た目
こんな感じです。こんな小さくて軽いカメラを動かすのに過剰ですが、カッコ良くて気に入ってます。

設計情報より先に、これでどんな感じで遊べるのか示しましょう。
Python の実行状況
Raspberry Pi でVNC経由のVSCODEの操作は非常に重たいのですが、他の環境作るのが面倒だったので不満ながら実行しています。
先ずは、シカの動画(赤外線カメラ画像風のアニメーションGIF)をカメラで撮像し、キャプチャー中しているところです。FPSは30ちょい出ています。
続いて、ロックオンさせて、チルト方向とパン方向のサーボモーターを動かすことでシカを追尾させています。
常にカメラ画角の中央にシカが来るよう制御しています。下の動画では開始5秒後くらいから画像処理開始し、中心座標とのズレ量を表示しています。(シンボルDIFFのところ)
開始から10秒から43秒の間がロックオンしてシカを追尾しています。(青色で”LockOn" と表示)
カメラが追尾している様子
カメラが追尾している様子を示します。手前のカメラがモニター上で移動するシカを追尾している様子を確認できます。
Yahboom 2-DOF サーボパンチルトキット
姿形はこれです。 アマゾンでは売り切れだったので、AliExpressで購入しました。下の写真とは異なり板金部分は黒色でした。 マニュアル類が一切なかったのでどうやって組み立てるのか焦りましたが、こちらに詳細な情報があります。組み立て方法の他に、本格的なプログラミングの情報もありました。

PCA9685(PWMサーボモータードライバー基板)
こちらは有名ですね。16CH分のサーボモーターを制御できる基板です。アマゾンやスイッチサイエンスで買えます。
RaspberryPiやArduinoからはI2Cバスで制御します。
RaspberryPiやArduinoで扱うためのドライバーが提供されています(こちら)ので使いましょう。
自作の画像処理ラブラリの来ビルド
前回は、RaspberryPiの32bitOS+Python 3.9用という環境でビルドして、拡張子so のライブラリファイルを作っていました。今回の環境は64bitのOSであり、Python のバージョンは、3.13.5でしたので、この環境下で再ビルドが必要でした。
Pyshon環境でのビルドなので、新しい環境に合わせてメンテは必要ですね。
ソースコードなど関連ファイル一式
生成AIと相談できるので、コードの解説は不要ですね。
やりたいことをインプットすれば、コード以前に、どんなシステム構成で実現できるかという提案もしてくれるので、便利になりました。
基礎さえあれば、アイデアとやる気と生成AIでたのしいおもちゃが短期間で作れる、デバッグできるようになりました。ここ数年でそのすごさを実感します。


