아두이노 드론 만들기 - 1편

아두이노 드론 만들기

자작 드론 만들기

드론은 대체로 용도에 맞는 기성품을 구입해서 사용하는 것이 일반적인 것 같습니다. 전세계 점유율 76%가 넘는 중국의 DJI가 단연 1위 기업이고 제품 라인도 다양해서 원하는 드론 제품을 쉽게 구입해서 바로 사용할 수 있습니다. 하지만 저는 드론을 직접 제작하고 소프트웨어 제작을 통해서 다양한 기능을 할 수 있는 나만의 드론을 만드는 것이 목표입니다. 궁극적으로 드론을 활용한 비즈니스 모델을 찾고 사업화하는 날이 왔으면 좋겠습니다.

자작 드론을 만들기 위해서 자료를 찾아봅니다. 구글에서 검색하다 보면 생각보다 많은 사람들이 자작 드론 만들기를 시도한다는 것에 놀랐습니다. 저는 광필이 좋아요!님의 블로그가 많은 도움이 되었습니다. 블로그에 하드웨어부터 소프트웨어, 비행 등 풍부한 내용들이 아주 잘 정리되어 있습니다.

드론을 만들기 위해서는 생각보다 많은 지식과 준비가 필요합니다. 비용도 어느정도 필요하게 되고요. 무엇보다 시행착오로 많은 시간을 소모할 것 같은 불길한 느낌이 듭니다.^^ SW 개발을 오랜기간 해왔기 때문에 코딩은 자신이 있지만, 하드웨어 및 조립, 셋팅은 해보기 전에는 좀 어렵게 느껴집니다. 힘들게 조립해서 만들었지만 비행이 잘 안된다는 글도 꽤 볼 수 있고요. 그래서 고민 끝에 선택한 방법이 자작드론 전단계로 아두이노 드론을 만들기로 했습니다. 아두이노를 탑재해서 아두이노 코딩으로 드론을 제어할 생각입니다.

아두이노 드론 만들기

아두이노 드론 만들기라고 했지만, 실상은 아두이노 + 드론 키트를 구매해서 아두이노로 코딩을 하는 방법입니다. 키트를 사용함으로써 지식이 부족한 하드웨어 문제를 해결하고 드론을 제어하는 소프트웨어의 제작에 집중할 생각입니다.

아두이노 드론으로 검색하면 ‘펌테크’라는 기업에서 제작한 ‘아두이노 + 드론 1호 키트’라는 제품이 있습니다. 대략 15만원대에 판매되고 있는데, 다행히 중고로 반값에 살 수 있었습니다. 아두이노 코드도 제공하고 있어 시작하기에 아주 좋은 선택지인 것 같습니다. (#광고아님 #내돈내산)

아두이노 + 드론 1호 키트

아두이노 + 드론 1호 키트는 아두이노 우노에 조이스틱 쉴드를 결착하고, 드론과 아두이노를 블루투수로 연결하여 드론을 제어할 수 있도록 구성된 드론 교육용 키트입니다. 아두이노, 스마트폰(안드로이드 앱, 앱인벤터)으로 연결하여 드론을 제어할 수 있습니다. Firmtech 공식사이트에 가면 제품 매뉴얼, 소스코드 등 다양한 자료들이 제공됩니다.

안전모드 동작이 가능하고 충격을 감지하면 프로펠러가 자동으로 정지되고 드론에 부착된 레이저 센서로 자동 높이 조절을 통한 안정적인 비행이 가능하다고 설명되어 있습니다. 하지만 드론의 가장 중요한 부분인 호버링은 생각보다 잘 안된다는 경험 글도 있습니다. 아두이노와 연결된 조이스틱 쉴드의 조이스틱, 스위치의 눌림 상태에 따라 드론을 제어하게 됩니다. 아두이노, 앱인벤터 소스코드가 제공되기 때문에 드론을 제어하는 방법을 쉽게 학습할 수 있습니다.

초기 설정

  • MAC Address 적용하기

드론 배터리를 확인해보면 드론의 MAC Address를 확인할 수 있습니다.

아두이노 스케치의 소스코드 중 기존 MAC Address 값을 드론의 MAC Address로 수정합니다. (UNO_Sketch_Drone_Manual.pdf p.16 참고)

  • 블루투스 모듈 설정하기

그 다음으로 드론과 조종기간 블루투스 연결을 시도합니다. 제공되는 UNO_Sketch_Drone_Manual.pdf 문서의 p.14를 참고하여 블루투스 모듈을 설정합니다.

함께 제공되는 소스코드 중 ‘BLE_Bypass.ino’를 사용합니다. 아두이노에 업로드 후 시리얼 모니터에서 다음과 같은 명령으로 블루투스 모듈의 설정을 진행합니다. 명령을 실행 후 OK가 리턴되는 확인합니다.

1) "AT+SETROLEC" : 블루투스 모듈을 Master 기능인 Centeral Role로 변경
2) "AT+SETSMODE0" : Read/Write 기능 설정
3) "AT+SETTXPOWER9" : 무선 출력 세기 설정 (FBL601BC_serial: 0 ~ 9, FBL780BC_serial: 0 ~ 7)
4) "ATZ" : 변경된 설정 저장을 위해 소프트웨어 리셋

※ 3단계의 무선 출력 세기 설정 시 실패하는 경우가 있었습니다. 알아보니 블루투스 모듈이 FBL601BC_serial, FBL780BC_serial 두 종류가 있는데, FBL601BC_serial RF 출력의 Power를 0 ~ 9 단계까지 설정이 가능하여 “AT+SETTXPOWER9” 사용이 가능합니다. 그러나 FBL780BC_serial인 경우 RF 출력의 Power의 설정이 0 ~ 7까지 설정이 가능합니다. 더 자세한 내용은 펌테크 홈페이지 QnA 게시판에서 확인해 보세요.

  • 블루투스 연결 후 조이스틱 버튼으로 동작 안할 경우

  • 제공되는 드론 전체 소스(Joystick_1_Drone_Shield_V2.0.ino)를 오픈합니다.
  • 소스에서 void sendDroneCommand() 부분을 찾습니다.
  • bleSerial.print(“at+writeh000d”) or bleSerial,print(“at+writeh0006”) 두개 중 하나가 적혀있는 부분이 있는데 이 부분을 bleSerial.print(“at+writeh0006”)으로 변경하여 사용하시면 됩니다.

First Flight

  • 매뉴얼의 설명대로 스마트폰에 앱을 설치 후 드론에 연결하여 조종합니다.
  • 아두이노 코드를 업로드하여 조이스틱 버튼으로 드론을 조종합니다.

© 2023. All rights reserved.

말랑데브