Skip to content

01 PIDrone Documentation

YuKyungKim edited this page Nov 19, 2015 · 4 revisions

PIDrone

Overview

Raspberry-PI + Drone = PIDrone
Drone + Linux = PIDrone

Superman은 linux 기반 Drone OS이다.

Raspberry pi에 Superman을 올린 것을 코어로 하여 만든 Drone을 PIDrone이라 한다.

PIDrone을 만드는 법에 대해 기술한 문서이다.

....

table of contents

  • 필요한 부품
  • Raspberry pi pin 연결
  • Sensor Board
  • PID 설정
  • N100mini를 이용해 Raspberry pi를 ap로 만들기

필요한 부품

PIDrone을 만들기 위해 필요한 부품을 설명한다.

전체 드론의 무게, 전원의 출력과 용량, 모터의 출력, 날개의 크기, 센서 등을 모두 고려하여 각 부품을 선택해야한다.

  • Raspberry pi
  • Mini-wireless lan dongle(ex. IPtime n100 mini)
  • 드론 프레임
  • Brushless Motor
  • ESC(Electric Speed Controller)
  • 드론 날개 4개
  • Battery
  • 가속도-자이로 센서 (ex. MPU-6050, MPU-9150)
  • 기타 센서 등

Raspberry pi pin 연결

추가 예정

Sensor Board

추가 예정

PID 설정

추가 예정

N100mini를 이용해 Raspberry pi를 ap로 만들기

참고
http://www.rasplay.org/?p=6769
http://askubuntu.com/questions/180733/how-to-setup-an-access-point-mode-wi-fi-hotspot

PIDrone과 Contoller Android Application은 Wifi를 통해 소켓 통신을 한다.

PIDrone과 Android 기기를 같은 AP(Access Point)에 연결하여 사용하는 방법도 있으나,
실외에서 Drone을 조종할 경우 따로 AP를 준비하기 어려운 면이 다소 있기 때문에
Wireless lan을 이용해 PIDrone 자체를 AP로 만들어 그 AP로 Android 기기를 연결하는 방법을 사용한다.

N100mini - RTL8188CUS 사용.

$ ifconfig

명령어를 이용해 N100mini가 연결되어 있는지, wlan0혹은 wlan1으로 연결되어 있는지 확인한다.
아래의 설정은 wlan0에 연결된 것을 기준으로 하였다.

hostapd를 설치.

$ sudo apt-get install hostapd

AP의 정보를 설정한다. 이 설정에서는 보안 설정을 하지 않으나 보안 설정이 필요한 경우 상단 참고의 링크를 참고하면 된다.

$ sudo vi /etc/hostapd/hostapd.conf
	interface=wlan0
	driver=rtl871xdrv
	ssid=SSID_Name(설정할 ap의 이름 입력)
	channel=1

rtl871xdrv(드라이버)는 기본으로 설치되어 있지 않기 때문에, 드라이버를 포함하여 컴파일된 hostapd로 교체해야 한다.

$ cd /usr/sbin
$ sudo cp /usr/sbin/hostapd /usr/sbin/hostapd.bak
$ sudo rm -f hostapd
$ sudo wget http://dl.dropbox.com/u/1663660/hostapd/hostapd
$ sudo chown root:root hostapd
$ sudo chmod 755 hostapd
$ sudo vi /etc/network/interfaces
	auto lo
	iface lo inet loopback

	auto eth0
	allow-hotplug eth0

	iface eth0 inet manual
		auto wlan0
	iface wlan0 inet static
	address 10.10.0.1
	netmask 255.255.255.0

(주의) 아래 코드 편집 시 모양의 쌍따옴표가 아닌 " 모양의 쌍따옴표를 사용해야 한다.

$ sudo vi /etc/default/hostapd
	DAEMON_CONF="/etc/hostapd/hostapd.conf"

dhcp server 설치

$ sudo apt-get install isc-dhcp-server
$ sudo vi /etc/default/isc-dhcp-server
	INTERFACES="wlan0"

아래와 같이 설정하면 PIDrone의 IP는 10.10.0.1이 되고, PIDrone으로 총 15개까지 연결이 가능해진다.
필요한 경우 해당 부분을 변경하면 된다.

$ sudo vi /etc/dhcp/dhcpd.conf
	ddns-update-style none;
	ignore client-updates;
	authoritative;
	option local-wpad code 252 = text;

	subnet 10.10.0.0 netmask 255.255.255.0 {
		range 10.10.0.2 10.10.0.16; // 15개까지 연결 가능
		option domain-name-servers 8.8.8.8, 8.8.4.4;
		option routers 10.10.0.1;
		option broadcast-address 10.10.0.17;
		default-lease-time 600;
		max-lease-time 7200;
	}

	외에는 모두 주석처리

Raspberry Pi를 재부팅한 뒤 다음 명령을 실행한다.

$ sudo service isc-dhcp-server start
$ sudo service hostapd start

Android 기기에서 Wifi를 켜고, hostapd.conf에 입력했던 AP 이름으로 연결하면 된다.

Clone this wiki locally