[실전] 아두이노 – 쿼드콥터 제작 #1

0

아이와의 오랜 약속인 쿼드콥터 제작을 시작했습니다.  주말에만 작업 할 예정이기 때문에 언제 끝나게 될 지 까마득합니다.

지난번에는 모터제어 대해서 아이와 간단한 테스트를 진행했습니다.  목표는 기존 제품을 사용하지 않고 아두이노로 직접 만들어서 다루는 것 입니다.  자이로 센서, GPS 그리고 카메라 등을 구상하고 있습니다.  특히 아이의 아이디어를 기반으로 초음파 센서를 이용해서 착륙을 부드럽게 자동으로 처리하고, 주변 장애물과 부디치지 않도록 하는 것을 고민 중 입니다.  (이날 자이로 센서에 대한 테스트도 병행했지만, 해당 포스트 다음기사에서 다루겠습니다.)

가장 먼저 시도한 것은 모터 드라이버 L9110S 입니다. 이 모터 드라이버는 다루기 쉬운 편이고 후진도 가능하지만, 일단 쿼드콥터에서 프로펠라가 반대로 돌 일은 없을 테고, 파워가 부족해서 실격처리 했습니다. RC-Car를 만들 때 사용하던 모터 드라이버(http://ryulib.tistory.com/361)도 마찬가지입니다. 더구나 L293D는 무겁기까지 합니다. 파워를 올릴 수 있을 까 해서 외부 전원을 사용하다가 드라이버를 결국 태워 먹기까지 하였습니다.

L9110S 모터 드라이버

L9110S 모터 드라이버

두 번째로 시도한 것은 달링턴 트랜지스터 TIP-120 입니다. 자세한 회로 연결은 (http://bildr.org/2011/03/high-power-control-with-arduino-and-tip120/) 링크를 참고하시기 바랍니다. 테스트한 방법들 중에서 가장 높은 파워로 모터를 제어 할 수 있었습니다. 쿼드콥터를 띄우는데 충분할 것 같습니다. 저항은 1K를 사용했습니다.

 [동영상 1] TIP-120 구동

마지막으로 시도한 것은 ULN2803 입니다. 자세한 회로 연결은 (http://delta75.tistory.com/537)을 참고하시기 바랍니다. 파워가 TIP-120보다는 약간 떨어지지만 충분해 보입니다. 특히, 하나의 칩으로 8개의 모터를 제어 할 수 있기 때문에 TIP-120보다는 공간 효율성면에서 편리합니다. 저항은 1K를 사용했습니다.

 [동영상 2] ULN2803 구동

소스 코드는 아래와 같이 간단하게 for 루프문을 돌면서 0부터 255까지 출력을 변경하도록 했습니다.

[소스 1]
01.  const int pin = 5;
02.
03.  void setup() {
04.      pinMode( pin, OUTPUT );
05.  }
06.
07.  void loop() {
08.      for (int i = 0; i<=255; i++) {
09.          analogWrite( pin, i );
10.          delay( 10 );
11.      }
12.  }

사용 된 모터는 Hubsan H107C 모델입니다.

 

출처 : 류종택의 프로그래밍 강의실(http://ryulib.tistory.com/376)