任务说明:让开发板像“保安塔”一样,当周围太吵时自动亮起警报灯
积木编程区(声音警报塔的“大脑”)
通过变量
volume 表示“当前声音大小”,给噪声设置一个“太吵”的阈值,让 LED13 只在太吵时点亮。
任务:做一个“声音警报塔”。当周围太吵时亮起警报灯并打印提示;当环境安静时关闭警报灯。
抽象规则:
变量
设定一个阈值,比如 60:
如果
否则:关闭 LED13,并打印“OK:QUIET”。
整个逻辑放在「永远重复」里,让警报塔不停地监听环境。
抽象规则:
变量
volume 表示当前声音强度(0–100)。设定一个阈值,比如 60:
如果
volume > 60:点亮 LED13,并打印“ALERT:LOUD”;否则:关闭 LED13,并打印“OK:QUIET”。
整个逻辑放在「永远重复」里,让警报塔不停地监听环境。
ARDUINO UNO · VIRTUAL BOARD
当前任务:高亮 A0(声音传感器)和 D13(警报灯)
虚拟 Arduino UNO + 声音传感器:
现实中,声音传感器(麦克风模块)一般接在 A0,这样板子就能把“声音强度”读成一个数字。
本关抽象为:
volume 变量就代表声音强度,你的程序只需要看它是否超过“太吵”的阈值,然后决定要不要点亮 LED13 这颗警报灯。
以后上真板时,只需要在 C++ 里用 analogRead(A0) 把读数赋给 volume,整体逻辑不变。
仿真 & 设备日志(声音警报记录)
[系统] 这里会显示“ALERT:LOUD”“OK:QUIET”“LED13:ON/OFF”等逻辑模拟结果;
以后如果接上真实声音传感器和板子,也可以把串口输出同步到这里,变成真正的“噪声监控日志”。
任务剧情 & 操作步骤
从“会闪灯”和“听按钮”,升级为“听环境里有多吵”。
1. 剧情:起源星的「声音警报塔」
起源星的实验室晚上需要安静,但有时飞船起降、机器人搬东西会很吵。
工程师委员会请你设计一个声音警报塔:只要实验室噪声超过某个阈值,塔顶的警报灯就会亮起,提醒大家“太吵了”。
2. 操作步骤(给孩子看的版本)
- (1)在“变量”里创建一个变量,名字叫
volume(表示声音大小)。 - (2)在“Arduino 入门”中拖出「当程序开始时」和「永远重复」,搭成基本框架。
- (3)在「永远重复」里面放一个 如果 … 否则 … 的条件积木。
- (4)条件里用
volume > 60或volume > 70(你自己决定阈值)。 - (5)在“太吵”的分支里:
-
① 点亮 LED13;
② 打印 “ALERT:LOUD”。
- (6)在“否则”(安静)那一支里:
-
① 关闭 LED13;
② 打印 “OK:QUIET”。
- (7)在末尾加一个短暂的等待,比如 0.2 秒,让警报塔每 0.2 秒检查一次环境。
- (8)切到「代码模式」,观察 C++ 里如何用
if (volume > ...)来做判断。
3. 给家长的引导脚本
- 可以问:“如果这里是图书馆,你希望多少分贝以上才算‘太吵’?”引导孩子理解“阈值”的概念。
- 让孩子用自然语言描述程序:
“每隔一小会儿就看一眼声音有多大,如果超过某个数字就亮警报灯,否则就关掉。” - 如果孩子掌握得不错,可以再问:“如果我们想做‘三档’提示:安静、正常、爆炸吵,需要几个 if?”
4. 本关完成标准
- 积木中出现完整的:
if (volume > 阈值)结构,并能切换 LED13 状态。 - 能说明“volume”是声音传感器读数的抽象,能说出阈值在程序中的作用。
- 在代码模式下,能大致看懂:
if (volume > ...)和digitalWrite(13, ...)的关系。
家长提示:这一关的本质是“连续监测 + 阈值判断”。以后无论是温度警报、光线警报还是价格警报,本质都是:
传感器 / 数据 → 数字变量 → 与阈值比较 → 触发动作(灯、声音、推送)。 孩子如果能把这条链路说清楚,就已经完成本关核心目标。
传感器 / 数据 → 数字变量 → 与阈值比较 → 触发动作(灯、声音、推送)。 孩子如果能把这条链路说清楚,就已经完成本关核心目标。