2025年1月27日

022-1.SPIKE&AIカメラ入門-第5回「AIカメラをラージハブに接続する2」

この連載では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」と「ハスキーレンズ(HuskyLens)」を組み合わせたロボットの作り方を紹介したいと思います。ハスキーレンズとはDFROBOT(Zhiwei Robotics Corp.)というメーカーが開発した特殊なカメラ(AIカメラ)です。このカメラを使って、物体追跡、物体認識、ライン追跡などの機能を備えたロボットを作ってみましょう。この連載では最終的にハスキーレンズをSPIKEプライムのラージハブに接続して動かしたいと思います。
ハスキーレンズの基本的な情報については、メーカーのWikiページを読むことをオススメします。ページのURLは以下のとおりです。
https://wiki.dfrobot.com/HUSKYLENS_V1.0_SKU_SEN0305_SEN0336(文/松原拓也)

◆ ハスキーレンズを直結

前回の続きです。 前回はRaspberry Pi Picoを経由して、ハスキーレンズとラージハブを接続させることに成功しました。
今回はRaspberry Pi Picoを「使わず」、ラージハブにハスキーレンズを直結して、制御してみたいと思います。

ハスキーレンズとラージハブを図のように接続します。ラージハブ側のコネクタは次のように端子が割り振られています。
・1~2番ピンはモーター用端子です。接続しません。
・3番ピンはグランドです。ハスキーレンズのグランドにつなぎます。
・4番ピンは電源出力です。ハスキーレンズのVCC(3.3V)につなぎます。出力される電圧は3.1Vくらいしかありません。0.2Vほど足りませんが、無視して使うことになります。
・5番ピンはUARTの送信用端子です。ハスキーレンズの受信(RX)につなぎます。
・6番ピンはUARTの受信用端子です。ハスキーレンズの送信(TX)につなぎます。
ハスキーレンズ側はSPIKE用の通信コマンドには対応していません。正しく応答ができず、ラージハブ側はハスキーレンズを認識できません(なにも接続されていないと思い込む)。そのため、ワードブロックではハスキーレンズの制御ができません。しかし、PythonでUARTを直接操作することで、ハスキーレンズの制御が可能です。

ラージハブに接続するためのコネクタを入手します。以下の方法があります。
・プリント基板を自作する。
・1.27mmピッチのシール基板を加工して自作する。
・きょりセンサーを分解して、mindsensors.comの変換基板を接続する。

ハスキーレンズをポートAに接続しました。 コネクタの接続を間違えると、最悪の場合、回路が壊れてしまいます。くれぐれも、間違えないようにしましょう。
モーターをポートBに接続しました。

◆ プログラム作成

SPIKEアプリ(バージョン2を使用)でPythonのプログラムを作成します(HuskyLens_test2.llsp)。プログラムの内容は基本的に前回のRaspberry Pi Pico用と同じです。前回作ったプログラムはMicroPythonなので、難なく移植できました。実行直後、物体追跡(Object Tracking)モードに自動的に移行するように改良してあります。

ラージハブとパソコンをUSBケーブルで接続して、プログラムを実行します。
ハスキーレンズは物体の追跡を開始します。 物体追跡に成功すると、物体のX座標に合わせてカメラ(モーター)が回転します
もし、モーターを動かさず、物体追跡のテストだけをしたいという場合にはプログラム内の「MOTOR_PORT」を''(なし)に書き換えましょう。

「コンソール」画面には物体のXY座標と幅・高さが表示されます。

これでようやくハスキーレンズを制御できる環境がととのいました。次回にはタイヤを付けて動き回れるロボットを作ってみたいと思います。

今回作成したプログラム(SPIKEアプリ用)

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。