Android 13 コントローラ

このページでは、センサー フュージョン テスト装置の動作や ITS-in-a-box のライトを制御する Android 13 コントローラを組み立てる方法について説明します。センサー フュージョン テストは、互換性テストスイート(CTS)の中にあるカメラ画像テストスイート(Camera ITS)の一部です。Android 13 コントローラを使用すると、回転と照明の制御を必要とするテストシーンに合わせて装置の照明とサーボモーターを制御することで自動化できます。

Android 13 コントローラの概要

ITS-in-a-box は一貫性のあるテスト環境であり、テスト タブレットやテスト スマートフォンの距離を一定に保てます。また、外部の光源を使用することなく、照明を一貫した形で当てることができます。Android 13 コントローラによりサーボ制御と照明制御の両方が自動化され、センサー フュージョンのシーンテストに合わせて DUT を手作業で回転させる必要がなくなり、またライティング制御テストで照明を手作業でオンオフする必要もなくなります。

テスト装置のサーボとライトの制御

センサー フュージョン テスト装置は、スマートフォンに決まった動きを与え、再現性の高いテストを実現します。スマートフォンがさまざまな位置で画像をキャプチャできるように、スマートフォンをチェッカーボード ターゲットの前で回転させます。test_sensor_fusion の場合、サーボがカメラを中心にしてスマートフォンを 90 度回転させ、約 2 秒で元の位置に戻します。test_video_stabilization の場合、サーボがカメラを中心にしてスマートフォンを 10 度回転させ、元の位置に戻します。これを繰り返すことで、歩きながら動画を撮影する際のスマートフォンの動きを模倣します。図 1 は、センサー フュージョン テスト装置内で回転する 2 台のスマートフォンです。図 2 は、センサー フュージョン テスト装置内で回転する 1 台のスマートフォンです。

テスト装置内でのスマートフォンの動き

図 1. test_sensor_fusion のテスト装置内でのスマートフォンの動き

テスト装置内でのスマートフォンの動き

図 2. test_video_stabilization のテスト装置内でのスマートフォンの動き

サーボモーター制御

テスト装置のアナログ サーボモーターは、パルス幅変調(PWM)を使用して位置サーボを制御します。一般的な位置制御の例を図 3 に示します。制御信号の周期は 20 ミリ秒です。パルス幅を最小にすると、モーターは中立の位置に回転し、最大にすると時計回りに 180 度の位置に回転します。

サーボ制御の説明

図 3. 一般的なサーボ制御の説明

照明制御

ホスト コンピュータを使ってサーボモーターの動きとライトを制御するには、センサー フュージョン テスト装置に USB 接続が必要です。Android 13 コントローラは、USB 接続された Arduino UNO R3 基板を使用します。この基板の上にはカスタム ルーティング基板(シールド)が乗っています。Android 13 コントローラでは、1 台のホスト コンピュータから最大 3 台のセンサー フュージョン装置の回転サーボと、最大 3 台の ITS-in-a-box 照明システムまたは 1 台のセンサー フュージョン装置を制御できます。

リビジョン 3.0 の Android 13 コントローラでは、Arduino のシリアルポートが USB を通じて開かれたときの自動リセットをユーザーが無効にできます。自動リセット機能は、コントローラが別のホストに接続されたとき、または他のテストケースに使用されているときに、有効になります。自動リセット機能の有効と無効は、コントローラの物理スイッチで切り替えられます。

Android 13 コントローラはカメラ ITS-in-a-box に対応しています。Android 13 コントローラは任意のカメラ ITS-in-a-box(RFoV、WFoV、Modular)または Sensor Fusion Box に接続して、ライティング制御テストを実施できます。Android 15 以上では、すべてのライティング制御テストが scene_flash に含まれており、Sensor Fusion Box を使って実行できます。ただし、scene_low_light は除きます。これには、チャート表示にタブレットが必要で、また実行にはカメラ ITS-in-a-box が必要です。

test_auto_flashscene_low_light の場合、テスト対象のスマートフォンで自動フラッシュ機能をトリガーするために、照明をオフにして環境を暗くする必要があります。図 4 は、Android 13 コントローラによって ITS-in-a-box のライトがオンおよびオフになる様子を示しています。

ITS-in-a-box でのライトの操作

図 4. test_auto_flash でライトがオンおよびオフになる様子

変更履歴

