VEX EXP で距離センサーを使用する

距離センサーは、EXP ロボティクス プラットフォームと完全に統合するように設計された強力なセンサーの 1 つです。 このセンサーは、教室で安全なレーザー光のパルスを使用して、センサーの前面から物体までの距離を測定します。

VEX距離センサー部品。


センサーの説明

距離センサーには次の機能があります。

  • 測定距離: センサーは教室で安全なレーザー光のパルスを使用して、センサーの正面から物体までの距離を測定します。 距離は、Brain のセンサー ダッシュボードではインチまたはセンチメートルで報告され、VEXcode EXP ではインチまたはミリメートルで報告されます。
  • 物体を検出: センサーは、物体が近くにあることを検出するためにも使用できます。
  • オブジェクトの相対的なサイズを決定する: センサーを使用して、検出されたオブジェクトの相対的なサイズを決定することもできます。 オブジェクトのおおよそのサイズは、小、中、または大として報告されます。
  • オブジェクト速度のレポート: センサーを使用して、センサーに接近するオブジェクト、またはオブジェクトに接近するセンサーの速度をメートル/秒で計算し、レポートすることができます。

距離センサーが 2 本のネジでサポート部品に取り付けられている図。

センサーのハウジングの背面には 5 つの穴があり、センサーをロボットに取り付ける際の柔軟性を提供します。

感知ウィンドウが強調表示された距離センサー部品。 ウィンドウはセンサーの前面に少しだけ設置されています。 ラベルには「レーザー用ウィンドウ」と書かれています。

センサーの表面には小さな窓があり、距離を測定するためにレーザービームが送信され、そこからレーザービームが受信されます。

VEX 距離センサーに接続された EXP ブレインの図。

距離センサーを EXP Brain で機能させるには、センサーのスマート ポートと EXP Brain のスマート ポートをスマート ケーブルで接続する必要があります。

センサーは、EXP Brain の 10 個のスマート ポートのいずれかで動作します。

EXP スマート ケーブルをポートに接続するときは、ケーブルのコネクタがポートに完全に挿入され、コネクタのロック タブが完全にはめ込まれていることを確認してください。


距離センサーの仕組み

距離センサーは、教室に安全なレーザー光のパルスを送信し、パルスが反射されるまでにかかる時間を測定します。 これにより、距離の計算が可能になります。

このセンサーのクラス 1 レーザーは、現代の携帯電話で頭部検出に使用されているレーザーに似ています。 レーザーによりセンサーの視野が非常に狭くなるため、検出は常にセンサーの真正面で行われます。

センサーの測定範囲は 20 ミリメートル (mm) ~ 2,000 ミリメートル (mm) (0.79 インチ ~ 78.74 インチ) です。 200 ミリメートル (mm) 未満の場合、精度は約 +/-15 ミリメートル (mm) です。 200 ミリメートル (mm) を超えると、精度は約 5% になります。

距離センサーを VEXcode EXP と組み合わせて、センサーの読み取り値を利用してロボットの動作を制御する EXP Brain のユーザー プログラムを作成する必要があります。

EXP Brain をユーザー プロジェクトと連携して使用すると、距離センサーの読み取り値を次のように変換できます。

  • センチメートル、ミリメートル、またはインチで測定される物体までの距離。
  • オブジェクトの速度 (メートル/秒)。
  • オブジェクトのサイズは小、中、または大です。
  • オブジェクトが見つかりました。

距離センサーのセットアップ

配置

ハイライト表示され、ロボットの前を向いている距離センサーが取り付けられた BaseBot ビルド。

距離センサーの配置は、正確な測定値を取得するために非常に重要です。

センサーの表面にある小さなセンサーの窓の前にロボットの構造物がないことを確認してください。

測定対象物とセンサーの間には、センサーの前に障害物がない経路が必要です。

距離センサー値の読み取り

距離センサーデバイスが選択された状態で、デバイスメニューに Brain 画面が表示されます。

EXP Brain のデバイス画面を使用すると、距離センサーが報告している情報を確認するのに役立ちます。

センサーダッシュボードから、距離センサーダッシュボードは最も近い物体までの距離をインチまたはセンチメートルで報告します。

単位は、Brain のチェックボタンを選択してインチとセンチメートルを切り替えることで変更できます。

センサーダッシュボードを使用するには、この記事の手順に従ってください。 


VEXcode EXP に距離センサーをデバイスとして追加する

センサーをプログラミング言語で使用する場合は、その言語内でセンサーを構成する必要があります。 

デバイスの追加ボタンを選択した後の VEXcode EXP デバイス メニュー。 距離オプションが強調表示されます。

VEXcode EXP では、デバイス ウィンドウの「デバイスの追加」機能を使用してこれを実現します。

距離センサーを構成に追加するには、この記事の手順に従ってください。 

デバイス メニューを開いた状態の VEXcode EXP のスクリーンショット。 接続された距離センサーは、[デバイス] メニューにリストされ、強調表示されます。 ブロックのツールボックスが開き、ブロックの距離センシング カテゴリが強調表示されます。

距離センサーをプロジェクトに追加すると、新しいセンサー ブロックのセットが使用できるようになります。

