2017년 8월 19일 토요일

QX110 Micro FPV Quadcopter (2s lipo setting) 제작기

QX110 micro FPV quadcopter DIY kit를 제작해 보도록 하겠습니다.
토요일을 맞이한 weekend project입니다.
총 3시간 정도 걸렸고,
Kit는 Aliexpress에서 한달 전 쯤에 주문해 두었던 것이고,
지난주 쯤 배송이 왔던 것입니다.

Brushed motor를 이용한 대각선 축간거리 12cm 미만의
FPV quadcopter는 꽤 여러 종류의 DIY kit이 있습니다.
Carbon frame의 모양, flight controller의 종류,
propeller size의 약간의 차이, camera+VTX module의 차이
정도만 있고 기본 구성은 같다고 할 수 있습니다.

RC receiver를 제외한 모델의 경우 가격대가 보통
$30~$50 정도 되는 것 같습니다.
직접 만들고 firmware 안의 parameter 들을 setting하는 등의
소소한 재미가 있습니다.

직접 자기 자신만의 드론을 만들어 날리고 싶은
분들에게는 입문용으로 강추합니다.
강하게 추천하는 이유는 크게 세가지가 있습니다.

1) 드론의 기본 구성과 작동 원리를 이해할 수 있다.
2) 조금 더 큰 레이싱 드론을 조종하기 전에 연습기로 사용할 수 있다.
3) 조금 더 큰 레이싱 드론을 만들기 위한 발판을 삼을 수 있다.

각설하고 kit의 구성품을 한번 살펴 보겠습니다.
이번 제작에서는 2s lipo (7.4V) battery를 사용하는
드론을 만들어 보려고 합니다.
1s lipo (3.7V) battery를 사용하는 드론보다
조금 더 짐승같은 비행을 위해서입니다.

이를 위해서 따로 준비할 것은 2s 용 brushed motor입니다.
원래의 구성품 중 4개의 motor는 제외하고
2s 용 brushed motor를 따로 구매한 것으로 사용할 것입니다.

프로펠러, 나일론 스페이서와 볼트, 플라잇 콘트롤러, 3M 양면테입
carbon frame, camera+VTX module, brushed moter*4
등으로 구성되어 있습니다.
RC receiver는 따로 구매한 것을 사용하기 위해 kit 주문시에
포함시키지 않았습니다.


우선 전원선을 flight controller에 연결해 보겠습니다.
Flight controller는 SP racing F3 EVO brushed version입니다.
아까 말씀드렸듯이 2s setting을 위해
전원 단자를 JST 단자를 사용하려고 합니다.
대부분의 300mAh~500mAh의 2s battery가
JST 단자를 갖고 있기 때문입니다.

JST 단자는 제가 갖고 있던 것을 길이만 맞추어 잘라두었습니다.
아래 사진에서 맨 위에 있는 것이 JST 단자이고,
바로 아래 것이 kit에 들어있는 1s battery용 단자입니다.
(이것은 사용하진 않을 것이고 다만
비교를 위해 같이 놓고 찍어본 것입니다.)
맨 아래에 있는 것이 아시다시피 flight controller입니다.

아주 먼 옛날 중국이라는 나라가 이 업계에 뛰어들기 전에는
아마 저 flight controller만 하더라도 수만원에서 수십만원 했을 겁니다.
이제는 flight controller가 비록 clone들이지만
기능상에 큰 차이 없는 것들이 1~2만원대에 구매를 할 수가 있습니다.


전원 단자만 JST로 바꿔 달았다고 해서 2s battery를
사용할 수 있는 것은 아닙니다.
SP racing F3 EVO brushed version은
1s 또는 2s를 사용할 수 있는 switch가 있습니다.
일반적으로 알고 있는 switch는 아무리 찾아봐도 안보일 것입니다.
납땜으로 하는 스위치이기 때문입니다.
아래 사진에서 플콘(flight controller)의 상단에서 1/3지점의
오른쪽에 보시면 S1과 S2사이에 세개의 contact이 보일 것입니다.
두 개로 보이실 텐데 나란히 있는 세 개의 contact 중
앞쪽 두 개가 이어져 있기 때문입니다.
■ ■ ■ ← 요렇게 되어 있는데 현재는
첫번째와 두번째가 연결되어 있습니다.

