先放一个项目演示视频镇帖(点击小程序查看演示视频):
认识我的朋友大概都知道我是一个幸运的人,经常能捡一些好玩的东西。不,两天前我在家门口捡了一架(以下简称:TT 无人机或 TT),是基于大疆 Tello EDU 无人机升级的新产品可以用第三方软件进行编程控制,所以不要试试!
TT 无人机介绍
为了对这款 TT 无人机进行编程控制,我专门查阅了大疆官网的介绍及相关资料。
TT 无人机是大疆首款拥抱开源的教育无人机 ,为了使无人机更符合开源精神和青年科技创新教育的核心,使国内中小学教师和学生有更极端的教学经验,大疆和 DFRobot 合作,将 Mind 图形编程软件与 TT 无人机的深度结合使无人机深度结合 TT 无人机更像虎添翼。可实现环境感知、人脸识别、自动跟随、手势识别、手掌控制、多机协作、人工智能等各种应用。
那么 TT 无人机如何拥抱开源?
:TT 大疆无人机原产品 Tello EDU 在无人机的基础上,增加了开源控制器。它是一个基础 ESP32 基于芯片的主控板 ESP32 强大的开源生态可以使 TT 同时支持无人机 Arduino、microPython、编程环境,如图形化。同时借助 ESP32 强大的 WiFi、蓝牙连接功能,通信能力强。
:搭载 RGB 全彩 LED 灯、8×8 红/蓝双色 LED 点阵屏、ToF 红外测距传感器可实现灯光控制、图案动画显示、智能避障等编程效果。
:为使用户能够连接更多的开源硬件,实现更丰富的创意,TT 无人机提供了一个 2×7 PIN 2.54mm 支持间距直插封装接口 I2C 、SPI 、UART 、GPIO 并提供多种编程协议 5V/3.3V 电源接口。
:借助全新的 RoboMaster SDK 以及视频流数据,可以轻松支持各种可编程传感器接口,机器视觉、深度学习等人工智能尖端技术也可以进入中小学课堂。
编程控制框架
若需要实现对 TT 控制无人机有两种想法:
1、:TT 其实无人机和大疆差不多。 Tello 无人机,它有自己的飞行控制器,获取陀螺仪等传感器信息来控制飞机的四个空心杯电机,从而控制飞机的物理运动。来自手机 App 或者可以直接发送手柄的控制指令 TT 无人机控制器通过控制器进一步成为飞行指令;无人机的一些信息,如功率、当前高度等,也可以通过控制器直接发送。
2、:事实上,间接控制是通过间接控制的 TT 实现扩展模块。TT 扩展模块对无人机的控制实际上就像手机 App、像手柄一样,通过方向 TT 无人机控制器发送控制指令。这种具体的通信过程是由于 TT 机载无人机 Micro USB 接口通过实现的方法。然后就可以对了 TT 扩展模块编程,获取第三方软件或各种开源硬件和传感器的相关信息,然后间接控制 TT 无人机。
所以,TT 扩展相当于附着 TT 无人机上方的外脑。它不仅拓展 了 TT 无人机本身的感知能力也丰富了 TT 无人机的功能。我们可以通过方向 TT 扩展模块烧写自己的程序,使其 TT 完成无人机组合仅仅依靠无人机组合 TT 无人机本身难以完成的复杂飞行任务。与手动遥控相比,借助程序控制,我们可以完成更准确的控制指令。
试飞小任务
介绍了这么多,然后我们开始对待它 TT 编程无人机完成试飞任务。
介绍了大疆官方资料 TT 无人机可以通过 Tello App 和定制版 GameSir 小鸡手柄 T1D 进行遥控。既然是拥抱开源的教育无人机,我当然应该这样做 TT 无人机为所欲为,为什么不自己设计呢? DIY 手机遥控器的版本:添加任何功能,如增加显示各种外部传感器数据的功能;如何玩,如编程,实现更复杂的特技动作。
既然有了官方支持的遥控器,为什么要自己设计另一个遥控器原因如下:
如果使用 Tello App 远程控制不能使用编程功能,更不用说集成第三方传感器了 TT 无人机跟普通的 Tello 无人机没有区别。
如果使用 GameSir 遥控手柄,虽然可以编程并添加第三方传感器,但大疆官员只提供 Arduino 代码版的编程示例,没有图形版的示例程序,不适合大多数中小学生学习。
那我将如何实现呢? DIY 遥控器呢?
为了方便大家上手,我会用的。 Mind 图形编程环境,通过简单的积木拖动,可以完成丰富的功能;
试玩过程中,为了降低硬件成本,我将仅使用手机,通过 Blynk 实现物联网平台 DIY 遥控器的设计器。Blynk 物联网平台是一个非常简单易用的物联网开发平台,可以在几分钟内为您的物联网项目创建手机 App。
为了实现这个项目,我升级了以前的设计 Mind 版的 Blynk 支持用户库 TT 无人机编程。在学习了这个项目的编程原理后,除了自己设计手机 App 除了控制大疆无人机,还可以设计实体版的硬件遥控手柄。
关于 Mind 由于篇幅有限,请参考软件使用教程 Mind 官方教程。
关于 Blynk 请参考我的另一本书:
Blynk 项目设置
作为可能是第一款 TT 无人机的 DIY 我想把这个遥控器设计成什么样的手机遥控器?为了方便操控和统一使用体验,我在这里参考 Tello App 设计了简化版的操控界面。
先来看看官方的 Tello App 遥控器的版本:除了起飞 / 除降落功能外,Tello App 最重要的部件是无人机飞行控制,它使用 2 如下图所示:
此外,我们也可以在这里 App 无人机的一些状态信息,如电量、蓝牙、速度、高度等,如下图所示:
我根据 Tello App 主界面设计简化版 Blynk 遥控界面如下图所示:
由于 Blynk App 不支持自动横屏显示,所以当我们控制横屏时,显示的文本会变得垂直,但这根本不影响使用。
Mind 程序设计
设计完遥控界面后,开始编程。 Mind 软件,切换到上传模式
,同时,在扩展过程中选择主控板 ,如下图所示:
注意本项目中使用的注意事项 Mind 软件版本为
v1.6.5 RC2.0
,随着软件升级,未来可能会修改一些界面和功能。请根据实际情况进行调整和修改。
然后导入用户库 Blynk 扩展库如下图所示:
然后正式开始编程。首先是 TT 与无人机相关的初始设置 Blynk 基础设置:开启无人机飞行控制 Blynk 为蓝牙 BLE 连接方式(方便室外无便) WiFi 也可以使用场景),将蓝牙名称命名为 RMTT (TT 无人机英文缩写)。初始化完成后,在点阵屏幕上显示 TT 标志,然后在循环执行中运行 Blynk 相关流程。
接着定时将 TT 一些无人机传感器信息发送到 Blynk App 显示主要包括电量、速度、OF 测距(前方距离)、高度等。
然后是飞行控制相关的程序。TT 无人机在 Mind+ 中的底层 SDK 提供了两种控制模式:与。本项目中使用的最新的 Mind+ v1.6.5 RC2.0 版本中,图形化指令调用的是阻塞式模式的 SDK。由于 Blynk 需要与服务器“时刻”保持通信,所以阻塞式模式与 Blynk 一起使用时,会导致 Blynk 与服务器的通信中断。所以本项目中的飞行控制,我们通过直接发送 SDK 控制命令的方式来实现非阻塞式的控制方式。通过查阅 TT 无人机的官方 SDK 手册,我们可以很容易得到不同飞行状态对应的指令,如下图所示:
另外 TT 扩展模块与 TT 无人机主体之间的通信是通过串口1 进行的,所以编程时只要让 TT 扩展模块通过串口1 向 TT 无人机主体发送指令即可。举个例子,如果要控制 TT 无人机自动起飞,只要发送 [TELLO] takeoff
指令即可;如果要控制 TT 无人机向右飞 30 cm,只要发送 [TELLO] right 30
即可。对应的图形化指令如下:
了解了 TT 无人机 SDK 指令的发送方式之后,我们就可以正式对 TT 无人机进行飞行控制了。
首先是一键起飞与降落。Blynk App 中 V0 编号按钮,代表起飞控制;V1 编号按钮代表降落。起飞和降落的时候,显示相应的向上和乡下箭头,起到提示作用。程序如下图所示:
接着是左摇杆的编程。左摇杆主要用来控制 TT 无人机的向上(U:up)、向下(D:down)、顺时针旋转(大 C:ccw)、逆时针旋转(小 c:cw)。进行相应的飞行任务时,在点阵屏中显示相应的提示信息。程序如下图所示:
右摇杆的编程也是类似道理。右摇杆主要用来控制 TT 无人机的向前(F:forward)、向后(B:back)、向左(L:left)、向右(R:right)。同样也要在点阵屏中显示相应的提示信息。程序如下图所示:
最后我们再增加一个安全防护措施:当 TT 无人机与手机遥控失去连接时(TT 拓展失去连接或者 Blynk 失去连接),让它自动降落,同时点阵屏显示 E(Error)提醒用户,保证安全。程序如下图所示:
以上就是本项目的完整设计过程,由于篇幅限制,只设计了一个简单的程序。完整的程序如下图所示,你也可以对该程序进行修改,添加更加酷炫的功能或者飞行特技。
效果演示
上传程序到 TT 扩展模块,一起到户外去试飞一下吧。再来看一遍演示视频吧。
总结
本次试飞体验教程到这里就结束了,总体来说,结合大疆完善的飞控技术,和 Mind+ 简单的编程体验,只需要通过简单的图形化指令拖拽,发送相关的飞行指令,就可以完成复杂的飞行运动控制,上手这款 TT 无人机还是非常容易的。当然本文只是探索了 TT 无人机很简单的一部分功能,后面有时间,我将为大家解锁 TT 无人机更多好玩的创意。
点个与支持一下吧 ↓↓↓