距離センサーに関連する「センシング」カテゴリのブロックの詳細については、ヘルプ情報 (ブロック プロジェクト) を参照してください。


距離センサーの一般的な用途

距離センサーは、ロボットの動作を変更するために使用できるいくつかの測定値を生成できます。 これらの機能には次のものが含まれます:

物体を検出する

距離センサーを使用して物体を見つけ、それに向かって移動する VEXcode EXP ブロック プロジェクト。 このプロジェクトでは、開始したら右に曲がり、Distance7 がオブジェクトを見つけるまで待機し、その後 400 mm 前進します。

この機能により、ロボットは距離センサーの範囲内に物体が入ったときにそれを検出できます。 距離センサーは、約 1000 mm 未満の距離にあるオブジェクトを発見したことを報告します。

左側に示すサンプル プロジェクトは、前面に距離センサーが取り付けられたロボットが立方体などの物体を検出するまで回転し、センサーで物体が検出されると前進するようにロボットをコード化するために使用されます。

物体までの距離

距離センサーを使用してロボットを物体に向かって動かし、爪を使用して物体をつかむ VEXcode EXP ブロック プロジェクト。 このプロジェクトは、開始したら前進し、Distance7 オブジェクトの距離 (mm) が 75 未満になるまで待機します。 最後に、運転を停止し、ClawMotor を 25 度回転させて閉じます。

これにより、センサーの前面と物体または障壁/壁の間の測定が行われます。

左側に示すサンプル プロジェクトは、前面に距離センサーが取り付けられ、爪が取り付けられたロボットをコーディングするために使用されます。 ロボットは、センサーから 75 mm 未満の距離にある物体を検出するまで駆動し、物体の周りでクローを閉じます。 この例は、ロボットの前に物体があることがわかっていて、その物体を回収するためにロボットを前進させたい場合に役立ちます。 

オブジェクトがセンサーからどのくらい離れているかを判断し、そのパラメーターをプロジェクトで使用するには、EXP Brain のセンサー ダッシュボードを使用します。 センサーダッシュボードの使用に関する詳細については、この記事を参照してください

オブジェクトの速度をレポートする

距離センサーと印刷ブロックを使用してオブジェクトの速度をライブで報告する VEXcode EXP ブロック プロジェクト。 このプロジェクトでは、Brain で開始時に印刷精度を 0.1 に設定します。 次は、5 つのブロックを含む Forever ループです。 5 つのブロックは、Brain のすべての行をクリアし、Brain でカーソルを行 1 列 1 に設定し、Distance7 を印刷して Brain でオブジェクトを見つけてカーソルを次の行に設定し、Distance7 オブジェクトの速度 (m/s) を Brain に印刷し、最後に 0.25 秒待機します。

この機能は、センサーに近づく物体、または物体に近づくセンサーの速度をメートル/秒で測定します。

物体の接近に応じて変化する速度を観察するには、左の例を使用できます。 このプロジェクトでは、情報が Brain の画面に出力されます。 Brain は、距離センサーによって物体が検出されると、その物体の速度 (メートル/秒) を印刷します。 変化する数値をより正確に確認するために、印刷精度は 0.1 に設定されています。 

立方体をセンサーに近づけたり遠ざけたりして、このプロジェクトをテストします。 オブジェクトやセンサーが互いに遠ざかっている場合、速度値は負になります。

オブジェクトの相対的なサイズを決定する

距離センサーと印刷ブロックを使用してオブジェクトのサイズをリアルタイムで報告する VEXcode EXP ブロック プロジェクト。 このプロジェクトは、「When started」ブロックとそれに続く 13 個のコマンドを含む「Forever」ループで構成されています。 Forever ループの最初の 3 つのコマンドは、Brain のすべての行をクリアし、Brain の行 1 列 1 にカーソルを設定し、Brain のオブジェクト サイズを出力してカーソルを次の行に設定するというものです。 次は、「Distance7 がオブジェクトを見つけたら?」という If ブロックです。 この最初の If ブロック内には、Else if ステートメントと Else ステートメントに接続された 2 番目の If ブロックがあります。 これらの内部の If ステートメントは、Distance7 オブジェクトのサイズが小さい場合は Brain に Small を印刷し、Distance7 オブジェクトのサイズが中の場合は Brain に Medium を印刷し、そうでない場合は Brain に Large を印刷します。 最初の If ブロックの後には、else print No object found on Brain と書かれた Else ステートメントが続きます。 最後に、両方の If ステートメントの外側に、Wait 0.25 seconds を読み取る Wait ブロックがあります。

この機能を使用すると、ロボットはセンサーの読み取り値に応じて、物体が小さい、中程度、または大きいものとして識別できます。

左の例では、[If then else] ブロックと [Print] ブロックを使用して、Brain 上のオブジェクトの相対的なサイズを出力します。 センサーの前にさまざまな物体を置き、Brain の画面上の読み取り値を見て、サイズをリアルタイムで確認します。

物体の相対的なサイズを決定するために、センサーはセンサーに反射して戻ってくる光の量に関する情報を使用します。 サイズを最も正確に表示するには、物体をセンサーから 100mm ~ 300mm (約 4 ~ 12 インチ) 離して配置する必要があります。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: