Arduino 入門
Lesson 65
【Line Tracking Sensor】
こにんちは、管理人のomoroyaです。
センサーの使い方の基本を学習する入門編。
世の中には、まだまだ色々なセンサーがあります。
これからも、色々なセンサーで遊んでいきます。
本記事はLesson 65 【Line Tracking Sensor】です。
最近、色々とたてこんでいてArduino関係の記事は久しぶりにアップ・・・。
何か紹介する電子部品がないかと、部品箱を探し・・・。
お、記事にしていない電子部品を発見。
はい、「Line Tracking Sensor」です。
黒い線をトラッキングしながら動く車のおもちゃとかありますが、それに使われているセンサですね。
原理は赤外線なので別のレッスンの赤外線を使用している電子部品と原理はさほど違いません。
「Line Tracking Sensor」は赤外線受信機と赤外線送信機を備えたシンプルなセンサ。
赤外線光の異なる反射率を使用し反射された信号の強度によってセンサが動作します。
黒色は、赤外線を吸収するため白と黒があれば黒には反応しないということになります。
ようするに黒い線に赤外線をあてても、赤外線が放射されないか、または放射される光線の強度が十分に強くないので、センサーがそれを判別できるということになります。
本Lessonで使用する「Line Tracking Sensor」はおなじみの「LM393:コンパレータ」が実装されたモジュールとなります。
以下が同等品。
※prime対応品(出荷元:Amazon)
センサ部分だけで良ければこちら。
※prime対応品(出荷元:Amazon)
Arduino入門編の解説にて使用しているArduinoは互換品です。
互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
正規品(Arduino UNO R3)の本体単品がほしい方はこちらとなります。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
はじめに
本Lessonで使用する「Line Tracking Sensor」は「LM393:コンパレータ」が実装されたモジュール。
「LM393:コンパレータ」は下記のタッチセンサなど色々なセンサで使われています。
![](https://omoroya.com/wp-content/uploads/2020/10/arduino-lesson39-00-160x90.jpg)
センサ部分で検出し、コンパレータでデジタル値を出力、Arduinoで受け取るといったことで動作を確認できます。
Lesson 65 目標
本Lessonの目標は以下です。
2.Line Tracking Sensorの仕組みを理解する(理解しなくてもOKです)
3.Line Tracking Sensorを動かすスケッチを描く
4.Line Tracking Sensorを動かして遊ぶ
いつものように、遊ぶことが重要です。
「Line Tracking Sensor」ですが、Arduinoでの制御は単純です。
LED、buzzerなどと組み合わせてみる。
実際に、ライントレースして遊んでみる。
色々、応用できると思います。
準備
ではLessonの準備に取り掛かりましょう。
電子部品は「Line Tracking Sensor」とLEDと抵抗。
「Line Tracking Sensor」だけだとつまらないのでLEDを光らせて遊びます。
必要なもの
- USB接続用のPC(IDE統合環境がインストールされたPC)
→管理人が勝手に比較したBTOメーカーを紹介しています。 - UNO R3(以下UNO)、おすすめUNO互換品(ELEGOO)
- PCとUNOを接続するUSBケーブル
- ブレッドボード安価(大)、ブレッドボード安価(中)
※おすすめブレッドボード(大)、おすすめブレッドボード(中) - M-M Jumper wire(UNOと部品をつなぐための配線)
- M-F Jumper wire(UNOと部品をつなぐための配線)
- M-F M-M F-F セット Jumper wire(UNOと部品をつなぐための配線)
※ブレッドボードはセンサとUNOを直接つなぐ場合不要です。
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。
Jumper wire、抵抗は今後も頻繁に利用します。
Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。
短めが使いやすい場合も。
抵抗も単品で揃えるよりはセットをおすすめします。
抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!
という方は、「電子工作基本部品セット」が使い勝手が良い。
使用部品説明
「Line Tracking Sensor」について説明していきます。
Line Tracking Sensor 実物写真
下の写真が「Line Tracking Sensor」の実物写真です。
本Lessonで使用するものは、LM393コンパレータが実装されたモジュール。
GND、OUT、VCCの3つのピンで構成されています。
可変抵抗器は感度調整(LM393コンパレータ用の比較電位)に使います。
Line Tracking Sensor 回路図
「Line Tracking Sensor」の回路図を示します。
配線をおいかけて回路図を起こします。
回路じたいは単純ですが、LM393コンパレータなど回路に興味がないかたは飛ばしてください。
原理としては、赤外線を検出した場合、可変抵抗器がつながっている基準電圧より下がりLowを出力するというもの。
上記から・・・
- ライントレースの白部分(赤外線検出)であればLowを出力
- ライントレースの黒部分(赤外線非検出)であればHighを出力
ということになります。
※1 テスタで配線おいかけていますので、間違えている場合もあります!
※2 購入メーカーによって微妙に異なります。(管理人購入のものは安物です・・・)
Line Tracking Sensor 仕様
遊び、学習で使う分には気にする特性はとくにありません。
■仕様抜粋(一例:ものによります・・・)
項目 | 仕様 |
---|---|
動作電圧 | 3.3V ~ 5V |
動作電流 | <10mA |
検出距離 | 0.2mm〜15mm |
動作温度 | 0℃ ~ 50℃ |
出力レベル | TTL Level |
モジュールサイズ | 40mm × 10mm |
データシートを探したい場合は、TRT5000、TCRT5000などで検索するとさがしやすいかも。
本Lessonは遊び、学習を想定しています。
Arduinoの仕様範囲内で使用していれば問題になることもありません。
遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。
実践 回路作成とコード作成
最初に回路図を確認してください。
次に、回路図に合わせて部品を接続します。
最後にコードを書いて、「Line Tracking Sensor」を動かしていきましょう。
Arduinoのピン配置を確認したい方は番外編02を参照してください。
回路図
Arduinoの使用ピンは以下。
- デジタル入力:7
- デジタル出力:2、3
- 5V、GND
回路図がこちら。
こちらがブレッドボード図。
回路図は「fritzing」を利用しています。
「fritzing」の使い方は下記を参照してください。
接続
下図に示すように、用意した部品を使用して接続しましょう。
部品は「Line Tracking Sensor」とLED、抵抗となります。
部品はわずかであるため接続は簡単です。
「Line Tracking Sensor」と接続するジャンパーワイヤーはM-Fを使用してます。
ブレッドボードを使うかどうかはお好みで。
使用するポートは
- デジタル入力:7
- デジタル出力:2、3
- 5V、GND
穴に挿入しづらいときは、ラジオペンチなどを使用してください。
コードの書き込み
接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。
コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。
コマンド説明
本Lessonでは、特に新しいコマンドはありません。
サンプルコード
本Lessonのスケッチは単純。
デジタル入力ピンで「Line Tracking Sensor」の出力電圧を読み取るのみ。
あとは、読み取った出力に応じて赤色、青色のどちらかのLEDを光らせることになります。
ここでは、ライントレースを想定して下記としました。
- 白いときは赤色のLEDがON
- 黒いときは青色のLEDがON
//Lesson 65 Line Tracking Sensor //Line Tracking Sensorで黒色をトラッキング //https://omoroya.com/ const int ledPin1 = 2; // 赤色LED用 const int ledPin2 = 3; // 青色LED用 const int detectPin = 7; // traking sensor interface(OUTPUT) int val; // センサ検出結果格納変数 void setup() { pinMode(ledPin1, OUTPUT); // 赤色LED用ピン設定 pinMode(ledPin2, OUTPUT); // 青色LED用ピン設定 pinMode(detectPin, INPUT); // センサ検出用ピン設定 } void loop() { val = digitalRead(detectorPin); // センサ値読み取り //センサ値がLOWなら赤色LED ON(反射物あり) if(val == LOW) { digitalWrite(ledPin1, HIGH); digitalWrite(ledPin2, LOW); } //センサ値がHIGHなら青色LED ON(黒または反射物なし) else { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, HIGH); } }
動作確認
では、さっそく動作を確認していきます。
黒色は本当に黒が良いので折り紙を使います。
「Line Tracking Sensor」のセンサ部分の上で折り紙の黒部分と白部分を交互に動かしてみてください。
LEDの赤と青が交互に光ることを確認できます。
折り紙の
- 白部分:赤色のLED ON
- 黒部分:青色のLED ON
■色とセンサとLEDの状態
折り紙の色 | センサ出力 | LEDの状態 |
---|---|---|
白 | Low | ![]() |
黒 | High | ![]() |
まとめ
本Lessonは、以下を目標としました。
2.Line Tracking Sensorの仕組みを理解する(理解しなくてもOKです)
3.Line Tracking Sensorを動かすスケッチを描く
4.Line Tracking Sensorを動かして遊ぶ
「Line Tracking Sensor」はライントレースができるセンサ。
色々と遊ぶことができるセンサです。
応用編では、実際にライントレースして遊ぶのもよいかなと考えています。
いつになるかは?ですが・・・。
Lesson 65 【Line Tracking Sensor】 はここまで。
疑問点、質問などありましたら気軽にコメントください。
次回、Lesson 66は同じく赤外線を使う【障害物回避センサ】を解説。
![](https://omoroya.com/wp-content/uploads/2022/01/arduino-lesson66-00-160x90.jpg)
最後に
疑問点、質問などありましたら気軽にコメントください。
この電子部品の解説をしてほしい!などなどなんでもOKです。
リンク切れ、間違いなどあればコメントいただけると助かります。
Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。
Arduino入門編、Arduino入門編2で使用しているUNOはAmazonにて購入可能です。
Arduino入門編では互換品を使用。
Arduinoはオープンソース。
複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
学習用、遊び用、お試し用には安価な互換品がおすすめです。
ELEGOO UNO キット レベルアップ チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用
上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
Amazonでお得に買う方法
Amazonでお得に購入するならAmazon Mastercard、Amazonギフト券がおすすめです。
時期により異なりますが、様々なキャンペーンを実施しています。
\Amazonギフト券/
Amazonギフトカード キャンペーン
\Amazon Mastercard お申込み/
Amazon Mastercard 申し込み
いずれの場合もプライム会員である方がお得!!
\Amazon Prime 30日間の無料会員を試す/
無料会員登録
コメント