与孩子一起学无人机编程?或许这个工具能帮助到你
计算机的普及要从娃娃抓起
—— 邓小平
无人机已经越来越智能了,从某种意义上来说它就是一台会飞的智能手机。它不仅有自己的飞控系统(如 类似 OS),还能通过 4G、5G 网络实时传输信息并通过云端进行大量的计算,犹如时下最火的人工智能一样,其想象空间巨大。
教学场景会随着科技社会的发展而不断发生变化,无人机的兴起,也自然会像当年计算机一样能给小朋友增添一个课外学习的选择。近年来,STEAM 教育理念十分火热,市面上 STEAM toy 方面的产品日益增多,其中不缺可供小朋友进行编程操控的无人机产品,如 AirBlock,通过简单的图形化编程实现自定义飞行操作,从而提高儿童的动手能力和编程化思维能力。
不过,这种玩具式的无人机终究功能有限,对于稍微「年长」的小朋友来说,或许需要一些进阶的设备进行学习。无人机行业里的「iPhone」——大疆的设备在飞控、云台、图传和遥控环节的表现都很稳定,安全性相对较高,(不考虑价格因素的话)似乎也很适合用作教学设备,那它能不能同样达到帮助小朋友学习编程的教学用途呢?答案是可以的,并且已经有机构在努力普及着。
它就是 DroneBlocks 了。
背景介绍
DroneBlocks 的发起者和开发者是 Dennis Baldwin(他也是全景拍摄应用 DronePan 和定点拍摄应用 DroneRepeat 的开发者)。他组建了一个「跨界」团队,成员包括教育工作者,程序员和无人机飞手,为小朋友提供图形化编程教学课程,让他们动手实现对无人机的自定义操控及完成简单的拍摄任务。
图形化编程及教学课程
DroneBlocks 的图形化编程编辑器是基于可视化、积木拖拽式的 Google Blockly 进行开发的,再结合 DJI SDK,将大疆部分功能的 API 封装成图形化编程里的「积木」,小朋友可根据自己的想法或特定的飞行任务,通过拖拽「积木」便可拼装成一个可以控制大疆无人机的动作指令块(比如下图的动作指令块就是让无人机完成 360 度全景拍摄)。
考虑到拼装一些不合理的动作指令块(比如设置的高度太低)会让无人机变得很危险,DroneBlocks 在教学中会让小朋友的编程「代码」先在模拟器上跑起来,确认无误后再到实地上进行操作。
DroneBlocks 提供了专门的教学课程,并希望吸引 4~8 年级(对应国内的 9~14 岁)的学生参与学习。在课程中,小朋友可以学习到几何计算,物体运动,指令循环等基础的数学、物理、编程知识,此外,课程还设置了最佳角度无人机自拍、360 度全景拍摄等拍摄任务,相信小朋友亲自动手完成后一定正反馈「爆表」。
按照 Dennis Baldwin 一贯的作风,DroneBlocks 也是开源的,他相信开源的力量会让更多志同道合的开发者参与其中,共同打造更有趣使用的无人机儿童编程课程。对了,DroneBlocks 提供的教学课程也都是免费的。
课程准备
- 一台大疆无人机
- 一组桨叶保护器
- 一台 iOS 设备
- DroneBlocks App
DroneBlocks 接入的是 DJI SDK,理论上能兼容原生 SDK 所支持的设备。不过官网中建议使用的设备是:
- DJI Phantom 3
- DJI Phantom 4
- DJI Mavic Pro
- DJI Inspire 1
在正式使用 DroneBlocks 前,建议先到 http://learn.droneblocks.io/ 学习官方提供的基础教程,了解一些基本的操作技巧以及安全注意事项。
DroneBlocks 只合适小朋友?
或许从上文看来,DroneBlocks 只是一款供小朋友学习编程的工具。不过我觉得将 DroneBlocks 应用在实际航拍中也并非不可能。DroneBlocks 提供的变量「积木」包括:起飞、设置飞行距离、设置高度、悬停、控制机头朝向、调整云台角度、拍照录像、间隔拍照、降落。
想想自己熟练的航拍操作流程,是不是也是由这一个个「积木」堆砌而来的。当然,实际航拍中有很多变量都是根据实地环境而人为动态设定的,但如果在固定的场景进行拍摄(变量恒定),或想通过无人机进行一些对操作精度要求较高的航拍工作时,或许 DroneBlocks 就能帮到你呢。