2. 빙글빙글 서보모터

by 이서희 | 2017-07-21 17:06
서보모터 아두이노

준비물

아두이노 우노 보드, 케이블, 점퍼선, 서보모터


빙글빙글 돌아가는 서보모터!

서보모터를 제어해보는 실습을 해봅시다. 마우스가 움직이는 방향대로 서보모터의 날개가 돌아갑니다.



준비하기

이번 실습을 위해서는 서보모터가 필요합니다.

이렇게 점퍼선이 연결된 서보모터와 부가적인 부품들로 구성이 되어있습니다.


저는 십자모양 날개를 꽂아보았습니다.



이제 본격적인 서보모터 제어하기를 시작해볼까요?


1. 우노 보드에 서보모터 연결하기

다음 회로도를 참고하여 우노보드에 연결해봅시다.




연결을 완료한 모습은 다음과 같습니다.




2. ScratchX 프로그래밍

ScratchX는 어린이들을 위한 코딩 교육용 언어로 개발되었기 때문에 쉽게 블록 쌓기를 하듯이 프로그래밍 할 수 있습니다. 언어를 한국어로 바꾸면 마치 한글로 된 프로그래밍 언어를 사용하는 것 같은 기분을 느낄 수 있습니다.

혹시 ScratchX를 시작하는 것이 어려우신 분들은 이전의 스토리를 먼저 읽어보시길 추천드립니다.


파이어폭스 ESR 창에서 scratchx.org 를 열어봅시다.

다음과 같은 새로운 프로젝트를 생성합니다.


현재 왼쪽의 커다란 박스는 하얀 배경외에 아무것도 있지 않은 상태입니다. 이 곳을 무대라고 부르며

여기에 사용자가 쉽게 동작할 수 있는 그림인 스프라이트들을 넣는다고 보시면 됩니다.



1) 무대에서 다음과 같은 코딩을 합니다.

저는 9번 핀에 서보모터를 연결하였으므로 핀을 9로 설정했습니다.



2) 스프라이트 생성하기

스프라이트는 저장소에서 이미 만들어져 있는 것을 사용할 수도 있고, 사용자가 새롭게 만들 수도 있습니다. 저는 이번에 방향을 제어할 화살표를 저장소에서 가져올 것입니다. 

왼쪽 아래 칸에 새로운 스프라이트 옆의 아이콘들 중에 첫번째 아이콘을 선택합니다.



Arrow1을 선택하고 확인을 누릅니다.

다음과 같이 무대에 스프라이트가 나타납니다.



위치를 정 가운데로 바꿔볼까요?

가운데 스크립트 창에 여러가지 동작들이 있습니다. 파란색 바 의 동작 탭을 열어봅시다.



다양한 동작들이 나타났습니다.  x: O y: O로 이동하기  버튼에서 x, y좌표를 모두 0으로 입력합니다.

그러면 화살표 스프라이트의 좌표가 (0 , 0)으로 이동하게 됩니다.


3) 스프라이트 코딩하기

이제 화살표 스프라이트를 클릭하고 다음과 같이 코딩합니다.

여러가지 블럭들은 모두 색깔로 나뉘어져 있습니다. 블럭의 색깔을 보고 그와 맞는 탭으로 가서 블럭을 가져오면 됩니다.

아래 사진의 경우는 '이벤트' , '제어' , '동작' 으로부터 가져온 블럭들임을 알 수 있겠죠?



마우스 포인터가 영어로 되어있다면 작은 화살표를 클릭해서 한글로 바꿔 줍니다.




여기까지 진행상황을 확인해보겠습니다.

무대 위의 초록 깃발을 클릭해봅시다.



이제 마우스가 움직이는 대로 화살표의 방향이 따라가는 것을 볼 수 있습니다.



이어서 다음과 같이 코딩을 합니다.

'연산' 탭에는 다양한 사칙 연산, 비교 연산, 논리 연산 들이 있습니다. 비교 ( □ < □ ) 블럭을 가져와서 

'만약 ~라면' 블럭의 빈칸에 넣어줍니다.



비교 연산자( < )의 왼쪽 칸에는 '방향'을 넣어줍니다. '방향'은 동작의 맨 밑으로 스크롤 하면 있습니다. 

비교 연산자( < )의 오른쪽 칸에는 '-90'도를 넣어줍니다.



이제 다시 동작 탭에서 ~도 방향 보기 블럭을 가져옵니다. 빈칸의 화살표를 클릭하면 방향들이 나타나는데, '-90'을 선택해줍니다.



이제 또 다시 '만약 ~라면' 블럭을 다음과 같이 추가합니다. 기존에 만들었던 '만약 ~라면' 블럭을 마우스 우클릭하면 복사 붙여넣기를 할 수 있습니다.



이제 '추가 블록' 탭으로 갑니다. '서보모터A 를 O도로 회전하기' 블록을 추가합니다.



'추가 블록'에서 이어서 'O를 O~O에서 O~O의 범위로 바꾸기' 블록을 추가하여 다음과 같은 값들을 넣어줍니다.



이 블록을 '서보모터A를 O도로 회전하기' 블록의 빈 칸에 넣어줍니다.

되도록 'O를 O~O에서 O~O의 범위로 바꾸기' 블록의 앞부분(사진의 map 글씨부분)을 클릭하여 빈칸으로 이동하면 쉽습니다.


마지막으로 0.1초 기다리기 블록을 추가합니다. 코딩은 끝났습니다.



테스트를 해봅시다. 이제 서보모터가 마우스가 움직이는 방향대로 움직입니다. 서보모터를 제어하기, 어렵지 않죠?



동영상 강의 참고하기


댓글 0

MADE BY