起源星 L0-03 · 声音警报塔
第三关:用声音传感器监听噪声,触发警报小灯
← 返回元宇宙首页
任务说明:让开发板像“保安塔”一样,当周围太吵时自动亮起警报灯
适龄建议:8–12 岁 | 建议先完成 L0-01 闪烁灯 | 本关引入「声音传感器 → 判断 → LED 警报」的完整链路。
目标:根据声音大小做判断,设计“安静 / 吵闹”两种不同反应 知识点:模拟输入(声音强度) / 阈值判断 / 条件触发 硬件映射:MIC 模块 → A0,警报灯 → 板载 LED13
积木编程区(声音警报塔的“大脑”)
通过变量 volume 表示“当前声音大小”,给噪声设置一个“太吵”的阈值,让 LED13 只在太吵时点亮。
设备状态:未连接(本关默认用虚拟 UNO)
警报灯 LED13
运行模式: 浏览器仿真
任务:做一个“声音警报塔”。当周围太吵时亮起警报灯并打印提示;当环境安静时关闭警报灯。
抽象规则:
  变量 volume 表示当前声音强度(0–100)。
  设定一个阈值,比如 60:
  如果 volume > 60:点亮 LED13,并打印“ALERT:LOUD”;
  否则:关闭 LED13,并打印“OK:QUIET”。
整个逻辑放在「永远重复」里,让警报塔不停地监听环境。
ARDUINO UNO · VIRTUAL BOARD
当前任务:高亮 A0(声音传感器)和 D13(警报灯)
Arduino UNO L (LED13) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 3.3V 5V GND VIN A0 A1 A2 A3 A4/SDA A5/SCL ATmega328P
虚拟 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 > 60volume > 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, ...) 的关系。
家长提示:这一关的本质是“连续监测 + 阈值判断”。以后无论是温度警报、光线警报还是价格警报,本质都是:
传感器 / 数据 → 数字变量 → 与阈值比较 → 触发动作(灯、声音、推送)。 孩子如果能把这条链路说清楚,就已经完成本关核心目标。