説明
このセンサーは、センサーと最も近い固体物体との間の距離 (50mm ~ 1m の範囲) を報告します。 超音波が物体に反射してセンサーに戻るまでの時間を利用して距離を計算します。
距離センサーの仕組み: 距離を聞く
距離センサーは、ソナー デバイスと同じ原理を使用して音を測定します。 センサーの片側にあるエミッターから小さな超音波パルスを送信し、センサーの反対側にあるレシーバーで音が反射するのを聞くのにかかる時間を計測します。 センサーは、音パルスの往復にかかった時間に基づいて距離を計算します。 次に、距離センサーは音速に基づいて計算を行い、最も近い物体までの距離をロボットの脳に伝えます。
曲面の壁やボールのように表面が平らでない場合、超音波はすべての部分で均等に、または同時に反射しません。 検出可能な量の波を反射するのに十分な大きさの最も近い表面によって、検出される物体の距離が決まります。
距離センサーの一般的な用途:
このセンサーは、前方に物体があるかどうかを検出できます。
このセンサーは物体との間の距離を測定できます。
- ロボットはこのセンサーを使用して、物体から一定の距離を離れることができます。 ロボットが走行して距離が 160 mm 未満になるまで距離の値が変化する様子を確認するには、以下のアニメーションをご覧ください。
- ロボットはこのセンサーを使用して、物体に触れずに物体に近づくことができます。 このアニメーションを見ると、距離センサーを使用して 2 台のロボットが運転を調整する様子がわかります。
- このセンサーによって提供される値は、ロボットが物体または表面から近いか遠いかに応じてロボットの速度を調整するために使用できます。 このアニメーションを見ると、ロボットが壁までの距離に応じて調整する様子がわかります。
競技用ロボットでの距離センサーの使用
- ロボットは、適切な場所にいるときに、距離センサーを使用して一連の動作を開始できます。 たとえば、ロボットは壁から 150 mm 離れたことを検出するまで前進し、その後 90 度回転して、物体を得点ゾーンに放ちます。
- 距離センサーを使用すると、範囲内に物体が検出されたときに、ゲームの駒を拾うなどのロボットのアクションをトリガーできます。
- ロボットは距離センサーを使用して、物体や表面に触れることなく、特定の距離内に近づくまで物体や表面に向かって走行できます。 これは、ロボットがゲームの駒をひっくり返さないようにするために使用できます。
- ロボットは距離センサーを使用して、特定の距離に達するまで物体または表面から遠ざかることができます。 これは、フィールド上の他のロボットとの衝突を避けるために使用できます。
VEXcode IQ で距離センサーを使用する
VEXcode IQ に距離センサーをデバイスとして追加する
VEXcode IQ で距離センサーをコーディングするには、まず距離センサーを設定する必要があります。 VEXcode IQ でのセンサーの構成の詳細については、この記事を参照してください。
センサーが構成されると、プロジェクトで使用できるコマンドがツールボックスに表示されます。
距離センサーをブロックでコーディングする
<Object found> ブロックは、条件を true または false としてレポートするブール レポーター ブロックです。 <Object found> ブロックのようなブール ブロックは、他のブロックの六角形 (6 面) 入力を持つブロックの内側に収まります。
<Object found> Boolean ブロックは、センサーがオブジェクトを検出した場合は「true」を、センサーがオブジェクトを検出しなかった場合は「false」を報告します。 ブール ブロックの詳細については、 ヘルプ または ブロックの形状と意味 記事を参照してください。
この例では、 <Object found> ブロックを [Wait until] ブロックとともに使用して、距離センサーが物体を検出するまでロボットを前進させます。 センサーが物体を検知すると、上の画像のようにロボットは運転を停止します。
(距離からの距離) ブロックは、距離センサーから最も近いオブジェクトまでの距離を報告します。 24mm ~ 1000mm、または 1 インチ~40 インチの範囲を報告します。 (Distance from) ブロックは、円形スペースのあるブロック内で使用されるレポーター ブロックです。
この例では、(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) |
| この例では、 not 条件のWhile ループを distance.is_object_detected コマンドとともに使用して、距離センサーが物体を検出するまでロボットを前進させます。 センサーが物体を検出すると、上記の Python コードに示すように、ロボットは運転を停止します。 |
距離_7.距離(MM)
distance. distance コマンドは、距離センサーから最も近いオブジェクトまでの距離を報告します。 24mmから1000mm、または1インチから40インチの範囲を報告します。
drivetrain.drive(FORWARD) |
|
この例では、 not 条件の While ループを distance.is_object_detected コマンドとともに使用して、距離センサーが物体を検出するまでロボットを前進させます。 センサーが物体を検知するとロボットは運転を停止します。 この例では、 distance. distance コマンドを Brain.screen.print コマンドとともに使用して、距離センサーとオブジェクト間の距離を Brain スクリーンに表示します。 distance. distance コマンドは、 not 条件の While ループ内にも示されています。 これにより、ロボットは距離センサーが 50 ミリメートル未満離れた物体を検出するまで駆動し、その後駆動を停止します。 これは上の最初のビデオで示されています。 Python での距離センサーのコーディングの詳細については、コンピューター サイエンス レベル 1 - Python コースのユニット 5 を確認してください。 |