이 설정은 1s battery용입니다. 첫번째와 두번째를 녹여서 단락시킨 후,
두번째와 세번째가 이어지도록 납땜을 해야 합니다.
연결된 부분을 전기인두로 지지면 납이 녹아서 두 개의 contact에
물방울처럼 맺히면서 단락이 될 것입니다.


그 다음에는 실납을 가져다 대고 두번째와 세번째가 연결되도록 합니다.
아래 사진이 그 결과입니다.
지저분하게 납땜이 되어 두번째와 세번째가 잘 이어진 것인지
잘 안보이겠지만, 멀티미터로 측정 시
원하는 대로 납땜이 된 것을 확인했습니다.


자 이제 JST 단자를 연결해 보도록 하겠습니다.
USB port의 바로 오른 편에 있는 두 개의 contact에
전원선을 연결합니다.


일단 땜납을 송글송글 맺힐 정도로 얹어서 굳혀주시고요.


JST 단자의 선 끝을 벗겨내고 이 선 끝에도 땜납을 치덕치덕 발라둡니다.


그다음 각각의 contact위에 하나씩 겹쳐대고 인두로
살포시 지지고 떼면,
마치 원래 한몸이었던 것처럼
녀석들이 붙어 있는 것을 아래 사진처럼
확인하실 수 있습니다.


조종실력이 느는 것에 비해 납땜 실력이 훨씬 늘고 있음을 확인합니다.
2s battery를 한 번 연결해 보았습니다.
플콘의 LED가 껌뻑껌뻑 하고 있는 것을 보니
보드가 벽돌이 되지는 않은 것 같습니다.
작은 크기의 플콘에 납땜을 하다가 다른 소자들을 녹여버려서
플콘이 벽돌이 될 우려가 있으니
유의하시기 바랍니다.


납땜 인증샷 한 번 더 가봅니다.
여담이지만 맨처음 250 사이즈의 프레임으로 구성된
DIY kit를 구매하고 나서
배송된 박스를 열어보니 매뉴얼이고 뭐고 없이
부품들만 잔뜩 들어 있던 3년 전이 생각나는군요.
홍콩에 있는 판매자한테 이거 매뉴얼은 없냐고 문의했더니
그런거 없다라는 시크한 대답만 왔던 것이 기억납니다.
인터넷을 뒤지고 뒤져서 겨우겨우 조립했더랬지요.
물론 이 kit에도 매뉴얼 같은 것은 없습니다.

처음 하시는 분들은 이 포스팅 쭉 따라서 하시면 됩니다.


자 이제 motor 전선도 연결해 봅니다.
Brushed motor의 경우는 brushless motor와 달리
선이 딸랑 두 개씩입니다.

플콘에 M1, M2, M3, M4라고 되어 있는 구역에 땜을 해주시면 되고요.
8520 motor의 전선 색깔은 CW회전이냐, CCW회전이냐에 따라
전선 색깔이 다릅니다. +가 뭐고 -가 어느 선인지 모르실 경우엔
그냥 아래 사진처럼 선을 연결해 주시면 됩니다.

이 kit에 들어있던 플콘은 6개의 motor까지 연결할 수 있는 것입니다.
M5와 M6로 되어 있는데, 이곳에 연결하는 일이 없도록 합니다.
이 두 개의 motor는 hexacopter를 만들 때 사용하는 것입니다.
우리는 quadcopter를 만들기 때문에 사용하지 않습니다.


자 이제 camera module을 달아보도록 하겠습니다.
우선 이 camera module의 operating voltage를 알아야 합니다.
매뉴얼도 없고 spec 설명서도 없기 때문에
알리에서 저 카메라 모듈과 같은 것을 파는 판매자가
올려놓은 스펙을 찾아보고서야 5V인 것을 알았습니다.

