청소년 IT 메이커 교육 3차

 

청소년 IT 메이커 교육 3차

한성대

작성자: 이상훈




이번 수업의 목차입니다. 
초음파 센서와 조도 센서을 사용해보도록 하겠습니다.
(2차보다는 코드가 어려울 수 있습니다. 잘 따라와 주세요.)



먼저 초음파 센서입니다.


초음파 센서의 기본 원리부터 알아보죠.




초음파 센서의 활용도와 핀 모형입니다.
중요한 것은 핀이 디지털 출력핀과 입력핀으로 나뉘어 있다는 건데요.
아래 그림을 통해 이해해보도록 하죠.



초음파 센서는 초음파를 내보내고 장애물에 도착하여
초음파가 반사되어 돌아오면 그 시간을 계산하여 거리를 계산할 수 있는 센서입니다.

여기서 Trig 핀은 Trigger의 줄임말인데요. 우리말로는 방아쇠, 촉발제를 의미합니다.
달리기 시합을 할 때 쏘는 총을 생각하시면 의미를 쉽게 이해하실 수 있습니다.
초음파 센서에서는 초음파를 발생시킨다는 의미를 갖겠죠?

Echo 핀에서 Echo는 우리말로 메아리를 의미합니다.
산에서 소리를 내면 메아리가 울리는 경우가 종종 있죠?
소리가 어떤 장애물에 부딪혀서 반사되어 다시 들리는 현상을 의미합니다.
당연히 초음파 센서에서는 초음파가 반사되어 돌아온다는 의미를 가질 것입니다.

이 점을 이해한다면 당연히 Trig 핀은 디지털 출력, 
Echo 핀은 디지털 입력핀이라는 것을 아실 수 있습니다.



그럼 이제 아두이노 보드와 초음파 센서를 연결한 후 시리얼 통신을 해보겠습니다.




이전에 디지털과 아날로그, 핀을 꽂는 방법을 충분히 공부하셨다면 
오른쪽 표만을 보고도 핀을 꽂을 수 있을 것입니다.
(fritzing 그림에 의존하지말고 핀 번호만 보고 핀을 알맞게 연결할 수 있어야함)


이제 코드를 입력하고 분석해봅시다.



앞서 배운 코드를 잘 숙지했다면 큰 무리없이 이해할 수 있습니다.
주석과 아래 코드 분석을 제외하고 여러분이 이해하기 힘든 코드만 분석해보겠습니다.
제 생각에는 아마 distance를 정의한 코드가 이해하기 어렵지 않나 싶습니다.
그래서 이 코드를 분석해보겠습니다. 
distance = ((float)(340*duration)/1000) / 2;

우선 다른 것은 제쳐두고 (float)부터 말씀드리겠습니다.
우리는 이것을 "형변환"이라고 부릅니다. 제가 앞서 자료형에 대한 이야기를 했었죠? 
정수형, 실수형, 문자형 등이 있다는 것을 기억하실 겁니다. (모르면 2차 보고 와)
우리는 위에서 변수 duration과 distance를 long으로 선언했습니다.
이는 정수형으로 소수 계산이 불가합니다. 
그래서 자료형을 변환시켜 실수형으로 만들어준 것이죠. 

이후 ((340*duration) /1000) / 2는 
음파속도(약 340 m/s = 340 mm/ms)를 duration에 곱한 후 
pulseIn()함수는 마이크로 세크단위로 시간을 계산함으로 1000을 나눠주고
초음파가 물체에 갔다가 돌아오는 시간이 duration이므로 2로 나누어 
초음파 센서와 장애물 사이의 거리를 구한 것입니다.
(이해되니...? ㅋㅋㅋㅋ 사실 pulseIn()함수에 대한 얘기를 해야하는데 
너희가 어차피 이해를 못할 거 같아서 빼다보니 더 어려워 진거 같기도하고...)

여튼 그냥 음파속도를 이용해 굉장히 논리적으로 구했다고 생각하면 돼 ㅋㅋㅋ
이해가 안되면 대충 생각하고 다음으로 넘어가자.



다음은 앞서배운 네오픽셀 LED와 초음파 센서를 같이 이용해보겠습니다.



그림과 같이 핀을 잘 연결했다면 이제 코드를 넣고 실행해보겠습니다.




2차시에 했던 코드분석과 위의 코드분석을 참고한다면 충분히 이해할 수 있을거야.
그럼 실행시켜보고 다음으로 넘어가자.




다음은 조도센서입니다.


조도센서가 무엇인지 알아봅시다.




조도센서는 주변 빛의 밝기를 감지하는 센서입니다.
디지털 입력핀이 있으나 아날로그 핀만 이용할 것이고, 당연히 입력핀이겠죠?
아날로그 입력핀은 아두이노 우측하단의 A0~A5번핀 위치에 연결해야 합니다.




그럼 이제 아두이노 보드와 조도 센서를 연결한 후 시리얼 통신을 해보겠습니다.


조도센서에 그림과 같이 연결해줬다면 다음은 코드를 적어볼 차례입니다.



역시 코드가 굉장히 간단합니다. 



빠르게 네오픽셀 LED와 조도센서를 혼합하여 사용해봅시다.





마찬가지로, 그림과 같이 핀에 잘 연결하였다면 코드를 넣어줍시다.


앞에서 코드분석을 열심히 본 학생이라면 이 정도 코드는 문제없을 겁니다.
(이 정도 코드가 이해가 안되면 1차와 2차를 다시 봐주시기 바랍니다.)






이것으로 청소년 IT 메이커 교육 3차가 마무리 되었습니다.

오늘도 어쩌다 보니 코드 분석이 조금 길어진 감이 있습니다. (초음파 센서 파트)
사실 제가 코드 분석을 한 부분이 여러분이 아셔야 하는 파트는 아니라고 생각합니다.
혹시나 이해를 원하는 학생이 있을 수 있어 적은 것이니 
크게 부담갖지 말고 편하게 봐주시면 좋겠습니다.

아마 코드 분석이 굉장히 약한 학생들이 많이 있을 거라고 생각합니다.
교사마다 교육방식도 다를뿐더러 코드를 적으라고 해서 
생각없이 받아 적으면 당연히 실력은 향상되지 않습니다. 
그래서 자기 스스로 "이 코드가 의미하는 것은 무엇인가?"를 이해하기 위해 
노력하는 시간이 필요합니다.
(사실 이렇게 적지만 나도 노력이 부족함... ㅋㅋㅋ)

수업이 두번밖에 남지 않았으니 조금만 열심히 해봅시다.
홧팅!!

댓글

이 블로그의 인기 게시물

청소년 IT 메이커 교육 2차

청소년 IT 메이커 교육 특별편 (퀴즈 풀이) ※ 잠깐! 퀴즈 안 푼 사람 출입 금지!!!! ※

청소년 IT 메이커 교육 4차