Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

センサー フュージョン コントローラ

このページでは、センサー フュージョン テスト装置用のリビジョン 2 コントローラの組み立て方法を説明します。センサー フュージョン テストは、互換性テストスイート(CTS)の中にあるカメラ画像テストスイート(Camera ITS)の一部です。rev2 コントローラは、組み立てやすく安価になるように設計されています。さらに、電子回路とサーボで電源を分離し、1 台のコントローラから最大 6 つのサーボを制御できます。

リビジョン 2 センサー フュージョン コントローラの概要

センサー フュージョン テスト装置

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

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

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

サーボモーター制御

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

サーボ制御の説明

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

センサー フュージョン コントローラの実装

ホストからサーボモーターの動きを制御するには、センサー フュージョン テスト装置に USB 接続が必要です。テスト装置の rev2 コントローラは、USB 接続された Arduino UNO R3 基板を使用します。この基板の上にはカスタム ルーティング基板(シールド)が乗っています。 2 層シールドは、オープンソースのオンライン PCB 設計ツールで設計されており、https://easyeda.com/portmannc/servo_controller から入手できます。 図 3 と図 4 は、それぞれカスタム ルーティング シールドの上面と底面です。

カスタム ルーティング シールド(上面)

図 3. カスタム ルーティング シールド(上面)

カスタム ルーティング シールド(底面)

図 4. カスタム ルーティング シールド(底面)

rev2 センサー フュージョン コントローラで、1 つのホストから最大 6 台のセンサー フュージョン装置を制御できます。上面には、3 ピンのモーター ヘッダーを中央軸に沿って 6 つ実装するためのシルク印刷があります。その他にも、上面にはこのプロジェクトでは未使用のコネクタがあります。 底面には、UNO、5 V の電源ジャック、10 uF のバイパス コンデンサとの接続に必要な 4 ピンヘッダーと 8 ピンヘッダーのためのシルク印刷があります。

サーボ電流を分離するために、サーボの電源は外部 5 V ジャックから供給します。UNO の電源は、これとは別に USB コネクタから供給されるため、2 枚のボード間で電源の共有はありません。UNO の既存の外部電源ジャックは未使用なため、コントローラに電源を接続するときに混乱しないよう、エンクロージャー設計で隠されています。

rev2 センサー フュージョン コントローラの組み立て

部品表(BOM)

数量 説明 品番 / リンク
1 厚さ 1.6 mm のセンサー フュージョン ルーティング基板 https://easyeda.com/portmannc/servo_controller
1 Arduino UNO R3 https://store.arduino.cc/usa/arduino-uno-rev3
1 2.1x5.5 mm、5 V スルーホール、直角のバレルジャック 101179
1 16 V、10%、10 μF タンタル コンデンサ TAP106K016CCS
1 1x2、200 ミル(5.08 mm)ピッチ、スルーホール Phoenix Contact ヘッダー 651-1755736
6 1x3x、100 ミル(2.54 mm)ピッチ、スルーホール オスヘッダー 732-5316-ND
1 1x8x、100 ミル(2.54 mm)ピッチ、スルーホール オスヘッダー 732-5321-ND
1 1x4x、100 ミル(2.54 mm)ピッチ、スルーホール オスヘッダー 732-5317-ND
3 11 mm メス - メス スタンドオフ(幅 5 mm、M3-0.5 ねじ) R30-1001102
4 6 mm オス - メス スタンドオフ(幅 5 mm、M3-0.5 ねじ) R30-3000602
3 M3-0.5、6 mm なべ小ねじ 36-9191-3-ND
4 M3-0.5、8 mm 皿小ねじ XM2510008A20000
2 M3-0.5、6 mm 皿小ねじ XM2510006A20000
6 #4、1/2 インチ、丸板金ねじ 90925A110
1 5 V、15 W、UL リステッド電源、2.1x5.5 mm プラグ(モーター) 36-9191-3-ND

その他の必要なツール

  • はんだごて、はんだ、はんだ吸い取り器
  • フィリップスねじ用小型ドライバー
  • サイズ T10 のトルクス ドライバー

ルーティング基板への部品実装

ルーティング基板の両面に、シルク印刷に合わせて部品を装着します。基板の底面でオスヘッダーの位置合わせをするには、ヘッダーを Arduino 基板の正しい位置に配置し、ルーティング基板をコネクタの上に配置します。次に、1x8 ヘッダーと 1x4 ヘッダーを所定の位置にはんだ付けして、Arduino 基板とルーティング基板の位置がずれないようにします。電源ジャックも同じようにできますが、組み立て後も Arduino に当たらないため、シムを使って密着させる必要があります。バイパス コンデンサをはんだ付けした後、基板の上面に、モーター制御用の 1x3 オスヘッダー 6 本と、1x2 Phoenix Contact ヘッダーを実装します。このとき、ヘッダーは、コネクタのスナップの底面がモーターに向き、モーター マウントに最大限の余裕ができるようにしてください。

すべての部品をはんだ付けしたら、スタンドオフとねじを使ってシステムを組み立てます。Arduino とプラスチック製エンクロージャーの底面とを固定する 4 本のオス - メス 6 mm スタンドオフがあります。一方で、Arduino とカスタム シールドの間には、3 本の 11 mm メス - メス スタンドオフしかありません。これは、Arduino 上の穴の 1 つ(SCL ピン近く)が、Arduino 上のメスヘッダーから近すぎて使用できないためです。3 本のメス - メス スタンドオフを 3 本のオス - メス スタンドオフにねじ止めし、スタンドオフを Arduino に固定してください。 次に、ルーティング基板シールドを 3 本の M3 ねじでスタンドオフに取り付けます。図 5 は、Arduino 上にシールドを取り付けたところを表す、概念的な端面図です。図 6 は、部品実装と取り付けが終わったシステムの写真です。

Arduino 上にシールドを取り付けたところを表す、概念的な端面図です。

図 5. シールドに、ヘッダー、電源ジャック、スペーサーを取り付けたところ(概念的な端面図)

実装済みのシールド(上面)

図 6. Arduino に取り付けた rev2.2 シールド(上面)

コントローラのエンクロージャー

コントローラには、カスタムのエンクロージャーが含まれます。図 7 は、その機械製図です。

エンクロージャーの機械製図

図 7. エンクロージャーの機械製図

組み立て済みのコントローラは、エンクロージャーの底部プレートを貫通する 4 本の皿ねじで、エンクロージャーに装着されます。エンクロージャーは、6 本の丸頭アセンブリねじと 2 本の皿頭アセンブリねじを使って組み立てます。 サーボ番号の順番や 5 V の外部電源などの関連情報は、プラスチックの上面に印字されています。図 8 は、組み立て済みのエンクロージャーに収めたコントローラの写真です。

エンクロージャー内の組み立て済みのシステム

図 8. エンクロージャー内の組み立て済みのシステム

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

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

rev2 コントローラの使用

カメラ 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

その他のリソース

機械製図のダウンロード

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