콘텐츠로 건너뛰기
Home » 드론 제작에 필요한 환경 구축. 그 세번째

드론 제작에 필요한 환경 구축. 그 세번째

지난 두번째 포스트에서 드론 제작을 하기 위한 각 부품들과 도구들, 그리고 제작할 드론 및 조종기의 회로도를 기술해 봤습니다. 이번에는 드론을 제작하기 위해서 구축해야 할 개발 환경과 드론에 들어갈 FC보드 Control Software인 Multiwii에 대하여 알아보도록 하겠습니다.

아두이노 IDE 설치

DIY 드론을 제작하려면 FC보드을 제어하기 위한 Software 개발 환경을 구축해야 합니다.  드론의 성격과 종류에 따라 다르긴 하지만, 저는 이번 드론을 제작시에 아두이노 보드를 이용하려고 했기 때문에 아두이노 개발 환경을 구축을 해야 했습니다. 

우선 아두이노를 가지고 놀려면 아두이노 IDE를 설치를 해야 합니다. 

아래 링크를 클릭하여 아두이노 IDE를 다운로드 받아 설치하시기 바랍니다.

https://www.arduino.cc/en/main/software

아두이노 IDE는 운영체제 별로 설치파일을 제공하고 있습니다. 각자의 환경에 맞게 클릭하여 다운로드 받아 설치하시면 됩니다. 현재 버전은 1.8.4 네요.

저는 예전에 ATMega128을 가지고 개발을 진행했던 적이 있었는데, 그때 당시에는 AVR Studio v4를 개발 도구로 사용하였습니다. AVR 개발시에는 여러가지 제약사항이 있었었는데, 같은 8Bit Micro-Controller 계열로 아두이노 H/W와 IDE를 오픈소스로 제공하여 손쉽게 개발을 할수 있다는 게 감회가 새로운거 같습니다. (특히 USB 케이블로 연결하여 별도의 다운로더 없이 F/W 파일을 손쉽게 다운로드 할수 있다는게 흥미롭습니다.)

Multiwii 소스 다운로드

아두이노에다가 FC 기능을 동작하게 하려면 FC Software를 구현을 해야 합니다. 하지만 개발자가 이 기능을 구현하기가 만만치 않기 때문에 누군가 만들어 놓은 Source를 사용해야 할꺼 같습니다. 

다행이도 Multiwii 라는 OpenSource가 공개되어 있기 때문에 이 Source를 이용하여 FC기능을 사용할수 있습니다. Source는 아래 링크를 들어가면 됩니다.

https://code.google.com/archive/p/multiwii/

위 사이트 외에 Github로 제공하기도 합니다. 아래 링크를 참조하면 됩니다.

https://github.com/multiwii

아두이노 IDE로 Multiwii Source 사용 및 환경설정

자 그럼 아두이노 IDE로 Multiwii Source를 Load하여 설정 및 Compile을 진행해 보도록 하겠습니다. 먼저 Multiwii Source를 다운로드 받습니다. 물론 버전은 최신버전을 받도록 합니다. (현재 최신버전이 2.4입니다.)

저는 GitHub의 Source를 Git Clone 하여 Source를 내려받았습니다. 

위의 화면에서 multiwii-firmware의 Source를 git clone 하시면 됩니다. 간단하죠? 참고로 저처럼 git clone을 하시게 되면 clone한 폴더(디렉토리) 이름을 Multiwii라고 하시기 바랍니다. (이유는 곧 알게 됩니다.)

그럼 아두이노 IDE를 실행을 시켜봅니다. 윈도우즈 바탕화면에 아두이노 IDE 아이콘을 클릭하여 실행을 시키면 됩니다. 

제 PC에서 실행을 시킨 아두이노 IDE입니다. 여기서 파일-열기를 선택하여 Multiwii Source가 있는 폴더의 Multiwii.ino 파일을 열어보겠습니다. 파일을 Load하면 아래와 같이 Multiwii Source가 나타납니다.

자 여기까지 진행되었으면, 이제 타겟보드와 시리얼포트를 설정해야 합니다. 타겟보드를 설정하려면 메뉴에서 ‘툴’을 선택합니다. 

‘툴’ 메뉴에서는 각종 설정할수 있는 부분을 제공하는데 여기서 타겟보드를 선택하려면 ‘보드’를 선택하면 됩니다. 여기서 각자의 타겟보드를 선택하면 되는데, 제가 가지고 있는 아두이노 마이크로 보드는 아두이노 레오나르도 계열이기 때문에 아두이노 레오나르도를 선택하였습니다. 

그 다음에는 시리얼 포트를 설정합니다. 시리얼 포트는 ‘툴’ 에서 ‘포트’ 라는 항목이 있습니다. 포트를 선택하면 오른쪽 서브메뉴로 현재 연결된 아두이노 타겟보드의 시리얼 포트 넘버가 나타납니다. 아래 그림을 참조하시면 될꺼 같습니다.

제가 연결한 아두이노 마이크로 보드에서는 COM5로 연결이 되었네요. COM5로 선택을 하도록 하겠습니다.

자, 이제 Multiwii Source를 사용하여 아두이노 IDE로 기본적인 드론제작의 개발 환경을 구축하였습니다. 생각보다 해보니 어렵지 않네요.^^ 

Multiwii Source Compile 및 아두이노 보드에 Download 해보기

