🛠

Zao SDKスターターキット

2023/06/28に公開

はじめに

ビデオ、オーディオ、制御信号を低遅延・複数回線のバウンディングで通信することのできる Zao シリーズにおいて、Jetson で動作する Zao SDK がリリースされました。この Zao SDK ではスターターキットが用意されており、全てのハードウェアとソフトウェアが用意された状態で遠隔操縦を体験することができます。
スターターキットの構成は下図のイメージとなります。


スターターキット構成イメージ図

ラジコンカーを遠隔操縦する車両とみなします。
ラジコンカーの USB カメラから取り込んだ映像を、Jetson Nano 上の Zao SDK で Zao Cloud を介して、PC 上の Zao Cloud View に配信します。
Raspberry Pi Zero を使用したコントローラ装置をシリアルケーブルで PC に接続して、コントローラ装置からシリアルデータを送信します。
Zao Cloud View を介してシリアルデータを Zao SDK に送信して、ラジコンカーを遠隔操縦します。
スターターキットを動かす準備として、ラジコンカーの組み立て、コントローラ装置のセットアップを行っていきます。
早速スターターキットを組み立てていきましょう。

工具

組み立てには以下の基本的な工具が必要になりますので事前に用意します。

  • プラスドライバ
  • 小さなマイナスドライバ
  • ラジオペンチ
  • ニッパ
  • 結束バンド(ケーブルを束ねるため)

ラジコンカーの組み立て動画

https://www.youtube.com/watch?v=Zxk115f-_yg

ラジコンカーの下部プレート組み立て

前輪駆動のタイヤを動かすモーターを下部プレートに取り付けていきます。

下部プレート、モーター、固定パネル
モーターをモーター固定用のパネルに、ネジで固定して取り付けます。

モーターの取り付け
2つのモータとも下部プレートに取り付けます。

モーター取付完了

USB モデム接続用の USB 延長ケーブルを、USB ホルダーで固定するように取り付ます。

USB 延長ケーブルのコネクタの取り付け

後輪となるキャスターを、六角ナットを使って下部プレートに取り付けます。
また、前輪となる左右のタイヤをモータに取り付けます。
モーター、USB 延長ケーブルのコネクタ、キャスターを取り付けた面が、ラジコンカーの底面となります。

キャスターとタイヤの取り付け完了

上部プレートと固定するため、モーターを取り付けた面とは反対の面の4隅に六角ナットを取り付けます。
下図のように USB 延長ケーブルを引き回して結束バンドやひもで束ねて固定しておきます。
これで下部プレートの組み立て完了です。

下部プレートの組み立て完了

ラジコンカーの上部プレート組み立て

上部プレートに Jetson Nano と USB カメラホルダーを取り付けます。
この時、Jetson Nano の向きに注意して取り付けます。Jetson Nano の GPIO ピンがラジコンカーの後方になるように取り付けます。
また、カメラホルダーはラジコンカーの前方になるように取り付けます。

上部プレートへの Jetson Nao と USB カメラホルダーの取り付け

USB カメラにホルダーを取り付けて、上部プレートに取り付けた USB カメラホルダーにネジ止めします。この時、USB カメラは前から見て Logi のマークが右側にくるように取り付けます。

USB カメラホルダーの取り付け

USB カメラの取り付け

Qwiic モータードライバ基板を上部プレートの後方にとりつけます。
次に Qwiic モータードライバ基板の電源コネクタにジャンパーケーブルと Qwiic ケーブルを接続します。それぞれのケーブルの反対側には Qwiic pHat 基板と接続します。
ジャンパーケーブルのプラスとマイナスの接続と Qwiic ケーブルの向きを間違えずに接続します。ここでの接続を間違えると動作しない原因となるので、注意して接続します。

Qwiic モータードライバ基板と Qwiic pHat とのケーブル接続
これで上部プレートの組み立ては完了です。

上部プレートの組み立て完了

ラジコンカーの上部プレートと下部プレートの取り付け

上部プレートと下部プレートにそれぞれ部品の取り付けが完了したら、下部プレートに取り付けた六角ナットに上部プレートを接続します。上部プレートの4隅のネジ穴からネジ止めして取り付けます。この時、上部プレートと下部プレートの前後が逆にならないように注意します。

上部プレートと下部プレート接続完了

上部プレートと下部プレートを取り付けた後、上部プレートのUSB カメラのケーブルを巻いて、下部プレートの底面側に結束バンドなどで固定します。また、モーターのケーブルを後方側に引き出しておきます。

下部プレートの底面部

次に下部プレートのモーターのケーブルを上部プレートに取り付けた Qwiic モータードライバ基板に接続します。ここの接続を間違えると、モーターが動かなかったり逆方向に動作するといった原因となるので、左右のモーターのケーブルのプラスとマイナスの接続を間違えないように十分注意します。

