임베디드시스템개론 -...

32
임베디드시스템개론 : Arduino 활용 Lecture #8: IR Sensor 활용 2012. 5. 4 by 김영주

Transcript of 임베디드시스템개론 -...

Page 1: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

임베디드시스템개론: Arduino 활용

Lecture #8: IR Sensor 활용

2012. 5. 4 by 김 영 주

Page 2: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

강의 목차Photodiode & Phototransister적외선을 이용한 이동체 검출 실험적외선을 이용한 검은 띠 검출 실험IR Remote 원리IR Remote 실험

2

Page 3: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

1. Photodiode & Phototransister

3

Page 4: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

Photodiode & Phototransister (1)포토다이오드(Photodiode) 특성

SI3311-H(EL-7L) 예시50[mA] 전류가 흐를 때 1.3[V] 전압강하, 25[mcd] 광도파장 950nm 적외선에서 상대 광도가 높음(적외선 발광)

4

Page 5: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

collect

emit

base

Photodiode & Phototransister (2)포토트랜지스터(Phototransister) 특성 : ST3811(ST-7L)

베이스에 광원이 입사되면, 단위면적당 빛의 세기에 비례하여 전압및 전류 특성이 변함

그림 (b)는 광원에 따른 컬렉터-이미터 전압(VCE) 및 컬렉터에서 이미터로 흐르는 전류(ICEL) 특성을 보여줌

적외선 영역인 약 870[nm] 파장의 빛이 상대적으로 크게 반응620~780[nm] 주파수의 적색에 반응하므로 조명등과 자연광에도 유의

5

Page 6: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

Photodiode & Phototransister (3)적외선 감지 회로

물체 움직임 감지 등 많은 영역에서 적외선 감지 방법을 적용

적외선 감지 회로 : A형컬렉터에 흐르는 전류(ICEL) 은 베이스에입사하는 조도(lx)와 비례하는 cm2당전력에 의해 증가

적외선이 많이 들어오면, ICEL이 증가30[KΩ] 저항의 전압강하가 커짐VO 전압은 감소

6

Page 7: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

Photodiode & Phototransister (4)적외선 감지 회로

적외선 감지 회로 : B형컬렉터에 흐르는 전류 ICEL은 베이스에 입사하는 조도(lx)와 비례하는 cm2당 전력에 의해 증가

적외선이 많이 들어오면, ICEL이 증가

30[KΩ] 저항의 전압강하가 커짐

VO 전압은 증가

VO 전압 변화

적외선 입사 HIGH 전압

적외선 차단 LOW 전압

7

Page 8: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

Photodiode & Phototransister (5)적외선 감지 회로 사례 : 적외선 차단 감지 회로

8

Photodiode B/D Phototransister B/D LED Holder 조립 모듈

Page 9: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

Photodiode & Phototransister (6)적외선 감지 회로 사례 : 적외선 반사 감지 회로

9

포토다이오드 모듈과 포토트랜지스터모듈을 1.25cm 간격

으로 병렬 배치

Page 10: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 이동체 검출 실험 (1)실험 개요

포토다이오드와 포토트랜지스터를 이용하여 이동체의 유무를 감지하는 회로를 구성하고 테스트한다.이동체가 감지되면 LED를 켜고 부저를 울리도록 한다.

사전 요구사항포토다이오드와 포토트랜지스터의 특성을 이해하여야 한다.아두이노의 아날로그 입력 처리 방법을 이해하여야 한다.LED와 Piezzo Puzzer 제어 방법을 이해하여야 한다.

10

Page 11: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 이동체 검출 실험 (2)회로도 및 회로 구성

회로도

11

Page 12: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 이동체 검출 실험 (3)회로도 및 회로 구성

회로 구성

12

5 cm

Page 13: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 이동체 검출 실험 (4)아두이노 프로그램 : 이동체 검출 프로그램

13

#define NOTE_C4 291#define THRESHOLD 100

const int ledPin = 2;const int buzzerPin = 11;const irPin = A0;

void setup() pinMode(ledPin, OUTPUT);

void loop() if (analogRead(irPin) < THRESOLD) digitalWrite(ledPin, HIGH);tone(buzzerPin, NOTE_C4, 250);delay(250);noTone(buzzerPin);

else digitalWrite(ledPin, LOW);

Page 14: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 이동체 검출 실험 (5)실험 결과 및 검토 사항

