このページでは、センサー フュージョン テスト装置用のリビジョン 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 は、部品実装と取り付けが終わったシステムの写真です。
図 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