부품설명

자주 사용하는 부품들의 사용법에 대하여 알아봅니다.

서보모터 제어하기

2014-08-05 14:34:24

개요



출처 : 각종 모터들 - adafruit

무언가 움직이는 사물을 만들어 보고 싶을때 
바로 '모터'를 이용해 보세요 !
아두이노는 다양한 응용 분야에 맞춰서 여러가지 모터를 사용할 수 있습니다.
모터의 종류에는 일반적으로 많이 쓰이는 DC 모터(직류 모터), 0-180도 혹은 360 까지 각도제어가 가능한 서보 모터,
일정한 각도와 힘으로 움직이는 스텝 모터 등이 있으며 이밖에도 토크와 구동전압, 작동 방식에 따라 다양한 모터가 있습니다.

 


 
먼저 서보 모터에 대해 알아보기 위해
아두이노와 서보모터를 이용한 프로젝트를 살펴보겠습니다.


출처 : 거미로봇 - letsmakerobots -se.gu.a.ro

서보모터의 특징인 0도에서 180도에 각도를 정밀하게 제어할수 있는 장점을 이용하여
로보틱스 분야에서 물체의 관절부분에 많이 사용되고 있습니다.

출처 : 집게 관절 로봇 - pidelectronics
 
관절 뿐만 아니라 기어 파츠와 혼합하여 물체를 집을 수 있는 로봇 손을 만들 수도 있습니다.

이처럼 다양한 프로젝트에 활용되고 있는 서보모터의 기본적인 활용법을 익히고,
자신만의 움직이는 사물을 만들어 봅시다.


 

 

미리보기 동영상


 

 

 

부품목록

 

 

 

NO 부품명 수량 상세설명
1 오렌지 보드 1 아두이노 호환보드
2 서모 모터 1 Tower Pro - Micro Servo 9g(SG-90)
3 점퍼케이블 3 점퍼케이블

 

부품명 오렌지 보드 서보 모터 점퍼 케이블
파 트 x1 X1 X3

 

 

 

하드웨어 Making

 

회로도

브레드보드 레이아웃
 


 

소프트웨어 Coding

이 코드를 아두이노에 업로드 합니다.

 

// Sweep
// by BARRAGAN <http://barraganstudio.com> 
// This example code is in the public domain.


#include <Servo.h> //서보 라이브러리를 불러옵니다.
 
Servo myservo;  // 서보를 제어할 서보 오브젝트를 만듭니다.
               
int pos = 0;     // 서보 위치를 저장할 변수를 선언합니다.

void setup() 
{ 
  myservo.attach(9);  // 핀 9의 서보를 서보 오브젝트에 연결합니다.
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // 0도에서 180도로 이동합니다.
  {                                  // 이동할때 각도는 1도씩 이동합니다. 
    myservo.write(pos);              // 'pos'변수의 위치로 서보를 이동시킵니다.
    delay(15);                       // 서보 명령 간에 20ms를 기다립니다.
  } 
  for(pos = 180; pos>=1; pos-=1)     // 180도에서 0도로 이동합니다.
  {                                
    myservo.write(pos);              // 서보를 반대방향으로 이동합니다.
    delay(15);                       // 서보 명령 간에 20ms를 기다립니다.
  } 
} 

 

소프트웨어 & 하드웨어 설명

1. 사전 설명


서보 모터는 일반적으로 지속적으로 회전하는 대신 어떤 위치로 이동하는 방식으로 작동 됩니다.
따라서 물리적인 이동을 정밀하게 제어하는 데 유용하며, 모터 드라이버가 내장되어 있어 연결과 제어가 쉽습니다.




서보 모터는 펄스 폭과 서보 각 사이의 관계를 지니며, 서보 출력 암은 펄스 폭이 증가 할때 그에 비례해서 이동합니다.

 

2.스케치 설명

void setup() 
{ 
  myservo.attach(9);  // 핀 9의 서보를 서보 오브젝트에 연결합니다.
} 


이 예제에서는 서보를 0도와 180도로 움직이는데 다음과 같이 서모 모터의 이동 범위를 설정할수 있습니다.

 

 

void setup() 
{ 
  myservo.attach(9,1000,2000);  // 핀 9의 서보를 서보 오브젝트에 연결하고, 
                                   최소값(1000us)부터 최대값(2000us)까지 이동합니다.
} 


서보 모터는 각도가 아닌 시간(마이크로초)로 측정된 펄스에 반응합니다.
따라서 핀 번호 뒤에 오는 인수는 0도나 180도가 요청될 때 사용할 시간을 알려줍니다.

 

 

 

 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

서보모터, 아두이노, 오렌지보드