드론 쿼드콥터

Pixhawk에서 서보 제어하는 방법

하늘이푸른오늘 2016. 12. 16. 00:08

Servo

이 글은 Pixhawk와 APM2에 서보를 연결하는 방법, 송신기 또는 미션플래너에서 제어하는 방법에 대해 설명하는 글이다.

개요

콥터, Plane, 로버는 카메라 셔터 누르기, 낙하산 펴기, 테니스 공 떨어뜨리기 등, 다양한 목적을 위하여 서보를 제어할 수 있다. 이들 서보는 조종사가 송신기 스위치를 통해 직접 제어할 수도 있고, 지상국 혹은 미션의 일부로 전달된 명령을 통해 제어할 수도 있다.

아날로그 서보 또는 디지털 서보 모두 사용가능하다.

픽스호크에 서보를 연결하는 방법

  • 콥터를 사용할 경우, 서보를 AUX OUT 1-4에 연결하라, MAIN OUT 1-8은 400hz로 갱신되므로 피해야 한다.
  • Plane 이나 로버를 사용할 경우, 모든 핀은 50hz로 갱신되므로, MAIN OUT 또는 AUX OUT에서 사용되지 않는 것은 어떤 것이든 사용할 수 있다.
  • AUX OUT 5/6는 기본값으로 Relay로 설정되어 있어 사용할 수 없다. BRD_PWM_COUNT 변수를 6으로 두고, RELAY_PIN 과 RELAY_PIN2 를 -1로 바꾸면 이들 핀들도 서보 제어에 사용할 수 있다.
  • 픽스호크 비행콘트롤러는 서보에 전원을 공급하지 않으므로, 반드시 외부 BEC 혹은 5V를 공급하는 ESC를 사용하여야 한다.

AMP 2.x 에 서보를 연결하는 방법

  • 콥터의 경우 서보의 신호선을 APM 왼쪽면에 있는 A10 또는 A11에 연결하라. 
  • Plane의 경우, APM 뒤쪽에 있는 RC1~RC8 에도 연결할 수 있다.
  • 전원 및 접지선을 후면 파워레일(JP1 점퍼를 제거했을 경우) 또는 외부 BEC(JP1 점퍼가 그대로 있을 경우)에 연결한다. 서보 전원과 접지선을 절대 A10 또는 A11의 +/- 에 연결해서는 안된다. 그렇게 되면 서보가 전원을 메인 CPU와 공유하게 되고, 서보의 움직임에 따라 CPU의 전원이 등락하게 되어 CPU가 정지될 수 있기 때문이다. 동일한 이유로 JP1 점퍼가 그대로 있을 때 후면 파워레일은 사용해서는 안된다. 

서보를 카메라 셔터로 동작시키는 방법

서보를 카메라 셔터를 누르는 것처럼 설정하고 제어하는 방법은 카메라 짐벌 위키페이지에 상세히 나와 있다. 이렇게 설정하면 다음과 같은 장점이 있다.

  • 서보를 CH7/CH8 보조 스위치로부터 작동시킬 수 있다.
  • 서보를 한쪽 위치로 이동시키고자 할 경우, 잠시 지연된 후 원래 위치로 돌아오는 것을 하나의 미션 명령으로 수행할 수 있다.
  • 서보를 작동시킬 때마다 콥터의 위치와 자세가 데이터플래시에 기록된다.

단, 카메라 셔터 방식을 사용하면 미리 정해진 두 지점간의 이동만 가능하다는 단점이 있다.

아래는 Sparkfun’s AVC 2012 에 출품된 테니스 공 떨어뜨리기 비디오이다.



서보를 서보로 제어하는 방법

서보를 전통적인 방식으로 제어하는 것은 미션에서만 가능하다(즉 AUTO 모드). 다음과 같은 절차를 따른다.

  • APM 이나 Pixhawk를 미션플래너에 접속한다.
  • Config/Tuning > Full Parameter List 페이지에서 해당 서보가 연결된 RCxx_FUNCTION을 0으로 설정한다. (예 : APM 왼쪽면 A10에 연결하였을 경우 RC10_FUNCTION, 픽스호크 AUX OUT 1에 연결하였을 경우 RC9_FUNCTION)
  • Write Params 버튼을 누른다.

  • 비행시키고자하는 미션을 생성하고, DO_SET_SERVO 명령을 추가하고, "Ser No" v필드에 서보 번호(예: 9)를, "PWM" 필드에 원하는 PWM 값(대부분 1000~2000)을 입력한다.

참고로 DO_SET_SERVO 명령은 "do 명령"이므로, 웨이포인트와 웨이포인트 사이에만 실행시킬 수 있다. 따라서 미션의 최초 또는 마지막 명령으로는 사용할 수 없다. DO_SET_SERVO 명령은 그 바로앞에 있는 웨이포인트가 도달하면 즉시 시행된다.

미션플래너에서 테스트하기

미션플래너의 Flight Data 화면의 하단에 "Servo" 탭이 있다. 이 화면에서 서보가 정확하게 동작하는지 테스트할 수 있다.

===

원문 : http://ardupilot.org/copter/docs/common-servo.html