1、PC连接tello edu发送命令和接受响应
将tello edu开机,此时飞机的状态指示灯显示 —> 黄色快闪
黄色快闪表示遥控信号中断
此时将PC连接上tello edu的WiFi,如下:
当PC连接上wifi之后,飞机的状态仍然是黄色快闪
# Tello3.py
#
# Tello Python3 Control Demo
#
# 朱雷·改
#
# http://www.ryzerobotics.com/
#
# 24/6/2021
import threading
import socket
import sys
import time
#发送命令和接受响应
#Tello IP:192.168.10.1 udp port:8889
#电脑的主机以及端口
host = ''
port = 9000 #PC通过udp端口9000从ip 0.0.0.0接受响应
# port = 8890 PC通过udp端口8890从ip 0.0.0.0收听消息
locaddr = (host,port)
# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tello_address = ('192.168.10.1', 8889)
sock.bind(locaddr)
def recv():
count = 0
while True:
try:
data, server = sock.recvfrom(1518)
print("recv >>>>> ",data.decode(encoding="utf-8"),"#server:",server)
except Exception:
print ('\nExit . . .\n')
break
print ('\r\n\r\nTello Python3 Demo.\r\n')
print ('Tello: command takeoff land flip forward back left right \r\n up down cw ccw speed speed?\r\n')
print ('end -- quit demo.\r\n')
#recvThread create
recvThread = threading.Thread(target=recv)
recvThread.start()
while True:
try:
msg = input("");
#msg = "command"
#print("msg:",msg)
if not msg:
break
if 'end' in msg:
print ('...')
sock.close()
break
# Send data
msg = msg.encode(encoding="utf-8")
#print("msg.encode:",msg)
sent = sock.sendto(msg, tello_address)
#print("sent:",sent)
except KeyboardInterrupt:
print ('\n . . .\n')
sock.close()
break
此时运行该程序即可对tello进行操作,输入command会出现如下指令,其中出现ok,即表示连接正常
输入其他指令,即可完成对tello的飞行控制,例如下:
具体的指令说明请参照《Tello_SDK_2.0_使用说明.pdf》
2、PC连接tello edu接受状态
此时在Tello3.py文件中将port改为8890即可,运行程序之后将自动会接收tello的状态信息
其中各个参数的含义见《Tello_SDK_2.0_使用说明.pdf》