라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol

픽스호크의 전력을 연결하는 배선도는 아래와 같다.

BEC = 일정한 전압을 공급하는 장치로서 픽스호크가 아닌 라즈베리 파이, 젯슨 보드 등에 전원 공급이 가능하다.

라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol

- 픽스호크 기본 wiring

RC 로 조종기의 신호를 수신 가능하다(ppm, sbus)

main output 을 모터의 ESC 와 연결한다.

모터의 순서와 output 의 순서를 맞게 연결해야한다. 모터의 순서는 아래 링크를 참조한다.

https://ardupilot.org/copter/docs/connect-escs-and-motors.html

라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol

전체적인 배선도는 아래와 같다.

단 조립할때 부저와 픽스호크를 5cm 보다 멀게 부착 해야한다. (가속도계에 영향이 가기 때문)

라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol

- 픽스호크의 부착된 LED 의 신호 의미

라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol

-  픽스호크 기본 설정 

픽스호크를 사용함에 있어서 기본설정에 순서는 아래와 같다.

1) frame 설정

2) 가속도계 교정(accelerometer calibration)

    최대한 무게중심에서 calibration 진행

3) 컴퍼스 교정(compass calibration)

    최대한 무게중심에서 calibration 진행

4) 라디오 교정(radio calibration)

    radio 에서 각 체널값이 가만히 있었을때, 중간값이 나오는지 확인

5) 변속기 교정(ESC calibration)

    - 프로펠러 제거

    - 스로틀 스틱을 최대로 올린 후 전원(배터리) 연결

    - 음성 메시지 확인후 전원 분리

    - 전원 재 연결

    - 안전 시위치 3초 이상 길게 누르기

    - 변속기 high 위치 인식 비프음 확인

    - 스로틀 스틱을 최하로 내린 후 변속기 LOW 위치 인식 비프음 확인

    - 배터리 분리

6) 모터 배열 및 회전 방향 확인

    BLDC 모터의 경우 두가닥의 전선을 바꾸면 회전 방향이 달라진다.

- 픽스호크 비행모드

비행모드는 아래와 같다. 비행모드를 미리 조종기의 값에 배정하고 비행하는동안 조종기의 신호 변경으로 비행 모드를 바꿀 수 있다.

라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol
라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol
라즈베리파이 픽스호크 연결 - lajeubelipai pigseuhokeu yeongyeol

- 비행시 절차

1) 세이프티 스위치 2초간 누르기 

    LED 가 붉은색으로 점등된다.

2) 시동 걸기 

    조종기의 방향으로 시동을 걸 수 있다.

3) 이륙

# 픽스호크 시리즈용 보조 컴퓨터

픽스호크 계열 보드에 보조 컴퓨터(라즈베리 파이, 오드로이드, 테그라 K1)를 붙이는 작업의 방식은 동일합니다. 보조 컴퓨터를 연결하려는 용도의 포트 TELEM 2에 직렬 포트로 연결하면 됩니다. 이 연결의 메시지 형식은 MAVLink (opens new window) 입니다.

# 픽스호크 설정

설정 가능한 직렬 포트에 MAVLink를 활성화하십시오.

TIP

Typically the TELEM 2 port is used for a companion computer.

더 많은 정보는 MAVLink 주변기기 편(GCS/OSD/보조기기)을 참고하십시오.

  • MAV_1_CONFIG = TELEM 2 (MAV_1_CONFIGTELEM 2 포트 매핑 목적으로 주로 활용합니다)
  • MAV_1_MODE = Onboard
  • SER_TEL2_BAUD = 921600 (로그 스트리밍 또는 FastRTPS 활용 목적으로 921600 이상 값을 권장합니다)

For more information see MAVLink Peripherals (GCS/OSD/Companion).

# 보조 컴퓨터 설정

다음 절차에 따라 직렬 포트를 연결하십시오. 모든 픽스호크 직렬 포트는 3.3V ~ 5V 레벨 호환으로 동작합니다.

  • ROS 노드와 통신 용도로 사용하는 MAVROS
  • 개별 작성 코드를 연결할 C/C++ 예제 코드 (opens new window)
  • 시리얼 인터페이스와 UDP 통신간 라우팅 작업을 수행하는 MAVLink 라우터 (opens new window)(추천) 또는 MAVProxy (opens new window)

# 하드웨어 설정

확실히 안전한 방법은 아래의 결선표를 참고하여 FTDI 칩을 내장한 USB-to-serial 변환 보드를 사용하는 방법입니다. 얼마든지 동작하고, 설정하기도 쉽습니다.

리눅스에서 USB FTDI 기본 명칭은 /dev/ttyUSB0와 같습니다. USB로 두번째 FTDI 칩을 연결했을 경우나, 아두이노에 연결했다면 /dev/ttyUSB1이 됩니다. 첫번째 연결 하드웨어와 두번째 연결 하드웨어의 혼동을 막으려면 ttyUSBx의 심볼릭 링크를 USB 장치의 제조사, 제폼 ID 에 따라 알기 쉬운 이름으로 만드시는 방안을 추천해드립니다. :::

The safe bet is to use an FTDI Chip USB-to-serial adapter board and the wiring below. This always works and is easy to set up.

TELEM2FTDIFTDI
1 1 DO NOT CONNECT!
2 2 Tx (출력) 5
3 3 Rx (입력) 4
4 4 CTS (입력) 6
5 5 RTS (출력) 2
6 6 GND 1

# 리눅스 프로그램 설정

On Linux the default name of a USB FTDI would be like \dev\ttyUSB0. If you have a second FTDI linked on the USB or an Arduino, it will registered as \dev\ttyUSB1. To avoid the confusion between the first plugged and the second plugged, we recommend you to create a symlink from ttyUSBx to a friendly name, depending on the Vendor and Product ID of the USB device.

픽스호크 장비는 Bus 003 Device 005: ID 26ac:0011입니다.

이 과정을 수행하여 /etc/udev/rules.d/99-pixhawk.rules 파일에 다음 내용에서 idVendor와 idProduct를 여러분의 장비에 맞게 바꾸어 추가한 새 UDEV 규칙을 만들 수 있습니다.

마지막으로 reboot를 수행하면 방금 작성한 스크립트를 통해, 어떤 장치를 연결했을 때 /dev/ttyUSB0 대신 /dev/ttyPixhawk가 뜨는지 확인할 수 있습니다.

Note

If you do not find your device, unplug it, execute lsusb, plug it, execute lsusb again and see the added device.

Therefore, we can create a new UDEV rule in a file called /etc/udev/rules.d/99-pixhawk.rules with the following content, changing the idVendor and idProduct to yours.

Finally, after a reboot you can be sure to know which device is what and put /dev/ttyPixhawk instead of /dev/ttyUSB0 in your scripts.

Note

Be sure to add yourself in the tty and dialout groups via usermod to avoid to have to execute scripts as root.

Last Updated: 1/21/2021, 9:57:26 PM