라즈베리파이 피코보드에서 IR 감지 센서 사용하기

라즈베리파이 피코보드에서 IR 감지 센서 사용하기

IR 감지센서

앞선 글에서 IR 방식의 장애물 센서를 이용하는 방법을 소개한 바 있었다. (https://blog.naver.com/mythee1/223262700519)

그런데, 실제에 있어서 IR 센서는 장애물 감지 목적 외에도, 보안 목적으로 많이 사용된다.

외부로부터의 도둑이나, 외부 침입자가 있는 경우 이를 발견하기 위한 목적으로 다음과 같은 형태의 감지기가 설치된 경우들을 주변에서 흔히들 볼 수가 있다.

이들은 모두 눈에 안 보이는 적외선을 이용하여 눈에 안 보이는 빛의 사슬을 형성한 후, 이 빛의 사슬이 차단되는 것을 감지하여 경보를 울리거나 동작하는 원리를 사용한다.

피코보드에서 IR 감지센서 적용해보기

라즈베리 파이 피코 보드에서도 이러한 원리를 구현해 볼 수 있는데, 시중에서 쉽게 구할 수 있는 다음 형태의 적외선(IR, Infrared Rays) 감지 센서 모듈을 구해 피코 보드에서 IR 감지 및 감지에 따른 동작제어를 구현해 보았다.

IR 감지 센서의 외형적인 특징은 앞서 소개한 IR 장애물 센서 모듈과 달리 단순히 수신부 만으로 구성되어 있다는 점이 다르다.

접속용 핀들은 전원부와 아날로그 출력 필, 그리고 디지털 출력핀으로 구성된다.

만일 모듈형 센서가 아니라, 다음과 같이, 적외선 감지용 포토 IR 소자가 있는 경우, 다음과 같이 회로를 구성해도 된다. 이때 포토 IR의 연결시 극성이 있음을 주의해야 한다. (그 외는 모듈형 센서 사용시와 동일)

전원 단자와 DO 핀을 이용하여

다음과 같이 간단한 회로를 구성했다.

전원은 5V를 연결했고, DO 출력을 GP16에 연결하고, 이 신호를 이용하여 GP15에 연결한 LED를 동작시키는 형태로 구성하였다.

예제 코드는 다음과 같이 간단하다. 단순히 IR 수신부에 IR 빛이 감지되면 LED를 켜는 동작이며, 이를 위해 입력핀을 PULL_DOWN 모드로 설정하였다. (만일 외부 침입 감지를 위해 빛의 사슬이 끊어진 것을 감지하는 경우라면 PULL_UP 모드로 설정하는 것이 더 바람직하다.)

import machine
import time

sensor=machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_DOWN)
led=machine.Pin(15, machine.Pin.OUT)
led.value(0)
while True:
if sensor.value()== 1:
print ("IR detected")
        led.value(1)
        time.sleep(0.1)
        led.value(0)                
    elif sensor.value()== 0:
print ("No IR detected")
        time.sleep(0.1)

이 코드를 실행시키면서, 외부로부터 가시광선을 가하면서 센서가 동작하는 것을 살펴보았는데 해당 결과는 다음과 같다. (참고 – 일반 가시광선 광원에도 약간의 적외선이 함께 방출되는 점과, 적외선 광원을 인간의 눈으로는 확인이 불가능해서 시각적인 목적으로 일반 가시광선을 이용해서 동작을 확인했다.)

한편 이 코드가 실행되는 동안 IR 광선이 감지되면, 화면 실행 창에는 다음과 같이 감지 상태가 출력된다.

만일 적외선을 이용하여 보안 시스템을 구성하려는 경우에는 다음과 같은 레이저 발광소자를 이용하면 되는데, 다만 레이저 소자와 센서부와의 거리에 따라 사용하는 레이저 소자의 빛출력이 충분하여야 한다.