05. Raspberry Pi를 사용하여 Mavlink WiFi 브리지 만들기(작업중) - pineland/px4 GitHub Wiki

1. 개요

이 페이지는 아래의 그림과 같이 Raspberry Pi (RPi)를 3DR 텔레메트리 라디오의 게이트웨이로 설정하는 방법을 보여준다. 이를 통해 WiFi를 통해 PC를 RPi에 연결할 수 있으며, RPi는 텔레메트리 링크를 통해 드론으로 통신을 전달한다.

이 학습을 수행하려면 다음 항목이 필요하다.

  • 라즈비안이 설치된 SD 카드가 장착된 RPi
  • Wifi 동글
  • 3DR 텔레메트리 라디오
  • 드론 기체

2. RPi 시작 및 Raspbian 설정

RPi를 처음 부팅하면 Raspberry Pi 구성 유틸리티가 로드되고 다음을 설정하고 재부팅한다.

  • 파일 시스템을 확장한다.(SD 카드의 모든 여유 공간을 사용할 수 있다)
  • Time zone 설정
  • 부팅 옵션이 콘솔로 부팅되도록 설정
  • “Advanced option”에서 SSH 사용 설정 이제 RPi에서 MavProxy를 설정하고 액세스 포인트로 설정하여 로컬 WiFi 네트워크를 생성 할 수 있다.

3. RPi를 AP로 설정

소프트웨어 패키지를 다운로드하기 위해 RPi가 인터넷에 액세스 할 수 있는지 확인한다.

3.1 hostapd 및 dhcp 서버 설치

RPi를 AP로 설정하고 연결된 컴퓨터(DHCP 서버)에 IP 주소를 할당하는데 필요한 소프트웨어를 설치하기 위해 RPi에서 다음과 같이 실행한다.

sudo apt-get update
sudo apt-get install hostapd isc-dhcp-server

3.2. DHCP 서버 구성

3.2.1 /etc/dhcp/dhcpd.conf 파일 설정

/etc/dhcp/dhcpd.conf 파일을 편집하여 WiFi를 통해 연결된 컴퓨터가 IP 주소, DNS 및 기타 정보를 자동으로 가져와 RPi를 통해 연결할 수 있도록 한다.

sudo vi /etc/dhcp/dhcpd.conf

다음 행을 찾아 행의 시작 부분에 #을 추가하여 주석 처리한다.

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

그런 다음, authoritative; 행을 찾아 시작 부분에서 #을 제거한다.
마지막으로 RPi가 연결하는 클라이언트에 할당할 네트워크 주소 DNS 서버 및 게이트웨이 정보를 구성하기 위해 맨 아래의 행에 다음을 추가한다.

subnet 192.168.43.0 netmask 255.255.255.0 {
    range 192.168.43.10 192.168.43.50;
    option broadcast-address 192.168.43.255;
    option routers 192.168.43.1;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
}

이더넷 연결을 통해 RPi를 사용하여 다른 네트워크에 브리지 할 경우, 위의 설정된 주소 범위가 이더넷 연결을 통해 RPi가 연결된 네트워크와 충돌하지 않아야한다. 예를 들면, 로컬 네트워크가 주소 범위 192.168.43.xx를 사용하는 경우에 다른 주소 범위를 선택해야 한다. 또한 라우터 주소 192.168.43.1은 RPi의 IP 주소가 된다.(나중에 설정)

3.2.2 /etc/default/isc-dhcp-server 파일 설정

어떤 네트워크 인터페이스가 활성화 될 것인지 서버에 알리기 위해 /etc/default/isc-dhcp-server 파일을 설정한다.

sudo vi /etc/default/isc-dhcp-server

INTERFACESv4=""을 찾아서 INTERFACESv4="wlan1"로 바꿔준다.

3.2.3 정적 IP 주소로 wlan1 인터페이스 설정

이제 자체 고정 IP 주소를 갖도록 RPi에 무선 인터페이스를 설정하고 들어오는 연결을 받도록 설정한다.

sudo ifdown wlan1
sudo vi /etc/network/interfaces

다음과 일치하도록 파일의 내용을 바꾼다.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0

iface wlan0 inet static
  address 192.168.43.1
  netmask 255.255.255.0

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp

고정 IP 주소 (192.168.43.1)가 무선 LAN 인터페이스 (wlan1)로 설정된다.
이 구성은 다시 부팅 할 때까지 적용되지 않으므로 이 주소를 즉시 할당하려면 다음을 입력해야한다.

sudo ifconfig wlan0 192.168.43.1

<참고> /etc/network/interfaces 설정 매개변수 설명     

auto [[인터페이스명] [인터페이스명]..] ;물리적인 인터페이스를 올림
iface [인터페이스명] ;논리적인 인터페이스

이후 network interface를 재설정하기 위해서는 아래의 명령어를 입력한다.
systemctl restart networking.service

임의로 인터페이스를 내리고 올리는 명령어는 다음과 같다.
sudo ifdown eth0
sudo ifup eth0

ifconfig로 확인을 했어도 적용이 안되면, 재부팅한다.
     key_mgmt=WPA-PSK
}
⚠️ **GitHub.com Fallback** ⚠️