次の表に、Android 13 コントローラの変更履歴と、プロダクション ファイルの各バージョンへのダウンロード リンクを示します。

日付 リビジョン プロダクション ファイルのダウンロード 変更ログ
2024 年 8 月 3.0
  • DUT との通信中に照明が切り替わらないように自動リセットのバイパスを追加
2022 年 12 月 2.2
  • 部品実装済みの PCB を EasyEDA から注文できるオプションを追加しました
  • Arduino マイクロコードでサーボが移動した後の不要な遅延を排除しました
  • スタンドオフをメタルからナイロンに変更しました
  • スルーホール MOSFETS を表面実装 MOSFETS に変更しました
  • コンデンサを 10 uF から 1,000 uF に変更しました
2022 年 3 月 1
  • ライト制御機能を追加しました
  • 6 サーボ制御から 3 ライト、3 サーボ制御に変更しました

Android 13 コントローラのセットアップ

このセクションでは、Android 13 コントローラのセットアップ方法について説明します。

必要なコンポーネント

Android 13 コントローラは認定ベンダーから購入できます。また、自分で構築することも可能です。プロダクション ファイルは、PCB Gerber ファイル、PCB 部品表(BOM)、PCB 配置情報、筐体 STEP ファイルから構成されます。プロダクション ファイルをダウンロードするには、変更履歴の表を参照してください。

自分でコントローラを構築する場合は、Arduino UNO R3 ボードが必要です。コントローラを認定ベンダーから購入すると、Arduino が搭載されています。

Android 13 コントローラの筐体はオプションですが、コントローラを保護し、未使用の USB ポートをふさいでセットアップのミスを防ぐため推奨します。コントローラの価格やオプションの詳細については、認定ベンダーに問い合わせてください。

セットアップ手順

Android 13 コントローラのセットアップは以下の手順で行います。

  1. 12V アダプター(照明用)と 5V アダプター(サーボ用)を正しい電源差し込み口に接続します(図 5)。

    電源アダプターの位置

    図 5. 電源アダプターの位置

  2. ITS-in-a-box または Sensor Fusion Box の照明を照明チャンネル出力の差し込み口の 1 つに接続します(図 6)。ライト電源のバレルに応じて、適宜アダプターを使用します(図 7)。

    照明出力の位置

    図 6. 照明チャンネル出力の位置

    3.5 mm x 1.35 mm プラグ(オス)と 5.5 mm x 2.1 mm ジャック コンバーター(メス)

    図 7. ライトの電源とコントローラを接続するアダプター

  3. sensor_fusion の各シーンをセットアップするには、サーボをサーボ チャンネル接続ヘッダの 1 つに接続します。

    サーボ チャンネル接続の位置

    図 8. サーボ接続の位置

    リビジョン 3.0 のコントローラの場合、新しいホストに接続するときには、自動リセット スイッチを Enable に設定してください。

    リビジョン 3.0 のコントローラには、有効と無効を切り替えられる自動リセット スイッチがあります。テストの際には、自動リセット スイッチを Disable に設定することを推奨します。これは、各テストの最初で、its_base_test が Arduino コントローラと接続を確立するときに、すべての照明が一瞬消えることを防ぐためです。これは並列テストを実行する際には非常に重要です(ITS が、同じコントローラに接続されているテスト装置の照明システムと同時に実行される)。

    自動リセットの位置

    図 9. 自動リセット スイッチ

  4. コントローラを USB-A ケーブルでホストに接続します。

    USB-A の位置

    図 10. ホストへの USB-A 接続ポート

図 11 に、1 台の照明システムとサーボのためのセットアップが完了した Android 13 コントローラの例を示します。

USB-A の位置

図 11. セットアップが完了した Android 13 コントローラ

ホストからのソフトウェア制御

マイクロコードを UNO にダウンロードすると、PWM ピンをモーター信号に割り当て、さまざまな角度に対するパルス幅の範囲を定義できます。6 つの HS-755MB モーターのサーボ回転制御用マイクロコードについては、その他のリソースをご覧ください。このセクションには、サーボを回転させる rotator.py という単純なプログラムへのリンクもあります。

Android 13 コントローラの使用

カメラ ITS の使用:

python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion

付属のテスト スクリプトの使用:

python rotator.py --ch 1 --dir ON --debug

ソフトウェア制御のダウンロード