Buzzer 울림을 이동체가 검출된 동안 계속 되도록 수정하여라.Phototransister 출력에 대한THRESHOLD 값은 어떤 요인에 의해영향을 받는가?

14

Page 15: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 검은띠 검출 실험 (1)실험 개요

포토다이오드와 포토트랜지스터의 반사 감지 기능을 이용하여 검은띠를 검출하는 회로를 구성하고 테스트한다.검은띠가 감지되면 LED를 켜고 부저를 울리도록 한다.라인트레이서(Linetracer)의 라인 검출 기능과 동일

사전 요구사항포토다이오드와 포토트랜지스터의 특성을 이해하여야 한다.포토트랜지스터가 포토다이오드에서 방출되는 적외선 이외의 요소에 의한 영향을 받지 않도록 LED Holder 등을 활용한다.아두이노의 아날로그 입력 처리 방법을 이해하여야 한다.LED와 Piezzo Puzzer 제어 방법을 이해하여야 한다.

15

Page 16: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 검은띠 검출 실험 (2)회로도 및 회로 구성

회로도는 앞의 예제와 동일함.회로 구성은 다음과 같이 수정한다.

외부 물체에 의한 반사 영향을 줄이고 다른 광원의 적외선에 영향을 최소화하기 위해 수축튜브 또는 LED Holder 등을 이용하여 각 소자의 외부 노출을 최소화하도록 한다.포토다이오드와 포토트랜지스터는 같은 방향으로 병렬 배치한다

포토다이오드와 포토트랜지스터 사이의 간격은 1.25cm 정도 두도록 한다.

16

Page 17: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 검은띠 검출 실험 (3)아두이노 프로그램 : 검은띠 검출 프로그램

17

#define NOTE_C4 291#define THRESHOLD 20

const int ledPin = 2;const int buzzerPin = 11;const irPin = A0;

void setup() pinMode(ledPin, OUTPUT);

void loop() if (analogRead(irPin) > THRESOLD) digitalWrite(ledPin, HIGH);tone(buzzerPin, NOTE_C4, 250);delay(250);noTone(buzzerPin);

else digitalWrite(ledPin, LOW);

Page 18: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

적외선을 이용한 검은띠 검출 실험 (4)실험 결과 및 검토 사항

라인트레이서의 기능을 고려하여 검은띠를 검출하지 못할 경우에 부저와 LED가 켜지도록 하였다.포토트랜지스터의 입력전압에 대한THRESHOLD 값이 앞의 예제와 비교하여 작아진 이유는?THRESHOLD의 정확도를 높일 수 있는 방법은?

18

Page 19: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

2. IR Remote Control

19

Page 20: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control (1)개요

가시 영역에서 원격으로 장치를 제어하는 저비용의 방법가시광선 영역 아래의 950nm 파장의 적외선을 캐리어(carrier)로 사용하여 정보를 전달하여 장치를 제어

적외선(Infra-Red Light)은 장애물의 영향을 적게 받음

IR LED 제작이 용이하고 저비용

주변에 IR 방출원이 많아 간섭 문제가 심함 별도의 변조 방법이 필요

IR 원격 제어 방식

참고 사이트 : www.sbprojects.com/knowledge/ir/index.php

www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

20

IR 발신부 IR 수신부

modulation demodulation

Page 21: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control (2)IR 변조(IR Modulation)

잡음(noise)에 강인하게 신호를 전송하기 위해 특정 주파수에 맞추어 IR light 소스의 on/off를 통해 펄스를 생성하여 신호를 전송가전장비 등에서는 주로 30 KHz~ 60 KHz 주파수를 사용

잡음 제거에 효율적 – 태양, 형광등 등 주변광에 의한 오차 발생 소지를 제거

변조된 신호는 space와 mark로 이루어짐Space : 적외선 신호를 전송하지 않는 구간, 신호 전송의 시작 또는 끝 등을 의미

Mark : 전송 주파수에 맞추어 적외선 신호를 on/off하여 펄스 신호로 전송하는 구간, 전달하고자 하는 정보를 의미

21

Page 22: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control (3)IR Remote Control Protocol

전송 주파수, 변조 방식 , 전송 코드 등의전송 규약현재로는 기업 위주로 프로토콜을 정의하여 사용NEC, Philips RC5 & RC6, Sony, Sharp 등

NEC 코드 전송 규약캐리어 주파수 : 38KHz, 1/3 duty rate전송 신호 구성① 시작 코드 – 9ms HIGH, 4.5ms LOW 신호

