JSS2 智能家居安防实验室
Loading...
JSS2 Smart House Security Lab

机器人安全任务 002

双区域智能家居实验室

模拟模式

任务简报 · JSS2 机器人学

房屋能否根据人员距离的远近发出不同的警告?

今天,我们将把我们的智能房屋升级为双区域安保系统。

检测警告保护
AI 概念图
150cm
002现场构建

01 · 体验

体验三种状态

移动模拟访客。此仪表板仅用于演示,并非实时 Arduino 连接。

150 cm

模拟读数

安全仪表盘NORMAL
150cm

Monitoring · system ready

正常100 cm 以上 · LED 关闭 · 静音
警告50–100 cm · LED 闪烁 · 静音
危险低于 50 厘米 · LED 灯亮 · 一次鸣叫

超过 100 cm 将重置下一次靠近。

02 · 工程升级

这个版本为什么更先进?

工程师通过增加更智能的决策来改进项目。

JSS1

一个简单阈值

  • 一个检测距离
  • LED 开启或关闭
  • 一个访客警报
已检测
JSS2

双区域决策

  • 两个距离阈值
  • 三种运行状态
  • 闪烁警告 + 常亮危险
  • 内存变量停止重复鸣叫
  • 访客离开时自动重置
50 cm100 cm

03 · 套件

认识这些组件

安全系统中的每个部件都有一个明确的功能。

UNO

Arduino Uno

负责做出决策的控制器。

)))

HC-SR04 传感器

通过回波测量距离。

LED

通过视觉显示警告和危险。

◖

蜂鸣器

发出短促的危险警报声。

面包板

让我们无需焊接即可构建。

╱╲

跳线

传输电源和信号。

—▥—

220–330 Ω 电阻

防止 LED 电流过大。

⌂

纸板屋

项目的物理外壳。

04 · 先规划

安全蓝图

传感器必须面向外部且无遮挡。

入口传感器支架LED 灯蜂鸣器电子元件仓
传感器面向访客
LED 灯在门附近可见
蜂鸣器保持可触及状态
为电路板留一个检修面板

05 · 搭建

搭建物理房屋

在安装电子元件之前,请确保结构稳定。

010203
  1. 01测量并标记纸板。
  2. 02切割墙壁和门洞。
  3. 03拼接墙壁并安装屋顶。
  4. 04将房屋固定在稳定的底座上。
  5. 05为电子元件留出操作空间。
安全第一在成人监督下小心使用剪刀或美工刀。

06 · 传感器接线

连接超声波传感器

HC-SR04 通过测量超声波回波的时间来估算距离。

HC-SR04
传感器引脚ARDUINO UNO
VCC5V
GNDGND
TRIGD9
ECHOD10

距离原理time × 0.0343 ÷ 2

07 · 视觉信号

连接 LED

一盏灯,三种有意义的行为。

关闭> 100 cm闪烁50–100 cm常亮< 50 cm
D13→220–330 Ω→LED 长脚
LED 短脚→GND

电阻限制电流,以确保 LED 安全。

08 · 声音信号

连接蜂鸣器

短促的声音标志着危险开始的时刻。

Buzzer +→D8
Buzzer −→GND
频率1000 Hz持续时间300 ms

当物体首次进入 50 厘米范围内时,它会响一次,而不是持续鸣叫。

09 · 集成检查

检查完整电路

追踪每一个电源、信号和共地连接。

ARDUINO
UNO
HC-SR04
+
传感器电源TRIG D9 · ECHO D10LED D13 + RESISTORBUZZER D8SHARED GND

连接检查清单

在更换导线前请断开 USB 电源。

10 · PICTOBLOX 实验室

进入 PictoBlox 实验室

PictoBlox 可视化积木块是我们主要的编程方法。

PICTOBLOX · STAGE MODE
⚑界面图解
  1. 01打开 PictoBlox 并选择积木编程。
  2. 02选择 Arduino Uno。
  3. 03连接正确的 COM 端口。
  4. 04选择舞台模式。
  5. 05如果提示,请上传固件;保持 USB 连接。
诚实的工程笔记界面标签随版本而异。请根据预期功能操作,如果所需的积木块不可用,请切换至备份程序。

11 · 积木工具箱

探索编程积木块

先寻找功能;具体标签可能会随您的 PictoBlox 版本而有所不同。

