3.5 障害物回避

車の前部には2つの赤外線障害物回避モジュールが取り付けられており、近くの障害物を検出するのに使用できます。

このプロジェクトでは、車は自由に前進し、障害物に遭遇するとそれを避けて他の方向に移動することができます。

必要な部品

このプロジェクトには、以下の部品が必要です。

全体のキットを購入することは非常に便利です。以下がリンクです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

SunFounder R3ボード

BUY

L298N モジュール

BUY

TTモーター

-

障害物回避モジュール

BUY

回路の作成

障害物回避モジュールは、距離調整可能な赤外線近接センサーで、通常は出力が高く、障害物を検出すると低くなります。

以下の図に従って回路を組み立ててください。

左IRモジュール

R3ボード

OUT

8

GND

GND

VCC

5V

右IRモジュール

R3ボード

OUT

7

GND

GND

VCC

5V

../../_images/car_avoid1.jpg

モジュールの調整

プロジェクトを開始する前に、モジュールの検出距離を調整する必要があります。

上記の図に従って配線し、R3ボードに電源を供給します(USBケーブルを直接挿入するか、9Vのバッテリーケーブルを取り付ける)。コードをアップロードせずに電源を入れます。

赤外線障害物回避の前に約5cmのノートや他の平らな物を置きます。

その後、モジュール上のポテンショメータを回して、モジュール上の信号インジケータがちょうど点灯するように、最大検出距離5cmに調整します。

もう一つの赤外線モジュールも同じ方法で調整します。

../../_images/ir_obs_cali1.jpg

プログラミング

達成したい効果:

  • 左のIRモジュールが障害物を検出すると、車は左に後退します。

  • 右のIRモジュールが障害物を検出すると、車は右に後退します。

  • 両方のIRモジュールが障害物を検出すると、車は直接後退します。

  • それ以外の場合、車は前進します。

対応するブロックを作成してください。

1. 車が左に後退する

右のモータが反時計回りに回転し、左のモータが回転しない場合、車は左に後退します。

../../_images/5_avoid1.png

2. 車が右に後退する

左のモータが時計回りに回転し、右のモータが回転しない場合、車は右に後退します。

../../_images/5_avoid2.png

3. 車は前進、後退し、停止します

../../_images/5_avoid3.png

4. 2つのIRモジュールの値を読み取る

Variables パレットで Make a variable をクリックします。

../../_images/5_avoid4.png

変数名を入力し、 OK をクリックして新しい変数を作成します。

../../_images/5_avoid5.png

左および右のIR障害物回避モジュールの値を読み取り、2つの新しい変数に保存します。

../../_images/5_avoid6.png

5. 障害物を避ける

  • 左のIRモジュールが0(障害物検出)で、右のIRモジュールが1の場合、車は左にバックアップします。

  • 右のIRモジュールが0(障害物検出)の場合、車は右にバックアップします。

  • 2つのIRモジュールが同時に障害物を検出すると、車は後退します。

  • それ以外の場合、車は前進を続けます。

../../_images/5_avoid7.png