友情提示:380元/半年,儿童学编程,就上码丁实验室。
情景描述
森林之王——老虎因有事要出去,它请聪明能干的小猫暂时看守几天森林,天气渐热,正值森林火灾高发时期。
为了更好地做好火灾防护工作,本课我们将通过 Scratch 设计一个程序,用传感器板上的 LED 灯做火灾预警,帮助小猫保卫森林。

2
创意构想
在本课的范例作品中,我们可以通过监测森林里的烟雾浓度作为火灾预警依据。
如果没有烟雾,绿色 LED 灯亮,表示森林安全;
如果有烟雾但还在安全范围内,黄色 LED 灯亮,提示森林存在安全隐患;
如果烟雾超过一定范围,即将引发火灾,红色 LED 灯亮,提示森林存在危险。
要完成本课的创意构思,需要了解以下的新知识、使用以下的新指令:
LED灯
LED 灯的中文名称是“发光二极管”。它可以把电能转化成光能,在电子电路或者仪器设备中作为指示灯使用,也可以用于显示文字或者数字。
在特里斯传感器板上有 4 个 LED 灯,分别位于“POWER”“D3”“D4”“D5”位置。其中“POWER”灯是判断传感器板与计算机是否正常连接的指示灯,连接正常的状态下,“POWER”灯亮。
本课范例程序用到的是“D3”“D4”“D5”这三颗 LED 灯,这三颗灯的颜色分别是绿色、黄色、红色,通过 Scratch 程序设计可以改变它们的状态。


设置绿色 LED 灯的亮灭,取值范围为(0,1)。当参数值为“0”时,绿色 LED 灯灭;参数值为“1”时,绿色 LED 灯亮。

设置黄色 LED 灯的亮灭,取值范围为(0,1)。当参数值为“0”时,黄色 LED 灯灭;参数值为“1”时,黄色 LED 灯亮。

设置红色 LED 灯的亮度,取值范围为(0-100)。与绿灯、黄灯不一样,红色 LED 灯除了参数值为“0”时灯灭以外,还可以设置灯的亮度;参数值越大,灯的亮度越亮,参数值为“100”时,灯最亮。
3
脚本设计
第一步:
设置舞台背景与初始化
1. 打开网络浏览器,登录“好好搭搭”网站,进入“传感器板编程设计页”,连接传感器板和计算机。

2. 单击“舞台列表区”中的“从背景库中选择背景”按钮,在打开的“背景库”对话框中,将森林缩略图(forest)作为背景图片添加到舞台上。

3. 本课的范例作品只使用了传感器板上的 LED 灯,它没有传感器数值显示。因此为了作品的美观,可以将舞台上的所有传感器数值都隐藏起来。

4. 由于 LED 灯的状态是根据森林里的烟雾大小来确定的,因此需要新建一个变量“烟雾”,用于表示森林里的烟雾大小,同时右键单击舞台上的这个变量,在打开的菜单中选择“滑杆”选项,这样可以通过滑杆随时调整变量的值,模拟森林中烟雾的大小。

5. 单击舞台背景缩略图,在“脚本区”添加如下右图所示的初始化脚本代码:

第二步
用绿色 LED 灯表示没有烟雾
在本课的范例程序中,当“烟雾”变量值=“0”时,绿色 LED 灯亮,表示森林安全。要实现这个功能,可以单击舞台背景缩略图,在“脚本区”编写控制绿色 LED 灯的代码。
首先将“开始旗”和“重复执行”指令组合在一起,然后使用“判断”指令进行判断:如果“烟雾”变量值=“0”时,那么绿色 LED 灯为“亮”,其他灯为“灭”。程序如下:

第三步
用黄色 LED 灯表示
有烟雾且在安全范围内
黄色 LED 灯与绿色 LED 灯的脚本代码基本相同,都是通过设置“亮”、“灭”来表示当前森林的状态。
所不同的是“判断”指令的条件。黄色灯亮的条件应该是“烟雾变量数值”>“0”并且“烟雾变量数值”<“30”这两个条件同时满足。因此要用到“数字和逻辑运算”类别中的“且”指令将这两个条件组合在一起。具体的脚本代码如下图所示:

第四步
用红色 LED 灯
表示烟雾超出安全范围
当“烟雾变量数值”=“30”或者“烟雾变量数值”>“30”时,红色 LED 灯亮起,表示森林存在危险。由于这两个条件只要满足其中一个就应该让红灯亮,因此可以使用“数字和逻辑运算”类别中的 指令将这两个条件组合在一起。
特里斯传感器板上的红色 LED 灯与其它灯不一样,它可以设置亮度范围。因此可以有 3种亮灯效果:常亮、闪烁和呼吸灯。
其中红灯常亮和闪烁效果的脚本代码与绿灯、黄灯类似,具体脚本如下图所示:

左图程序为满足条件后红灯常亮效果;
右图为满足条件后红灯闪烁效果
除了让红色 LED 灯常亮和闪烁,还可以让它的亮度在最亮(100)与最暗(0)之间逐渐变化,就像灯会“呼吸”一样。
要达到这样的效果,应该先新建“亮度”变量用于存贮红灯的亮度值,同时设置这个变量的初始值为“0”;
然后使用“重复执行”指令,让变量从“0”开始依次增加,直到最大值“100”,由于“设置红灯亮度”指令的参数值就是“亮度”变量的值,所以红灯会逐渐亮起;
再使用第二个“重复执行”指令,让变量从“100”开始依次减少,直到最小值“0”,这时红灯会逐渐熄灭,从而实现“呼吸灯”的效果。具体脚本如下图所示:
现在单击绿旗运行程序,当“烟雾”变量的值大于或者等于30时,红色LED慢慢亮起、又慢慢变暗,达到“呼吸”一般的效果。
视频解说:
StarLab将持续更新关于Scratch传感器板的创意编程视频,Scratch 传感器板是扩展 Scratch 软件功能的一组硬件。通过传感器板能够感知真实环境的变化(比如声音的响度、光线的亮度),同时将数值传送到 Scratch 软件中。利用 Scratch传感器板可以创作出更为丰富多彩的互动作品。