PIDrone Documentation - YuKyungKim/GitTest02 GitHub Wiki
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
- 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)
- ๊ธฐํ ์ผ์ ๋ฑ
์ฐธ๊ณ
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 ์ด๋ฆ์ผ๋ก ์ฐ๊ฒฐํ๋ฉด ๋๋ค.