어라? 그런데 전원부는 7.4V가 들어가고 플콘에는
따로 5V 출력이 없는데 어떡하지? 라고 생각하실 수 있습니다.
그러나 플콘의 스펙을 잘 보면 UART port가 세 군대가 있습니다.
UART port는 RC receiver를 연결하는 단자입니다.
UART2에 RC receiver를 연결할 것입니다.
왜 갑자기 UART port를 얘기드리냐면,
UART port에 5V 전원이 있기 때문입니다.

UART port에서 GND에 검은색, +5V에 빨간색 선을
아래 사진과 같이 연결해줍니다.
그냥 아래 사진대로 납땜해주시면 됩니다.


자 이제 RC receiver를 연결할 차례입니다.
RC 조종기에서 나오는 나의 조종간의 움직임을
드론에 전기신호로 바꾸어 전달해 주는 녀석이지요.
요건 예전에 구매해둔 AC800이란 녀석입니다.
FrSky 조종기에 binding(블루투스의 페어링 같은 것이라고 보면 됩니다.)
할 수 있는 녀석이에요.


이녀석은 UART2 port에 GND, +5V, Rx 단자에 검은색, 빨간색, 흰색
요 순서대로 연결해 줍니다. 어떤 receiver는 Tx 단자까지 연결을 하기도 합니다.
조종이라고 하는 것이 나의 조종간의 움직임을 드론에 전달해주는
일방적인 통신인데, Tx 단자를 이용해서 드론의 센서 data를 조종기에
전달할 필요가 있기도 하지요.
예를 들어 드론의 배터리가 얼마나 남았는지 조종기에
표시하게 한다거나 말이죠.



배선 작업이 모두 끝났습니다.
프레임위에 플콘, 모터, 카메라 모듈, RC receiver를
적당한 위치에 양면 폼 테입 등을 이용해서
아래와 같이 잘 고정해 줍니다.
제법 뭔가 되어가고 있는 느낌입니다.


카메라 모듈과 RC receiver에 전원이 잘 공급되는지
한 번 연결해 보았습니다.
여기서 주의할 것이 하나 있습니다.
플콘에 firmware를 설치하지 않고
그냥 배터리를 연결해 버리면 전원을 연결하는 순간
모터가 미친듯이 돌아가는 경우가 있습니다.

아래는 컴퓨터와 연결된 USB 라인을 통해 +5V 전원이
공급된 상태라서 모터는 돌지 않았습니다.
카메라 모듈의 채널 표시 LED 및 RC receiver의 LED도 붉게
빛나고 있습니다.

전원 공급에는 문제가 없군요.


자 여기까지는 단순한 조립이었고, 한 반 정도 완성되었습니다.
이제부터 할 일은 flight controller를 제어해줄 firmware를 저 보드에
넣어주고 설정값들을 정해줘야 합니다.
이제 그 작업을 시작해볼까 합니다.

Betaflight을 이용해서 플콘을 셋팅할 것입니다.
Betaflight은 구글 크롬을 컴퓨터에 까신 후에 앱으로 가셔서
'betaflight'을 검색하시면 앱이 나옵니다.
설치를 하시고, 실행은 크롬 브라우저에서 다시 앱으로 가셔서
Betaflight icon을 클릭하시면,
독립적인 응용프로그램으로 뜹니다.

요렇게 크롬브라우저에서 보인다는 말씀이지요.

Betaflight을 실행하면 첫 화면에 아래와 같은 문구가 보입니다.
플콘을 USB를 통해 컴퓨터와 연결하려면 driver가 있어야 됩니다.
필요한 driver 링크가 있으니 꼭 모두 설치해 줍니다.


여기서 또 주의할 것이 하나 있습니다. 저의 경우엔
필요한 드라이버를 모두 설치했는데도
플콘이 컴퓨터랑 USB을 통해 잘 연결이 안되는 것이었습니다.
이것저것 해보다가 알았는데,
USB 3.0 포트로 연결하면 에러가 납니다.
USB 2.0 port에 연결해야 에러없이 잘 됩니다.