事件
when green flag clicked
控制
forever
if · then · else
wait 0.2 seconds
运算符
distance > 100
distance ≥ 50
visitorAlerted = 0
变量
set visitorAlerted to 0
set visitorAlerted to 1
ARDUINO UNO 扩展
ultrasonic distance · TRIG 9 · ECHO 10
digital pin · HIGH / LOW
play tone on pin 8 · if available

12 · 记忆变量

创建 visitorAlerted 变量

这个微小的记忆功能可以防止令人厌烦的重复鸣叫。

visitor
Alerted
0
0

此次靠近尚未触发危险鸣叫。

1

在此次靠近周期中,危险鸣叫已经发生过。

↻

当访客移动到 100 cm 之外时,将其重置为 0,以便下次靠近。

13 · 构建逻辑

构建双区域 PictoBlox 逻辑

使用已安装扩展中提供的积木来构建预期的逻辑。

when green flag clicked
set [visitorAlerted] to [0]
set digital pin [13] to [LOW]
forever
read ultrasonic distance · TRIG 9 · ECHO 10
if distance > 100 then
LED LOW · visitorAlerted = 0
else if distance ≥ 50 then
LED HIGH → wait 0.2 → LOW → wait 0.2
else
LED HIGH
if visitorAlerted = 0
set visitorAlerted to 1 · play 1000 Hz for 0.3 s
wait 0.05 seconds

14 · 决策图

可视化安全流程图

循环读取、判断、发出信号并重复。

开始
↓
读取距离
↓
距离 > 100 CM?
YESLED 关闭 · 重置
NO检查 50 cm
≥ 50 CMLED 闪烁 · 不鸣叫
< 50 CMLED 开启 · 若为 0 则鸣叫
↻
重复

15 · 现场测试

测试三个区域

请在实际房屋中使用直尺或卷尺。此处的读数是模拟的。

150100500
150 cm
TEST A · 150 cmLED 关 · 蜂鸣器静音 · 正常
TEST B · 75 cmLED 闪烁 · 蜂鸣器静音 · 警告
TEST C · 30 cmLED 常亮 · 一次短促鸣叫 · 危险

后退至 100 厘米以外,然后再次靠近:此时允许触发新警报。

16 · 备选方案

积木丢失了?工程师总是有一个备选方案!

这是 Arduino C++ 备份代码——不是粘贴到可视化积木画布中的代码。

smart_house_security.ino
const int trigPin = 9;
const int echoPin = 10;
const int ledPin = 13;
const int buzzerPin = 8;

bool visitorAlerted = false;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}

void loop() {
  long duration;
  float distance;

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH, 30000);

  if (duration == 0) {
    digitalWrite(ledPin, LOW);
    noTone(buzzerPin);
    visitorAlerted = false;
    delay(100);
    return;
  }

  distance = duration * 0.0343 / 2;

  if (distance > 100) {
    digitalWrite(ledPin, LOW);
    noTone(buzzerPin);
    visitorAlerted = false;
  } else if (distance >= 50) {
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  } else {
    digitalWrite(ledPin, HIGH);
    if (!visitorAlerted) {
      tone(buzzerPin, 1000, 300);
      visitorAlerted = true;
    }
  }

  delay(50);
}
pulseIn 用于读取回波脉冲。该公式用于估算厘米数。visitorAlerted 用于防止重复鸣叫。请使用 Arduino IDE 或其他兼容的 Arduino 工作流将其上传。

17 · 调试面板

排除安全系统的故障

优秀的工程师每次只更改一项,然后测试并观察结果。

?

传感器模块不可用

确认 Arduino Uno、所需的扩展以及舞台模式支持。

♪

蜂鸣器不响

检查 D8、GND、极性、色调积木,或使用备份代码。

●

LED 灯不闪烁

检查 D13、电阻、LED 极性和警告条件。

↻

系统重复鸣叫

在鸣叫后将 visitorAlerted 设置为 1;仅在 100 厘米以上时重置。

⟳

系统无法复位

检查读数和大于 100 厘米的条件。

≈

读数不一致

检查接线是否松动、传感器方向、电源以及是否有障碍物。

18 · 任务汇报

任务完成!

你打造了一座更智能的房屋。

AI 概念图
正常蓝色监控
警告琥珀色闪烁
危险红色警报
  • 物理房屋已搭建
  • 传感器、LED 和蜂鸣器已连接
  • PictoBlox 逻辑已组装
  • 三种状态已测试
  • 备份 Arduino 代码已就绪
检测→警告→警报→重置

请解释为什么两个距离阈值使此版本比 JSS1 版本更先进。

01 / 19使用 ← → 键进行导航