교육
교육 목록
- SPI와 I2C를 이용한 관성센서 제어
- SPI를 이용한 관성센서 제어
- I2C를 이용한 관성센서 제어
- 라이브러리를 이용한 관성센서 제어
- OLED 디스플레이를 이용한 시계 만들기
- OLED 디스플레이를 이용한 움직이는 이미지 만들기
- 기압센서를 이용한 기압 및 온도 측정
- 적외선센서를 이용한 거리측정
- 초음파센서를 이용한 거리측정
- 적외선센서와 초음파센서를 동시이용한 거리측정
- 장애물 회피 로봇
- 원격제어 로봇 - BT 이용
- 원격제어 로봇 - SBUS 이용
- 밸런싱 로봇
초음파센서를 이용한 거리측정
2018-09-21초음파센서를 이용한 거리측정
초음파 센서를 이용하여 거리를 측정하는 원리는 간단하다. 박쥐가 동굴에서 빛 없이도 장애물을 파악하고 피해가거나, 번개가 치고 1초 뒤 천둥소리가 들렸다면 번개가 친 곳과의 거리가 340m인 것을 파악하는 원리와 비슷하다고 생각하면 된다. 
초음파의 속도는 340m/s로, 일반적인 소리의 속도와 같다. 초음파를 발생해 음파 속도로 원거리의 물체에 반사되어 돌아오는 초음파의 시간을 측정하는 것이다. 이 측정된 시간을 절반으로 나눈 시간과 음파의 속도로 거리를 구할 수 있다. 초음파가 발생되어 대상 물체에 부딪히게 되면 반사되어 돌아오게 된다. 이의 시간차를 계산하면 거리를 계산할 수 있다. 간단히 초음파를 생성해서 일정 속도로 발사한 뒤에, 발사된 초음파가 특정 물체에 부딪혀서 다시 발사 위치까지 되돌아온 시간을 측정하면 초음파 센서와 물체 간의 거리를 측정할 수 있다. 
초음파 센서의 송신부(Trig)에서 일정한 시간의 간격을 둔 짧은, 초음파 펄스를 방사하고, 대상물에 부딪혀 돌아온 에코 신호를 수신부(Echo)에서 받아 이에 대한 시간차를 기반으로 거리를 산출한다.  
아두이노에서 Trig핀으로 HIGH를 입력하면 초음파 모듈에서 40KHZ 음파를 발사합니다. 이때부터 Echo핀은 HIGH 상태가 되고 음파가 되돌아와 수신되면 Echo핀이 다시 Low상태가 됩니다. 이 간격에서 거리를 구하고 왕복이므로 다시 2로 나누면 된다. 
 
초음파 센서 | HC-SR04
 
HC-SR04는 초음파를 이용해 거리를 측정할 수 있는 센서이다. 초음파는 귀에 들리지 않을 정도의 높은 주파수(약 200MHz이상)의 소리를 말하며, 초당 340m의 속도를 갖는다. 이러한 초음파의 속도를 바탕으로 시간관련 함수를 응용하면 초음파를 활용하여 거리나 수위, 적설 등을 측정할 수 있다. 초음파 거리센서의 구조는 생각보다 간단하다.
초음파 센서를 보면 스피커 같은 것이 2개가 달려있는데 한 쪽은 초음파를 발생시키고 다른 한쪽은 물체에 반사되는 초음파를 감지하는 역할을 한다. 즉, 초음파 발생시간과 물체에 부딪혀 반사되어 오는 간의 차를 이용하여 거리를 측정하게 되는 것이다
 
총 4개의 핀으로 구성되어 있으며 양끝의 VCC와 GND를 통해 전원(5V)을 입력받고, Trig핀을 통해 신호를 입력 받으면 초음파를 발신, 초음파가 다시 수신되면 Echo핀을 통해 신호를 출력한다. 센서는 5V에서 작동하며 약 15mA의 전류를 사용한다. 측정 범위는 최소 2cm에서 4m이지만 주변 환경에 의해 오차가 발생할 수 있다. 적외선과 초음파 센서는 각각 빛과 소리를 보낸다. 
 
 동작전압 |
DC 5V |
 동작전류 |
15mA |
 동작주파수 |
40HZ |
 발생주파수 |
40kHZ |
 측정 거리 |
2 cm ~ 400 cm   |
 정밀도 |
0.3cm |
 측정 각도 |
15도  |
 크기 |
45x20x15mm  |
HC-SR04의 사양 
 
HC-SR04의 핀 구성은 VCC, GND, 초음파 송신이 가능한 Trig, 초음파 수신이 가능한 Echo로 이뤄져 있다. 
PulseIn이 실행되기 전, 이미 센서의 상태가 원하는 상태인 경우, 프로그램 진행 상태는 센서의 상태가 반대의 상태가 되고, 다시 원하는 상태로 돌아가기 전까지 멈추게 됩니다. 쉽게 말해, PulseIn(echo, HIGH) 라는 명령어가 실행되기 전에 이미 echo에 해당하는 부분이 HIGH인 경우 그 센서의 상태가 LOW가 되고, 다시 HIGH가 될 때까지 프로그램이 기다린다는 이야기입니다. LOW가 되었다가 HIGH가 되면 시간 카운팅이 시작됩니다. 
 
HC-SR04와 아두이노 연결 회로도
 
 
 
 
소개되는 예제들은 아두이노 우노 기반으로 회로도와 프로그램이 설계되었으며, 라두이노를 이용해서 동일한 예제를 구현할 수 있도록 라두이노용 회로도와 프로그램을 추가한다. 라두이노용 회로도와 프로그램은 다음과 같으며 본 예제는 동일한 프로그램을 수정 없이 사용한다.
 
 
스케치코드