스크래치 아두이노 초음파 센서

초음파 센서

박쥐는 훌륭한 사냥꾼입니다. 어두운 밤에도 먹이를 찾아서 멋지게 사냥을 합니다. 그런데 박쥐는 시력이 안 좋아서 앞을 잘 보지 못합니다. 어떻게 앞이 잘 보이지 않는데 어두운 밤에 사냥을 할 수 있을까요? 비결은 바로 초음파입니다.

 

박쥐는 깜깜한 밤에 초음파를 이용해서 물체의 크기, 위치를 알아냅니다. 박쥐가 초음파를 보내면 물체에 부딪쳐 다시 되돌아옵니다. 이때 박쥐와 물체가 떨어진 거리에 따라서 돌아오는 시간이 달라집니다. 물체가 멀리 있으면 천천히 돌아오고 가까이 있으면 빨리 돌아옵니다.

 

그림 1-5 초음파로 사냥감을 찾는 박쥐

 

초음파 센서는 초음파를 이용하여 다른 물체와의 거리를 재는 장치입니다. 한 쪽에서 초음파를 보내면 다른 쪽에서 되돌아오는 초음파를 읽습니다. 주차를 할 때 자동차가 다른 자동차나 벽으로 가까이 움직이면 경고음을 내는 장치를 본 적이 있나요?

 

이 장치도 초음파센서를 이용한 것입니다. 그리고 임신을 했을 때, 배 속에 아기가 잘 있는지 검사하는 장치도 초음파 센서를 이용합니다. 이렇게 초음파 센서는 생활 속에서 다양하게 사용됩니다. 초음파 센서는 전자장치에서 초음파를 보내고 초음파가 되돌아오는 시간을 계산하여 물체와의 거리를 알 수 있습니다.

 

초음파 센서에 TX(또는 T), RX(또는 R)라고 쓰여 있는 것을 볼 수 있습니다. TX는 트랜스미트(Transmit: 초음파를 보내다)를, RX는 리시브(Receive: 초음파를 받다)를 줄여서 표현한 것입니다. 마치 로봇의 눈처럼 생겼죠?

 

TX라고 쓰여 있는 곳에서 초음파를 보냅니다. 그리고 되돌아오는 초음파를 RX라고 쓰여 있는 곳에서 받아서 거리를 계산하는 것입니다. 어때요? 참 쉽죠?

 

그림 1-6 초음파 센서의 원리

 

초음파 센서에는 4개의 핀이 있습니다. VCC, Trig, Echo, GND가 바로 그것이죠.

  • VCC는 볼티지 오브 커먼 콜렉터(Voltage of Common Collector)란 뜻인데 5V 전원과 연결합니다. V가 있으니 5V 전원과 연결한다고 기억하면 좋습니다. 플러스 극(+극)이라고 생각하면 됩니다.

  • Trig는 트리거(Trigger)란 뜻으로, 아두이노 디지털 핀과 연결합니다. 여기로 전압을 주면 TX에서 초음파를 보냅니다.

  • Echo는 에코(Echo)로 메아리라는 뜻입니다. 우리가 산에서 소리를 내면 소리가 다시 우리에게 되돌아오는 것처럼 TX에서 보낸 초음파가 RX로 되돌아옵니다.

  • GND는 그라운드(Gound)로 1편과 2편에서 배운 내용입니다. 아두이노의 그라운드 핀(GND)과 연결합니다. GND는 마이너스 극(–극)이라고 생각하면 됩니다.초음파 센서를 아두이노와 연결하기 위해서 점퍼케이블을 사용합니다. 은색 핀 부분이 나와 있는 것을 수(수컷), 구멍이 있는 것을 암(암컷)이라고 합니다.

 

은색 핀 부분이 양쪽에 나와 있으면 수-수 점퍼 케이블이라고 합니다. 한쪽은 전선 핀이 나와 있고 반대쪽에는 구멍이 있으면 암-수 점퍼 케이블이라고 합니다. 초음파 센서처럼 핀 부분이 나와 있으면 암-수 점퍼 케이블을 이용해서 연결합니다.

 

