드론

1-5 아두이노 드론에서 DEVO 7 드론용 무선 송신기에 의한 RX701 수신기의 듀티 신호 오실로스코프 파형 실험

coding art 2017. 10. 21. 17:49
728x90

 

 

오픈소스 비행제어 소프트웨어인 멀티위(Multiwii)가 탑재된 아두이노 드론을 YMFC-3D  오픈소스 비행제어 코드를 사용하여 리모델링 해 보기로 하자. 비록 멀티위는 오픈소스로서 많이 보급된 것이 사실이지만 코드가 복잡하여 손대기가 쉽지 않다.

반면에 YMFC-3D  코드는 코멘트 문장을 제외하면 그 길이가 불과 260 줄 남짓으로 대단히 짧고 간결한 점이 특징이다. 유튜브에 소개되고 있는 YMFC-3D 드론은 450mm 규격의 드론 기체를 바탕으로 아두이노 우노 보드와 L3G4200D 자이로 센서를 사용하여 구성된다. 이 2가지 부품은 주변에서 싸게 쉽게 구할 수 있는 부품들이다.

아두이노 드론을 리모델링함에 있어서 부딪혀야 할 몇 가지 기본적인 의문점을 반드시 체크해 볼 필요가 있다. 첫 번째가 드론의 크기가 변동되면 비행제어보드가 어떤 심각한 영향을 받게 되지 않을까하는 점일 것이다. 이 점에 관해서 YMFC-3D 코드를 세밀히 검토해 보면 드론의 크기 또는 중량이나 모터의 출력 즉 와트(Watt) 와 관련된 명령이 전혀 없음을 쉽게 확인할 수 있다.

 

 

그렇다면 드론의 크기가 달라질 때에 과연 어떤 것들이 바뀌어야 하는 것인가 하는 점이다. 그 것은 바로 하드웨어인 드론 모터와 ESC 세트이다. 그렇지만 YMFC-3D 비행제어 코드의 내용을 검토해 보더라도 드론의 크기와 모터의 출력 특성을 규정지우는 특별한 파라메터는 없다. ESC에 관해서는 드론의 비행제어를 위해 교정(Calibration)을 하고 값을 읽고 쓰는 부분이 있을 따름이다.

그럼에도 불구하고 260줄 안팎의 실행 명령들은 과연 무슨 내용을 담고 있는 것인가? YMFC-3D 드론 코드에서 드론 모터와 ESC 세트가 변경되더라도 변함없이 유지 되어야 하는 부분이 있는데 그것은 바로 무선 송신기로부터 수신 받는 펄스형 듀티 신호의 크기임이 실험을 통해 확인되었다.

DEVO 7  무선 송신기 RX701 수신기 실험에서 확인한 바에 의하면 비행제어 모드 2에서 상승하강에 해당하는 쓰로틀 출력의 경우 이 듀티 신호의 크기는 1060∼1920 μ second 로 확인되었다. 물론 시간적으로 계속 변동되는 이 듀티 신호의 시간 간격에 해당하는 값이 비행제어보드와 연결된 ESC를 통해 드론 모터에 어느 정도 반영되는가 하는 문제는 결국 ESC 와 드론 모터의 성능 품질에 직결된 문제이다.

 

 

YMFC-3D 프로젝트 진행 단계에서 기본적으로 거치는 실험에 대한 간단히 검토해 보기로 한다. YMFC-3D 프로젝트에서는 Futaba  송수신기를 사용하고 있으나 프로마이크로 아두이노 드론에서는 DEVO 7을 많이 사용한다. 이 2 기종의 조종기가 사용 목적은 동일하나 제조사가 다르므로 드론 비행을 위해 송수신되는 듀티 파형의 동일함을 체크할 필요가 있다.

 

 

 

 

