コンテンツ

  1. 前書き
  2. 準備
  3. 障害物回避センサーについて
  4. 接続
  5. スケッチをアップロード
  6. プログラム実行結果

前書き

障害物回避センサーは、本キットを構成するモジュールの中でも主要な部品の一つとなり、
使い方次第で様々な可能性を秘めています。例えば、本モジュールをロボットカーに搭載して何か障害物が接近したらブザーを鳴らすことや、障害物を自動で検出して方向を変えることができます。
障害物回避するためには、赤外線送信機、赤外線検出器、およびサポート回路にて構成されています。必要な接続は3つだけです。範囲内の障害物を検出すると、低出力の信号を出力します。

準備

ハードウェア

ソフトウェア

障害物回避センサーについて

赤外線障害物検出モジュールのピン配列

仕様

動作原理

赤外線送信機は、反射面(たとえば白色)の場合、障害物を検出する信号を含むいくつかの方向に跳ね返る赤外線信号を送信します。

表面が吸収性(黒色など)の場合、赤外線信号は反射されず、センサーは物体を検出できません。この結果は、障害物が存在しない場合でも同じです。

Arudinoで障害物回避センサーを使用する

この実験では、Osoyoo Unoボードのピン13に取り付けられた障害物回避センサーとLEDを使用して、簡単な回路を構築します。LEDはピン13に接続されているため、ピンOUTをUnoボードのデジタルピン2に接続します。障害物回避センサーが障害物を検出すると、LEDが点灯します。それ以外の場合はオフとなります。

注:赤外線センサーの検出距離は調整可能です。ポテンショメーターで調整できます。

接続

下記、回路図のように、ジャンパー線を赤外線障害物回避センサーに接続します。

コードプログラム

上記の操作が完了したら、USBケーブルを使用してArduinoボードとコンピューターを接続します。緑の電源LED(PWRのラベル)が点灯します。ArduinoIDEを開き、プロジェクトに対応するボードとポートタイプを選択し、Arduinoボードにスケッチをロードします。

int LED = 13; //ボード内臓のLEDを使用
int isObstaclePin = 2;  // 入力ピンです
int isObstacle = HIGH;  // 障害物が無い場合

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(isObstaclePin, INPUT);
  Serial.begin(9600);  
}

void loop() {
  isObstacle = digitalRead(isObstaclePin);
  if (isObstacle == LOW)
  {
    Serial.println("OBSTACLE!!, OBSTACLE!!");
    digitalWrite(LED, HIGH);
  }
  else
  {
    Serial.println("clear");
    digitalWrite(LED, LOW);
  }
  delay(200);
}

実行結果

アップロードが完了後、数秒間を空けてロボットの前に障害物を置くと、ボードのピン13に取り付けられたLEDが点灯し障害物LEDが点灯します。障害物がない場合は消灯します。

またArduino IDEのシリアルモニターを開き、ボーレートがコードと同じであることを確認し、障害物回避センサーの前に障害物を移動すると、下記動画のように出力表示されます。