RB04 红绿灯
课程概述
- 课程名称:见标题
- 课程时长:40 分钟 × 2
- 课程内容:程序控制若干 LED 模拟路口红绿灯交替亮灭效果
- 学生群体:3~6 年级
本课内容参考来源:
1. 《树莓派初级课程V1(吴俊杰老师18课时)》第 5 课
2. 课件 1.0 初级 1,第 04 课
3. 酌情增删内容
教学目标
考察点
- 红绿灯的概念
- 小灯安装。(需要延长线,连接非 LED 专用插座)
- 懂得条件语句的使用
- 懂得循环的基本使用
知识与技能
- 条件循环、无限循环
- 变量
- 流程图
- 布尔值,逻辑运算
情感价值和学科交叉
- 红绿灯和交通安全
难点和注意事项
- 变量的理解和使用
- 多组控制的协同
- 杜邦线连接的操作,公母头,连线接头的对应
教学准备
课堂教学活动
暖场(10分钟)
活跃气氛,复习上节课内容,引入本节课主题
复习:
- 流水灯
- 红外手势控制流水灯
课堂讲解:红绿灯 (60分钟)
教学提纲:
- 前篇
- 任务一:简单红绿灯(流水灯)
- 任务二:一个方向的红绿灯
- 任务三:使用变量让程序易读
- 无限循环
- 后篇
- 任务四:使用杜邦线制作第二个方向的红绿灯;
- 任务五:两个方向的红绿灯
- 回顾变量的概念和使用
- 扩展内容 (根据学生程度酌情加入,不影响主线课程进度)
- 流程图
授课内容:详见下文“讲义”部分。
巩固练习和作业
- 真正的红绿灯两个方向的黄灯不是同时亮的
- 可否用基础里的设置GPIO()为()命令替换控制小灯开关的命令;
- 用调试输出显示倒计时;
- 过马路功能:按下按钮,将黄闪过几秒后改为绿灯且对向从绿、黄改变为红灯
总结与点评(10分钟)
(回顾课程知识点,根据情况提问。如果有学生作品,邀请学生上台演示、讲解。)
思考题:
- 什么是变量?
- 引入变量是否让程序更容易编写?
讲义 (完整授课内容和补充知识)
任务一:最简单的红绿灯
什么是红绿灯?
红绿灯由红、黄、绿三种颜色的灯交替亮灭,达到警示提醒的作用。其中红灯和绿灯亮的时间长一些,黄灯亮的短一点,三灯亮的顺序为:红——黄——绿。
红绿灯在现代交通体系中占据十分重要的地位。

最简单的红绿灯看起来是一个三色流水灯。
操作:将红黄绿三色 LED 分别插入 5、6、12 号插座。用制作流水灯的方法制作简单的红绿灯。

任务二:一个方向上的红绿灯;无限循环
红绿灯需要全天候工作,因此,需要一个无限循环。
在学习无限循环之前,我们需要了解无限循环通常是应该尽量避免的。任何循环终归需要一个结束循环的条件。所以实际上我们需要的是一个“条件”循环,意思是当某种条件满足时就会执行循环体的内容,否则就会终止。
我们用一个条件循环,将条件设置为始终为真的变量就可以实现无限循环。我们来做一个更加接近真实的红绿灯,黄灯亮的时间短于红灯和绿灯:

其中“真”这块积木在“条件”分组中。它是一个布尔值。实际上在编程中,所有的条件检查都是在检查布尔值“真”或“假”,条件为“真”时就表示条件满足,否则不满足。
简单实验一下即可。在后续的实验中,还是采用限定重复次数的循环。
任务三:使用变量
为了让程序易读,我们引入变量来标记红黄绿灯。 标准的控制灯光的积木不接受变量,因此改为直接使用 GPIO 控制。

任务四:两个方向的红绿灯
红绿灯分为前后左右四个方位,如果将前后当作一个方向,左右就是另一个方向。尝试做出两个方向上的红绿灯,让作品更接近现实。
硬件连接:
首先需要用杜邦线连接 LED 和 GPIO。将红黄绿 LED 的正极通过线缆分别插入 GPIO 3,2,17。负极接地(GND)。

首先尝试在这个新增的方向(方向 2)上做出红绿灯,控制方式不使用直接控制小灯的积木,而是直接用 GPIO 的控制积木。之所以这样做,是因为我们需要用变量来操作。当逻辑逐渐复杂时,数字编号会使程序难以阅读。
前面已经用变量控制了一个方向的红绿灯。我们现在新建一组变量来控制第二个方向的红绿灯。可以简单复制第一个方向的代码。

流程图
方向1和方向2两组红绿灯需要协同工作。逻辑似乎有点复杂,我们来用一个新的工具“流程图”来梳理整个工作过程。
如下流程图,展现了顺序和循环结构:(图后补,这里是额外扩充内容,根据课堂进度,可详细介绍流程图的使用或一句带过)
任务五:两个方向的红绿灯协同
按照流程图,我们来编写脚本。

变量
什么是变量? 变量就是装东西(值、大小)的盒子
变量的作用? 暂时存放当前(这一次)的取值
下次可以取出来用(比如,进行条件判断)
变量需要先“赋值”(初始化)再使用。
变量在使用过程中,可以改变它的值,所以叫做“变”量
课件
根据本教学计划和讲义,以及具体授课对象编写。
文件名应为:
RB04-红绿灯.pptx