본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 조이스틱 모듈을 사용해 마이크로 서보모터 2개를 제어해 보기

by 오마이엔지니어 2017. 10. 31.
반응형

Arduino Uno 로 조이스틱 모듈(Joystick Module)을 사용해 마이크로 서보모터 2개(MG90S & SG90)를

제어해 보는 프로젝트 입니다 - Robot Arm 등의 프로젝트의 기본 원리에 대해서 알아볼 수 있습니다



서보모터(Servo Motor)는 모터와 제어구동보드(적당한 제어 회로와 알고리즘)를 포함하는 것으로
모터 자체만 가지고 서보모터라고 부르지 않습니다
서보모터의 개념은 모터와 구동 시스템 까지 포함하는 것으로 흔히 볼수 있는 공작기계, CCTV 카메라, 캠코더, 프린터 등에서

사용되는 모터와 같이 명령에 따라 정확한 위치와 속도를 제어할수 있는 모터를 서보모터라고 부릅니다

서보
 모터는 일반 모터와 달리 회전 반경이 정해져 있습니다종류에 따라 다르지만 일반적으로 약 0~270도 범위의 회전각을 가집니다
서보모터의 회전 각도는 아래 그림과 같이 PWM (펄스폭변조방식으로 제어합니다


다양한 종류의 서보 모터가 있지만 SG90 마이크로 서보 모터와 MG90S 메탈기어 서보모터를 사용해 보겠습니다
SG90 마이크로 서보 모터 Servo Motor 는 9g 급으로 동작 전압이 4.2V ~ 6V 로 아두이노로 테스트 하기 적합 합니다
회전각도 는 180도 이며 동작 속도는 0.1 s/60 degree 입니다
  (MG90S 서보 모터는 메탈소재로 SG90과 회전각도 등 사양은 거의 동일합니다)



사용된 부품

Arduino Uno R3 (Italy)

브래드 보드
조이스틱 모듈

SG90 마이크로 서보모터
MG90S 메탈기어 서보모터

점퍼케이블

 
구성 배선도 


사용된 예제소스  

example code.txt


주의사항
MG90S 메탈기어 서보모터를 좌우 회전용으로 밑에 배치하고 SG90 서보모터를 상하 회전용으로 위에 배치하였습니다

조이스틱 모듈의 VRX(좌우 제어), VRY(상하 제어) 핀을 사용해서 제어합니다
초음파센서는 이해를 돕기위해서 장착하였습니다 (초음파센서의 기능은 사용하지 않습니다)

배선시 서보 모터의 핀맵에 주의 해야 합니다

빨간선이 VCC, 황색선이 GND, 노란선이 데이터 출력핀 입니다

예제소스를 보면 Servo.h 라이브러리를 불러오는 내용이 있습니다
Servo.h 는 아두이노 IDE를 설치하면 기본적으로 라이브러리가 포함 되어 있습니다

이점 숙지하고 넘어 가도록 하겠습니다

만약 컴퓨터나 노트북의 전압이 부족해 서보모터가 제대로 움직이질 않는다면,
아두이노 우노에 USB로 스케치 업로드 후 전압을 아답터(7~12V)로 변경후 테스트 해 보면 되겠습니다

(서보모터의 제어 최대각도는 180도 라는것을 확인하고 넘어갑시다)


첨부된 예제소스를 확인해 보면 void loop(){ 부분에서 첫번째 서보모터의 (servoVal, 0, 1023, 0, 180); 값과

두번째 서보모터의 servoVal = map(servoVal, 0, 1023, 70, 180); 값이 틀린걸 확인할수 있습니다

70 을 원하는대로 회전각도 수정해 보면서 테스트 해 봅시다


프로젝트 동영상


동영상을 확인하면 알수 있듯이 조이스틱 모듈을 좌우로 움직이면 밑의 MG90S 메탈기어 서보모터는 좌우로 회전,

조이스틱 모듈을 상하로 움직이면 위쪽의 SG90 마이크로 서보모터는 상하로 회전합니다


아주 미세하고 정밀하게 제어가 가능한 것은 아니지만 잘만 활용하면 Robot Arm 등을 만드는데 응용 가능합니다



example code.txt
0.0MB
반응형

댓글