张禄
教材分析
本节课是河北教育出版社出版的《Arduino机器人设计与制作》第二单元“电子骰子”第二课的内容。在第一课中,学生尝试制作了“电子骰子1.0”,该作品利用Arduino控制数码管实现单个数字的随机显示,但由于伪随机函数的原因,在数码管闪烁固定次数(如10次)后,显示的最终数字会是一个固定值。与1.0版本相比,“电子骰子2.0”更具有交互性、趣味性和实用性,本节课主要涉及数码管和震动传感器两个新的元器件的使用。其中,数码管是对第一单元的进一步深化(第一单元只涉及单个LED或多个LED的简单组合,本单元涉及的数码管本质上是多个LED集成在一起的元器件),而传感器的引入也是第一次,这将为后继单元的学习奠定基础。本节课涉及到的主要知识点有数码管、选择结构、随机数、震动传感器、数字输入、子程序等,其中数码管、选择结构、随机数都是上节课学过的,震动传感器、数字输入、子程序是新的知识点。
学情分析
本节课的授课对象是高一选修课学生(共40人选修),他们已经较熟练地掌握了Arduino中LED的控制,基本掌握了共阴极数码管的使用方法,能够使用数码管随机显示数字。学生能够制作出“电子骰子1.0”版本,但由于1.0版本较为简单,并在交互性、趣味性和实用性方面有所欠缺,因此,学生对于改进电子骰子有着迫切的需求。
教学目标
知识与技能目标:了解数字输入的概念,掌握数字震动传感器的使用方法;掌握子程序的声明与调用方法。
过程与方法目标:在改进电子骰子的过程中,感受从简单到复杂的迭代过程;在使用子程序时,理解增加主程序可读性的简便方法。
情感态度与价值观目标:在制作电子骰子的过程中,感受智能产品为生活带来的乐趣;在改进电子骰子的过程中,培养精益求精的工匠精神。
教学重点、难点
重点:震动传感器的使用方法,子程序的使用方法。
难点:如何在震动传感器检测到震动时获取一个随机数。
教学环境及资源设备
计算机教室、Arduino控制板、数码管、震动传感器、ArduBlock软件。
教学过程
本节课划分了“发现问题,引入新课(5分钟)”“分析任务,明确方案(5分钟)”“自主学习,小试牛刀(8分钟)”“攻克难点,初达目标(12分钟)”“优化程序,完善作品(7分钟)”“成果检验,课堂总结(3分钟)”六个环节。
1.发现问题,引入新课
师:这节课,让我们一起来分析一下上节课的作品——电子骰子1.0的缺点。
学生通过讨论,得出电子骰子1.0的主要缺点:没有模拟出“掷”的动作,作品缺乏交互性;每次显示的数字都是一样的。
师:这节课我们就针对这些缺点,在“电子骰子1.0”版本的基础上进一步完善,制作出更好玩的电子骰子,暂且称它为2.0版本。(教师出示课题——电子骰子2.0)
设计意图:通过分析上节课的作品——电子骰子1.0的缺点,引出本节课的主要任务——制作“电子骰子2.0”。
2.分析任务,明确方案
师:要解决“电子骰子1.0”的两个主要缺点:一是要使作品能够“发现”掷骰子的动作,二是解决随机显示数字的问题。第一个问题,需要引入震动传感器检测“掷”的动作,从而触发电子骰子的数字显示功能;第二个问题,计算机产生的随机数是由随机数种子决定的,因此“电子骰子1.0”每次显示一样的数字也是由这个伪随機数引起的。那么,我们如何解决这些问题呢?请大家仔细观察老师手里的电子骰子(如图1),尝试找出制作“电子骰子2.0”的关键步骤。
教师引导学生找出关键步骤:一是“掷”的动作,即让电子骰子检测到其是否摇晃过(可通过震动传感器检测);二是随机显示,即如果检测到摇晃,数码管要随机显示一个数字。根据这一基本思路,学生小组合作完成电子骰子2.0的设计方案(如下表)。
设计意图:通过分析“电子骰子1.0”的缺点、观察“电子骰子2.0”实物,引导学生找出制作“电子骰子2.0”的关键步骤,明确改进方案。
3.自主学习,小试牛刀
师:根据上述分析,我们可以把“电子骰子2.0”的实现过程分为两个部分:任务一解决“掷”动作的检测,任务二实现数字的随机显示。请各小组同学充分阅读“电子骰子2.0”的学习资料,自主学习“掷”动作的相关知识(震动传感器、数字输入),并完成任务一(如果震动传感器震动,数码管显示5,否则显示2)。
学生小组合作,自主学习,完成任务一。
教师需提醒学生自主学习时应注意两个核心概念:什么是传感器,什么是数字输入。
设计意图:通过提供学习资料向学生呈现本节课的学习重点,通过搭建“脚手架”帮助学生解决“掷”动作的任务(即任务一)。
4.攻克难点,初达目标
师:通过对学习资料的自主学习,相信每个小组都能够轻松完成“掷”的动作了。那么,掷完电子骰子后的随机显示功能如何实现呢?实际上就是用震动传感器的震动来触发随机数的产生(如下页图2)。
学生在1.0版本程序的基础上修改,完成随机显示程序(如下页图2,仅做选框中的修改即可),即弱化版的电子骰子2.0版本(只能显示1、2、3)。
设计意图:通过引导学生在“电子骰子1.0”基础上对半成品进行加工,以解决难点问题。
5.优化程序,完善作品
师:请大家思考一下,如果要随机显示1~6,程序会变得怎样?
学生发现程序会变得很长。
师:其实,我们可以通过使用子程序来简化程序,请对比“电子骰子1.0”程序的两种不同写法(如下页图3),其中,主程序较为简短的程序使用了子程序。那么,什么是子程序呢?子程序如何使用呢?请大家自主学习子程序部分的学习资料。endprint
学生自主学习子程序部分的学习资料,并通过小组合作,在上述程序基础上完成任务二(电子骰子2.0的制作)。
設计意图:引入子程序,希望学生了解子程序可以使主程序更具可读性,更简单,更易修改和维护,感受结构化程序设计思想。
6.成果检验,课堂总结
师:请一位同学展示一下“电子骰子2.0”的完整程序。
学生展示程序,教师再次强调子程序的使用。
师:本节课,我们学习了震动传感器、数字输入、子程序等知识,完成了电子骰子从1.0版本向2.0版本的改进,使其互动性更好,更具有可玩性。事实上,在设计和制作某一件产品时,都需要经历从简单到复杂、从模型制作到产品生产这样一个不断迭代的过程,这要求我们在做任何事的时候都要追求精益求精的工匠精神。
设计意图:通过展示交流,能了解学生的学习情况,进一步修正学生可能产生的错误,巩固新掌握的知识。
教学反思
本课旨在通过制作“电子骰子2.0”,使学生掌握Arduino的一些基础知识,包括震动传感器与子程序的基本使用方法,了解Arduino的数字输入,为后继学习打好基础。从学生的课堂反应来看,学生基本上能够掌握新的知识点;从任务完成情况来看,绝大多数学生都能完成规定任务。通过本课的学习,学生不仅学到了Arduino机器人的基础知识,提高了动手能力、团队合作能力、自主学习能力,而且在制作Arduino机器人创意作品时,有了更明确的思考方向。
在大班教学中,在知识容量较大时,保证教学进度是本节课需要探讨的一个方向,但在自主学习中,如何合理地组织小组合作、适时地关注到真正需要帮助的学生,是本课需要改进的地方。
点 评
“电子骰子2.0”是1.0的升级版,较之更加复杂,新增了如数字输入、震动传感器、子程序等多种软硬件知识,内容有一定的难度,对教师来说具有一定的挑战性。但经过作者的精心设计,不仅教学过程如行云流水般通畅,而且教学难度大大降低了。具体体现在以下几个方面:
第一,问题贯穿整个教学过程。作者在教学中并没有将要做的作品及要学的知识直接填塞给学生,而是通过一个个的问题引导学生发现当前阶段作品的不足,再去尝试解决问题。例如,通过发现并分析“电子骰子1.0”存在的缺点引入该节课的任务;通过提出伪随机数难以解决随机显示数字的问题,引出可以通过硬件(震动传感器)来解决问题;通过提出随机显示数字1~6的想法,引导学生发现程序变得冗长的问题,引出子程序的使用……
第二,转变了学生的学习方式。在教学中的环节三与环节五,作者通过提供学习资料让学生进行自主学习、合作学习,并利用任务一和任务二进行驱动,激发学生的学习动力,巩固学生的学习成果,使学生成为学习的主体,而教师则主要起主导作用。
第三,利用脚手架解决重难点。无论是自主学习阶段提供学习资料,还是引导学生在“电子骰子1.0”的基础上对半成品进行加工,作者在解决重难点时都巧妙地利用了“脚手架”,并没有直接生硬地讲授。
另外,在教学过程中,作者不仅关注到学生对Arduino基础知识与基本技能的掌握,还通过“电子骰子1.0”到2.0的改进过程鼓励学生,做产品要不断迭代,做事情要追求精益求精的工匠精神,很好地完成了本节课的教学目标。endprint