张丽芳1,谢作如2,钟柏昌3
(1,3.南京师范大学教育科学学院,210097; 2.浙江省温州中学,325014)
摘要:近年来,人们已经认识到机器人对于培养和提高学生的创造力有很重要的作用,但是学校在开展机器人教学时往往局限于重复性实验、机械性模仿的学习活动,不利于学生创新能力的培养。基于以上现状, 本课题另辟蹊径以手势控制LED 为例,用Arduino 机器人的传感器技术与LED 模块制的组合应用制作了手势控制LED,旨在培养和提高学生的创新能力。
教育期刊网 http://www.jyqkw.com
关键词 :Arduino+ 手势识别 数字防跌落传感器
说到机器人,大家都知道机器人包括三个部分:输入装置、输出装置和控制系统,其中LED 是最常见的输出装置。然而, 有关LED 为主题的教学, 往往局限于声控LED、光控LED、模拟交通灯、流水灯等,趣味性不足、创意性不够,不能很好地激发学生的探究欲望和创新意识。本课题另辟蹊径,以手势控制LED 为例,培养学生利用Arduino 设计LED 智能灯的能力。
一、选题背景
随着科技的发展,人与计算机的交互活动越来越成为人们日常生活的一个重要组成部分,特别是视觉计算机的发展,使计算机能“看懂”用户的动作。其中手势识别是实现新一代人机交互不可缺少的一项关键技术,也是一项复杂的技术,包括运动建模、运动分析、模式识别等机器学习技术。那么,如何让学生通过机器人课程的学习了解这些新技术并破除他们对高科技(手势识别)的神秘感呢? 为此, 本节课以手势控制LED 为例,通过亲身尝试,让学生初步感受手势识别技术的“神奇”功能和基本的工作过程;学生不仅能够自己动手搭建硬件编写程序实现手势控制LED 的创意, 还能激发出各种各样的想法,如从手势控制的角度提出手势控制PPT、手势控制电风扇等,从一盏LED的角度提出声控LED、光控LED 等,从多盏LED 的角度还可以提出模拟交通灯、霹雳灯等想法。因此,手势的识别是本节课的教学重点和难点。
二、方案设计
在计算机科学中,手势识别是通过数学算法来识别人类手势的一个议题。手势方向有多种,如手势从左到右、从右到左、从上到下、从下到上等。目前人们采用不同的方法来识别手势的方向,如模板匹配技术、神经网络技术、统计分析技术、传感器技术等,这些技术往往要经过复杂和高难度的算法和判断才能识别出手势的方向,在教学中不易实现。
考虑现实可行性, 我们决定利用机器人及其传感器技术来简单模拟手势识别的基本过程。例如,一种简单的识别思路就是通过两个传感器检测到手势的时间顺序来判断手势方向。基于以上思路,笔者首先对教材和学生情况进行了分析,然后确定了本次课的教学目标,最后设计了手势控制LED 的方案。
(一)教材与学生情况分析
本节课是自编教材《Arduino创意机器人》中第一章“智能LED”的第七节课。本节课主要涉及LED模块和数字防跌落传感器两种器件, 并通过数字防跌落传感器制作出手势控制LED,最后从不同的角度如手势、LED、传感器等,抛砖引玉,引导学生有更多的创意。在前面几节课中,教材安排了闪烁LED、按钮控制LED、呼吸灯、光控灯等内容,这些内容均为本节课的学习奠定了基础。
本节课的教学对象是初一学生。通过前面几节课的学习,学生已经熟练掌握了Arduino 机器人的输入输出,掌握了传感器的一般使用方法,熟悉了ArduBlock 的基本模块。另外,通过之前的积累,学生对Arduino机器人已经产生了浓厚的兴趣,在动手操作与编程能力方面都有了显著的提升, 对Arduino 机器人的创意设计也有了更多的个人想法。
(二)教学目标
15.知识与技能:掌握数字防跌落传感器的使用;掌握利用传感器技术识别手势。2.5过程与方法:在教师指导下,通过模仿制作出手势控制LED, 理解创作Arduino机器人的一般过程与方法。
3.5情感、态度与价值观:通过用Arduino机器人设计并制作手势控制LED, 激发学生对Arduino机器人课程学习的兴趣、提高创新能力。
(三)可选方案的设计与选择
基于以上对教材和学情的分析以及确定的教学目标,笔者初步设计了四种手势控制LED 的方案(如表1)。
综合四种方案的不同特点,本节课最终采用方案一作为教学内容,主要原因如下:
第一,从硬件搭建的角度来看。方案一只涉及一个LED,而其他的方案有的涉及多个LED,有的还涉及舵机。本节课的目的主要是激发学生学习的兴趣和提高学生的创造力,所以呈现给学生的内容应该是比较简单而又不乏魅力。
第二,从程序编写的角度来看。方案一涉及的编写程序的知识是比较简单的选择结构和且运算,其他三种方案还涉及变量、循环等程序知识。
第三, 从学生的角度来看。说到机器人,没有学生不喜欢它,但是作为初学者,既要面对繁琐的“语法”、复杂的“代码”,还要折腾冷冰冰的器材,以及理解手势识别的过程原理,难度过高,容易使学生望而生畏。因此,本节课的内容不仅要新颖,能够吸引学生的眼球,还要降低知识的难度,便于学生理解与接受。显然方案一符合我们的教学需求。事实上,学生在掌握了方案一的方法和原理之后,要理解和实现其他三种方案就会比较轻松。
三、硬件组成与搭建手势控制LED 需要用到的硬件器材有Romeo 控制器、数字防跌落传感器、LED、USB 数据线以及3P 线。
(一)Romeo 控制器
本节课使用的控制器是DFRobot 出品的Arduino0Romeo0V1.2,如图1 所示。该控制器采用的是最基础且应用最广泛的UNO 板卡。它继承了Arduino(328 控制器所有的特性而且集成了电机驱动、键盘、IO 扩展板、无线数据串行通讯等接口。它不仅可以兼容几乎所有Arduino 系列的传感器和扩展板,而且可以直接驱动12 个舵机。除此之外,它还提供了更多人性化设计, 采用了3P 彩色排针,能够对应传感器连接线,防止插错。其中红色对应电源,黑色对应GND,蓝色对应模拟口,绿色对应数字口。
(二)LED 发光模块
本课采用的LED 发光模块是DFrobot最为畅销的入门级LED 产品。该模块输出的是高低电平,既可以通过数字口控制LED的亮灭,也可以通过支持PWM 的数字引脚控制LED 的亮度。除此之外,该模块还具有80°~110°的发光角度,不管从哪个角度都能感受到它耀眼的光芒。
(三)数字防跌落传感器
本课采用的手势识别传感器是DFRobot的数字防跌落传感器, 该传感器采用了夏普公司的距离传感器,是一种光电开关传感器,输出的是数字信号,此外,传感器的有效检测距离为102cm。该传感器具有受可见光干扰小、易于装配、使用方便、可用于小车避障和防跌落等特点。这里要注意的是该传感器检测到手或者其他障碍物时输出低电平, 即0(有效距离102cm 之内), 而没有检测到手或者其他障碍物时输出高电平,即1。
(四)硬件搭建
1.将两个数字防跌落传感器固定在支架上面,即支架左边一个传感器,右边一个传感器(使用支架的目的是便于学生区分左、右两个传感器以及检测手势方向)。
2.将LED 模块、两个数字防跌落传感器接到扩展板的数字口上面,同时记录连接到扩展板的数字针脚号, 如LED 模块接到数字针脚3,左、右两个数字防跌落传感器接到数字针脚8、9 上面,如图2 所示。
3. 通过USB 数据线将Romeo 控制器和电脑连接起来, 正确选择板卡型号UNO 和端口号。
四、程序编写
硬件搭建好之后, 接下来就需要编写程序了。本课采用的编程环境是图形化编程软件ArduBlock 。ArduBlock 是一款为Arduino 设计的图形化编程软件,是Arduino 官方编程环境的第三方软件,目前必须依附于Arduino 2 IDE 软件运行,使用图形化积木搭建的方式编程, 可视化和交互性强,编程门槛低,即使没有编程经验的人也可以尝试给Arduino 控制器编写程序。
在编写程序时, 笔者提供了两种思路:其一, 如果左边传感器先检测到手,一段时间之后(如200 毫秒),右边传感器会检测到手,而左边传感器检测不到手,这说明手势方向是从左到右点亮LED;如果右边传感器先检测到手,一段时间之后(如200 毫秒), 左边传感器会检测到手而右边传感器检测不到手,这说明手势方向是从右到左熄灭LED,参考程序如图3 所示。
其二, 如果左边传感器先检测到手,然后在一段时间内(如600 毫秒内)不断地判断右边传感器是否检测到手, 如果这段时间内右边传感器检测到手, 而左边传感器没有检测到手, 说明手势方向是从左到右;如果右边传感器先检测到手,然后在一段时间内(如600 毫秒内)不断地判断左边传感器是否检测到手, 如果这段时间内左边传感器检测到手, 而右边传感器没有检测到手,说明手势方向是从右到左,参考程序如图4 所示。
基于以上两种思路,在教学中,笔者选择了思路一,主要是因为这一节课是培养学生的创造能力, 消除学生对高科技的神秘感,所以通过两个传感器检测到手势的时间顺序来理解手势识别的过程原理是本节课的一个重点, 学生在理解原理的基础上,很容易就可以利用已有知识通过思路一编写程序实现手势控制LED 的效果。学生在实现效果的同时,可以引导学生运用不同的编程思想如思路二实现相同甚至更优的效果。
五、拓展应用
人类学习具有“聚类”特点,不管是新知识的获取还是原有知识的同化, 都习惯以“类”为依据进行加工、存储和提取。教学设计应以某种聚类方式将相关学习内容连成组块,从而在局部上聚类知识内容,在宏观上形成课程内容的集合, 逐步呈现给学习者,从而达到较好的教学效果。根据已有研究,大致有三种聚类方式:以相似的功能、相似的技术思想、相似的目标聚类。
通过这一节课的学习,学生能够掌握通过手势来控制LED 亮灭的相关核心内容。我们可以从聚类的三种方式来让学生发挥自己的想象,制作一些有创意的作品。例如,以相似的功能(实现LED 的自动开启和关闭)来聚类设计LED 项目,可以分别采用光控、声控、遥控等单一传感器或不同传感器组合来实现;以相似的技术思想(手势控制)为例,来聚类设计手势控制的项目,可以通过手势来控制电风扇、电视等,除此之外还可以将机器人的各种元器件及解决问题所需的相关学科知识逐一卷入机器人的学习中。
六、教学实践
(一)视频展示,引入新课
在上课之前, 先给学生播放一段《酷毙灯》的视频,同时给学生抛出一个问题:视频中的灯与我们平常的灯有什么不同? 让学生带着问题观看视频,吸引学生的注意力,激发学生学习以及探究原理的兴趣。视频播完之后,请两位学生回答之前的问题。如果学生回答正确(手势、传感器),可以继续向学生提问:“如果是传感器,是什么传感器? 该传感器有什么功能? 你知道的传感器中哪些有类似的功能? ”“如果是手势,手势是如何识别出来的? 手势有哪些情况? ”等等。如若学生回答不出来,可以给学生一些提示,如“平常的灯是通过什么来控制的? 视频中的灯有没有用到按钮?”等。在引出“手势”之后,出示活动主题“创意LED———手势控制LED”。
(二)抛出疑问,分析问题
在这一环节, 先给学生介绍当前手势识别的一些原理和技术, 然后引导学生小组讨论:利用我们之前接触过的传感器(光线传感器、按钮等)能否识别手势?如果能识别,是哪种类型的传感器? 需要几个? 如果不能,那需要用到哪种功能的传感器? 基于以上讨论,引出具有检测障碍物功能的数字防跌落传感器,该传感器只能检测障碍物的有无,并不能检测出障碍物的方向;与按钮一样,输出的是高低电平信号, 如果检测到障碍物则输出低电平,相反则输出高电平。学生在对数字防跌落传感器有了一定的认识之后, 继续向学生抛出问题: 一个这样的传感器能识别出手势方向吗?小组讨论完之后,得出:至少需要两个这样的传感器才能识别出手势方向。然后,向学生介绍利用两个传感器识别出手势的思路,即利用两个传感器检测到手势的时间先后来识别手势。为了便于学生观察和理解,将两个传感器分别贴在黑板上,然后手势从左到右,再从右到左(如图5),反复几次后,与学生共同讨论,得出:手势从左到右的时候,左边的传感器会先检测到手,一段时间之后,右边的传感器会检测到手;而手势从右到左的时候,右边的传感器会先检测到手,一段时间之后,左边的传感器会检测到手。其中计算一段时间的长短, 引导学生用物理学中的t=s/v 来理解,s代表的是两个传感器之间的距离,v 代表的是手势的速度。
手势控制LED 的思路清晰之后, 引导学生将上述自然语言转化为流程图,以手势从左到右流程图为例,如图6 所示。手势从右到左的流程图请一位学生到讲台上来画。
经过上面的分析之后,学生可以将手势识别这个抽象的问题转化为易于理解和实现的步骤。
(三)搭建硬件,程序编写
向学生提出任务: 手势从左到右点亮LED;手势从右到左熄灭LED。
演示传感器、LED 与控制器的连接以及手势从左到右点亮LED 的程序。然后让学生自己搭建硬件, 编写程序完成基础任务。学生在下载程序观察现象时,会发现两个传感器同时检测到手时,LED 有闪烁现象, 此时应留给学生自主探究的空间和时间,让学生自由讨论,发散他们的思维,提出不同的解决方案。如果学生未能解决问题, 引导学生回顾手势识别的过程并分析得出:以手势从左到右为例,当手势从左到右时,右边的传感器能检测到手,而左边传感器并不能检测到手, 这两个条件必须同时满足才能说明我们的手势方向是从左到右。让学生在原有程序的基础上, 修改程序,观察现象。完成任务的同学,尝试实现手势控制呼吸灯。
(四)拓展提升,课堂总结
在本节课结束时, 笔者给学生提供了一个创意记录表, 让学生将自己的创意记录下来,同时鼓励学生利用已有知识或上网查阅资料等多种途径尝试实现自己的想法。最后通过演示手势控制PPT 的过程对本节课进行总结:Arduino 机器人可以制作很多作品。Arduino 机器人课程不仅让学生学习机器人的知识和技术,更重要的是让学生运用所学的知识,制作各种有创意的作品。
本节课主要是让学生制作一些有创意的机器人作品,消除学生对机器人的片面认识。从学生掌握的情况来看, 几乎所有的学生都已经理解了手势控制LED, 即手势从左到右点亮LED,手势从右到左熄灭LED。
* 本文系教育部人文社会科学研究青年基金项目“义务教育STEM 校本课程的开发与应用研究”(项目编号:13YJC880121);国家社科基金教育学青年项目“多平台、跨学科、聚类化、重创造的中小学机器人教育研究”(项目编号:CCA130133);国家社科基金教育学重点课题“信息化促进优质教育资源共享研究”(项目编号:ACA120005) 等多项课程的综合研究成果之一。
教育期刊网 http://www.jyqkw.com
参考文献
[1] 赵亚飞. 基于视觉的手势识别技术研究[D].浙江大学,2011
[2] 何小磊. 基于深度信息和彩色图像的手势识别[D].华中科技大学,2012
[3]钟柏昌,李艺.信息技术课程内容组织的三层架构[J].电化教育研究,2012+(5)
[4]谢作如.S4A 和互动媒体技术[M].北京:清华大学出版社,2014
征稿启事
2014 年是我国普通高中通用技术课程实施的第十年, 为了回顾十年来我国课程改革实验省区开设普通高中通用技术课程的基本情况, 总结经验, 寻找问题,为今后的发展做好铺垫,确定方向,我编辑部拟从2014 年开始以“我的通用技术教育之路”为主题开展征稿活动,诚邀一线教师、教研员、教材编写者、教育研究者以及关注这方面教育的社会各界人士的积极参与。
一、征稿范围
来稿应以参与通用技术教育实际工作经验的反思与总结为主, 介绍各地通用技术课程开设的成功经验和科研成果,展示优秀的教学成果和教学案例等。
可以围绕以下内容自拟题目进行论述:通用技术课程实施的目标是否达成;通用技术课程的理论建构和实施意义; 通用技术课程开设的政策保障; 各地通用技术课程实施的情况; 通用技术课程开设与落实情况; 通用技术教学实践情况、通用技术教师专业发展情况以及学生技术素养提升情况; 通用技术教材的追求与实施建议; 通用技术课程的价值与社会影响力。
二、投稿要求
来稿切忌单纯地呈现教学设计和课堂教学实录, 应尽可能地把实践教学经验与理论总结统整起来,以兼有实践性、理论性、逻辑性和创新性,争取达到把握技术课程发展脉路, 引领技术课程发展方向的目的。来稿以4500 字左右为宜,写作应主题明确、观点鲜明、结构严谨、文词简练。
作者应写清自己的单位全称,所在省市地区名、通信地址、邮政编码和联系电话。