一个简单阈值
- 一个检测距离
- LED 开启或关闭
- 一个访客警报

机器人安全任务 002
双区域智能家居实验室
任务简报 · JSS2 机器人学
今天,我们将把我们的智能房屋升级为双区域安保系统。
01 · 体验
移动模拟访客。此仪表板仅用于演示,并非实时 Arduino 连接。
模拟读数
Monitoring · system ready
超过 100 cm 将重置下一次靠近。
02 · 工程升级
工程师通过增加更智能的决策来改进项目。
03 · 套件
安全系统中的每个部件都有一个明确的功能。
负责做出决策的控制器。
通过回波测量距离。
通过视觉显示警告和危险。
发出短促的危险警报声。
让我们无需焊接即可构建。
传输电源和信号。
防止 LED 电流过大。
项目的物理外壳。
04 · 先规划
传感器必须面向外部且无遮挡。
05 · 搭建
在安装电子元件之前,请确保结构稳定。
06 · 传感器接线
HC-SR04 通过测量超声波回波的时间来估算距离。
距离原理time × 0.0343 ÷ 2
07 · 视觉信号
一盏灯,三种有意义的行为。
电阻限制电流,以确保 LED 安全。
08 · 声音信号
短促的声音标志着危险开始的时刻。
当物体首次进入 50 厘米范围内时,它会响一次,而不是持续鸣叫。
09 · 集成检查
追踪每一个电源、信号和共地连接。
在更换导线前请断开 USB 电源。
10 · PICTOBLOX 实验室
PictoBlox 可视化积木块是我们主要的编程方法。
11 · 积木工具箱
先寻找功能;具体标签可能会随您的 PictoBlox 版本而有所不同。
12 · 记忆变量
这个微小的记忆功能可以防止令人厌烦的重复鸣叫。
此次靠近尚未触发危险鸣叫。
在此次靠近周期中,危险鸣叫已经发生过。
当访客移动到 100 cm 之外时,将其重置为 0,以便下次靠近。
13 · 构建逻辑
使用已安装扩展中提供的积木来构建预期的逻辑。
14 · 决策图
循环读取、判断、发出信号并重复。
15 · 现场测试
请在实际房屋中使用直尺或卷尺。此处的读数是模拟的。
后退至 100 厘米以外,然后再次靠近:此时允许触发新警报。
16 · 备选方案
这是 Arduino C++ 备份代码——不是粘贴到可视化积木画布中的代码。
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);
}17 · 调试面板
优秀的工程师每次只更改一项,然后测试并观察结果。
确认 Arduino Uno、所需的扩展以及舞台模式支持。
检查 D8、GND、极性、色调积木,或使用备份代码。
检查 D13、电阻、LED 极性和警告条件。
在鸣叫后将 visitorAlerted 设置为 1;仅在 100 厘米以上时重置。
检查读数和大于 100 厘米的条件。
检查接线是否松动、传感器方向、电源以及是否有障碍物。
18 · 任务汇报
你打造了一座更智能的房屋。
请解释为什么两个距离阈值使此版本比 JSS1 版本更先进。