Driver를 모두 설치하고 실행시킨 후 플콘을 컴퓨터와
USB 라인을 통해 연결해 봅니다.
컴퓨터가 자동으로 인식하고,
일반적으로 USB 메모리 연결할 때와 같은 알림음과 함께
연결되었음을 알려줍니다.

이제 Betaflight firmware를 플콘에 넣어줘야합니다.
왼쪽 사이드바에서 'Firmware flasher'로 갑니다.
말그대로 플콘에 betaflight firmware를 번쩍하고 새겨주는 것이죠.
목록에 있는 맞는 플콘을 선택해 주고,
어떤 version을 입힐 것인지도 선택해 줍니다.
저의 경우는
SPRACINGF3EVO 플콘에
3.2 version을 선택했습니다.
보통은 stable 버전을 선택하는 것이 좋은데,
아직 베타테스트 중인 3.2를 선택했습니다.
왜냐하면 3.2 버전부터 buzzer setting이 GUI로
구성되어 있기 때문입니다.

저의 kit에는 buzzer가 없지만 배터리 잔량이 부족하다거나 할 때
드론에서 삑~ 삑~ 소리가 나도록 buzzer를 달 수 있습니다.

어쨌건 stable 버전 중 가장 최신 것을 선택하시면 무난합니다.


우측 하단에 Load Firmware [online]을 클릭하시면 해당 firmware를
다운로드합니다. 용량은 크지 않으나 해당 서버가 느린관계로
조금 시간이 걸릴 수 있습니다.


다운로드가 완료되면 Flash Firmware 버튼이 활성화 되고
눌러주면 상태바가 점점 차오르며
결국 Programming Successful이란 문구가 뜨면 성공입니다.


다행히 성공했군요.


그리고 우측 상단에 connect 버튼을 누릅니다.
아래와 같은 화면이 뜬다면 성공입니다.
최신버전의 firmware를 플콘에 넣어주었고,
Betaflight GUI를 이용해서 각종 setting을 해줄 수 있게 되었습니다.

드론을 이리저리 기울여보면 아래 화면의 드론도 똑같이
기울어집니다.
왼쪽 사이드바에서 섹션들이 보이고 아래로 하나씩 내려가면서
설정을 해나갈 것입니다.

맨처음 섹션이 바로 Setup입니다.
여기서 해주어야 할 일은
가속 센서를 calibration하는 일입니다.
가속 센서란 드론이 어느 방향으로 가속하고 있는지를
알려주는 센서입니다.
드론을 평평한 곳에 가만히 두고 Calibrate Accelerometer 버튼을 눌러줍니다.


완료됐습니다.

이제 Ports 섹션으로 넘어갑니다.
아까 납땜하면서 얘기했던 UART port들이 나옵니다.
UART2 port에 직렬방식으로 RC receiver를 연결했으므로 아래와 같이
UART2의 Serial Rx를 활성화시킵니다.
주의할 것은 USB VCP는 그대로 둬야합니다.


우측 하단에 Save and Reboot 버튼을 누릅니다.
그리고 다시 connect button을 눌러 betaflight에서
플콘에 접속합니다.


Ports 섹션으로 가서 UART2의 Serial RX가 활성화 된 것을 확인합니다.
다음 섹션은 configuration입니다.

Configuration section을 선택하면 오른쪽 화면에 또 여러 개의
part로 나누어져 있는데, 우선 system configuration을 보겠습니다.
다른 것은 그대로 두고 barometer를 비활성화합니다.

SP racing F3 EVO 플콘에는 바로미터가 없기 때문입니다.
불필요한 기능을 켜두게 되면 플콘의
연산능력의 저하가 발생하므로
안쓰는 기능은 모두 꺼두는 것이 좋습니다.


Receiver part입니다. SBUS protocol로 RC receiver와 플콘을 연결할 것이므로
아래와 같이 선택합니다.


여기까지 하고 save and reboot를 한 번 해줍니다.