Qwiic モータドライバ基板とモーターのケーブルの接続

モーターのケーブルと Qwiic モータードライバ基板との結線は次のようになります。

  • Qwiic モータードライバA1 : 左モーターのプラスケーブルを接続
  • Qwiic モータードライバA2 : 左モーターのマイナスケーブルを接続
  • Qwiic モータードライバB1 : 右モーターのマイナスケーブルを接続
  • Qwiic モータードライバB2 : 右モーターのプラスケーブルを接続

Qwiic pHat 基板を Jetson Nano に取り付けします。この時 GPIO ピンに対して、ずれて取り付けないように注意します。

Qwiic pHat 基板を Jetson Nano へ接続

Jetson Nano の USB コネクタに USB カメラのケーブル、下部プレートで引き回しておいた USB 延長ケーブル、USB Wi-Fi を取り付けます。

Jetson Nano の USB コネクタへの接続

USB 延長ケーブルの USB カバーを付けた USB コネクタに USB モデムを取り付ければ、ラジコンカーの組み立ては完成です。

USB モデムの接続

モバイルバッテリーを上部プレートと下部プレートの間に置いて、Jetson Nano と USB ケーブルで接続します。
モバイルバッテリーが充電されていれば、接続時に Jetson Nano が起動します。

モバイルバッテリーの接続

Zao Cloud View に接続するコントローラのセットアップ

このスターターキットでは、Zao SDK のシリアルトンネリングの機能を使ってラジコンカーを操作します。
Raspberry Pi Zero 、ゲームパッド、USB シリアル変換ケーブルを USB ハブに接続し、もう一方の USB シリアル変換ケーブルを PC に接続します。この PC には Zao Cloud View をインストール、セットアップしておきます。
ゲームパッドの信号をシリアルデータとして PC に送信して、PC から Zao Cloud View を通じてラジコンカーにシリアルデータを送信します。

コントローラ接続イメージ

ラジコンカーとの通信確認のためのハートビートを LED で表示できるようになっています。
LED ステータスボードを Raspberry Pi Zero のピン11, 12, 13, 14 に LED 側 が内側になるように取りつけます。

Raspberry Pi Zero への LED ステータスボードの接続

遠隔操縦の動作確認

以下の手順を行って、ラジコンカーとコントローラのシリアル通信の準備を行います。

  1. PC の Zao Cloud View を立ち上げ、ログインします。

  2. ラジコンカーにモバイルバッテリーを接続して、電源を On にしてライブ配信を開始します。

  3. Zao Cloud View のライブ配信画面に移動して、ラジコンカーからの映像を受信できていることを確認します。

    Zao Cloud View ライブ配信画面

  4. コントローラ側の Raspberry Pi Zero 、ゲームパッド、USB シリアル変換ケーブルを USB ハブに接続して、それらと PC とは USB シリアル変換ケーブルで接続します。

  5. Zao Cloud View 画面上のシリアルアイコンをクリックして、COM ポートを接続します。 COM ポートの選択ダイアログが立ち上がった時は、取り付けた COM ポートを選択します。

    Zao Cloud View のシリアルアイコン

  6. コントローラの USB ハブの AC アダプタを電源につなぐと、Raspberry Pi Zero が起動します。

  7. Raspberry Pi Zero 上のプログラムが起動すると LED ステータスボードの青色の LED が点滅し、赤色の LED が高速点滅状態になります。青色 LED はハートビートをラジコンカーへ送信していることを示しています。赤色 LED の高速点滅状態は、ラジコンカーからのハートビートの受信待ちを示しています。

    LED スタータスボードの LED 点灯の様子

  8. シリアル通信を開始するには、Zao Cloud View のライブ配信画面で映像左上に表示されているシリアル通信開始ボタンをクリックします。シリアル通信開始ボタンが橙色表示になり、データの流れに応じてTX と RX が点滅します。

    Zao Cloud View シリアル通信開始ボタン

シリアル通信が開始すると、LED ステータスボード上の赤色 LED がゆっくりとした点滅に変わります。この状態でラジコンカーからのハートビートを受信できていることになります。

これで、遠隔操縦する準備が整いました。

接続しているゲームパッドの左ジョイスティックを上下に動かすと、ラジコンカーが前後に動き始めます。前進もしくは後進中に右ジョイスティックを左右に動かすと、車のハンドル操作のようにラジコンカーが左右に曲がります。
Zao Cloud View でラジコンカーからの映像を確認しながらコントローラを操作して、遠隔操縦を体験できます。

コントローラ操作イメージ

補足

スターターキットの詳細な組み立て手順や Zao Cloud View のインストール、セットアップ方法については、Zao SDKスターターキットユーザーズガイド をご参照ください。

Discussion