









ssh 유저이름@IP주소해당 부분은 민규의_개발일지라는 분의 게시물을 많이 참고하였다.
(https://supersfel.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4%EC%99%80-%ED%94%BD%EC%8A%A4%ED%98%B8%ED%81%AC-%EC%97%B0%EB%8F%99-pixhawk-248)
나는 라즈베리파이 5B를 사용했는데, 참고한 게시물에서 다른 부분을 정리하고자 한다.
cd [프로젝트 폴더]
source [env 이름]/bin/activate
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip
sudo apt-get install python3-dev
pip install future
pip install pyserial
pip install dronekit
pip install MAVProxy
sudo apt update
sudo apt install python3-wxgtk4.0
pip install lxml
suro raspi-config
아래 명령어로 출력이 잘 나오는지 확인한다.
ls /dev/ttyAMA0
그 후 config 파일에서 블루투스 하드웨어를 비활성화하여 UART 시리얼 포트를 확보할 수 있도록 코드를 한 줄 추가해준다.
이는 기본적으로 블루투스가 사용하고 있던 고성능 하으뒈어 UART를 사용자가 GPIO 14, 15 핀을 통해 시리얼 통신 등의 다른 용도로 사용할 수 있게 해준다.
다만, 라즈베리파이 5B의 os인 bookworm부터는 /boot/config.txt가 /boot/firmware/config.txt로 이동하였다.

따라서 다음 명령어로 config 파일을 실행한 뒤, 맨 밑에 enable_uart=1로 포트가 열려있는지 확인 하고 밑에 코드를 한 줄 추가해주면 된다.
sudo nano /boot/firmware/config.txt (파일 실행)
dtoverlay=disable-bt (맨 밑에 추가)

그 후 저장하여 파일을 닫고 재부팅 해준다.

제품은 팰콘샵에서 라즈베리파이-픽스호크 연결 선을 구매하여 연결하였다.
(https://www.falconshop.co.kr/shop/goods/goods_view.php?goodsno=100086979)
전원 선을 꼭꼭꼭 잘 확인하여 상황에 맞게 사용하자.
link 1 down이라는 메세지와 함께 연결이 안된다면 일단 baudrate부터 조절해보고 그 후에 배선을 바꿔보면 될 것 같다.mavproxy.py --master=/dev/serial0 --baudrate 57600 --aircraft MyCopter

위 사진과 같이 잘 연결되어서 mode와 현재 발생 중인 PreArm 오류들을 잘 확인할 수 있다.
여기서 제일 위에 발생하는 WARNING: You should uninstall ModemManager as it conflicts with APM and Pixhawk을 확인해보자.
ModemManager는 LET 모뎀, 3G/4G USB 동글, GPS/통신 장치 등을 자동으로 감지해서 제어하는 서비스이다. 문제는 ModemManager가 /dev/tty, /dev/serial 같은 시리얼 장치에도 신호를 보내보는 것이다.
그래서 Pixhawk는 시리얼로 MAVLink를 쓰는데, ModelManager가 중간에 포트를 열었다 닫았다하며 연결에 영향을 줄 수 있다.
따라서 나는 ModelManager를 서비스만 비활성화하는 방식으로 warning을 해결하고자 한다.
(해당 오류는 시스템 설치 여부로 인해 경고가 발생하는 거라 비활성화해도 오류가 발생하긴 한다. 다만 나중에 쓸 수도 있으니.....삭제까진 하지 않고 비활성화만 하려고 한다.)
sudo systemctl disable --now ModemManager
systemctl status ModemManager (-> inactive (dead)이면 성공)
pgrep -a ModemManager (ModemManager 프로세스가 살아있는지 확인하는 명령어. 아무 출력 없으면 성공)
여기까지 성공했다면 라즈베리파이와 픽스호크의 연결이 잘 수행된 것이다. 끝!
오류 1
중간에 os를 밀고 다시 깔았더니 REMOTE HOST IDENTIFICATION HAS CHANGED - RSA key 오류 발생
이는 원격 호스트 식별 정보가 변경되어, 기존에 등록되어있던 RSA key가 다르기 때문이라고 한다.
쉽게 말하면, IP는 동일한데 목적지 서버 장비가 바뀌었을 경우 나오는 경고이다. 새로 os를 깔았는데 IP가 동일해서 이런 오류가 발생했나보다.
해결 방법
ssh-keygen -R [서버 ip]
참고 https://kingsong.tistory.com/127#google_vignette
오류 2
E: Package 'python-pip' has no installation candidate

python3-pip으로 변경
python-dev 도 python3-dev으로 변경
오류 3

해당 오류는 라즈베리파이 5가 Bookworm 시스템이기 때문에, sudo pip을 사용 시 "externally-managed-environment" 오류가 발생한다.
따라서, 가상 환경을 만들어서 수행하였다.
참고 https://mallard-oh-coding.tistory.com/20
mkdir [프로젝트 폴더]
cd [프로젝트 폴더]/
python3 -m venv --system-site-packages [env 이름]
source [env 이름]/bin/activate
pip install future
pip install pyserial
pip install dronekit
pip install MAVProxy
sudo apt update
sudo apt install python3-wxgtk4.0
pip install lxml