二、PC连接上tello edu并通过python进行简单控制

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》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值