자 이제 중요한 작업을 할 차례입니다.
RC 조종기와 RC receiver를 짝짓기(bind)해줘야 합니다.
제가 사용한 AC800 receiver의 경우 따로 binding 버튼이 없습니다.
전원을 공급하면 빨간 led가 6초 이내에 빠르게 깜빡거리기 시작합니다.
Binding 할 준비가 되어 있다는 것이죠.
컴퓨터의 USB 로 연결하거나
배터리를 연결해서 AC800이 bind 준비 모드로 들어가게 합니다.
저는 배터리를 연결해서 AC800에 전원을 공급했습니다.
그리고 조종기를 bind 모드로 들어가게 합니다.
조종기마다 이 방법이 다르기 때문에 따로 설명은 안드립니다.


바인딩이 성공하면 AC800이 빨간색으로 더이상 깜빡이지 않고
계속 빨간색 LED가 켜진 상태가 됩니다.
Binding에 성공했다는 것이죠.
이렇게 해놔야 드론에 전원이 들어갔을때 제 주인을 찾아서
알아서 조종당할 준비를 할 수가 있습니다.

자 이제 조종기도 끄고 드론에서 배터리를 제거합니다.
그리고 조종기를 다시 키고, 플콘에 USB로 컴퓨터와 다시 연결합니다.
이제 AC800 receiver가 더이상 깜빡이지 않고 조종기와 연결된 상태가 됩니다.
앞으로의 설정과정은 조종기와 무선으로 연결된 상태에서
진행해야 하기 때문에 이상태로 설정을 계속합니다.

다시 Configuration section으로 가서 Other features를 모두 비활성화합니다.
모두 사용 안할 것들입니다.


Buzzer part도 마찬가지로 모두 비활성화합니다.
Buzzer를 안달았기 때문이죠.


ESC/Motor features는 아래와 똑같이 셋팅합니다.


RSSI도 비활성화합니다. 조종기와 드론 사이의 통신이 약해질 때
알람을 주기 위한 기능인데 비활성화 합니다.


여기까지 하면 configuration 섹션은 완료했습니다.
역시 save and reboot 잊지 마시구요.


다시 플콘에 연결해서 fail safe section으로 가서 아래와 같이 설정합니다.
조종기와 드론사이의 신호가 끊겼을 때 그냥 떨어지도록 하는 설정입니다.
그냥 착륙하도록 하는 설정이 더 안전해 보이긴 한데,
이건 나중에 한 번 테스트 해보고 알려드리겠습니다.


혹시 fail safe section이 안보이신다면 화면 상단에 expert mode를
활성화 하셔야 볼 수 있습니다.


자 이 section도 끝냈습니다.
save and reboot 버튼 누르시고 다시 플콘에 접속합니다.


이번에는 receiver section입니다. 조종기는 켜진 상태이어야 합니다.
조종간을 여기저기 움직이면 아래와 같이 바가 오르락 내리락 합니다.
Roll, pitch, yaw, throttle
요 네개의 셋팅이 중요합니다.
조종간을 움직였을때 minimum이 1000, center가 1500, maximum이 2000이
되도록 해야 합니다.
보통은 조종기의 end point나 trim을 건드려서 맞추기도 하는데,
더 손쉬운 방법을 쓰려고 합니다.


먼저 roll 조종간을 움직여서 min에 갖다 놓습니다. 그 수치를 기억합니다.


roll을 max에 갖다놓고 그 수치를 기억합니다.


그리고 Betaflight 왼쪽 section 하단에 CLI로 들어가면
콘솔창 하나가 보일 것입니다. 그곳에

rxrange 0 1087 1926

요렇게 적고 엔터를 누르고 다시

save

를 치고 엔터를 누릅니다.

그리고나서 플콘에 다시 접속하면 roll 조종간을 움직이면 min, center, max가
각각 1000, 1500, 2000이 된 것을 볼 수 있습니다.
약간 center가 벗어나기도 하는데 이때는 조종기의 trim button을
이용해서 미세조정하여 center 1500을 맞추면 됩니다.




마찬가지 방법으로 pitch, yaw, throttle도 해주되,

CLI mode에서 rxrange 다음에 1, 2, 3만 바꿔주면 됩니다.

rxrange 0 1087 1926
rxrange 1 1087 1926
rxrange 2 1087 1900
rxrange 3 1010 2011