기본적인 환경설정이 끝났으니 이제 간단하게 Compile과 Download를 진행해 보겠습니다. Multiwii Source를 보면 C++ 파일로 되어있습니다. 따라서 아두이노 보드로 FC를 사용하고, FC개발을 하시려면 C 혹은 C++을 다룰줄 알아야 합니다. (설마 C/C++ 을 사용안하고 드론제작을 하실 생각은 아니시죠? 물론 드론제작을 할수 있습니다만, 여기서 제가 다루는 아두이노를 이용한 드론제작은 아쉽게도 어려울것 같습니다.)

만약 C/C++ 을 다루실수 없는 분들은 일단 먼저 C/C++을 배우신후에 아두이노 드론제작을 진행해야 할꺼 같습니다. 물론 C++은 제외하고라도 C를 기본적으로 다룰수 있으면 됩니다. 아두이노 Source들을 봤을때 난이도가 높은 수준은 아닙니다. (그래서 학생들에게 아두이노를 추천하는 거겠지요?) 

말이 좀 길었는데, 그럼 Multiwii Source를 간단히 컴파일을 해보도록 하겠습니다. 좀전에 Multiwii Source를 Load한 상태에서 메뉴의 ‘스케치’의 확인/컴파일을 선택하면 됩니다. Compile이 간단하네요? 그럼 저도 실행해 보고 결과를 한번 보겠습니다.

Multiwii Source에서 스케치-확인/컴파일 을 실행한 후에 IDE를 확인해 봤습니다. 그랬더니 바로 오류가 뜹니다. 흠.. 쉽지가 않네요. 뭔가 문제인지 확인해 봐야 겠습니다. 일단 아래를 볼까요?

/**************************************************************************************/
 

/***************               Error Checking Section              ********************/
 

/**************************************************************************************/
 

 
 

#ifndef NUMBER_MOTOR
 

        #error "NUMBER_MOTOR is not set, most likely you have not defined any type of multicopter"
 

#endif

에러가 발생한 구문입니다. 확인해 보니 NUMBER_MOTOR 라는 매크로가 define이 안되어 있다는거 같습니다. NUMBER_MOTOR로 검색을 해봐야 겠습니다. 쭉 검색하여 따라가다보니 Multiwii Source상에서 기본적인 Setting 관련 매크로를 Define해줘야 컴파일이 가능합니다. 

일단 Compile이 가능하게끔 하려면 아래와 같이 #define을 선언해주면 됩니다. 현재는 초기 설정 단계이니, 아두이노 IDE를 익힌다는 개념으로 접근하면 될꺼 같습니다. 

아두이노 IDE로 Source 수정 및 디버깅을 위해 먼저 IDE의 환경설정을 약간 바꿔보도록 하겠습니다. 저는 개인적으로 IDE에서 라인번호가 보이는것을 선호하기 때문에, 아두이노 IDE도 라인번호를 보이게끔 설정을 바꿔보도록 하겠습니다. 

IDE에서 파일-환경설정을 선택하고 클릭을 합니다.

쿨릭을 하면 아래 화면같이 환경설정 윈도우가 나타납니다. 여기서 줄번호표시를 체크하고 확인을 누르면 아두이노 IDE에 라인번호가 표시됩니다. 

자, 그럼 한결 IDE쓰기가 수월해진거 같습니다. 그럼 Multiwii Source를 수정해보겠습니다. 

IDE의 상위 탭에서 config.h 파일을 선택합니다. config.h 파일은 Multiwii Source에서 각종 설정관련 매크로가 정의 되어있습니다. (2.4 버전 기준)

줄번호 35번 라인으로 이동하면 멀티콥터의 타입이라는 주석으로 텍스트가 표시가 되어있습니다. 아래를 보면 매크로들이 전부 // 표시로 주석처리가 되어있는걸 확인할수 있습니다.  아마 Source 작성자가 개발자들에게 드론 형태에 맞게 선택하라는 의미에서 전부 주석처리를 한거 같습니다. 제가 제작하려는 드론은 쿼드콥터 형태이므로 아래 화면에서와 같이 QUADX의 매크로의 주석을 풀도로 하겠습니다. 

이거 말고 혹시 다른 매크로를 건드려야 할까요? 이외에 가속도 센서 관련하여 매크로를 선언을 해줘야 합니다. 제가 사용하려는 가속도센서는 GY-521이기 때문에 GY-521를 검색해 보겠습니다. 

검색을 해보니 GY_521이라는 매크로가 보입니다. 이것도 주석처리가 되어있네요. 이걸 주석을 해제하였습니다. 이상태에서 파일을 저장하고 컴파일을 해보겠습니다. 스케치 – 확인/컴파일을 누르면 됩니다. 

컴파일이 진행되면 위의 화면과 같이 나타나며, 컴파일이 완료되면 다음과 같이 컴파일이 완료되었다는 메시지와 함게 내부 플래쉬와 메모리의 사용량에 대해 표시를 해줍니다. 

주석 2줄 해제하고 나니 컴파일이 잘 되는걸 확인하였습니다. 일단 본격적으로 개발하기 앞서서 준비단계이기 때문에 여기까지 진행하면 드론 제작 환경 설정이 준비되었다고 보면 될꺼 같습니다. 

그럼 실제로 아두이노 마이크로 보드에 F/W를 다운로드를 해보도록 하겠습니다. 아두이노 아이크로 보드를 USB 케이블로 연결한후에 아래화면에서와 같이 업로드를 클릭합니다. 

컴파일이 진행되면서 USB를 통해 F/W가 아두이노 마이크로 보드에 다운로드 되는것을 확인할수 있습니다. 어렵지 않네요^^.
 
자 이제, 드론을 개발할 환경이 준비되었으니 차근차근 드론 제작을 진행해 보도록 하겠습니다. 

'정원딸린집'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.
error: Content is protected !!