0
0

More than 3 years have passed since last update.

Wifiルータに2機目のTelloEduを接続する

Last updated at Posted at 2021-07-27

前回の記事の続編です。

前回は、TelloEduドローン(1機)を、Wifiルータ(NEC製Atermルータ)に接続して、次のネットワーク構成を組みました。

スクリーンショット 2021-07-27 0.03.54.png

今回は、このネットワークに、2機目のTelloEduドローンを登場させます。
手順は、1機目のTelloEduドローンをWifiルータに接続したときと同じです。

実行手順

-1 新しい機体に電源を入れる
-2 MacbookをTELLO-XXXXのAPにつなぐ

iPhoneからTELLO-XXXXのAPにつなぎ、Telloアプリを起動すると、TelloEduのカメラ画像が受信できる

-3. Terminalで以下を実行する

Terminal
electron@diynoMacBook-Pro TelloEduSwarm % python3 telledu_connect_to_wifi_router.py -ssid aterm-xxxxxxxxxx -pw yyyyyyyyyyy
Wifiルータ(SSID): aterm-xxxxxxxxxx
Wifiルータ(パスワード): yyyyyyyyyyy
ap aterm-xxxxxxxxxx yyyyyyyyyyy
electron@diynoMacBook-Pro TelloEduSwarm % 
  • MacbookのWifi AP一覧から、TELLO=XXXXが消えている
  • TELLO-XXXXのAPに接続済みのiPhone内のTelloアプリを見ると、これまで受信できていたTelloEduのカメラ画像が消えている。(アプリは起動中)
  • iPhoneのWifi接続先を、(TelloEduが接続中の)Wifiルータに切り替える。iPhone内のFingアプリを見ると、IPアドレス一覧に、新たに'192.168.0.11'が表示されている。

-4. MacbookのWifi接続先を(TelloEduが接続中の)Wifiルータに切り替えて、Pythonスクリプトファイルを実行。

Terminal
electron@diynoMacBook-Pro TelloEduSwarm % python3 telloedu_single_remote_control.py -ip 192.168.0.11
IPアドレス 192.168.0.11 番のTelloEduドローンに操作コマンドを送ります。
('192.168.0.11', 8889)
electron@diynoMacBook-Pro TelloEduSwarm %

TelloEduは離陸し、しばらく待つと着陸した。

実行したスクリプトファイル

telledu_connect_to_wifi_router.py
import socket, argparse    

# WifiルーターのSSIDをコマンドライン引数から受け取る
parser = argparse.ArgumentParser(description='')  
parser.add_argument('-ssid')  

# Wifiルーターのパスワードをコマンドライン引数から受け取る
parser.add_argument('-pw')  

args = parser.parse_args() 
wifi_host_ssid = args.ssid
wifi_host_pw = args.pw

message_1 = "Wifiルータ(SSID): " + str(wifi_host_ssid)
message_2 = "Wifiルータ(パスワード): " + str(wifi_host_pw)

print(message_1)
print(message_2)

# TelloEduのプラウベートIPアドレスとポート番号は全機体、同じ定数文字列
tello_ip = '192.168.10.1'
tello_port = 8889

# (Wifi client) Macbook -> (Wifi host) TelloEduに接続
socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

tello_address = (tello_ip , tello_port)
wifi_host_ap = "ap {0} {1}".format(wifi_host_ssid, wifi_host_pw)
print(wifi_host_ap)

socket.sendto('command'.encode('utf-8'),tello_address)
socket.sendto(wifi_host_ap.encode('utf-8'),tello_address)
telloedu_single_remote_control.py
import socket, argparse, time    

# WifiルーターのSSIDをコマンドライン引数から受け取る
parser = argparse.ArgumentParser(description='')  
parser.add_argument('-ip')  

args = parser.parse_args() 
tello_ip = args.ip

print("IPアドレス {0} 番のTelloEduドローンに操作コマンドを送ります。".format(tello_ip))

# TelloEduのポート番号は全機体、同じ定数文字列
tello_port = 8889
tello_address = (tello_ip , tello_port)
print(tello_address)

socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

socket.sendto('command'.encode('utf-8'),tello_address)
time.sleep(10)
socket.sendto('takeoff'.encode('utf-8'),tello_address)
time.sleep(10)
socket.sendto('land'.encode('utf-8'),tello_address)
time.sleep(10)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0