아래 사진은 드론 브러러쉬리스 모터 동작하기 위한 재료들이다.         

<브러쉬리스 모터를 돌리기 위한 재료들 사진>

------------------------------------

EMAX M2204 CW * 2, CWW * 2 

PDB DUAL BEC * 1

ESC 4 * 4

EX-C40(14.8V 1500mA)

아두이노 우노

------------------------------------


이 글을 쓰기까지 좌충우돌 한걸 고백한다. 나는 그냥 되겠지 하면서 인터넷에 있는걸 그냥 따라하면 될 줄 알았다. 다른 블로거게시판을 보면 브러쉬리스 모터를 돌리는데 까지 꽤 많은 시간걸린다는 글들을 봤다. 나는 많이는 아니여도 조금 걸렸다. 시간이 걸린 이유는 하나! 정확하게 알고 하면 괜찮은데 대충 알고 시작했기 때문이다!!!!!!!!!!!!!!!!!!!!!!!


드론을 보면 항상 모터에 변속기(ESC)가 달려 있다. 일반 코어리스 모터와는 다른 부분이다. 드론 모터를 동작 시킨다는 것을 정확하게 표현하면, '변속기를 제어하여 모터를 동작 시킨다.'라고 할 수 있다. 그래서 모터를 동작 시킬려면, 변속기 모터맞게 조정을 해야 한다. 그 후에 모터를 동작 하면 된다.


그럼 변속기 캘리브레이션(조정)을 해보자

1) 아두이노를 통하여 180 전송

2) 모터에 전원 연결

3) 소리가 나면 0 전송


정상적으로 될 경우아닐 경우를 아래의 동영상으로 확인 하자.

정상적이지 않을 경우

삐리삐리삐리 삐리 소리가 난다. 이 소리가 나면 정상적으로 캘리브레이션이 안된 경우다. 다시 해야 한다.


정상적인 경우

삐~~~ 삐 끝이다. 그리고 시리얼 모니터를 이용하여 숫자입력하면 그 숫자 만큼의 속도로 모터가 돈다.


이제 대략적으로 이렇게 하는 구나 큰그림을 기억하고 자세하게 해보자.

<소스코드 사진>


#include <Servo.h>


Servo esc_a;

int a = 0;


void setup() {

  Serial.begin(9600);

  esc_a.attach(6, 1000, 2000);

  esc_a.write(0);

}


void loop() {

  esc_a.write(a);


  Serial.print(a);

  Serial.println('\t');

}


void serialEvent()

{

  while (Serial.available()) {

    a = Serial.parseInt();

  }

}


위의 코드를 실행 시켜서 시리얼 모니터를 표시 한다.

<시리얼 모니터 사진>


현재 초기 값이 0이므로 0이 찍힌다. 그리고 하단 중간꼭 line ending없으로 체크해 준다. 그렇지 않으면 마지막에 10을 입력해도 0이 입력 되니 꼭 확인 한다. 그리고 배터리만 연결하지 않은 상태에서 아두이노 변속기를 연결 한다. 


캘리브레이션 하기

1)시리얼 모니터에서 180을 입력 하면 180 표시되는 것을 확인 한다.

2)모터에 전원을 연결 하자 마자 시리얼 모니터에 0을 입력 한다.

3)위의 동영상처럼 정상적으로 되었는지 아닌지 확인 한다.

4)정상적으로 됐을 경우 숫자를 입력 하면 모터가 돌고, 아닐 경우는 1번 부터 반복 한다.


간단해 보여도 처음 하는 사람한테는 역시나 하나하나가 어렵다. 나도 처음에 모터를 돌려야지만 생각했지만 생각해서 고생했지만, 아두이노, 변속기, 모터 사이의 관계를 알게 되니 그 다음 부터 쉽게 풀렸다. 그 처음 생각하니 바보 같다. 그냥 모터가 돌았다고 되는 줄 알았으니 말이다. 그때 모터는 돌았다. 돈거 뿐이지 제어가 되지 않았다. 모터도 고정안해서 사방으로 튕겨 책상에 기스가 났다.


이제 다음으로 가보자~

블로그 이미지

김코치 나미쵸

컴퓨터 코치 김코치

댓글을 달아 주세요