基于Swift Playground软件的无人机编程实践
林勇男 王小华
【摘 要】无人机全称“无人驾驶飞行器”(Unmanned Aerial Vehicle),英文缩写为“UAV”,是利用无线电遥控设备和自备的程序控制装置的不载人飞机。近年来,随着无人机研发技术逐渐成熟,制造成本大幅降低,无人机在各个领域得到了广泛应用。文章介绍了基于Swift Playground软件的无人机编程实践,通过课例展开论述;其中在探索过程中遇到的软硬件、课程设置等问题及解决的办法;最后总结完善课程的体系构建,让学生在校园中体验前沿科技的魅力。无人机编程正悄然进入学生们的学习,并成为学生们喜爱的学习方式之一。
【关键词】编程;无人机;小学;课程案例;教学应用
【中圖分类号】G434? 【文献标识码】A
【论文编号】1671-7384(2020)04-065-03
我校在2017年引入iPad与无人机教学。苹果公司Swfit Playground编程软件与其周边产品Parrot无人机达到较好的匹配,可较好地用于教学。我校是区域内最早开设无人机编程课程的小学。自社团开设至今,现已经将无人机编程课程发展为常规课程普及。“让学生走向世界,让世界走进学校”,让孩子们在校园中能体验到前沿科技的魅力,无人机编程正悄然进入孩子们的学习,并成为孩子们喜爱的学习方式之一。
初识Swfit Playround,寻找切合深度
作为一名计算机教师,笔者把新科技应用于自己的教学中,没有标准的教材可以参考,一切都是摸着石头过河。从使用软件的认识,到利用无人机完成复杂任务,笔者在教学中探索,和学生一起进步,从而积累更多的无人机教学经验。
1.编程软件和无人机
编程是这门课的核心,也是锻炼学生思维的起点与落脚点。因此选用合适的编程软件是首要问题。市面上的编程软件难度层次不一。在编程教学中,适合学生的优秀编程软件就有Scratch、App Inventor等,苹果公司一直在推动 Everyone Can Code 的行动,结合 Swift 编程语言,利用 Xcode和Swfit Playground App,让编程教育覆盖从小学到大学直到职业生涯的全过程。作为入门级的Swift 编程软件,其更接近真实的代码编程,适合小学生进阶级的编程学习,因此Swift 成为学校高年级的编程学习软件。又因Parrot无人机飞行稳定、结构牢固、飞行时间较长,同时与Swift 深度切合等优势,成为课程首选的设备。
2.无人机飞行影响因素与场地选择
环境因素包括:(1)空域,保护良好且人口和设施少的场地和空域;(2)天气,天气对无人机飞行很重要,特别是风向、风速等;(3)可用通信频率,使用正确的可用通信频率也是无人机飞行的重要因素。
得益于iPad的便携性,我们的课程不局限于教室内。考虑到Parrot本身重量较轻,受风速与风向的影响较大以及其他因素,为了能通过编程较为准确地完成制定的任务,我们选择学校的体育馆作为课程开展的场所。
3.课程的设置
作为编程教学,无人机只是载体和形式,教学的设计才是核心。因此,我们要确定适合小学生的学习内容,以及怎样教授更符合小学生的思维逻辑,最后把握适合小学生的难度。
首先,我们要教Swfit Playground编程软件,这是小学生自由创作的基础。在软件中编程最能锻炼学生逻辑思维能力,因此是重点。我们还要让学生学习无人机的基本常识,了解空气动力以及无人机是如何飞行的;让学生掌握无人机的无线连接与程序导入试飞;开放课堂,让学生自主思考,发展孩子的创新性思维。
其次,为了让课程更加适应小学生的思维模式,教师以任务驱动教学,而不是技能单独学习。在一年的学习中,学生掌握了简单而常用的功能。结合我校的实际情况,教学课程内容设计如下:(1)初识Swfit Playground——了解Swfit编程语言的历史;(2)学习编程——命令、函数;(3)学习编程——循环;(4)学习编程——逻辑运算;(5)无人机飞行基本原理;(6)初级飞行员课程——起飞与降落,升降与横滚;(7)初级飞行员考核——垂直方形;(8)初级飞行员课程——俯仰与偏航;(9)初级飞行员考核——水平方形;(10)高级飞行员课程——盘旋;(11)高级飞行员课程——有条件限制飞行;(12)高级飞行员课程——抓钩的利用;(13)高级飞行员课程——摄像头使用;(14)高级飞行员进阶考核——快递配送;(15)皇牌飞行员进阶考核——山洪救援。
这些课程主要依据学生的年龄和心理特点设计,学生学习这些课程锻炼思维,促进创新意识的萌发。这门课的目的是培养有创造力的人才,提高学生STEM素养。在保证基本知识技能的基础上,更需要注意的是学生创造力和实践能力的培养。
“山洪救援行动”项目探索与实施
课程设计思路:在项目驱动和设计思维教学模式下,学生合作探究运用Swfit Playground编程,通过有效整合各类函数实现山洪救援中会遇到的灾情侦测与物资投放。通过播放山洪爆发、村落被困的视频,激发设计救援侦测的任务,分析无人机编程所需要的程序模块,更深入地掌握程序模块中参数的意义,掌握无人机飞行模式程序模块,学会无人机抓取程序模块。
团队合作组织:学生三人一组,承担不同角色,分别为机长,副机长,领航员。机长负责全队协调观察并给出指导性意见,副机长负责程序的编写,领航员负责现场无人机的初始化与测试以及讨论的记录。
1.引导分析路线,引出技术解决方案
学生需要用Mind Vector软件进行头脑风暴,记录思路,画出无人机需要飞行的路线。飞行线路一:从起点出发,从侧边绕过山峰到达受灾点。飞行线路二:起点出发,越过山顶直接到达受灾点。根据路线图,提出实现无人机飞行路线,需要解决哪些技术问题。教师适时参与学生小组的讨论,引导孩子们自行得出需要解决问题的办法,并引出技术函数,指导学生用Mind Vector记录内容。
引出move函数,其中move函数可以实现无人机的升降、横滚和俯仰三种飞行状态。
2.任务提升之一—— 拍照
了解一线救援实际情况,就能取得更好的救援效果。如何让无人机带回最真实的现场,引出拍照。takePicture()可以触发函数触发攝像头,同时使用Parrot FreeFlight-Mini应用程序来查看拍摄图片。
3.任务提升之二—— 携带物资
侦测任务完成,携带物资成为无人机最重要的任务,“如何让无人机实现携带物资,并在正确的地点实现物资投放?同学们想想需要解决哪些技术问题。”教师适时参与每个组讨论,引导孩子们自行得出需要解决问题的办法,并引出技术函数,指导学生用Mind Vector记录内容。
认识grab函数,首先将抓钩安装到无人机上,无人机的软件显示画面有变化。然后可以使用openGrabber()打开抓钩和closeGrabber()关闭抓钩,使用无人机抓钩配件,完成物资的运输与投放。
4.试飞与调试
掌握了move、takePicture、grab函数,就需要程序编制和调试飞行,利用三人团队方案能比较好地解决试飞过程中出现的问题。
学生基于讨论的飞行路线,通过小组合作,进行编程尝试灾情地的拍摄,同时记录下飞行数据。在已知路线下,完成物资的投放。
教师在此阶段中,需要特别关注每个组的活动情况,引导孩子做好问题记录,和学生一起分析解决试飞过程中的问题。在飞行过程中,经常会出现以下问题,比如在飞行过程中,蓝牙通信中断,导致无人机飞行失控,这时会出现一些紧急情况,需要及时停止设备,防止发生危险。同时学生看到危险情况,会在一定程度上对无人机心生抗拒,教师需要对这一部分学生做心理疏导。由于无人机本身抗风性等相对较差,在飞行过程中偏差较大,整个调试过程需要耐心与细心,因此教师在与学生沟通解决方式的同时,要积极鼓励学生保持耐心。
实践反思
课堂中,鼓励学生了解无人机工作原理并依据此设计方案,尝试解决生活中实际问题,不仅有利于锻炼学生的动手能力、创造力、问题解决和团队协作能力等,而且能有效激发学生对智能科技和航空科技的兴趣,加深学生对物理、数学、计算机等学科知识的理解。我们深知,课程实施是一个繁复的过程,一堂完美的课需要教师缜密的思考和巧妙的设计。编程能力,它不仅是智能时代用于表达和交流的语言,更能培养学生的逻辑思辨、计算思维和创造力。
参考文献
[1]吴立巍. 无人机飞行试验要素分析[J]. 电子技术与软件工程,2015(24).
作者单位:浙江杭州上海世界外国语小学? 浙江杭州市明德小学