arduinoで遊ぼう #2近くの物体との距離を測る

31
#2 近くの物体との距離を測る Arduinoで遊ぼう 2014.10.09 Created by Sannomiy Yasunori

Upload: yasunori-sannomiya

Post on 05-Jul-2015

1.379 views

Category:

Technology


1 download

DESCRIPTION

フォトリフレクタの使い方とサンプルプログラムです。

TRANSCRIPT

Page 1: Arduinoで遊ぼう #2近くの物体との距離を測る

#2 近くの物体との距離を測るArduinoで遊ぼう

2014.10.09Created by Sannomiy Yasunori

Page 2: Arduinoで遊ぼう #2近くの物体との距離を測る

今回やること

センサ値 表現センサ値

Arduino Processing

Page 3: Arduinoで遊ぼう #2近くの物体との距離を測る

今回やること

センサを使って物体との距離を計測します

センサ値 表現センサ値

Arduino Processing

Page 4: Arduinoで遊ぼう #2近くの物体との距離を測る

同じ種類のセンサでも計測できる距離範囲が違うので注意が必要です。 使い方とお財布に相談して使うセンサを決めよう。

物体との距離がわかるセンサ達

光電(フォト)センサ  約0cm ~ 3cm

赤外線距離センサ  約10cm ~ 80cm

超音波距離センサ  約3cm ~ 5cm

Arduino

Page 5: Arduinoで遊ぼう #2近くの物体との距離を測る

今回は0cm~3cm以内での距離を計測するフォトセンサを使ってみます

物体との距離がわかるセンサ達

光電(フォト)センサ  約0cm ~ 3cm

赤外線距離センサ  約10cm ~ 80cm

超音波距離センサ  約3cm ~ 5cm

Arduino

Page 6: Arduinoで遊ぼう #2近くの物体との距離を測る

今回使用するセンサ

センサの種類:反射型フォトセンサ 通称    :フォトリフレクタ 計測可能距離:約0cm ~ 3cm 型番    :LBR-127HLD 買えるところ:秋月電気通商        http://akizukidenshi.com/catalog/g/gP-04519/

Page 7: Arduinoで遊ぼう #2近くの物体との距離を測る

赤外線LED赤外線受光 モジュール

仕組み フォトリフレクタは赤外線LEDと 赤外線受光モジュールがセットになってます

Page 8: Arduinoで遊ぼう #2近くの物体との距離を測る

赤外線LED赤外線受光 モジュール

仕組み

1.赤外線出発

2.赤外線が物体に  当たって反射

3.赤外線をキャッチ

赤外線の反射率によって 距離を計測する

Page 9: Arduinoで遊ぼう #2近くの物体との距離を測る

使い方

この二つを同時に使える回路を作ります

赤外線LED赤外線受光 モジュール

Page 10: Arduinoで遊ぼう #2近くの物体との距離を測る

ちょっと寄り道 LEDの使い方の復習

LED

LEDには極性がありました。どっちがどっちだっけ?

Page 11: Arduinoで遊ぼう #2近くの物体との距離を測る

LED

+-

+- 出っ張ってるほうが プラスと覚えるべし

ちょっと寄り道 LEDの使い方の復習

Page 12: Arduinoで遊ぼう #2近くの物体との距離を測る

LED× LEDO

ちょうどいい 抵抗

ちょっと寄り道 LEDの使い方の復習

LEDを使う時は抵抗を使って流れる電流の量を調整しよう。

Page 13: Arduinoで遊ぼう #2近くの物体との距離を測る

改めて使い方

赤外線LED赤外線受光 モジュール

ちょうどいい 抵抗 ちょうどいい

抵抗

この回路で フォトリフレクタは動くはず

Page 14: Arduinoで遊ぼう #2近くの物体との距離を測る

改めて使い方

ちょうどいい 抵抗

ちょうどいい 抵抗

これでもいいよね

赤外線LED赤外線受光 モジュール

並列回路:電圧は等しい      電流は異なる

こんなルールありました

Page 15: Arduinoで遊ぼう #2近くの物体との距離を測る

改めて使い方

ちょうどいい 抵抗

ちょうどいい 抵抗

赤外線LED赤外線受光 モジュール

Arduinoにするとこんな感じ

Arduino

GNDピンへ 5Vピンへ

Page 16: Arduinoで遊ぼう #2近くの物体との距離を測る

改めて使い方

ちょうどいい 抵抗

