pythonでtello コントロール2 | kazenokinositaのブログ

kazenokinositaのブログ

Telloは少しお休みで、pythonそしてPearOSとたわむれてます

ようやく、本題というかpythonを使ってtelloを飛ばすことに

なりました(vmware でubuntuをしよう)

本家のDJIのページにはTello SDK Documentation といった

6ページにコンパクトにまとまった文書があり、和訳もして

いただいているようですが

いきなり スレッドやsysをインポートしたりで

何が、何やら、ここでは最終的にdroneblocksでやった

動きをまずpythonにすることを目標にして頑張ります

1 まず飛ばそう

 

上のページを参考に、さらに離陸して着陸するには

こんな感じ

import socket #ともかくプログラムとつなげるには必要
import time     #telloは通信で送受信の時は休憩がいる

                     #sleepを呼び出すためのもの
# UDP socket 通信のプロトコルUPDで通信するおまじない

# 192.168.0.1、8889 はtello側で決まっている命令を受け取るアドレスとポートです
socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tello_address = ('192.168.10.1' , 8889)

#command-mode : 'command'何にせよまずtelloにcommandというテキストを送って

#これから命令します準備してねということ。
socket.sendto('command'.encode('utf-8'),tello_address)
print ('start') #これはコンソール(PC画面)に始まったよと表示してるだけ
#print('始まったよ')でよくないかしら

 

#次はいよいよ離陸の命令を送ります

socket.sendto('takeoff'.encode('utf-8'),tello_address)
print ('takeoff')
#print('離陸')にしたい

 

time.sleep(5) #ここでちょいと休憩してtelloが次の命令を

                    #受け付けられようになるまで休憩

                    #五秒は長い気がする、そこでいろいろ対策が

                    #あるようで、それはまた後でとりあえず

                    #2秒でも大丈夫みたい
socket.sendto('land'.encode('utf-8'),tello_address)
print ('land')

 

というわけで着陸します。ちなみに2秒はよいのですが

次のコマンドが15秒以上送られないと自動的に

着陸してしまうようです。