그림 1-7 암-수 점퍼케이블

 

초음파 센서와 아두이노를 연결하여 물체와의 거리를 알아보는 프로그램을 만들어 보겠습니다. 먼저 회로를 만들겠습니다. 초음파 센서의 VCC는 아두이노의 5V와 연결합니다. 초음파 센서의 GND는 아두이노의 GND와 연결합니다. Trig는 아두이노 디지털 13번 핀과 연결합니다. Echo는 아두이노 디지털 12번 핀과 연결합니다.

그림 1-8 초음파 센서와 아두이노 연결

 

브레드보드를 사용하면 더욱 쉽게 회로를 만들 수 있습니다. 브레드보드는 전자부품을 쉽게 연결하기 위해서 만든 도구입니다. 원래는 납을 뜨겁게 녹여서 전자부품을 연결해야 합니다. 납땜을 할 때는 인두기라는 도구를 사용해야 합니다. 인두기가 뜨거워지면 납을 녹입니다. 인두기는 위험하기도 하고 한 번 납땜한 부품은 다른 곳에 다시 사용하기 어렵습니다.

 

하지만 브레드보드를 사용하면 힘들게 납땜을 하지 않아도 멋진 회로를 만들 수 있습니다. 우리가 사용할 브레드보드를 관찰해 봅시다. 가로 방향으로 같은 줄에 있는 5개의 구멍은 서로 연결되어 있습니다. 뒷면을 보면 전기가 잘 통하는 금속판을 볼 수 있습니다.

 

그림 1-9 브레드보드

 

그리고 코딩을 하겠습니다. 크게 3가지 단계로 아두이노와 연결하여 코딩을 합니다.

 

 

우선 <보드>를 클릭하고 를 선택합니다.

그림 1-10 보드 선택

 

이렇게 Arduino Uno를 선택해야 아두이노에 명령을 잘 내릴 수 있습니다. 스크래치는 비슷한 블록끼리 모아서 색깔로 구분했다는 것 기억나죠? 아두이노와 관련된 블록은 로보트 블록 모음에서 찾을 수 있습니다.

그림 1-11 로보트 블록 종류

 

오른쪽 아래의 빨간색 버튼은 아두이노 보드가 아직 컴퓨터에 연결되지 않았다는 뜻입니다. 아두이노 보드가 연결되면 빨간색 버튼이 초록색으로 바뀝니다.

 

블록의 색깔을 잘 보면서 코딩을 해봅시다. 초음파 센서 블록은 로보트 블록 모음에서 찾을 수 있습니다. Trig를 디지털 13번 핀과, Echo는 12번 핀과 연결했으므로 그림 1-12와 같이 코딩을 합니다.

그림 1-12 초음파 센서 읽기

 

그리고 코딩한 프로그램을 아두이노에게 보내줍니다. 이것을 업로딩이라고 합니다. 업로딩이 될 때 스크래치로 만든 프로그램이 펌마타 펌웨어(Firmata firmware)를 통해 아두이노가 이해할 수 있는 프로그램으로 바뀌는 겁니다.

그림 1-13 시리얼포트 연결하기

 

<연결>-<시리얼포트>를 순서대로 클릭합니다. 그러면 연결된 아두이노를 확인할 수 있습니다. COM 뒤에 숫자가 나오는데 아두이노를 컴퓨터와 연결했을 때 나오는 COM를 선택하면 됩니다. 이 책에서는 COM7를 선택했는데 컴퓨터마다 COM 번호는 다를 수 있습니다.

 

이렇게 연결이 되면 스크래치 프로그램을 아두이노에 업로딩할 수 있습니다. 연결이 잘 되면 프로그램 창 위에 <시리얼포트 연결됨>이라고 표시를 해줍니다.

 

<연결>-<펌웨어 업그레이드>를 순서대로 클릭합니다.

그림 1-14 펌웨어 업그레이드

 

그러면 프로그램 업로딩이 시작됩니다.

 

 

