关于人工智能:大疆TT无人机编程初体验教你对拥抱开源的无人机为所欲为

7次阅读

共计 4065 个字符,预计需要花费 11 分钟才能阅读完成。

先放个我的项目演示视频镇帖:

https://www.bilibili.com/video/BV1rD4y1R7eo

意识我的敌人,大略都晓得,我是一个“运气爆棚”的人,常常能“捡”到一些好玩的货色。这不,前两天在家门口“捡”到一架 大疆 RoboMaster Tello Talent TT 教育无人机(下文简称:TT 无人机或 TT),是基于大疆 Tello EDU 无人机降级而来的新产品,能够用第三方软件进行编程管制,那还不连忙来试玩一下!

TT 无人机介绍

为了对这款 TT 无人机进行编程管制,我专门查(抄)阅(袭)了大疆官网对它的介绍和相干材料。

TT 无人机是大疆首款拥抱开源的教育无人机,为了使该款无人机可能更加合乎开源精力和青少年科技翻新教育外围,让国内中小学师生有更极致的教学体验,大疆与 DFRobot 单干,将 Mind+ 图形化编程软件与 TT 无人机深度联合,使得 TT 无人机更加锦上添花。通过丰盛的软硬件拓展性,能够实现例如环境感知、人脸识别、主动追随、手势辨认、手掌管制、多机协同、人工智能等各种利用。

那么 TT 无人机是如何做到拥抱开源的呢?

  • 基于 ESP32 控制器的 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:借助全新的 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 的入门教程,请参考我的另一本书:《物联网,So Easy!——基于 Blynk 平台的 IoT 我的项目实际》。

Blynk 我的项目设置

作为可能是第一款 TT 无人机的 DIY 版手机遥控器,我要把这个遥控器设计成什么样子呢?为了不便操控,以及应用体验的对立,这里我参考了 Tello App 的外观,设计了一个简化版的操控界面。

先来看一下官网的 Tello App 版遥控器:除了腾飞 / 起飞性能之外,Tello App 最重要的组件就是无人机航行管制了,它采纳了 2 个摇杆,来实现无人机的各种静止状态,如下图所示:

另外,咱们也能够在这个 App 顶部状态栏中看到无人机的一些状态信息,比方电量、蓝牙、速度、高度等,如下图所示:

我依据 Tello App 的主界面,设计了简化版的 Blynk 遥控器界面,如下图所示:

因为 Blynk App 的限度,不反对主动横屏显示,所以当咱们横屏操控时,显示的文字就变成竖直状态了,然而这丝毫不影响应用。

Mind+ 程序设计

设计完遥控器界面之后,就开始编程了。关上 Mind+ 软件,切换到 上传模式,同时在扩大中抉择主控板为 RoboMaster TT(ESP32),如下图所示:

留神,本我的项目中应用的 Mind+ 软件版本为 v1.6.5 RC2.0,随着软件降级,将来局部界面与性能可能进行改版,请依据理论状况调整批改。

而后在用户库中导入 Blynk 扩大库,如下图所示:

接下来就正式开始编程。首先是 TT 无人机相干的初始化设置与 Blynk 根底设置:开启无人机航行管制,设置 Blynk 为蓝牙 BLE 连贯模式(不便室外无 WiFi 场景也能应用),将蓝牙名称命名为 RMTT(TT 无人机英文缩写)。初始化实现后在点阵屏显示 TT 标记,而后在循环执行中运行 Blynk 相干的过程。

接着定时将 TT 无人机的一些传感器信息发送到 Blynk App 中进行显示,次要包含电量、速度、TOF 测距(后方间隔)、高度等。

而后是航行管制相干的程序。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 无人机更多好玩的创意。

正文完
 0