"/>

気になる、をやってみたら・・見える景色が変わる!ナーンテナ

Fun-Desire-Blog 

PexelsのSound Onによる写真

電子工作

四足歩行ロボットを作りたい!~Arduino Nano・距離センサーから入力~

更新日:

今回は、ロボットへ判断させるための入力信号を取り込んでみます。SHARP製の赤外線距離センサモジュール(GP2Y0A21YK0)を使用してArduinoに取り込みある距離に来たらLEDを光らせます
さあ、行ってみまShow!  


<目次>

  • キットを使ったセンサー入力
    ・こんな感じのもの
    ・光らせてみます。
    ・アレレ? 光らない!
    ・こういう構造なんですね。
  • センサーとArduinoでLチカ
    ・接続図
    ・Arduinoのスケッチ
    ・キットと同じようにLチカ
  • まとめ

1.キットを使ったセンサー入力

 ・こんな感じのもの

マイコンキットドットコム リレー付き測距センサーキット MK-313

SHARP製の赤外線距離センサモジュール(GP2Y0A21YK0)を使用した、リレー付きのキットです。

 ・SHARP製の赤外線距離センサモジュール(GP2Y0A21YK0)使用。
 ・リレー付きで、接点出しが出来る。(NC,NO)
 ・ボリューム付きで検知する距離を可変できる。

<キットの回路説明 :マイコンキットドットコムのHPより>
このキットで使用しているシャープ製の測距センサーは検出距離に反比例した電圧を出力するセンサーです。赤外線を出し、その反射光から距離を検出します。マイコンICがその電圧を測定し、ボリュームで設定された電圧(検出距離に対応)と比較します。その結果から設定距離の10%以内に近づくとアラームを知らせる黄色LEDが点灯し、次に設定距離に達すると赤色LEDが点灯し、同時にリレーが駆動されます。

※キットでは、マイコンICが電圧を測定しますが、センサー単体になると、マイコンはありませんので、測定せず、アナログ値が出るだけです。ねんのため。

<注意点>
リード線の色が一般的でないので、注意して下さい。

あと、キットとしての入力電源(12V)が必要です。
センサーモジュール単体では、0.3~7Vが供給電圧になります。

 ・光らせてみます。

扇子を近づけるとある位置で、黄色のLEDが点灯後、赤色のLEDも点灯します。
(離れると、また消灯します)
分かりにくいですが、ボリュームを回すと、LEDが点灯する距離を調整できます。マイコンキットドットコムさんの動画を参考にしました。

近づくとある位置で基板のLEDが点灯(赤)します。黄色は事前点灯。

 ・アレレ? 光らない!

ところが、今度は近づけても、近づけても点灯しません。センサーが赤外線式なので、赤外線が通り抜けてしまう物体は、反応しないのです。

透明の物体は、反応しない。

 ・こういう構造なんですね。

赤外線を出しているのは、画像の奥側になります。ですから、扇子を奥側で近づけると反応しますが、手前では反応しなくなります。

奥側に赤外線の発信位置がある。

2.センサーとArduinoでLチカ

さて、次は、センサー単体を使って、Arduinoの接続して入力し、キットと同じようにある位置まで近づいたら、LEDを点灯させます。(得意のLチカです)

・センサーモジュール単体では、0.3~7Vが供給電圧になります。
・赤外線を用いて、三角測量の要領で距離を測定します。
センサーの原理などの詳しく説明されています → 赤外線測距モジュールで物体の距離を測ってみます(1/2)
・電圧と距離の関係は直線ではない。(距離測定というより、物体の有無検知として使用予定)測距範囲10-80cm。
・シリアルモニタで値を見ると、200~600の値がでていました。遠いと数値が小さく、近いと値が大きくなりました。
・500という値になった時に、LEDを点灯させます。
・AruduinoのA0ピンから出て来る値を読み取ります。
・LEDを点灯させるための出力端子は、以前のLチカでやった2番ピンの出力を取り出します。(ソフト(スケッチ)も流用できるので、効率的です)

改めて、赤外線距離センサモジュール(GP2Y0A21YK0)のデータシートのリンク先を貼っておきます。

gp2y0a21yk_e.pdf (global.sharp)

また、いそぷろのブログさんもメッチャ分かりやすいです。参考にさせて頂きました。

 ・接続図

さて、実際に、光らせていきましょう!
まず、Aruduino、センサー、LEDの接続図です。こんな感じで繋ぎますが、すごくシンプルです。

 ・Arduinoのスケッチ

参考に、Aruduinoのスケッチ(サンプル)を記載します。

int val; //センサーの入力をいれる変数
const int LED_PIN1 = 2;   //LED(2番)ピンをPIN1に割り当て

void setup() {
Serial.begin(9600); //シリアル通信の準備
pinMode( LED_PIN1, OUTPUT ); //LED(2番)ピン出力
}

void loop() {
val = analogRead(A0); //A0ピンの入力を読み、valにいれる
Serial.println(val); //シリアルモニタへ表示させます

if (val >500) {
digitalWrite(LED_PIN1, HIGH); //valの値が500より大きい時、LED点灯
} else {
digitalWrite(LED_PIN1, LOW); //valの値が500以下の時は、LEDを消灯させます

}

delay(600); //シリアルモニタの値が流れて見にくいので0.6秒(600ms)待ちます
}

 ・キットと同じようにLチカ

同じように 「Lチカ」 出来ました!

Aruduinoでもセンサー入力
シリアルモニタのイメージ

3.まとめ

・基本はセンサーの使い方は、センサーへ電源(及びGND)を接続して、出力(Vout)を取り出すだけです。(あとは、どう使うか)
・センサーの原理も理解しておいた方がいいでしょう。あとで、課題が出て来た時に、分かっていると対応しやすいです。
・センサーの種類も他に、超音波式などがあります。(反射してくる時間を測る)

センサーの入力を取り込んで、値によって違うことが出来るところまで確認出来ました。ロボットでは、ある距離まで近づいたら、ぶつからないよう、回避した動きをさせようと思います。現在は、ロボットの剛性をあげる構造変更しています。(もう少し頑丈になるように改造しています)お楽しみに~! つづく

-電子工作
-, , ,

Copyright© Fun-Desire-Blog  , 2024 All Rights Reserved Powered by STINGER.