ちょうどいい 抵抗

赤外線LED赤外線受光 モジュール

Arduino

GNDピンへ 5Vピンへ

A0ピンへ

センサ値をとるには赤外線 受光モジュールの回路から 値をとろう

Arduinoにするとこんな感じ

Page 17: Arduinoで遊ぼう #2近くの物体との距離を測る

回路図

赤外線 赤外線受光 モジュール

220 1K

赤外線LED赤外線受光 モジュール

+

-+

よくみると角が欠けているところがあるので この角を目印にプラス・マイナスを確認して下さい。

-

Page 18: Arduinoで遊ぼう #2近くの物体との距離を測る

回路図

赤外線 赤外線受光 モジュール

220 1K

赤外線LED赤外線受光 モジュール

+

-+

このフォトリフレクタの赤外線受光モジュールは 足が長いほうがプラスになっているのでご注意を。

-

Page 19: Arduinoで遊ぼう #2近くの物体との距離を測る

回路図

赤外線LED 赤外線受光 モジュール

220Ω 1KΩ赤外線LED赤外線受光

モジュール

Page 20: Arduinoで遊ぼう #2近くの物体との距離を測る

ソースコード解説

Page 21: Arduinoで遊ぼう #2近くの物体との距離を測る

void setup(){ Serial.begin(9600); //シリアル通信を開始 } !

void loop(){ int dis = analogRead(A0); //A0ピンからの入力 dis = map(dis, 0,1023, 0, 255); //0~1023の範囲の値を0~255の範囲の値へ Serial.println(dis); //シリアルモニタに表示する delay(100); }

①②③

Page 22: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイント

analogRead(ピン番号); 指定したアナログピンから値を読み取る。 アナログ信号を0~1023の数値に変換して 読み取る。

その1

Page 23: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイント

map(この値を, こっから, ここまでの範囲から, こっから, ここまでの範囲にする);

数値をある範囲から別の範囲にする命令。

その2

ex) map(analogRead(0), 0, 1023, 0, 255);例えば、0~1023の範囲で値をとるセンサの値を 1バイトでシリアル通信で送信する時などに便利なのだ

この値を 0~1023から 0~255の範囲にする

Page 24: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイントその2:もうちょっと詳しく

センサ値シリアル通信

Arduino Processing0~1024の範囲で 値をとる

analogRead()ではセンサの値を0~1023段階でとることができる

Page 25: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイントその2:もうちょっと詳しく

センサ値シリアル通信

Arduino Processing0~1024の範囲で 値をとる

前回のシリアル通信の方法では1byteづつデータを送信する

1byteづつ送信 1byte=0~255

Page 26: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイントその2:もうちょっと詳しく

センサ値シリアル通信

Arduino Processing0~1024の範囲で 値をとる

つまり、255以上の値を一度に送信することができない

1byteづつ送信 1byte=0~255

0

1024

0255

Page 27: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイントその2:もうちょっと詳しく

センサ値シリアル通信

Arduino Processing0~1023の範囲で 値をとる

こんな時にmapを使って値の範囲を変えたりします

1byteづつ送信 1byte=0~255

0

1023

0255

map(値,0,1023,0,255);

Page 28: Arduinoで遊ぼう #2近くの物体との距離を測る

本日のポイント

Serial.print(整数又はString型); Serial.println(整数又はString型);

シリアルモニタで値を表示することができる。 シリアル通信の際にデータ送信のためにも 使える。printlnで末尾改行。 Trinketではデバック用に使用できない。 UnoなどのArduinoで使用しよう。

その3

Page 29: Arduinoで遊ぼう #2近くの物体との距離を測る

void setup(){ Serial.begin(9600); //シリアル通信を開始 } !

void loop(){ int dis = analogRead(A0); //A0ピンからの入力 dis = map(dis, 0,1023, 0, 255); //0~1023の範囲の値を0~255の範囲の値へ Serial.println(dis); //シリアルモニタに表示する delay(100); }

①②③

Page 30: Arduinoで遊ぼう #2近くの物体との距離を測る

#2 近くの物体との距離を測るArduinoで遊ぼう

2014.10.09Created by Sannomiy Yasunori

終わり

Page 31: Arduinoで遊ぼう #2近くの物体との距離を測る

参考サイト

Arduino動かせ入門、フォトセンサーで物体の動きを検出する、 http://www.geocities.jp/zattouka/GarageHouse/micon/Arduino/PS/PS.htm