② 데이터 코드열 – bit 1은 2.25ms 폭의 신호, bit 0는 1.125ms 폭의 신호로 송출, 보통 16 bit 데이터를 순서대로 전송한 후에 비트 반전된 정보를 재전송

③ 반복 코드 – 동일 코드를 반복적으로 전송해야 될 경우에 “반복코드”를 송출

22

Page 23: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control (4)IR Transmitter(발신부) 회로

주로 IR 발광 다이오드 사용850nm~950nm 파장의 IR LED 사용

실험용 IR LED 사양

발신 회로원거리 전송을 위해 Transistor를 이용하여 증폭

23

직경(mm) 파장(nm) 정격전압(V) 최대전압(V) 순방향전류 화각(deg)

5 940 1.36 1.7 100mA +-20

Page 24: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control (5)IR Receiver(수신부) 회로

IR 수광 모듈 사용발신부의 캐리어 주파수에 적합하여야 함.주요 동작:

실험용 IR 수광 모듈 사양940nm 파장 적외선 수광, 38KHz 주파수 지원

정격전압- 4.5~5.5V, 수신화각 - +-45 deg.

수신 회로

24

Page 25: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control (6)Multi-Protocol IR Remote Library for Arduino

아두이노에서 다양한 프로토콜로 IR 코드를 송수신할 수 있는 라이브러리지원 프로토콜:

NEC, Sony SIRC, Philips RC5 & RC6, Raw Protocol추가 protocol은 구현 용이

하드웨어 구성

참고 사이트http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

25

발신동작은 PWM Timer을 활용 발광IR LED는PWN pin3에

연결

Page 26: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (1)실험 개요

IR Remote Control Code 발신 및 수신 회로를 구성하고, 발신 및수신 테스트를 진행한다.아두이노 IR Remote Library를 사용한다.

사전 요구사항IR LED 및 수신 모듈의 특성을 이해한다.아두이노 IR Remote Library의 동작 방식 및 제약 조건을 이해한다.IR Remote Control Protocol의 종류 및 특징을 이해한다.

26

Page 27: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (2)회로도 및 회로 구성

회로도

27

Page 28: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (3)회로도 및 회로 구성

회로 구성

28

Page 29: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (4)Arduino IR Remote Library 설치 및 수정

IR Remote Library 설치http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html 에서 라이브러리 프로그램을 다운받는다.$HOME/schetchbook/libraries 디렉토리에서 압축을 해제한다.

IR Remote Library 수정For Arduino version 1.0, in IRRemoteInt.h,

change #include <WProgram.h> to #include <Arduino.h>For Arduino Mega or ADK, In IRremote.cpp, change at line 200,

29

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)pinMode(9, OUTPUT);digitalWrite(9, LOW); // When not sending PWM, we want it low

#elsepinMode(3, OUTPUT);digitalWrite(3, LOW); // When not sending PWM, we want it low

#endif

Timer2A 사용에 따라 연결된 PWM pin 모드를 변환

Page 30: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (5)아두이노 프로그램 : IR Remote Control Code 수신 프로그램

30

#include <IRremote.h>

int RECV_PIN = 3; // pin connected to IR receiver module

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

Serial.begin(115200);irrecv.enableIRIn(); // Start the receiver

void loop() if (irrecv.decode(&results))

Serial.println(results.value, HEX);irrecv.resume(); // Receive the next value

Page 31: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (6)아두이노 프로그램 : IR Remote Control Code 발신 프로그램

31

#include <IRremote.h>

IRsend irsend;

void setup()

Serial.begin(115200);

void loop() if (Serial.read() != -1)

for (int i = 0; i < 3; i++) irsend.sendSony(0xa90, 12); // Sony TV power codedelay(100);

Page 32: 임베디드시스템개론 - silla.ac.krmclab.silla.ac.kr/lecture/201201/es/es-arduino-lecture...적외선을이용한검은띠검출실험(2) ` 회로도및회로구성 ` 회로도는앞의예제와동일함.

IR Remote Control 발신 & 수신 실험 (7)실험 결과 및 검토 사항

IR Remoncon Code 수신 및 발신을 동시에 수행할 수 없기 때문에 다른 팀과 협력 실험하여야 한다.발신 프로그램에서 NEC code를 발신하도록 수정하여라.수신 프로그램에서 NEC code의 power-on 및 power-off 코드를 수신하여 pin 13에 연결된 LED를 on/off하도록 수정하여라.

32