DEVO 7 송신기의 수신기인 RX701에 대해서 살펴보자. 사용 주파는 2.4 GHz 이며 7채널 수신기이다.
드론을 조종하기 위해서 필요한 최소한의 채널 수는 4채널이다. 추가 채널이 필요하다면 비행 모드 설정을 위해서 GEAR 채널을 쓰기도 한다. 하지만 YMFC-3D  비행제어 코드에서는 가장 많이 사용하는 비행제어 모드 2를 붙박이로 사용하는 것을 전제로 하고 있으므로 4채널이면 충분하다. 만약에 비행제어 모드 1을 쓰는 사용자라면 수신기 4채널과 아두이노 데이터 핀 4,5,6,7 번을 연결하는 순번과 해당하는 ESC 순서를 검토하여 변화를 주어야 함에 유의하자.

 

ELEVATION: PITCH, 전진 후진
AILERON: ROLL, 좌우 이동
THROTTLE: 상승하강 출력
RUDDER: YAW, 좌우 회전
GEAR: Flight Mode
AUX1,AUX2: 여유 채널

 

 

 

YMFC-3D 드론에서는 4채널을 사용한다. 비행제어모드를 Mode 2로 정한 상태에서  비행모드 설정을 위한 GEAR 핀을 사용하지 않는다는 점에 유의한다.

비행제어 모드2 는 사진과 같이 우측 스틱을 사용하여 전후진(PITCH) 좌우이동(ROLL)을 담당하고 좌측 스틱을 사용하여 상승하강(GAS 또는 THROTTLE) 기체 우회전/좌회전(YAW)를 담당한다. 
사용자 입장에서는 이 비행 제어 모드를 쉽게 바꾸기 어렵다는 점을 인식하고 가능하다면 비행제어 모드2 사용을 숙지하도록 하자.


아래는 YMFC-3D프로젝트의 무선 송수신기 듀티 파형 오실로 스코프 체크를 위한 구성도 이다. 참고로 아래의 실험은 기본 장비들이 필요하므로 스스로 하기 어려울 수도 있다. 아래의 내용을 읽어서 이해가 되면 본인이 실험을 한 셈으로 치고 결론을 활용하도록 하면 될 것이다.

 

 

아울러 이러한 문제점을 해결할 수 있도록 YMFC-3D 싸이트에서 최신 업데이트 버전인 YMFC-3D V2를 공개하였다. Futaba 송수신기 세트를 사용하지 않더라도 어는 정도 비슷한 급이라면 YMFC-3D V2 내부 코드에서 듀티 파형 크기를 1000∼2000 μ 세컨드로 변환을 시켜준다. 그대로 사용하면 될 것이다.


 

아두이노 드론에서 ESC는 리튬폴리머 배터리로부터 직접 전원 공급을 받는다. 3개를 직렬 연결한 12V 모델에서부터 2개용은 8V 1개용은 4V 가 될 것이다. 아울러 ESC는 내부 구조에 전압을 5V 로 만들어 주기 위한 레귤레이터 회로가 내장되어 있다.

드론에 4개의 ESC 가 설치되는데 그 중에 하나는 리튬폴리머 배터리에서 공급된 12V를 드론 모터 동력원으로 사용하면서 일부를 비행제어 보드용 전원 5V 공급을 위해 사용하게 되는 것이다. 나머지 3개는 이러한 역할을 하지 않음으로 인해 하나의 드론 모터는 전원 공급에서 조금의 불균형을 가지게 됨에 유의하자.
실제 드론 배선에서는 수신기의 4채널을 아두이노 우노의 디지털 핀 4개를 할당하여 아두이노에서 읽어 처리 후 ESC 에 데이터를 주도록 되어 있으나 지금의 듀티 파형 실험을 위한 현재의 실험 장치 구성에서는 아두이노 우노 보드를 굳이 경유할 필요가 없으므로 수신기에서 직접 ESC 로 데이터를 보내면 된다.

 

 

