\ Amazon 冬支度セール 11/4(月)~11/12/(火) /

Arduino 入門 Lesson 66 【障害物回避センサ】

arduino-lesson66-00 Arduino入門編
記事に広告(アフィリエイト広告)が含まれています。
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 66
【障害物回避センサ】

こにんちは、管理人のomoroyaです。

センサーの使い方の基本を学習する入門編。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

本記事はLesson 66 【障害物回避センサ】です。
※障害物回避センサ:obstacle avoidance sensor

 

補足情報(2024.03.10)
スケッチの一部が間違っていましたので修正しました。
20行目:detectorPin → detectPin

 

Lesson 65【Line Tracking Sensor】を学習しましたが、まあ名前が違うだけで原理は同じ。

障害物回避センサ」のご紹介。

Lesson 65では、黒い線を認識するしないというのを学習しましたが原理は赤外線の送信、受信。

本Lessonの「障害物回避センサ」も同じで、赤外線の受信、送信です。

別のレッスンの赤外線を使用している電子部品と原理はさほど違いません。

 

障害物回避センサ」は赤外線受信機と赤外線送信機とタイマーIC:NE555を備えたセンサモジュールとなります。

車輪付きのロボットなどに使われていて、障害物を検出する距離は数cm~数十cm程度。

特徴は、タイマーIC:NE555を搭載していること。
NE555がオリジナル、各メーカーからCMOS版も含めてセカンドソース品が販売されている

タイマーIC:NE555を使用することでLEDから38KHzの赤外線を照射することができるようになっており、受光部にはIRフィルターとバンドパスフィルターが組み込まれ、38KHzのパルス波のみを受光する仕組みとなっています。

上記により、精度の高い障害物検知が可能となっています。

 

以下が同等品。
※prime対応品(出荷元:Amazon)

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

正規品(Arduino UNO R3)の本体単品がほしい方はこちらとなります。

 

Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)

 

 

スポンサーリンク

はじめに

本Lessonで使用する「障害物回避センサ:obstacle avoidance sensor」は「タイマーIC:NE555」が実装されたモジュール。

タイマーIC:NE555」は検索すると色々と遊びネタが出てくるので遊びに使うのにも重宝するIC。

単品買って、原理を理解するために遊んでみるのも面白いです!
※回路に興味がある場合ですが・・・

 

Lesson 66 目標

本Lessonの目標は以下です。

1.障害物回避センサの使い方を学習する
2.障害物回避センサの仕組みを理解する(理解しなくてもOKです)
3.障害物回避センサを動かすスケッチを描く
4.障害物回避センサを動かして遊ぶ

いつものように、遊ぶことが重要です。

 

障害物回避センサ:obstacle avoidance sensor」ですが、Arduinoでの制御は単純です。

LED、buzzerなどと組み合わせてみる。

実際に、車輪付きのロボット、車を作ってみる。

色々、応用できると思います。

 

準備

ではLessonの準備に取り掛かりましょう。

電子部品は障害物回避センサ:obstacle avoidance sensorとLEDと抵抗。

障害物回避センサ:obstacle avoidance sensor」だけだとつまらない。

障害物を検知したら赤色LED点灯、障害物がなければ青色LED点灯ぐらいの回路は組んで遊びます。

 

必要なもの

※ブレッドボードはセンサとUNOを直接つなぐ場合不要です。
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

Jumper wire、抵抗は今後も頻繁に利用します。

Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

短めが使いやすい場合も。

 

抵抗も単品で揃えるよりはセットをおすすめします。

 

抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!

という方は、「電子工作基本部品セット」が使い勝手が良い。

 

使用部品説明

障害物回避センサ:obstacle avoidance sensorについて説明していきます。

 

障害物回避センサ 実物写真

下の写真が障害物回避センサ:obstacle avoidance sensorの実物写真です。

本Lessonで使用するものは、タイマーIC:NE555が実装されたモジュール。

左から、GND、VCC、OUT、ENの4つのピンで構成されています。

ポテンショメータは38KHzを調整するために使います。

補足(ポテンショメータ)
A:38KHzの調整用(38KHzへの調整はオシロスコープ、周波数カウンタが必要)
B:赤外線LEDの輝度を制御(補足:Dutyで輝度制御)
注意事項:オシロスコープや周波数カウンターがない場合
Aのポテンショメータはメーカーから提供されたもの、または範囲の中央に置いておく
Bのポテンショメータを時計回りに完全に回すと、NE555が過負荷になり過熱して損傷する可能性があり(との情報あり)

arduino-lesson66-01

 

障害物回避センサ 回路図

障害物回避センサ:obstacle avoidance sensorの回路図を示します。

配線をおいかけて回路図を起こします。

回路に興味がないかたは必ず飛ばし読みしてください。

原理
NE555チップで38kHzの方形波を生成。
生成した38kHzの信号でIR(赤外線)LEDを点灯。
物体によって反射された赤外線光は、赤外線レシーバーモジュールで検出。
赤外線レシーバモジュールには、950nmIRフィルターと38kHzバンドパスフィルターが組み込まれており、これらを組み合わせることで38KHzの赤外線光のみ受信するという仕組。

まあ、すっ飛ばしてください!

テスタで配線おいかけていますので、間違えている場合もあります!

 

回路図作成中

 

 

障害物回避センサ 仕様

遊び、学習で使う分には気にする特性はとくにありません。

 

■仕様抜粋(一例:ものによります・・・)

項目 仕様
動作電圧 3.3V ~ 5V
動作電流 ≧20mA
検出距離 2cm〜40cm
動作温度 -10℃ ~ 50℃
出力レベル TTL Level
モジュールサイズ 約 44mm × 11mm

 

