APP下载

《红绿灯自动控制系统的实现》教学案例

2019-01-28张向红朱桂荣

中国信息技术教育 2019年2期
关键词:黄灯绿灯红绿灯

张向红 朱桂荣

开源硬件项目设计是新课标中选择性必修模块6中的内容,Arduino开源硬件设计是高中信息技术的校本课程。“用Arduino实现红绿灯系统”需要三节课完成,第一节内容为:认识Arduino的接口,认识Arduino的编程软件界面,学会把程序编译并上传到Arduino上,利用Arduino的5V输出口、接地口、电阻、发光二极管、面包板完成一个使发光二极管亮的硬件连接。第二节内容为:完成红绿灯系统的硬件连接并用软件实现红绿灯系统的自动控制。第三节内容为:完善、优化红绿灯系统和学生展示红绿灯系统。本节课为第二节课。

本次课的授课对象是高一年级的学生,通过第一节课的学习,学生已经对Arduino的接口有一定的认识,已经可以利用Arduino的5V输出口和接地口完成一个使灯亮的硬件连接;对Arduino的编程软件界面有了一定的认识,且知道编译程序并把程序上传到Arduino上;知道现实生活中十字路口的红绿灯是如何工作的。

● 导入新课,呈现任务

1.情境导入

师:过十字路口时我们都需要遵循红绿灯,通过上节课的学习我们已经知道红绿灯系统是怎么工作的了,这节课我们就来搭建一个红绿灯系统。

2.呈现任务

师:红绿灯系统就是对红灯、绿灯、黄灯进行自动控制,我们首先完成对一个灯进行自动控制,以绿灯为例,这里我们使用绿色发光二极管代替(由此引出第一个任务:用程序控制绿灯的亮和灭)。

设计意图:十字路口的红绿灯系统是学生比较熟悉的,每个学生都知道红绿灯是如何工作的,通过解决生活中常见的实际问题,激发学生的学习兴趣,培养学生的问题解决意识。

● 完成任务,探究新知

任务一:用程序控制绿灯的亮和灭

师:第一节课我们已经学过利用Arduino的5V输出口和接地口搭建一个使绿灯亮、使发光二极管亮的硬件连接,在这个电路中为什么绿灯是一直亮的?

生:因为Arduino的5V输出口一直输出5V电压,所以绿灯一直亮着。

师:在这个硬件连接中,我们会不会用程序控制绿灯?

生:不会。

师:要用程序控制绿灯就需要把绿灯的正极接到Arduino的数字输出口上(2到13口都可以),我们以2口为例,按照如图1所示的电路图完成硬件连接。

学生按照电路图完成硬件连接,并思考要使绿灯亮应该给Arduino的数字输出口2输出几伏电压?

师:硬件连接完后,要使绿灯亮,需要给Arduino的数字输出口2输出几伏电压?

生:5V。

师:在编程软件中,___________________指令即是把数字输出0的输出电压设为5V。因此我们用该指令(把数字输出管脚设置为2)就可以控制绿灯亮(示范用该指令控制小灯亮)。要使绿灯灭,只需把该指令中的高设置为低即可(把数字输出0的输出电压设为0)。

学生完成该指令控制绿灯的亮和灭。

师:我们学会了用指令控制绿灯的亮和灭,那么怎么实现绿灯的闪烁效果?

学生尝试实现绿灯的闪烁效果。

师:通过观察,同学们用的指令是______________,但是上传到Arduino上绿灯都是亮的状态,为什么?这是因为在Arduino上程序顺着第一条往下执行,到最后一条执行完毕后立马又回到第一条开始执行,如此重复。所以绿灯亮了以后灭了立马又亮了,肉眼无法看出闪烁效果,要实现闪烁效果就需要在指令后面加一条延时指令 ,大家试试加入延时指令后能不能实现闪烁效果。

学生完成指令并上传指令,观察绿灯效果(学生完成的指令如图2所示)。

师:观察程序及绿灯闪烁效果,看绿灯多长时间完成一次闪烁?

生:2秒。

师:那么我们怎么更改闪烁频率,使绿灯1秒完成一次闪烁?

生:只需要把延时指令中的1000改为500即可。

学生更改指令使绿灯1秒完成一次闪烁。

任务二:程序控制绿灯亮20秒,然后闪烁10次