ESC에서는 수신기로부터의 데이터를 PWM(Pulse Width Modulation)처리하여 드론 모터로 보내게 된다. 사진 구성도에서 보면 모터의 3개의 배선이 보이는데 즉 전원과 PWM 배선임을 확인할 수 있다.

이 실험 장치에서 오실로 스코프를 통해 듀티 파형을 관찰하기 위해서는 RX701 수신기의 특정 채널과  GND 한 곳에 탐침을 설치하면 된다.

하지만 현재 기존의 멀티위 비행제어 코드를 탑재한 아두이노 드론의 리모델링이 목적이라면 기존 드론의 배선 구조를 활용하는 방안도 가능하다. 아래의 사진은 그 구조를 잘 보여 주고 있다.

 

 

듀티 파형 측정 실험 장치에서 쓰로틀(THROTTLE) 즉 ELEVATOR 와 롤(ROLL) 신호를 측정해 보도록 한다. 실제 드론에서는 안전을 위해 반드시 프로펠러를 제거해야 한다. 4개의 모터가 다 연결되어 있어도 무방하다. devo7 무선 송신기를 on 하여 ARM  작업을 마친다.
오실로 스코프 측정을 위해서는 아두이노 보드에서 데이터선 하나와 GND선 하나를 따내야 한다. 수 커넥터 점퍼 선을 이용하면 편리하다. 사진과 같이 커넥터 뒤편에서 점퍼 선의 탐침을 찔러 넣는다. 이 방법은 자동차 전자제어에서 센서의 파형을 측정할 경우와 점화 파형을 측정할 때에 이런 방식으로 탐침을 설치한다. 이 방법을 사용하면 아두이노 보드에 점퍼선 커넥터 부위에서 쉽게  탐침 설치가 가능하다.

 

 

이와 같이 리모델링 하기 위한 멀티위 드론을 1대 가지고 있으면 별도의 실험 장치를 구성할 필요는 없다.  즉 탐침 하나를 GND에 찔러 고정 시킨 후 나머지 하나는 돌아가면서 바꾸어 파형을 관찰하면 되는 것이다.

 

 

 

이런 방식으로 앞뒤 이동을 위한 피치 신호 폭과 상승 하강을 위한 쓰로틀 신호 폭을 오실로 스코프로 직접 측정하여 다음의 결과를 얻었다.

 

 

 

피치 신호 최대 폭  1860 μ 세컨드     피치 신호 최소 폭  1060 μ 세컨드

 

 

 

 


쓰로틀 신호 최소 폭 1120 μ 세컨드     쓰로틀 신호 최대 폭 1920 μ 세컨드

 

대략 1000∼2000 범위를 가지는 이 숫자들은 Librepilot 비행제어 모니터 코드를 써 보았으면 드론을 다룰 때에 모터 출력을 규정짓는 파라메터로서 혹 rpm으로 알려져 있기도 하다.  모터의 출력 특성을 의미하는 토크(Torque) 가 rpm 에 비례하므로 그다지 틀린 말은 아닌 듯 하나 실험 결과 이는 스틱 조종에 따라 무선 송신기로부터 발신되는 듀티 파형의 지속 시간을 의미한다는 점에 유의한다.

한편 오실로스코프 파형 실험과 별도로 YMFC-3D 프로젝트에서는 드론을 조립한 상태에서 YMFC-3D_receiver 코드를 사용하여 송신기와 바인딩 시킨 후 듀티 신호 파형을 측정하여 출력이 가능하다. 이 코드를 사용해서 출력해 본 결과를 다음과 같이 요약한다.
            1100≤   PITCH   ≤1900
            1100≤    ROLL   ≤ 1900
            1100≤ THROTTLE≤ 1900
            1100≤    YAW   ≤ 1900

스틱을 중앙에 위치시키면 1500의 값이 얻어진다. 스틱 움직임에 따른 약갼의 오차는 거의 8 정도 수준으로 10 이내로 보면 된다.