1. Line Tracking Sensor
과거 아두이노를 공부하려고 구입했던 센서 모듈 중에 Line tracking 모듈이란 게 있었다.
이러한 센서 모듈의 외형은 다음과 같은데, IR 발사 광부와, 수신부가 다른 부품들과 같은 면에서 상부를 향하도록 부착되어 있고,
뒷면은 아무것도 부착되어 있지 않은 형태인데,
제조사에 따라서는 다음과 같이 센서 부분만을 반대편에 장착된 경우도 있다.
사실 이러한 IR Tracking 센서는 앞서 소개(https://kongyine.com/223262700519) 한 IR 방식 장애물 센서의 특별한 형태로 다음과 같은 특징과, 차이가 있다.
일반적인 IR 장애물 센서들은
– 전방을 향해 IR을 보낸 후, 전방의 장애물로부터 반사되는 IR을 감지하여 장애물을 판단하고,
– 이 때문에 광원과 수신부가 모두 모듈의 끝부분에 전방을 향해 배치되며,
– 상당한 거리 (7~8 cm) 정도의 거리에서 장애물을 감지할 수 있도록 광원의 세기와 감도가 설정된 반면
IR Tracking 센서는
– 단순한 장애물 센서처럼 도 동작하지만, 인식 가능한 이격 거리가 불과 1-2 cm 정도에 불과하다.
– 바닥면으로 IR 광을 보내고 바닥면에서 반사되는 IR을 감지하되,
– 바닥면의 색상에 따른 IR 광선의 반사율 차이가 있는 점을 이용한다.
흰색은 반사율이 높아 반사되는 IR을 감지하나, 검정 바닥은 반사율이 낮아 IR 감지가 되지 않는다.
– 광원과 수신부가 바닥면을 향하기 좋은 방향으로 설치되며,
– 상대적으로 매우 약한 광을 내도록 작은 광원이 부착되어 있고, 수신부 역시 작다.
2. 예제
앞서 IR 장애물 센서를 소개할 때와 동일한 회로를 다음과 같이 구성하고, 이 센이 서부에서 바닥의 상태를 감지하는 결과에 따라, 화면상에 감지한 결과를 나타내고, 서로 다른 색상의 LED가 켜지도록 했다.
센서는 디지털 출력만 지원하므로, VCC로 5V를 연결하고, DO 출력을 GP16으로 연결하였는데,
그리고 센서 부분에 서로 다른 색상의 재료를 가까이하면서, 감지 결과가 어떻게 달라지는지 보았는데,
흰색의 메모지와
Line을 ㅍ시 하는데 사용되곤 하는 검은 색상의 재질을 이용했다.
예제로는 다음을 이용했다.
센서 핀을 GP16에 연결하되 Pull_UP 모드로 선언했다. 즉, IR이 감지되지 않는 상태에서는 1값을 출력하고 녹색 LED가 켜진 상태를 유지하고, 바닥의 색상이 바뀌어 반사되는 IR 값이 감지되면 0이 입력되고 적색 LED가 켜지도록 설정했다. 물론 화면상으로도 감지 결과에 따라 “Route”와 “Edge Detected”라는 값을 출력하도록 했다.
import machine
import time
sensor=machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_UP)
greenled=machine.Pin(12, machine.Pin.OUT, 0)
led=machine.Pin(15, machine.Pin.OUT, 0)
while True:
if sensor.value()== 1:
print ("Route")
greenled.value(1)
time.sleep(0.1)
greenled.value(0)
elif sensor.value()== 0:
print ("Edge detected")
led.value(1)
time.sleep(0.1)
led.value(0)
동작 결과는 다음과 같다.
처음에는 (반사되는 IR이 없어서) 녹색 LED 점등 상태를 유지하다가 센서부에 흰색의 종이가 1-2 cm 정도로 가까워지면, IR이 반사되면서 적색 LED로 변하는 것을 볼 수 있다. 그러나, 흑색의 재질은 아무리 가까이하여도 녹색 LED 점 등 상태를 유지하는 것을 볼 수 있다.

또한 이러한 LED 점 등 상태 변화와 함께, 화면에는 감지 상태에 따라 “Route”라고 표기되다가, 흰색 종이가 다가갈 때는 “Edge detected”로 표기된다.


