前書き

OSOYOO 赤外線追跡センサーは、本質的に赤外線LEDと検出器から構成されており、同センサーは、追跡面に向けて赤外線光を送信することによってどのように機能するのか学んでいきます。

準備

ハードウェア

ソフトウェア

OSOYOO 赤外線追跡センサーについて

追跡センサーの赤外線LEDは、常に赤外光を放射します。なので黒色に対して光を吸収特性により、黒色の表面を照らすと、反射光が少なくなり、受信管で受信される赤外線光線が少なくなります。よって、黒色に対しては抵抗が大きいことを示しており、コンバーターの出力が大きくなるものの、インジケータLEDは消灯します。また白色の表面に照らすと、黒色と逆転の性質から抵抗は少なく、出力は低く、インジケータLEDは点灯します。

上記のように、赤外線送信機が白色面に対し、光線を照射した場合、受信機側が低い出力で良いと受け取り、ピンDOに低出力レベルで信号を出力ます。黒色に対しては反対の高出力レベルを出力します。

この機能を用いることで、本レッスンでは白色と黒色の識別をさせる事ができます。本キットでは、白色の床面に対し黒色のラインを引き、そのラインの上を自動で識別して走行するといった具合です。ただ、その為には同センサーのポテンションメータで白と黒の識別感度を調整する必要があります。これは、白/黒のオブジェクトに近づくと、単純なスイッチのように機能します。ポテンショメータにて、LM393コンパレータチップとトラックセンサーの感度を調整できます。クリーンな出力のためにLM393コンパレータチップと

感度:センサーと白・黒面から約2.5センチの距離。

赤外線追跡センサー

この実験では、赤外線センサーとオンボードLEDを使用して、ライン識別するための簡単な回路を組立てます。LEDはピン13に取り付けられているため、ピンD0をUnoボードのデジタルピン2に接続します。同センサーが反射信号(白)を検出するとLEDが点灯します。それ以外(黒)の場合は消灯します。

注:赤外線センサーの感度はポテンショメーターで調整可能です。

接続方法

下記図のように回路を組立てます。

OSOYOO UNO 赤外線追跡センサー
+5V VCC
GND GND
D2 D0

コードプログラム

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

const int trackingPin = 2; //追跡センサーはピン2に接続します
const int ledPin = 13; //内蔵LEDはpin13に接続されています
void setup()
{
  Serial.begin(9600);
  pinMode(trackingPin, INPUT); // trackingPinをINPUTとして設定します
  pinMode(ledPin, OUTPUT); //ledPinをOUTPUTとして設定します
}
void loop()
{
  boolean val = digitalRead(trackingPin); // 追跡モジュールの値を読み込む
  if(val == HIGH) //高出力の場合
  { 
    digitalWrite(ledPin, LOW); //LEDを消灯させます
    Serial.println("Detect: Black!");
  }
  else
  {
    digitalWrite(ledPin, HIGH); //LEDを点灯させます
    Serial.println("Detect: White!");
  }
}

実行結果

アップロードが完了後、数秒間を空けて、黒い線(少なくとも1.5センチ幅)を白面(極力、床面が白の方が感度が良い)の上に置きます。黒い線は、黒いビニールテープやマジックなどでも可能です。黒い線の上にセンサーを持ってくると、高出力となりLEDは消灯したままになります。シリアルモニターの出力には「Detect:Black!」と表示されます。

白面に同センサーを持ってくると、低出力となり、LEDが点灯します。シリアルモニターの出力には「Detect: White!」と表示されます。

注:黒い線は、同センサーより幅を広くしてください。