2018年11月14日,深圳,DJI大疆创新与苹果公司宣布,将在各自官方渠道公开销售特洛Tello EDU教育编程无人机,为全球青少年及无人机爱好者带来这一优秀的教育科技产品。那么这款无人机在编程教育上又有那些过人之处呢?适合小孩子吗?
睿炽科技表示,特洛Tello EDU专为教育领域的场景和需求而设计,是一款独一无二的教育编程无人机。你能通过它轻松学习 Scratch、Python 和Swift 等编程语言。更丰富的 SDK 2.0支持命令和数据交互,你可以结合“挑战卡”编写代码指挥多台 Tello EDU 编队飞行,或者为它开发奇妙的 AI(人工智能)应用,编程从此生动有趣。下面让我们先通过一个视频来了解一下这款无人机。
看完视频后,我们接下来解答一下大家普遍关心的几个问题,并根据视屏中提到的功能进行逐一的测试。
一:操控与娱乐性能
这款无人机可以通过移动设备(手机/ipad)安装配套的App进行操控,可以说非常简单,极易上手。在我们测试过程中,6岁的多的小朋友经过指导便可以控制无人机在室内进行飞行。你可以从网上看到很多相关的评测文章,了解硬件相关的信息与特性。我们接下来主要是讲这款无人机关于编程操作的相关评测,该文也可以做为一个简单的入门引导教程。
二:这款无人机适合小孩子吗?
除了针对这款飞行器配备的操控APP外,你还可以下载另一个可以用于学习编程的TELLO EDU 同名APP,这个应用主要有三大功能板块,如下图所示。第一就是主界面的12星球编程游戏,用来进行编程学习,利用积木编程控制飞行器闯关,从而学习编程知识与无人机编程操控,这一点可以说是专门针对编程入门的青少年而设计的;第二就是左下角的“遥控”手柄,可以直接与无人机进行wifi链接,然后进行遥控飞行;第三就是通过积木编写程序程控制你的无人机,也就是左下角的“积木”。
对于小孩子来说,学习建议先从编程游戏开始,如果你有scratch基础更佳。点击图中的地球(5个关卡),便可以进入到游戏编程中(目前一共12个星球,后面的关卡需要付费购买),这个编程游戏既可以用来学习编程的相关知识,同样也是进行真机编程操控的一个教程,积木式编程可以说是针对小学生进行编程教育的最佳选择。
再通过挑战游戏掌握了相关指令的功能与使用后,接下来就可以点击左下角的积木进入编程控制界面了。点击左上角,通过wifi搜索到Tello的无线网络,连接后就可以进行编程控制了。通过各种积木组合,控制无人机做各种飞行动作。
除了官方的APP之外,Tello EDU还支持Scratch来进行编程控制,这都非常适合孩子进行编程学习。
三:如何通过Scrath来控制Tello EDU?
那么如何在我们的scratch软件(公众号回复“?”一分钟了解什么是scratch)中添加无人机扩展呢?首先确认你的电脑已经安装了scratch2.0,并能够进行无线网络连接,如过无法通过无线连接无人机,程序将无法进行控制。
第一步:电脑上安装node.js(搜索Node.js 安装配置教程)
第二步:下载扩展程序,并解压。(点击文末阅读原文)
第三步:打开Scratch,按住shift键不放,用鼠标点击菜单中的“文件”,选择“导入实验性HTTP扩展功能”,选择上一步下载文件Scratch-tello目录中的“TelloChs.s2e”,这样就完成了扩展添加。,你会在更多积木中看到。
第四步:使用node.js命令运行刚刚下载的文件夹里的 “Tello.js”。
第五步:将电脑接入Tello EDU的无线网络就可以开始你的创作了。
在使用Scratch进行编程控制的时候有些朋友会发现某些指令操作会被忽略掉,根据我们分析可能是因为Scratch发出的指令,都会通过UDP协议发送给无人机,它只是负责发送,而并不会等待无人机给出响应,就有可能存在无人机在某一时刻同时收到多个指令(比如无人机在执行往前飞10米的过程中收到往回飞),导致部分指令并没有给出正确的响应,以至于不会被执行,目前的方法可能就只有在指令间加长等待时间,如果你熟悉Js的话,不妨去尝试修改一下Tello.js文件,让程序指令能够逐条响应去执行,或者在收到错误的返回信息后能够重试等等。
四:如何使用其它语言来编写程序控制Tello EDU?
Tello EDU在苹果公司的Swift Playgrounds App中推出了“Tello星际探索”配套教程。该教程以探索外太空的神秘旅行作为故事背景线,令用户在完成挑战任务的同时,逐步学习Swift编程语言。
其实对于深入学习编程的用户来说,Tello EDU可完美支持各种编程语言:Python、C++、Java、PHP、JS等等,不管哪种语言,你需要做的就是连接Tello的wifi后,编写程序通过sockt进行连接,向特定的端口发送command命令(所有命令可以查看官方SDK2.0使用说明,这是后续进行编程必不可少的文档)就能控制Tello的飞行。比如你可以下载这个python的程序示例(点击文末阅读原文),文件夹里有两个版本的python程序,分别对应Python2与python3。
以下载的python3/Tello3.py为例(需要在Python3的环境下运行),运行结果如图所示,此时你只需要输入“command”指令将无人机切换到SDK模式,然后输“takeoff”指令,无人机便会起飞,接下来你可以根据SDK文档中的指令随意进行控制了。
对应的python2的程序示例,你只需要将给无人机下达的一系列指令保存到“command.txt”文件中,如图:
然后运行“tello_test.py.”程序(命令: python tello_test.pycommand.txt),无人机将起飞,前进200cm后降落。
这只是比较简单的两个示例,有兴趣的朋友可以进行比较复杂的逻辑控制,比如,你想通过语音控制你的无人机进行飞行,我想这一定很酷。开放的SDK,令Tello EDU具备宽广的适用范围,从刚开始接触编程的青少年到对编程热爱的成年人都可以借助Tello EDU一展身手。
五:挑战卡的使用。
Tello EDU套装中包含四块配件,称为“挑战卡”。挑战卡上印制着由小火箭、挑战卡ID、星球三部分组成的复杂图案,形成相互区别的标记。Tello EDU通过视觉传感器对挑战卡上的图像信息进行探测和识别。
那怎么玩呢?我们还是需要先了解一下官方提供的:挑战卡使用说明。这些功能需要我们通过编程来实现,说明里同时介绍了挑战卡的摆放和环境光线的一些要求,不然会对传感器的识别造成影响。
开始测试:根据要求摆放好挑战卡与无人机。打开TELLO EDU,在积木编程里,打开“飞行积木”,最下面的三个积木对应的就是挑战卡说明文档中的三个功能(具体使用请对照使用说明中的“go”、“jump”、“curve”)
根据说明需要先打开探测功能,但是在积木指令里并没有找到(猜测:或许默认就是打开的),那我们就直接编写几个指令来测试一下,如下图。
点击开始,无人机起飞,识别到1号卡,然后移动到上方,但是后面的识别指令并未成功执行,重复测试多次,问题依旧,具体原因未知。此处提出个小的建议,希望能在app的操控界面上显示当前指令的执行结果,那对于使用积木编程来说可是非常方便调试的。
从目前测试来看,对于挑战卡的使用我还是比较推荐使用python,使用python2的程序示例,我们把挑战卡的指令都保存在“command.txt”中,这个程序最大的好处就是可以通过电脑查看到无人机探测的结果,ok表示识别成功,error表示失败(比如在飞弧线的时候,它可能会返回半径过大,指令就不会被执行)。这样就可以结合无人机的飞行状态知道哪里出了问题。
在这个视频中依次实现了直线飞行,识别旋转,弧线飞向,最终降落,你可以清晰的看到每条指令的执行情况。
我们在你刚下载的scratch扩展中也添加了几个相关的指令,可以实现挑战卡探测并直线飞行,如图:
运行程序后,无人机将打开探测器,然后你可以对着麦克说:“起飞”,无人机就可以飞起来了,然后等待5s(主要是给无人机一个识别的过程),然后无人机将以10cm/s的速度飞往2号挑战卡的坐标(100、100、100)处。如果你有兴趣,可以根据SDK为scratch添加更多扩展积木指令。
六:物体识别
我们通过app操控Tello EDU的时候,可以利用APP进行拍照录像。除此之外呢,还可以通过SDK打开它的视频流,然后通过编程接收视频数据,在界面上进行显示、录制、提取单帧图像进行姿势识别并绑定特定姿势和飞机控制命令,实现Tello的姿态控制。这些操作对编程都有较高的要求,如果你跟我一样对图像处理不是很了解,或者你是刚刚起步,那么请不要着急,现在要做的就是学习,探索。如果你是这方面的专业人士,你也可以下载官方的程序demo作为参考,或者在社区里跟大家一起分享你的经验。
七:多机编队飞行
接下来我们将测试一下编队飞行,使用SDK中的AP指令可以将Tello EDU转为station模式,并连入到AP,从而实现让一台电脑或智能设备同时控制多台Tello EDU,组成复杂队形飞行。对于编队飞行官网上的操作说明很少,只提到使用SwiftPlaygrounds中的教程则让编队飞行功能更简单易用,即便是初学者也能迅速上手,由于条件原因,未能亲测。于是自然想到了编写程序进行控制,文末阅读原文下载程序。
在这个过程中也遇到了很多坑,比如最早我看到的是1.0的SDK,对于如何编队飞行百思不得其解,总不至于多个设备下运行同样的程序来控制吧,这根本不现实。后来从官网下载了2.0的SDK,看到可以通过AP将无人机并到一个网络里,于是茅塞顿开。很激动的将其它几台无人机都接入到另一台无人机上,满以为会轻松搞定,却发现根本找不到其它无人机,反复折腾测试,仍旧无果。于是尝试将所有无人机接入我的路由(使用手机热点),终于可以在网络中找到“大家”了,于是开始用程序测试,至此我的编队飞行测试算是成功了。
下面我跟大家分享一下操作过程。
具体操作步骤如下:
1、下载程序示例Multi-Tello-Row,运行install目录下对应的一键安装脚本(windowslinuxmacos),安装所有相关的依赖项,如果没有任何错误出现,恭喜你就可以进入下一项准备工作了。
2、获取无人机编号,记录并保存。除了通过程序发送SDK指令“SN?”查看编号外你还可以直接从无人机上看到编号,它在电池的卡槽里,内测就是编号,外侧是默认的wifi名称。
3、通过程序,将无人机AP并联到你能提供的一个无线局域网内(假设你的手机热点,用户名为“Tello”,密码“11111111”),执行SDK命令“ap Tello 11111111”;或者修改formation_setup.py文件最后一行,改为自己的wifi名字以及wifi密码set_ap(‘Tello’, ‘11111111’),然后执行“python formation_setup.py”完成联网操作。
4、编写飞行脚本保存在Txt文本里(如:takeoff_inthe_row.txt),这里会用到第二步获取的SN编号,示例如下:
这段指令执行的是:查找局域网内的2台tello,且电量不能低于20,绑定Tello的产品序列号SN和连上wifi后的ip地址,1和2后面就是SN编号。接下里就是飞行命令,全部起飞,5秒后根据绑定的序列号分别控制,1号前进200cm,2号后退200cm,5秒后降落。
5、这也是最后一步,运行“pythonmulti_tello_test.py takeoff_inthe_row.txt”,你的飞行编队就开始表演了。
在大疆社区里看到有人说最多支持4架,由于我们没有更多的无人机经行测试,所以暂时无法确认,但从理论上来说是不会局限于4架的。
总结
本次测试给我的最大惊喜是它开放的SDK,正因为如此,你可以使用任何语言去控制它。可以说我之前小看了Tello EDU这款产品,这是其它一些编程类的硬件产品所不具备的,因此这款产品不仅适合孩子,也适合青少年,编程爱好者,它给我们提供了更为广阔的创作空间,希望Tello EDU未来能提供更为丰富的SDK给用户。
如果你想更好的使用它,那么你可以开始你的编程学习了,更多Tello EDU 信息与参数请访问官网:https://www.ryzerobotics.com/cn/tello-edu。
点
阅读原文了解更多