CC3D flight controller를 open pilot을 이용하여 설정해 보도록 하겠습니다. 이 단계에서 할 일은 CC3D controller에 open pilot에서 제공하는 CC3D용 firmware를 install할 것입니다. 이 firmware의 역할을 RC receiver에 전송된 transmitter의 조종 신호를 ESC로 분배하고 드론이 수평을 잡을 수 있도록 가속 센서와 gyro 센서의 값을 이용하여 스스로 제어하는 역할을 하게됩니다.
우선, open pilot webpage로 갑니다.
http://www.openpilot.org
상단 메뉴에서 Docs & Software > Software downloads 로 갑니다.
여러 개의 버전이 보일텐데, 그 중에서 자신의 컴퓨터의 운영체제 그리고 CC3D를 지원하는 version인지를 확인합니다. 제가 이 드론을 제작할 시점에는 15.02.02 버전이 최신이면서 windows 운영체제용이 있고 CC3D flight controller를 지원하는 것이었습니다. 따라서, 이것을 다운받아 컴퓨터에 설치합니다.
프로그램을 실행전에 USB cable로 컴퓨터와 CC3D를 연결합니다.
프로그램 목록에서 openpilot GCS를 실행하면 아래와 같은 화면이 보입니다.
오른쪽 상단의 Vehicle Setup Wizard를 누릅니다.
위의 대화창이 뜨는데요. 중앙의 빨간색 경고문구를 잘 보셔야 합니다. 이 작업을 진행하기 전에 드론에는 절대 프로펠러를 장착해서는 안됩니다. 작업과정중에 모터를 돌리게 되는데 그때 상해를 입을 수 있기 때문입니다. 따라서, 절대 프로펠러는 제거한 상태에서 진행해주세요. 프로펠러가 장착되어 있지 않은 것을 확인한 후에는 next 버튼을 누릅니다.
Erase all settings 체크박스에 체크를 하고 upgrade 버튼을 누릅니다. CC3D board에 openpilot firmware를 설치하는 과정입니다. 잠시 기다리면 'Board updated, please press 'Next' to continue.' 메시지가 뜹니다. Next 버튼을 누릅니다.
화면 하단에 'Detected board type'에 OpenPilot CopterControl 3D로 선택되었는지 확인합니다. 이 board가 바로 CC3D입니다. 정상적으로 detection 되었기 때문에 Next 버튼을 누릅니다.
Input signal 설정을 하는 화면입니다. 화면 아래의 네가지 아이콘이 각각 서로다른 signal type을 나타냅니다. 기본으로 PWM 방식이 선택되어 있습니다. Radio receiver의 각각의 채널당 하나의 signal line이 꽂혀있던 거 기억나시나요? 이 방식이 바로 PWM 방식입니다. 따라서 PWM을 선택하고 Next 버튼을 누릅니다.
Vehicle type을 고르는 화면입니다. 두 말할 것 없이 multirotor를 선택하고 next 버튼을 누르면 되겠습니다. CC3D flight controller는 비행기나 helicopter 심지어는 RC 자동차에도 장착해서 사용할 수 있나 봅니다. 어쨌든 다음 화면으로 넘어가지요.
Multirotor의 종류를 선택하는 화면입니다. QAV250은 quadcopter X를 선택하면 되겠습니다. 여기서 눈여겨 볼 것은 각각의 모터가 어느 방향으로 회전하느냐 하는 것입니다. 1번과 3번은 시계방향 2번과 4번은 반시계 방향으로 회전을 합니다.
이 화면은 ESC type을 선택하는 화면입니다. Rapid ESC를 선택하고 Next 버튼을 누릅니다.
지금까지 설정된 사항을 요약하여 보여주는 화면입니다. 오른쪽 하단의 connection diagram button을 누르면 CC3D와 receiver, 각 모터의 ESC line이 어떻게 연결되어야 하는지를 보여주는 그림을 볼 수 있습니다. Next 버튼을 또 눌러보겠습니다.
Gyro sensor와 accelerometer에게 수평을 알려주는 단계입니다. 드론을 책상위나 바닥의 평평한 곳에 놓고 기울어짐이 없도록 합니다. 그리고 calculate 버튼을 누릅니다. 계산 중에는 드론을 움직이거나 기울이면 안되겠습니다. 계산이 완료되면 Next 버튼을 누릅니다.
ESC calibration 화면입니다. 장착된 ESC의 endpoints를 조정하기 위한 작업니다. 이를 통해서 ESC가 flight controller에서 보내온 full throttle의 range가 얼마인지를 알 수 있게 됩니다. 여기서부터는 순서에 따라 잘 진행해야 합니다. 첫번째로 안전 관련 질문들의 체크박스에 하나씩 체크를 합니다. 프로펠러를 모두 제거해야 하고 배터리가 연결되어 있으면 안됩니다. 그리고 이상 두가지 사항을 읽고 이해했다고 한 번 더 확인합니다. 그리고 배터리가 연결되지 않은 상태로 start button을 누릅니다.
아래 그림과 같이 화면 하단의 배터리 라인 그림 중에서 오른쪽 것에 색상이 입혀집니다.
이제 Lipo 배터리를 드론에 연결합니다. 네 개의 ESC에서 삑 거리는 소리가 납니다. 여기서 주의해야 할 점은 삑 거리는 소리가 나면 바로 stop 버튼을 누릅니다. 만약 지체되게 되면 ESC가 programming mode로 들어가고 어쩌고 ... 우리가 원하는 바를 이루지 못한다네요. 지체 없이 stop을 누르게 되면 네 개의 ESC가 또 삐리릭 하고 울립니다. 그리고 battery를 분리합니다. 그리고 next 버튼을 누릅니다.
다시 한 번 경고메시지를 보게됩니다. 프로펠러는 절대 장착되어 있으면 안됩니다. 그리고 lipo battery를 다시 연결합니다. ESC에서 삐리릭 소리가 납니다. 그리고 next 버튼을 누릅니다.
1번 motor의 neural rate를 calibration 하는 과정입니다. Start button을 누르고 start 버튼 위의 slide를 조금씩 올려봅니다. Motor가 stable하게 회전하는 곳까지 slide를 올립니다. 커서의 방향키 중 좌우 버튼을 눌러서 미세조정을 할 수 있습니다. Motor가 stable하게 회전하는 지점에서 stop 버튼을 누릅니다. 아울러 모터가 그림과 같이 시계방향으로 회전하고 있는 지도 확인을 해야 합니다. 만일 방향이 다르다면 motor와 esc가 연결되 세 개의 선 중에서 아무거나 두 개를 교차하여 연결하면 motor의 방향이 바뀝니다.
나머지 세 개의 모터에 대해서도 반복합니다. 이 작업을 모두 마치고 next 버튼을 클릭하면 아래와 같은 창을 볼 수 있습니다.
이 화면에서는 QAV250 또는 ZMR250을 선택하면 됩니다. 그리고 next 버튼을 누르면 작업이 끝납니다. Save가 완료되고 board가 reboot되면 끝나는데 가끔 reboot이 fail될 경우가 있습니다. 그때는 usb cable을 제거하고 적어도 30초가 지난 후에 cable을 다시 연결합니다. 그리고 ok 버튼을 누르면 됩니다.
이제 남은 과정은 transmitter setup입니다. 새로운 창이 뜰텐데요. 아래와 같습니다. 초록색 Transmitter Setup Wizard 버튼을 눌러줍니다.
그러면 작은 pop-up 창이 뜨는데, 'Arming settings are ...' 그냥 ok 버튼을 누릅니다. 그리고 아래 화면에서 next 버튼을 누릅니다.
아래 화면이 뜨는데, 설정을 바꿀 필요는 없습니다. Next 버튼을 누릅니다.
아래 화면에서 역시 설정을 바꾸지 않습니다. 여기서 transmitter의 전원을 켭니다. RC receiver에 빨간 불이 들어온 것을 확인해 줍니다. 그리고 next 버튼을 누릅니다.
아래 그림에서 transmitter의 각 paddle이나 switch가 움직이는데 그거에 따라서 같이 움직여 줍니다. 두 개의 조종 stick 이외의 accesory 버튼들은 위치가 다를 수 있기 때문에 조종기에 달린 모든 걸 움직여 봅니다.
그래도 안되는 것들은 skip을 합니다. 그러면 아래 그림처럼 모든 조종간과 switch를 중간에 놓으라고 합니다. 그대로 합니다. 그리고 next 버튼을 누릅니다.
아래 화면처럼 작동 가능한 모든 paddle과 switch를 양쪽 끝까지 움직여 보라고 합니다. Paddle의 경우 위/아래 끝까지 그리 좌/우 끝까지 움직여 봅니다. 그리고 switch도 좌/우 끝까지 옮겨봅니다. 그리고 next 버튼을 누릅니다.
아래 화면과 같이 상단에 네 개의 체크박스가 보입니다. 조종기의 paddle을 움직여 보고 반대로 움직이는 것이 없을 때까지 체크박스의 조합을 이리저리 바꿉니다. 모든 paddle이 움직이는 대로 화면에서도 움직인다면 next를 누릅니다.
지금까지의 설정은 저장되지 않았습니다. 위 화면에서 다시 next 버튼을 누릅니다.
위 화면에서 'Arm airframe using throttle off and yaw left'로 바꿔줍니다. 그리고 save 버튼을 누르면 모든 작업이 끝납니다. Arming timeout 옵션은 드론이 착륙 후 아무런 transmitter의 신호를 받지 못한 채 일정 시간이 지나면 dis-armed 되는 시간을 설정해 주는 것입니다. 30초로 설정해 둡니다. Openpilot 우측 하단 부분의 diconnect 버튼을 누르고 usb cable을 제거합니다.
배터리를 연결하고 RC transmitter의 전원을 킨 후 throttle paddle을 아래로 내린 상태에서 왼쪽으로 움직이면 조종이 가능해집니다 (armed 상태). Dis-armed 상태로 만들려면 throttle을 맨 아래로 내린 후 오른쪽으로 paddle을 움직이면 dis-armed 상태가 됩니다. 이상태 에서는 throttle을 움직여도 모터가 돌아가지 않습니다. 드론을 잠시 착륙시키고 배터리를 제거하지 않은 상태에서 안전하게 드론을 살필 때 유용합니다.
총 7개의 posting을 통하여 드론을 직접 제작하는 과정을 살펴보았습니다.