VEX IQ (第 1 世代) 距離センサーの使用

説明

このセンサーは、センサーと最も近い固体物体との間の距離 (50mm ~ 1m の範囲) を報告します。 超音波が物体に反射してセンサーに戻るまでの時間を利用して距離を計算します。

VEX IQ(第1世代)距離センサー部品。


距離センサーの仕組み: 距離を聞く

距離センサーが超音波を送信してグリーンキューブに当て、反射音を受信する図。

距離センサーは、ソナー デバイスと同じ原理を使用して音を測定します。 センサーの片側にあるエミッターから小さな超音波パルスを送信し、センサーの反対側にあるレシーバーで音が反射するのを聞くのにかかる時間を計測します。 センサーは、音パルスの往復にかかった時間に基づいて距離を計算します。 次に、距離センサーは音速に基づいて計算を行い、最も近い物体までの距離をロボットの脳に伝えます。 

曲面の壁やボールのように表面が平らでない場合、超音波はすべての部分で均等に、または同時に反射しません。 検出可能な量の波を反射するのに十分な大きさの最も近い表面によって、検出される物体の距離が決まります。


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

VEXcode IQ オブジェクトが見つかったブロックには、距離によってオブジェクトが見つかりましたか? と表示されます。

2つの図。 上の写真では、距離センサーが近くの緑色のキューブを指しており、チェックマークが付いています。 下の写真では、距離センサーは近くにあるものを指していないため、X 記号が表示されています。

このセンサーは、前方に物体があるかどうかを検出できます。

VEXcode IQ 距離を mm 単位で読み取るブロックからの距離。

このセンサーは物体との間の距離を測定できます。

  • ロボットはこのセンサーを使用して、物体から一定の距離を離れることができます。 ロボットが走行して距離が 160 mm 未満になるまで距離の値が変化する様子を確認するには、以下のアニメーションをご覧ください。

  • ロボットはこのセンサーを使用して、物体に触れずに物体に近づくことができます。 このアニメーションを見ると、距離センサーを使用して 2 台のロボットが運転を調整する様子がわかります。

  • このセンサーによって提供される値は、ロボットが物体または表面から近いか遠いかに応じてロボットの速度を調整するために使用できます。 このアニメーションを見ると、ロボットが壁までの距離に応じて調整する様子がわかります。


競技用ロボットでの距離センサーの使用

  • ロボットは、適切な場所にいるときに、距離センサーを使用して一連の動作を開始できます。 たとえば、ロボットは壁から 150 mm 離れたことを検出するまで前進し、その後 90 度回転して、物体を得点ゾーンに放ちます。  
  • 距離センサーを使用すると、範囲内に物体が検出されたときに、ゲームの駒を拾うなどのロボットのアクションをトリガーできます。
  • ロボットは距離センサーを使用して、物体や表面に触れることなく、特定の距離内に近づくまで物体や表面に向かって走行できます。 これは、ロボットがゲームの駒をひっくり返さないようにするために使用できます。
  • ロボットは距離センサーを使用して、特定の距離に達するまで物体または表面から遠ざかることができます。 これは、フィールド上の他のロボットとの衝突を避けるために使用できます。

VEXcode IQ で距離センサーを使用する

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

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

VEXcode IQ で距離センサーをコーディングするには、まず距離センサーを設定する必要があります。 VEXcode IQ でのセンサーの構成の詳細については、この記事を参照してください。

センサーが構成されると、プロジェクトで使用できるコマンドがツールボックスに表示されます。

距離センサーをブロックでコーディングする

VEXcode IQ オブジェクトが見つかったブロックで、Distance7 がオブジェクトを見つけましたか? と表示されます。

<Object found> ブロックは、条件を true または false としてレポートするブール レポーター ブロックです。 <Object found> ブロックのようなブール ブロックは、他のブロックの六角形 (6 面) 入力を持つブロックの内側に収まります。

<Object found> Boolean ブロックは、センサーがオブジェクトを検出した場合は「true」を、センサーがオブジェクトを検出しなかった場合は「false」を報告します。 ブール ブロックの詳細については、 ヘルプ または ブロックの形状と意味 記事を参照してください。

 

距離センサーを使用して、物体が見つかるまで前進する VEXcode IQ ブロック プロジェクト。 このプロジェクトは、開始すると前進し、Distance7 がオブジェクトを見つけるまで待機してから、運転を停止します。

この例では、 <Object found> ブロックを [Wait until] ブロックとともに使用して、距離センサーが物体を検出するまでロボットを前進させます。 センサーが物体を検知すると、上の画像のようにロボットは運転を停止します。 

VEXcode IQ Distance7 の距離を mm 単位で読み取るブロックからの距離。

(距離からの距離) ブロックは、距離センサーから最も近いオブジェクトまでの距離を報告します。 24mm ~ 1000mm、または 1 インチ~40 インチの範囲を報告します。 (Distance from) ブロックは、円形スペースのあるブロック内で使用されるレポーター ブロックです。

 

距離センサーを使用して、距離が 50 mm 未満になるまで前進する VEXcode IQ ブロック プロジェクト。 このプロジェクトは、開始したら前進し、Brain に Distance7 の距離 (mm 単位) を印刷し、Distance7 の距離 (mm 単位) が 50 未満になるまで待機してから、運転を停止します。

この例では、(Distance from) ブロックを [Print] ブロックと併用して、距離センサーと物体との距離を Brain 画面に表示します。 (距離からの) ブロックは、 {Wait until} ブロックの内側にある <Less than> ブロックの内側にも表示されます。 これにより、ロボットは距離センサーが 50 ミリメートル未満離れた物体を検出するまで駆動し、その後駆動を停止します。 これは上の最初のビデオで示されています。

Python で距離センサーをコーディングする

注:VEX IQ (第 1 世代) 距離センサーを Python でコーディングするには、VEX IQ (第 2 世代) Brain に接続する必要があります。 VEX IQ (第 1 世代) Brain は Python をサポートしていません。

distance_7.is_object_detected()

distance.is_object_detected コマンドは、オブジェクトが検出された場合は「true」を、オブジェクトが検出されなかった場合は「false」を報告します。

注:コマンドに表示される距離センサーの名前は、設定で指定された名前に対応します。 

drivetrain.drive(FORWARD)
距離7.is_object_detected() が経過するまで
wait(20, MSEC)
drivetrain.stop()
この例では、 not 条件のWhile ループを distance.is_object_detected コマンドとともに使用して、距離センサーが物体を検出するまでロボットを前進させます。 センサーが物体を検出すると、上記の Python コードに示すように、ロボットは運転を停止します。
距離_7.距離(MM)

distance. distance コマンドは、距離センサーから最も近いオブジェクトまでの距離を報告します。 24mmから1000mm、または1インチから40インチの範囲を報告します

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
while not distance_7.distance(MM) < 50:
wait(20, MSEC)
drivetrain.stop()

この例では、 not 条件の While ループを distance.is_object_detected コマンドとともに使用して、距離センサーが物体を検出するまでロボットを前進させます。 センサーが物体を検知するとロボットは運転を停止します。

この例では、 distance. distance コマンドを Brain.screen.print コマンドとともに使用して、距離センサーとオブジェクト間の距離を Brain スクリーンに表示します。 distance. distance コマンドは、 not 条件の While ループ内にも示されています。 これにより、ロボットは距離センサーが 50 ミリメートル未満離れた物体を検出するまで駆動し、その後駆動を停止します。 これは上の最初のビデオで示されています。

Python での距離センサーのコーディングの詳細については、コンピューター サイエンス レベル 1 - Python コースのユニット 5 を確認してください。 

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

Last Updated: