广东省广州市番禺区实验中学 杨瀚盛
2017 年教育部颁布的《普通高中信息技术课程标准(2017 年版)》提出,基于开源硬件的项目设计与开发有益于激发学生创新的兴趣,培养学生动手实践的能力,同时也是在信息技术课程中实现STEM(科学、技术、工程、人文艺术与数学)教育的理想方法。
在国家大力推广基于开源项目STEM 课程的大背景下,2019 年年初我校面向全体高一学生及部分初一、初二及高二社团学生开展以开源框架OpenMV 为基础的人工智能计算机视觉特色STEM 课程。OpenMV 是一套 开源的、基于Python 的嵌入式计算机 视觉框架。OpenMV 在一块小巧的硬件模块上,提供丰富的硬件接口及Python 编程接口,使用者可以在不需要计算机图像专业知识的情况下用Python 语言调用OpenMV 提供的计算机视觉库实现诸如追踪小球、物品的分拣,甚至解魔方机器人等功能。
正如课程标准所描述的,基于项目式学习的OpenMV 人工智能STEM课程能够很好地培养学生的创新意识,加强学生的实践能力。
项目式学习并非传统讲授课的简单转换,而应该是经过精心设计的教学方式,教师应该以项目为主线,并在主线上穿插若干精心设计的核心问题,学生通过查阅资料、学习新知、小组讨论、协同实践等手段逐一解决问题,从而最终完成项目任务。所以说,拟解决的问题是项目式学习的核心,也是衡量一个STEM 活动是否具有开展价值的重要标准。
为此,教师预设的问题需满足如下两个条件:
一是问题不应只是已有知识的简单重复,它应有助于学生能力的发展。
二是问题的难度要把握得当,让学生跳起来摘桃子。
本项目学习的主题是利用Open MV 制作一台追踪小球运动的智能小车,相关的问题则是需要学生选择一款小车平台并连接OpenMV,调用OpenMV 视觉函数、接口函数驱动小车运动。无论从软件还是硬件的角度看,项目均需要学生综合能力的运用,学生结合原有Python 语言、OpenMV等软、硬件知识,在教师引导下通过小组协作学习完成,很好地满足了以上的条件。
项目式学习主要包括项目情境导入、分析问题设计方案、项目实施、交流小结等环节。教师在项目情境导入环节创设问题情境,提高学生兴趣,帮助学生理解项目的目的和意义;在分析问题设计方案环节教师着重引导学生运用所学知识对问题进行分析,准确把握问题的核心,确定解决问题的策略、方法,培养学生问题求解的能力;在项目实施环节,教师对关键核心问题提供充足的学习资源与帮助,从而指导学生顺利实施项目过程,培养学生协作能力、创新精神与实践能力;教师在交流小结环节组织学生以小组为单位进行项目汇报与经验交流,引导学生进行评价、反思、改进、升华,培养学生表达能力、学会取长补短。
创设一个合适的情境导入项目活动,不仅能提高学生的学习兴趣,充分调动学生的学习积极性,还能帮助学生更好地理解项目活动的目的和意义,让学生更快地找准项目的核心问题,为后面项目开展作铺垫。
本课在实际教学中我们以观看电影《跟踪》片段作为引入,警方在跟踪犯罪嫌疑人过程中被发现并且不幸牺牲。此时,教师引导学生思考、探讨,如果要设计一款自动跟踪装置应具备什么功能?学生很快能够凝聚出共识,诸如应该有自由移行能力;安装GPS 定位装置;能根据相貌、衣着、身形等特征识别嫌疑人等。然后,教师揭开课程项目面纱:设计、制作“OpenMV 追球小车”,把情境导入环节推向高潮,学生带着强烈的好奇心进入下一环节的学习中。
准确把握问题的核心,从而设计出合理的解决方案是项目得以顺利开展的关键,但是,由于STEM 课程的多学科特性,STEM 项目往往涉及的知识面较广,在课程实施过程中对学生掌握知识的广度、深度提出了较高的要求。如此,在提出问题后如果任由学生天马行空自由发挥,容易使学生思维过度发散,不利于教师把控项目进度。因此,学生在明确项目目标任务后,教师应该合理引导和帮助学生分析问题,寻求合适的解决方案。
具体到“OpenMV 追球小车”项目,教师可以引导学生探讨如何合理使用OpenMV 的软、硬件功能,构想实现这辆追球小车的多种可能性,并在此基础上分析确定硬件、软件方案。
一般先从较直观的硬件方面入手,虽然学生已经对OpenMV 开发板有较深入的了解,但是要制作一台能够移动的小车,需要在OpenMV 基础上添加更多的硬件设备。教师可以提供一些如巡线机器人、机器人足球比赛等相关视频素材,学生在观看相关视频过程中对小车平台形成一个初步印象,学生一般都能把现实世界中对汽车的认知迁移到这里。进而鼓励学生通过互联网查阅相关资料,更深入了解小车平台的构造、工作原理等必备知识。因此,教师必须参与到学生的小组互动中,诱导学生提出生成性问题,调动学生的主动性,给出合理建议,引导学生形成一个高效、合理、低成本的解决方案。最后,教师可以给出OpenMV 官方标配的电机驱动板+小车平台这一现成方案,学生在对比自选方案与官方方案的优、缺点后,进一步优化、改进自己的项目硬件解决方案。
软件相比硬件更加抽象,如果前期没有相关知识铺垫,学生很难形成方案。我们首先从问题分析入手,教师引导学生回顾情境导入中设想的自动装置是根据什么识别出嫌疑人的?相貌、衣着、身形,识别的关键就是被识别物体的特征。学生第一反应大多是把小球的形状——圆形作为特征,这个特征非常明显,如果我们使用一个纯色小球,那么颜色也是小球的特征。这样,学生就能够把现有知识快速迁移到这个项目中,利用find_circle查找圆形函数或者find_blobs 查找色块函数。
设计项目解决方案是建立在学生对项目问题透彻分析的基础上的,只有设计出合理的方案项目才能顺利实施。此外,学生在分析问题、设计方案过程中通过教师引导、查阅资料获得新知并且结合其现有的知识进行知识重构,培养学生自主创新能力。
学生以小组为单位按照设计方案开展项目活动,实质就是学生在已有知识的基础上不断探索解决问题的过程。但是,受学生的预见性与能力等因素所限,在解决问题的过程中会衍生出更多新问题,教师应做好充分准备,预估在项目实施过程中学生的突出问题和主要困难并为此提供充足的学习资源,引导学生按步骤逐一破解难题,帮助学生顺利完成项目。教师应遵循放手不撒手、指引不代替的原则,既要给学生以适当的帮助,又不能过度参与,把主动权还给学生。在这过程中,培养学生的实践能力与合作学习能力。
以“OpenMV 追球小车”为例,为解决小车组装可能出现的问题,教师可为学生准备组装图纸并列出主要步骤;OpenMV 与小车驱动板的连接也是一个难点,为此,我们准备了一个5 分钟的微课,对主要接口的作用、如何连线、注意事项等进行必要的讲解;软件方面,轮子转向、转速需要使用Timer 类的PWM 功能,这方面知识学生初次接触。因此,可以给予0.5 课时的讲授;至于小球定位的圆形查找函数和色块查找函数,学生在以前课程中已能熟练使用,定位小球的大小和坐标后,驱动小车运动了,当然这里还涉及一些简单的数学公式,教师可以提前准备,并加以点拨即可。
在项目实施过程中学生也会有一些生成性问题是教师没有预料到的,比如有的小组就提出为什么小车运行不够平顺,总是左右摇摆?为此,我们还专门介绍了PID 算法,但是像这类较复杂问题,以学生现有知识还没法掌握,教师点到即止便可,也可把代码封装成类,直接提供给学生使 用。
项目完成后,教师应为学生提供平台,让学生充分展示项目成果,展示的方法可以采用成果介绍、经验分享等多种形式。本项目我们还别开生面地组织了一场追小球竞赛,两辆小车同时追球,哪台小车先跟丢小球就出局,最终决出了冠亚季军。
最后,通过自我反思、小组互评和教师点评等方式进行小结,归纳遇到的问题,提出改进的意见。在小结过程中,学生纷纷提出诸如自己的小车摄像头太矮被前车遮挡而跟丢小球;小车底盘太轻在碰撞过程中容易吃亏等问题。
以项目的形式把STEM 课程中零碎的知识点串联起来,在开展项目学习的过程中,教师引导学生“在做中学”,充分体现学生的主体地位。在高中STEM 课程中运用项目式学习,能够充分培养学生创新能力、问题求解能力、实践能力、协作学习能力,项目式学习必将让我校高中STEM 课程结出累累硕果。