min max 값은 실제로 조종간을 움직여 보고 그 값을 넣으시면 됩니다.
위의 예시처럼 한꺼번에 입력하고 save를 해도 되는데,
저의 경우는 왠 일인지 따로따로 해야 먹혀들어서 그렇게 했습니다.

지금까지 이작업을 왜 한거냐? 이렇게 반문하실 수도 있는데,
드론을 띄웠을 때 throttle을 제외한 조종간이 모두 정 중앙에 있어야
드론이 어느 한 방향으로 미끄러져 가는(drifting) 현상을
막을 수 있기 때문입니다.

역시 save 해주시고

이제는 Modes section입니다.
Mode라 함은 드론이 angle mode인지, horizon mode인지, acro mode인지
정해주기 위한 섹션입니다.

간단히 말해서 angle mode는 조종기에서 손을 때면 자기가 알아서
수평을 잡아주는 모드입니다.

Horizon mode는 angle mode와 같지만 조종간이 양 극단으로 가면
flip을 하게 되는 모드입니다.

Acro mode는 default 모드인데 드론을 어느 한 방향으로 기울이면
다시 수평을 잡지 않고 그 기울어진 각도로 기체를 유지합니다.

초보라면 그냥 아래와 같이 셋팅해 둡니다.
AUX1 에 아래와 같이 설정해두면(AUX1 단자는 끄고 키는 스위치가 아니고 아래, 중간, 위가 있는 세단계를 가진 스위치여야 합니다)
AUX1 스위치에 따라서

angle
horizon + air
acro + air

모드가 됩니다.
이 모드들에 대해서는 따로 설명하는 posting을 하도록 하겠습니다.
일단은 angle 모드에서 시작을 하실 것이 거의 분명하므로
AUX1은 angle mode에 두시기 바랍니다.



PID section은 그냥 아래와 같이 셋팅하시기 바랍니다.
초보자를 위한 저만의 recipe입니다.
조종간을 움직이는 손가락이 아직은 둔감할 때
이렇게 시작하시는 것이 좋습니다.

이 수치들은 나중에 또 제가 공부를 더 해서
포스팅할 수 있도록 하겠습니다.


각각의 section에서 save 하시는 것 잊지 않으셨겠지요?
이제 betaflight setting이 모두 끝났습니다.
늘 하면서 느끼지만 지리멸렬한 과정입니다.
그러나 실수로 잘못해두면, 꼭 드론을 망가뜨리는 일이 생기니
초보자들은 꼼꼼하게 잘 살펴서 해주셔야 합니다.

Betaflight 연결을 종료하고 USB cable도 제거합니다.


프레임의 윗덮개도 얹어주고


AC800의 안테나도 cable tie로 pole을 세우고 수축튜브로 감싸서
수축시켜 줍니다. 멋진 노란색 안테나가 되었습니다.


프로펠러도 방향에 맞게 끼워주고요.


바닥에는 EVA 재질의 테입을 발라 배터리가
미끄러지지 않고 얹어질 수 있도록 합니다.


배터리는 노란색 고무줄로 고정하는 것으로 하겠습니다.
드디어 완성입니다.

긴 과정이었네요. 지금까지 포스팅 한 것중에서 단일 포스팅으로는
제일 길었습니다.


이렇게 만들었는데, test 비행을 안해볼 수가 없겠죠?
밖은 이미 해가져서 어두우니
micro FPV drone의 장점!
거실에서 날려보겠습니다.


와우! 2s setting 놀랍네요. 솟구치는 능력이 기존
1s 배터리의 드론들보다 어마어마 하게 좋습니다.
아주 만족스럽게 잘 만들어졌습니다.
브러쉬 모터의 브러쉬 마찰과 2s 배터리의 압박으로
모터가 엄청 뜨거워지는 것이 단점입니다.

아마 그 열을 이기지 못하고 얼마간 가지고 놀다가
모터들은 전사할 것 같습니다.

결국 brushless가 드론의 정석이다!라는 생각을 갖게 됩니다.
이상으로 긴 포스팅을 여기서 마치겠습니다.


댓글 없음:

댓글 쓰기