虚谷号

 找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 632|回复: 0

虚谷号控制Tello无人机项目

[复制链接]

3

主题

4

帖子

462

积分

中级会员

Rank: 3Rank: 3

积分
462
发表于 2019-3-26 12:58:32 | 显示全部楼层 |阅读模式
本帖最后由 Zoro 于 2019-3-26 12:58 编辑

简介:
       虚谷号控制无人机的原理是通过UDP协议,虚谷端通过python编写UDP客户端,
通过客户端向无人机服务端发送对应指令实现无人机的操控。
1、准备
    1)功能完好的Tello无人机

    2)功能完好的虚谷号板子

    3)Tello无人机开机

    4)虚谷号连接Tello无人机的wifi(默认是TELLO-XXX的无密码wifi)如图1   
2、控制无人机
     1)终端运行Tello.py文件,命令:python Tello.py   如图2

     2)终端输入command,UDP客户端会接收到无人机服务端返回的OK字符 如图3
         
     3)接着输入对应的指令就可操控无人机(如:takeoff 自动起飞)如图4
           
     4)详细指令请下载附件《Tello_SDK_2.0_使用说明.pdf》文件查看

Tello.py源码:(附件Tello.tar.gz为Tello.py的压缩包)
import threading
import socket
import sys
import time


host = ""
port = 9000
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(1024)
            print(data.decode(encoding="utf-8"))
        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("");

        if not msg:
            break  

        if 'end' in msg:
            print ('...')
            sock.close()  
            break

        # Send data
        msg = msg.encode(encoding="utf-8")
        sent = sock.sendto(msg, tello_address)
    except KeyboardInterrupt:
        print ('\n . . .\n')
        sock.close()  
        break







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

虚谷号

GMT+8, 2024-4-16 20:19 , Processed in 0.077815 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表