教科書の香り、名前書き、定期券 🎒✨ #学生の季節感 #季節感

「どれも懐かしい、春の香り ✨ 」
そんな季節感 🎒✨
import socket
#import tellopy # 公式(?)ドローン制御ライブラリ
#import djitellopy
tello_ip = b'192.168.10.1' # Tello の IPアドレス
tello_port = 8889 # Tello の UDP ポート番号
tello_address = (tello_ip, tello_port)
res_port = 1518
srv_address = (b'',9000)
tello_socket = object # ドローンの接続用(nullの代替が分からない)
sw_res = True # print message: True or False
print("TELLO TEST Start") # テスト用
# ドローンへの接続
def connect():
global tello_socket,srv_address, tello_address
tello_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# tello_socket.bind(srv_address) # 必要性不明
if tello_socket == object: return
tello_socket.sendto(b'command',tello_address)
getRes()
# 応答の取得
def getRes():
if sw_res==False: return
global tello_socket,res_port
if tello_socket == object:
print("NO SOCKET")
return
retv, server = tello_socket.recvfrom(res_port)
msg = retv.decode(encoding="utf-8")
print(msg)
return msg
# 飛行開始
def takeoff():
if sw_res==False: print("takeoff")
global tello_socket,tello_address,tello_ip,tello_port
tello_socket.sendto(b'takeoff',tello_address)
getRes()
# 着陸
def land():
if sw_res==False: print("land")
global tello_socket,tello_address,tello_ip,tello_port
tello_socket.sendto(b'land',tello_address)
getRes() # 着陸完了後に OK が返ってくる
# 高度下げ
def down(dist):
global tello_socket,tello_address,tello_port
if sw_res==False: print("dist:"+str(dist))
tello_socket.sendto(b'land '+str(dist),tello_address)
getRes()
def quit():
global tello_socket
tello_socket.close()
def resTest():
global tello_socket
retv = getRes(tello_socket)
print(retv)
DJIのドローンTello をパソコンから動かして遊んでる。やっと、飛行、着陸ができる様になった。本のサンプルプログラムが不親切で、だいぶ手こずった。
手こずったのには、Pythonの開発環境を構築できていないのも一因だったりする。雑誌で見ると、開発環境には anaconda3と Visual Studio Code がイイと書いてあることがほとんどだっので、トライしてみた。
困ったのは、pip でインストールしたドローンの操作ライブラリが使えない問題。環境は、MacBookPro の iOS上。Python3は anaconda3 で導入。エディタは、Visual Studio Code を選び、Python の拡張機能を組み込んである。
まず、Python の拡張機能で、anaconda3 の Python を起動するための設定。Visual Studio Code の [Code] [基本設定] [設定] で、[拡張機能] [CSS言語機能] [Python] をクリックし、右の設定項目 [Default Python] に anaconda3 のパス 、
「 /Users/ [user] /opt/anaconda3/bin 」
を設定する。
これで、右上の [▷] を押して、実行とデバッグができる様になる。
もう一つの問題は、pip でインストールした Tello 操作ライブラリ tellopy が使えないこと。これは、『Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法』に書いてあるとおりにやることで解決した。
具体的には、MSCode 上で Ctrl + shift + ^ キーを押して、ターミナルウインドウを表示させ、
「 pip install tellopy 」
として、Tello コントロール用の tellopy モジュールをインストールする。Python を起動し、import tellopy を実行した後に、print(tellopy.__file__) の応答から、モジュールのディレクトリーパスを抜き出す。
設定タグで extra path を検索し、[項目の追加] をクリックして、先に取得したモジュールのディレクトリーパスを追加して終了。
念のために VSCode を再起動して、ソース画面で import tellopy に波線が無いことを確認出来る。ここまで来るのに、かなりの時間が掛かった。
ここまで行くと、右上の [▷] の Debug Python File を選択すると、デバッグモードが立ち上がり、ブレークや変数のウォッチとかができる様になる。
ここまで、ネットで調べてやっとできたんだけど、ネットの人は凄いなぁと思った
Tello の制御用のプログラムも動いたんだけど、動作の様子を動画に撮って、アップの実験がしたい。