아두이노, Mblock 초음파센서 제어하기

Posted by JaGG
2018. 6. 11. 17:57 카테고리 없음


안녕하세요. 오늘은 아두이노를 이용한 초음파센서 제어에 대해서 살펴보겠습니다.


아두이노를 이용한 프로젝트를 진행할 때 가장 많이 쓰이는 기능이 거리감지 기능이며 이 기능을 수핼 할 수 있는 센서가 초음파센서입니다.


오늘은 초음파센서에 대해서 함께 살펴보고 아두이노 코딩 외에 Mblock을 이용한 코딩도 해보겠습니다.


오늘의 목차는 다음과 같습니다.


 1. 초음파센서란?


2. 초음파센서 아두이노UNO 연결하기


3. 아두이노 스케치로 코딩하기


4. 엠블럭으로 코딩하기



1. 초음파센서란?



초음파센서는 말 그대로 음파를 활용하는 센서입니다.


제품사양

  HC-SR04 초음파 센서모듈

♦ 전원입력: 5V DC

♦ 전류: 2mA 이하

♦ 레벨출력: H(5V), L(0V)

♦ 유도각도: 15도 이하

♦ 감지범위: 2cm ~ 450cm

♦ 정밀도: 0.3cm 이하

♦ 배선

VCC(5V)

Trig

Echo

GND


 ▶ 초음파를 이용한 거리 측정 원리

초음파를 이용한 거리 측정원리는 발사된 초음파가 물체에 맞고 반사되어 되돌아 오게 되는데 이때 걸리는 시간을 측정하여 거리로 환산하게 된다.

소리(=초음파)의 속도는 340 m/s 이므로 170 m 앞에 있는 물체에 의해 반사되어 돌아오는데 걸리는 시간은 1초가 된다. (170 m *2 = 340 m) 


질문) 그럼 1m를 초음파가 진행하는데 걸리는 시간은?

답) 초음파가 340m의 물체에 부딛혀 되돌아 오는데 까지 걸리는 시간이 2초 이므로 1m 앞의 물체에 맞고 되돌아 오는데는 5.88mS가 소요된다. 

(약 5.8mS (=5800uS)는 아두이노 프로그램 제작시 매우 중요한 값이 된다)


위의 표에 내용은 다른 블로거분이 적어주신 초음파센서의 원리입니다.


인터넷에서 본 자료 중 가장 원리를 잘 풀어 설명하신것 같아 퍼왔습니다.


다음으로 초음파 센서의 동작원리에 대해서 살펴보겠습니다.


HC-SR04Users_Manual.pdf

HCSR04.pdf


데이터시트를 살펴보면 위 그림과 같은 타이밍도를 볼 수 있습니다.


이 펄스의 움직임과 타이밍으로 초음파센서의 원리를 알아낼 수 있습니다. 먼저 트리거(Trig)핀에 10us동안 신호를 입력합니다.


그러면 트리거입력을 받은 초음파센서 내부에서 8회에 거친 40kHz의 주파수를 발생시킵니다.


이후에 초음파가 벽에 부딪혀 돌아와 에코(echo)핀에 입력되는 시간을 측정하여 거리를 알아 낼 수 있습니다.



2. 초음파센서 아두이노UNO 연결하기




연결은 위 그림과 같습니다. 먼저 Vcc는 아두이노 5v에 연결하고, GND는 GND에 연결합니다.


모두 아시겠지만 Vcc는 " + ", GND는 " - "를 의미합니다.


그리고 트리거핀은 아두이노 디지털 8번, 에코핀은 아두이노 디지털 9번에 연결합니다.


여기서 트리거핀은 신호를 발생하기 위해 10us의 펄스를 발생시켜야 하기 때문에 OUTPUT으로 설정하고,


에코핀은 반사되어 오는 음파신호를 받아야 하기 때문에 INPUT으로 설정합니다.



3. 아두이노 스케치 코딩하기


아두이노 스케치 코드입니다.



위 프로그램을 실행한 결과영상입니다.


확실한 결과를 보여드리기 위해 자를 바닥에 설치하고 최대한 넓고 평평한 면(책)을 벽으로 사용했습니다.


4. 엠블럭으로 코딩하기



엠블럭으로 코딩한 모습입니다. 블럭코딩답게 직관적이고 프로그램이 작을수록 눈에 잘 들어오는 모습입니다.


엠블럭의 가장 큰 특징이자 장점은 여러 사용자들이 아두이노 소스코드를 블록으로 구현해서 배포하고 있다는 것입니다.


위에 사용한 초음파센서 블록 역시 아두이노UNO에서 바로 사용할 수 있도록 유저들이 만들어놓은 블록입니다.


그렇기 때문에 위의 아두이노 스케치 때와는 다르게 따로 cm단위로 환산하기 위한 코딩이 필요없습니다. 이미 블록에 모두 구현이 되어 있기 때문입니다.



다음 동영상은 엠블럭으로 코딩한 결과영상 입니다. 마찬가지로 높은 정확도의 거리를 출력하고 있습니다.


앞서 말씀 드렸지만 아두이노를 활용한 프로젝트를 진행 할 때 초음파센서는 가장 많이 사용 되는 센서중에 하나 입니다. 때문에 초음파센서에 대한 원리및 사용법 파악은 아두이노를 다루는 유저라면 필수라고 생각합니다. 이 센서 하나만으로 수십가지의 프로젝트가 가능합니다.