极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3631|回复: 8

使用esp8266单片机控制tello无人机

  [复制链接]
发表于 2018-3-16 15:41:32 | 显示全部楼层 |阅读模式
本帖最后由 微风小杨 于 2018-3-16 15:48 编辑

文章写了一份在大疆论坛,这里也发一份

esp8266是国产mcu的一个里程碑,使用单颗芯片,高集成度,完成了wifi协议的封装,主频最高160mhz。这玩意在老外那边很火,不过在国内的极客圈目前还没见过非常有创意的制作。

下图是两种esp8266常见的开发用板,某宝价格15以内:

102038xjten66pc8wajkaj.jpg


左边这块叫esp-01,是比较常见的串口wifi模块,这块板子个人认为对于初学者较难使用,优点是体积小,推荐使用右边这种,叫做nodemcu,插上usb线就能编程和使用了

u=584983194,2217738602&fm=11&gp=0.jpg
Tello是大疆全资子公司睿炽科技使用大疆的飞控开发的一个掌上无人机,比较便宜,大概700左右,得益于大疆的飞控算法,具有稳定的悬停,500万像素的实时数字图传,操作简单,同时具备sdk二次开发能力。这就是接下来我们要介绍的:

Tello的命令控制接口大概是这样的(以tello sdk版本1.0.0为准):
Tello启动后,会开启一个wifi接入点,一般叫TELLO-XXXXX。当我们连上这个接入点后,Tello的ip一般为192.168.10.1,上面会监听udp端口8889,同时,所有的反馈信息,会发往客户连接机器的udp端口1518。我们要做的,就是先开启向192.168.10.1:8889端输出数据的socket,再开启一个监听本地端口1518的socket将所有数据打印出来。

听起来是不是很简单?如果你不需要看反馈,那么直接向192.168.10.1:8889发送udp指令也是可以的。

Tello支持的udp指令大概有这些, 全部是字符串(包括后面的“数字”):

command                进入命令控制模式(即我们要用的模式)
takeoff                     起飞
land                          降落
up xx/down xx         上/下/左/右 xx个厘米
left xx/right xx
forward xx/back xx  前进/后退 xx个厘米
cw xx/ccw xx            顺时针/逆时针 xx度
flip x                         翻滚,x可以是l,r,f,b以及任意两两组合,代表翻滚方向
speed xx                   速度设为xx厘米/秒
Speed?                     查询速度(会发往本地端口1518)
Battery?                    查询电池剩余
Time?                       查询当前飞行时间

由于是udp发送指令,这是esp8266的强项。esp8266支持使用arduino api对其进行编程,我下面给出的程序也即arduino ide中写的代码

控制tello示例代码(起飞-翻滚-降落):
https://pan.baidu.com/s/1lD0GdcZKpUYdmne6l5XLHg

官方的Arduino不自带esp8266支持,需要在首选项-附加开发板网址中添加一项
http://arduino.esp8266.com/stable/package_esp8266com_index.json
然后在工具-开发板-开发板管理里面,向下就能找到esp8266的下载支持了

上传前,如果使用的板子是nodemcu,请在工具-开发板中选择nodemcu 1.0,其他照着图示设置即可。然后,连上板子,将工具-端口设为板子的端口,点上传即可

105150owcqqzbmysvo7sv5.png

https://www.skypixel.com/videos/26e3cff1-648d-4e4e-ad69-c59668be298e?utm_source=copied&utm_medium=PCWeb&utm_campaign=share&sp=0

该演示代码只做了这么几个动作:起飞,抬高,后空翻,降落

由于esp8266短小精悍,无需手机即可支持wifi,同时,它也能绑在tello上面提供上层的逻辑指令,最重要的是,esp8266是个完整的mcu,可以外接各种传感器,甚至是射频模块,所以,也许这两者相结合,会有意想不到的新玩法~
回复

使用道具 举报

发表于 2018-3-16 22:01:49 | 显示全部楼层
太棒了,正想找这个破解方案呢!
回复 支持 反对

使用道具 举报

发表于 2018-3-16 23:00:12 | 显示全部楼层
四轴都还没玩过的老古董飘过~~~~
回复 支持 反对

使用道具 举报

发表于 2018-3-16 23:03:21 | 显示全部楼层
太棒了。一直想做个WIFI远程控制视频小车PWM驱动的。由于不太会玩,用01的感觉好费劲啊.真希望楼主到时候指点下。
回复 支持 反对

使用道具 举报

发表于 2018-3-16 23:37:30 | 显示全部楼层
用nodemcu接个键盘和小屏,想想都激动。
回复 支持 反对

使用道具 举报

发表于 2018-3-19 09:01:32 | 显示全部楼层
顶帖  
回复 支持 反对

使用道具 举报

发表于 2018-3-19 23:22:10 | 显示全部楼层
不错哦~~~但是好像还是有些指令没有包括进去吧
比如拍照?
回复 支持 反对

使用道具 举报

发表于 2018-3-29 14:05:29 | 显示全部楼层
顶帖  顶帖  顶帖  
回复 支持 反对

使用道具 举报

发表于 2018-4-2 06:50:56 | 显示全部楼层
大神,有两个问题哈,1)你可知道如何将,forward(),和left(),让这两个指令同时发生?2)NodeMCU,可以把数据回传到电脑上吗,如果只是给NodeMCU外接电源的话。
回复 支持 反对

使用道具 举报

高级模式  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2018-8-16 16:41 , Processed in 0.052708 second(s), 6 queries , File On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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