아래의 최신 드론 FPV 영상을 보니 이제는 짐벌따위가 없어도 정말 깔끔한 영상이 나오는구나 하는 생각이 들었다.
드론에서 진동은 피할 수 없는 문제인데 이정도로 진동을 억제하기 위해서는 모터/변속기의 빠른 응답성능이 필수적이다.
그래서 최신의 변속기 동향을 살펴보니 400Hz 주기의 일반 PWM에서 Oneshot125등을 지나 Dshot이 대세로 자리잡은 듯 하다.
Dshot 에 대한 자세한 설명은 https://oscarliang.com/dshot/ 이곳의 글을 참고하면 된다.
About Dshot
Dshot에 관해 간단히 정리하면 다음과 같다.
PWM이나 Oneshot125, Oneshot42 그리고 Multishot 과 같은 프로토콜은 펄스의 폭을 변조하고 FC에서 이 펄스를 읽는 방식을 사용한다.
이 방식은 간단하긴 하지만 전기적으로 Spike 가 발생할 수 있으며 펄스의 주기를 쪼개서 펄스의 최소 폭을 만들어야 하므로 짧게 만드는데 한계가 있다.
Dshot 은 이러한 한계를 극복하기 위해 FC에서 설정한 Throttle 값을 11bit의 0과1의 조합으로 패킷을 만들어서 직접 변속기에 데이트를 쓰는 방식을 채택했다. 데이터 무결성을 확보하기 위해 패킷에 4bit의 CRC를 추가하였다. 나머지 1 bit는 Telemetry Request용으로 할당.
이렇게 하면 0과 1을 만들 수 있는 최소 단위까지 패킷 을 전송할 수 있으므로 DShot600의 경우에는 600,000/16 = 37500Hz = 37.5KHz 의 주파수로 데이터를 전달할 수 있게 된다.
이것은 최소 26.7uS 마다 Throttle값을 업데이트할 수 있음을 의미한다.
각 프로토콜별로 최소 업데이트 주기는 다음과 같다.
- Oneshot125 – 250 uS
- DShot150 – 106.7 uS
- Oneshot42 – 84 uS
- DShot300 – 53.3 uS
- DShot600 – 26.7 uS
- Multishot – 25 uS
수치상으로는 Multishot이 더 빠른데 25uS나 26.7uS 모두 FC의 제어 Loop 보다 빠르므로 큰 의미는 없다.
지원하는 ESC
이 프로토콜을 지원하는 변속기들은 다음과 같다.
BLHeli_S ESC : Cicada, Racerstar V2, Aikon SEFM, TBS 25A, Lumenier 30A, DYS XS30A
KISS ESC: KISS 24A ESC
이번 드론 제작을 위해서 http://rctimer.com/?product-1744.html 에 있는
BeeRotor BS20A ESC를 구매하였다.
지원하는 FC
이 글을 작성하는 현재(18/11/05) Dshot 프로토콜을 지원하는 FC는 F3와 F4 계열이다.
나는 아래 링크에서 Beerotor F4 보드를 구매하였다.
http://rctimer.com/?product-1730.html
모터는 기존에 구매했던 제품을 그대로 사용하기로 했다.
Rctimer FR1806-2300KV High Power FPV Racing Edition Motor
http://rctimer.com/?product-1570.html
드론 프레임
조립의 편의성을 위해서 PDB가 포함된 제품으로 구매하였다. PDB가 없으면 납땜이 많아져서 시간을 많이 잡아먹는데 이 제품은 위에서 구매한 FC에 커넥터로 연결되고 ESC 전원단에 AL 캐패시터가 포함되어 안정적인 전원공급이 가능하다.
BeeRotor Thunderbolt 190 4mm FPV Racing Quadcopter with PDB
http://rctimer.com/?product-1705.html
드론 조립하기
드론 조립은 RCGroup에 나온 제작 과정을 참조하였다. https://www.rcgroups.com/forums/showthread.php?2797008-BeeRotor-Thunderbolt-190-FPV-Racing-Quad-5-Prop-Build-and-Discussion
이 키트는 모든 배선들이 납땜만 하면 조립할 수 있도록 준비되어있어 매우 편리하다.
불과 몇년전만 하더라도 전선을 일일이 자르고 납땜해서 연결해야했는데 격세지감이 느껴진다.
납땜을 깔끔하게 하기 위해서는 스트리퍼로 노출한 전선 가닥을 페이스트에 묻히고 먼저 1차로 납을 녹인 다음 보드에 납땜하는것이 좋다. 아래 그림 참조.
순서는 다음과 같다.
1-2
3-4
조립 결과는 아래 사진과 같다.
깔끔하게 잘 마무리 되었다.
드론 커버 및 카메라 마운트 장착 (추가 2. 3D file 추가)
아무래도 이런 조립식 드론은 회로가 외부에 노출되어 있다보니 외부의 먼지라든지 이물질의 유입으로 인한 물리적 손상이나 쇼트가 발생할 수 있다. 그래서 3D프린터로 간단히 커버를 만들어 보았다.
모델링은 도면이 없으므로 실제 기체를 실측하여 제작하였다. 만들다보니 완벽주의 버릇이 도져서 세번이나 출력한 끝에 아래와 같은 모습으로 만들 수 있었다. 세로로 긴 홈은 상부의 카본 마운트가 꽂히는 공간이다. 이게 없으면 커버에서 들뜨게 된다.
드론 회로 보호용 커버의 장착 모습
아래는 FPV용 카메라를 장착하기 위한 마운트를 3d 프린트하고 장착한 모습이다.
위 커버의 디자인 파일은 Thingivers 사이트에서 다운로드 받아서 3d프린터로 출력할 수 있다.
Betaflight 설정하기
설치하기
betaflight 는 FC를 설정하기 위한 프로그램이다. 이 프로그램이 있어야 FC에서 사용하는 ESC에 맞는 프로토콜을 설정할 수 있다.
Chrome 브라우저에서 좌측 상단의 Apps를 선택하고 betaflight를 검색하면 설치할 수 있다.
Firmware 업데이트하기
설정을 진행하기 전에 펌웨어의 버전을 확인하고 최신 버전으로 업데이트할 필요가 있다.
이 글을 작성하는 현재 BeerotorF4의 최신 버전은 3.5.2를 지원한다.
VCP 드라이버 설치
BeerotorF4의 펌웨어를 업데이트하기 위해선 STM32 마이크로 프로세서에 내장된 DFU 모드를 통해 내부 Flash에 프로그램을 업로드해야 한다. 이 방식을 사용하기 위해서는 STM VCP 드라이버가 설치되어야한다.
ST의 해당 사이트(https://www.st.com/en/development-tools/stsw-stm32102.html)로 이동하여 하단의 GET SOFTWARE 항목의 STSW-STM32102 을 다운로드한다.
압축을 풀고 설치된 OS에 맞는 드라이버 버전을 설치한다.
Windows10 64비트의 경우 VCP_V1.5.0_Setup_W8_x64_64bits.exe 파일을 실행
DFU 드라이버 업데이트
Windows에서 설치하는 경우 DFU드라이버를 사용하기 위해서 zadig를 설치한다.
1. 다음 링크(http://zadig.akeo.ie/)에서 Zadig를 다운로드한다.
2. FC를 DFU모드로 부팅하기 위해 아래 그림의 버튼을 누른 상태로 Micro USB커넥터를 PC에 연결한다.
3. 다운로드한 Zadig를 실행한다.
4. Option > List All Devices 선택
5. Dropdown 메뉴에서 STM32 BOOTLOADER 를 선택한다.
6. 녹색 화살표 오른쪽의 box에서 WinUSB (v6.1.7600.16385) 항목을 선택한다.
7. Install driver 버튼을 눌러 드라이버를 설치한다.
8. 설치가 완료되면 FC에 USB커넥터가 꽂혀있는 상태로 재부팅을 한다.
Firmware 설치하기
재부팅이 완료되면 Chrome실행 후 Apps 에서 Betaflight를 선택하여 실행한다.
1. 먼저 우측 상단의 Device가 DFU로 선택되었는지 확인한다.
2. FC에 맞는 펌웨어 버전을 선택한다. (다른 버전을 선택하면 벽돌이 될 수 있으므로 주의)
3. 아래로 내려가서 Load Firmware를 눌러 펌웨어를 다운로드한다.
4. Flash Firmware를 선택하여 펌웨어를 업데이트한다.
BETAFLIGHT 설정하기
이제 FC를 재부팅하여 설정을 진행한다.
USB를 연결하고 우측 상단의 Connect 버튼을 누르면 연결이 완료된다.
좌측 메뉴에서 톱니바퀴모양 Configuration 버튼을 선택
- ESC/Motor Features 에서 DSHOT600을 선택한다.
- MOTOR_STOP을 선택하면 Arming되었을때 모터가 회전하지 않는다. (착륙 후 완전히 멈추었는지 확인하기 위해서는 해제하는것이 좋다.)
- Receiver 항목에서 SBUS로 설정되었는지 확인한다.
Save and Reboot을 누르면 저장하고 다시 시작한다.
이제 좌측 메뉴에서 Modes 로 이동
조종기의 ARM 스위치 설정
비행 모드 설정을 진행한다.
여기까지 완료하면 비행준비가 완료된 것이다.
2018/11/7 일부 내용 추가됨
2018/11/14 드론 커버, FPV카메라 마운트 추가됨
2019/1/30 드론 커버 디자인 파일 공유
'Drone' 카테고리의 다른 글
Cleanflight 2.4 에서 고정익 비행기 설정하기 (0) | 2019.01.07 |
---|---|
Hobbyking Bixler 무인기 프로젝트[Part.2] 드론 자동 비행 (0) | 2018.12.02 |
px4 ulog 분석 툴 소개 (9) | 2018.10.04 |
Cleanflight에서 naze32 보드로 비행기 제어하기 (0) | 2018.03.22 |
PX4 프로젝트 업데이트 (0) | 2017.05.30 |