그리고 초록색 깃발을 누르면 그림과 같이 곰돌이가 물체와의 거리를 말해줍니다.

그림 1-15 초음파 센서 값 읽기

 

초음파 센서에 손을 가까이 가져갈수록 숫자는 점점 작아집니다. 어때요? 참 쉽죠? 그런데 초음파 센서 TX(또는 T)의 오른쪽에 손을 갖다 대도 숫자가 작아지는 것을 볼 수 있습니다. 초음파는 레이저처럼 앞으로 쭉 나가지 않습니다. 초음파는 마치 물결이 퍼지는 것처럼 나갑니다. 그래서 초음파 센서의 TX 옆에 손을 갖다 대도 물체를 감지할 수 있습니다.

 

그림 1-16 초음파 센서의 범위

그런데 업로딩이 잘 안 되는 경우가 있습니다. 스크래치와 아두이노가 서로 통신을 잘 못 하는 것이죠. 연결이 잘 안 되면 프로그램 창 위에 <시리얼포트 연결됨>이라고 표시가 되지 않습니다. 이럴 때는 프로그램을 끄고 USB 케이블을 컴퓨터에서 뺍니다. 그리고 프로그램을 다시 켜고 USB 케이블을 연결한 후 앞에 나왔던 내용을 그대로 다시 해주면 됩니다.

그래도 연결이 되지 않으면 아두이노 드라이버를 다시 설치해야 합니다. 드라이버는 컴퓨터와 연결된 장치를 사용할 수 있도록 해주는 프로그램입니다. 예를 들면 마우스, 키보드, 프린터 등이 있습니다.

 

아두이노 드라이버가 설치되지 않으면 컴퓨터로 아두이노에게 명령을 내릴 수가 없습니다. 그림 1-17과 같이 <연결>-<아두이노 드라이버 설치>를 순서대로 클릭합니다.

그림 1-17 아두이노 드라이버 설치

 

아니면 아두이노 사이트에서 직접 프로그램을 다운받아도 됩니다.
❶ 네이버나 구글 등 웹 페이지의 검색창에 arduino.cc라고 쓰고 엔터키를 누릅니다.

❷ 검색창에서 Arduino.cc를 클릭합니다.

❸ Arduino 홈 페이지 메뉴 바에서 Software라는 글자를 클릭하고 프로그램을 다운받습니다.
❹ Windows installer를 클릭하면 바로 설치됩니다.

 

mBlock 프로그램을 설치하는 것처럼 실행, 동의(Accept), 다음(Next), OK, 설치(Install)라는 단어가 나오는 버튼이 있으면 계속 클릭합니다. 프로그램이 다 설치되면 바탕화면에 아두이노 아이콘 이 만들어집니다.

 

초음파 센서를 이용해서 곰돌이를 움직여 보겠습니다. 우선 곰돌이가 오른쪽을 보게 합니다. 다시 한 번 복습하면, 스크래치에서 삼각형 표시는 선택할 수 있는 것이 여러 개 있다는 뜻입니다. 그림 1-19처럼 삼각형 표시를 눌러서 오른쪽을 선택합니다.

그림 1-19 오른쪽 보기

 

[거리] 변수를 만들어서 초음파 센서에서 읽은 값을 저장합니다.

그림 1-20 변수 만들기
그림 1-21 거리 말하기

 

그림 1-22처럼 코딩하면 [거리] 변숫값이 30보다 작을 때 –10만큼 움직여서 왼쪽으로 움직이게 됩니다. 30보다 작지 않으면 10만큼 움직여서 오른쪽으로 움직이게 됩니다.

그림 1-22 거리 값으로 움직이기
그림 1-23 움직이는 곰돌이

 

이 초음파 센서를 이용하여 앞에 있는 장애물을 피하는 자율 주행 자동차를 만들 수 있습니다. 초음파 센서를 어떻게 사용하는지 잘 익혀서 자율 주행 자동차를 만들기 위한 기초 실력을 탄탄하게 키우기 바랍니다.

댓글 (0)

Designed by JB FACTORY