师:我们已经完成了第一个任务,接着我们需要完成第二个任务:用程序控制绿灯亮20秒,然后闪烁10次。

学生尝试完成任務二。

师:通过观察,大部分同学完成的指令都如图3所示,我们分析下这组指令,首先绿灯亮20秒,然后闪烁1次,然后又重复绿灯亮20秒,闪烁1次,而我们需要的是闪烁10次,因此需要把闪烁指令执行10次,怎么办?

生:把闪烁指令复制9遍最终得到10次闪烁指令。

师:(给出包含有10条闪烁指令的指令)我们发现这个指令好长,能不能优化一下这个指令?这里我们可以使用 ,该指令是这样工作的:i从1开始执行该指令中的内容,执行完后加步长值“1”为2,又执行一次该指令中的内容,执行完毕后又加步长值“1”为3,又执行一次该指令中的内容,直到i的值为10执行完该指令中的内容后结束,因此i为1执行一次,i为2执行一次,i为3执行一次,一直到i为10执行一次后结束,总共执行了10次。因此我们只需要把闪烁指令放到该指令中即可实现执行10次的效果。最终得到如图4所示的指令。

学生完成该指令并上传到Arduino上,观察绿灯效果。

师:(观察学生完成状况,适时提出问题)要是绿灯闪烁5次该怎么修改指令?

学生思考并尝试修改指令,然后回答问题。有些学生回答的是把指令中的1改为5;有些学生回答的是把指令中的10改为5;有些学生回答的是把步长改为2;等等。

师:大家的这些改法都可以实现绿灯闪烁5次的效果。

设计意图:通过控制绿灯的亮和灭,再到绿灯的闪烁,完成后再实现程序控制绿灯亮20秒,然后闪烁10次,任务层层递进,符合学生的认知规律,培养学生发现问题、分析问题、解决问题的能力。

● 学以致用,巩固知识

任务三:程序控制绿灯亮20秒,然后闪烁10次,然后黄灯亮3秒

师:通过前面的学习,这个任务大家已经可以自己完成,老师在这个任务中增加了黄灯,因此得先完成黄灯的硬件连接(把如图5所示的硬件连接电路图发给学生,让学生先完成硬件连接,然后完成程序并上传,最后实现“绿灯亮20秒,然后闪烁10次,然后黄灯亮3秒”的效果,其间对学生存在的问题进行讲解)。

学生完成硬件连接,完成程序,上传到Arduino查看效果,学生基本都能完成这个任务。

师:我们都已经完成这个任务了,紧接着完成第四个任务。

任务四:程序控制绿灯亮20秒,然后闪烁10次,然后黄灯亮3秒,然后红灯亮25秒,然后闪烁5次

师:通过前三个任务的学习,大家对常见的指令已有所了解,接下来两人一个小组合作完成任务四。

学生完成任务四,完成的硬件连接及程序如图6所示。

设计意图:通过任务三和任务四,让学生动手实践,巩固所学知识,培养学生的问题解决能力。通过独立操作和小组互助完成硬件连接和程序编写,培养学生在问题解决过程中的独立思考能力和团队协作能力。

● 总结知识,课后延伸

师:我们分析一下最后的程序,首先绿灯亮20秒,然后闪烁10次,然后黄灯亮3秒,然后红灯亮25秒,然后闪烁5次,结束后又回到开始绿灯亮20秒,如此重复执行,这就是红绿灯系统的工作模式,通过观察程序及硬件效果我们知道程序是顺着第一条顺序往下执行的,当执行到最后结束后又返回第一条重复执行,在程序中当需要对某部分指令执行多次时就需要用到循环指令 ,除了循环指令外,今天我们还学习了、这两条指令,这就是我们这节课学习的内容。本节课的红绿灯系统大家都已经完成,那么这个红绿灯系统有没有需要完善改进的地方?如显示倒计时、堵车时手动控制等,这些问题我们下一节课来解决。

(本案例由云南省教科院吴凝提供指导)

猜你喜欢

黄灯绿灯红绿灯
为什么红灯停,绿灯行
会说话的红绿灯
红灯停,绿灯行
红绿灯
还有94分
一根线,两种罚
闯黄灯现象回潮
安全红绿灯
红绿灯眨眼睛
红灯与绿灯