データシートを探したい場合は、各部品に関してはNE555IR333HS0038DBなどで検索するとさがしやすいかも。

本Lessonは遊び、学習を想定しています。

Arduinoの仕様範囲内で使用していれば問題になることもありません。

遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。

 

補足
受信機モジュールにはAGC(Automatic Gain Control)が組み込まれています。
そのため、デバイスを正しく動作させるには、「EN」ピンを使用する必要があります。
ようするに正しい仕使用方法としてはjumperを取り外してENを制御する必要があるということです。
仕様書を深く読み込んでいないため、本Lessonではjumperを取り付けたままにします。

それでも、とりあえず動作は確認できます・・・。

改めて仕様書を読み直しENを使ったスケッチを組んでみたいと思います。

 

実践 回路作成とコード作成

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、障害物回避センサ:obstacle avoidance sensorを動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

Arduinoの使用ピンは以下。

  • デジタル入力:7
  • デジタル出力:2、3
  • 5V、GND

回路図がこちら。

補足情報
ENピンはjumperを介してL(常に検出状態
ノイズ、外乱による誤動作を抑制するためにはENを使用する必要あり!

arduino-lesson66-03

 

こちらがブレッドボード図。

arduino-lesson66-04

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

部品は障害物回避センサとLED、抵抗となります。

部品はわずかであるため接続は簡単です。

障害物回避センサと接続するジャンパーワイヤーはM-Fを使用してます。

ブレッドボードを使うかどうかはお好みで。

 

使用するポートは

  • デジタル入力:7
  • デジタル出力:2、3
  • 5V、GND

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

arduino-lesson66-05

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード

本Lessonのスケッチは単純。

というか回路を見てお気づきかもしれませんがENを使用していないので回路構成はLesson 65と同じだったりします・・・。

そのためLesson 65のスケッチでOKなんですね・・・。

ということでスケッチは同じ!

デジタル入力ピンで障害物回避センサ出力電圧を読み取るのみ。

あとは、読み取った出力に応じて赤色、青色のどちらかのLEDを光らせることになります。

ここでは、ライントレースを想定して下記としました。

  • 障害物があるときは赤色のLEDがON
  • 障害物がないときは青色のLEDがON
//Lesson 66 障害物回避センサ
//障害物回避センサ:obstacle avoidance sensorで障害物を検出
//https://omoroya.com/

const int ledPin1 = 2;    // 赤色LED用
const int ledPin2 = 3;    // 青色LED用 
const int detectPin = 7;  // obstacle avoidance interface(OUTPUT)
int val;                  // センサ検出結果格納変数

void setup()
{
  pinMode(ledPin1, OUTPUT);  // 赤色LED用ピン設定
  pinMode(ledPin2, OUTPUT);  // 青色LED用ピン設定
  pinMode(detectPin, INPUT); // センサ検出用ピン設定 
}

void loop()
{
  val = digitalRead(detectPin); // センサ値読み取り

  //センサ値がLOWなら赤色LED ON(障害物あり)
  if(val == LOW)
  {
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, LOW);
  }
  //センサ値がHIGHなら青色LED ON(障害物なし)
  else
  {
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, HIGH);
  }
}

 

動作確認

では、さっそく動作を確認していきます。

 

障害物回避センサ」のセンサ部分に遮蔽物を置いてみてください。

  • 障害物あり:赤色のLED ON
  • 障害物なし:青色のLED ON

 

■色とセンサとLEDの状態

障害物 センサ出力 LEDの状態
あり Low arduino-lesson66-07
なし High arduino-lesson66-06

 

障害物を検出できていることがわかります!
遊ぶとわかりますがかなり精度よく障害物を検出できると考えます。
安価な割には素晴らしいセンサですね。

 

まとめ

本Lessonは、以下を目標としました。

1.障害物回避センサの使い方を学習する
2.障害物回避センサの仕組みを理解する(理解しなくてもOKです)
3.障害物回避センサを動かすスケッチを描く
4.障害物回避センサを動かして遊ぶ

 

障害物回避センサ:obstacle avoidance sensorは障害物を検出できるセンサ。

色々と遊ぶことができるセンサです。

応用編では、動くものに搭載して遊ぶのもよいかも・・・。

同じくいつになるかは?ですが・・・。

 

Lesson 66 【障害物回避センサ】 はここまで。

疑問点、質問などありましたら気軽にコメントください。

 

次回、Lesson 67は検討中です。

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編Arduino入門編2で使用しているUNOはAmazonにて購入可能です。

Arduino入門編では互換品を使用。

Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)

 

Amazonでお得に買う方法

Amazonでお得に購入するならAmazon MastercardAmazonギフト券がおすすめです。

時期により異なりますが、様々なキャンペーンを実施しています。

\Amazonギフト券/
Amazonギフトカード キャンペーン

Amazon Mastercard お申込み
Amazon Mastercard 申し込み 

 

いずれの場合もプライム会員である方がお得!!

\Amazon Prime 30日間の無料会員を試す/
無料会員登録 

 

 

コメント

  1. ななと より:

    いつも分かりやすい記事をありがとうございます。プログラムなんですけど20行目はdetectorPinではなくdetectPinではないでしょうか?勘違いだったら申し訳ないです。

    • omoroya omoroya より:

      ななとさん、コメントありがとうございます。
      ご指摘の通りです。
      スケッチを修正しておきました。
      また、何か間違い等ありましたらコメントいただけると助かります!

タイトルとURLをコピーしました