“走开”机器人:Arduino 入门级超声波避障发声装置
项目简介
这是一个面向儿童/初学者的 Arduino 入门套件项目:“走开”机器人。利用 HC-SR04 超声波测距,当检测到前方 < 100 cm 有物体靠近时,蜂鸣器发声(98 Hz)且绿 LED 点亮,驱赶“入侵者”。项目以泡沫假发头为外壳,挖空后部安装电路,造型趣味性强,适合亲子共同制作。
硬件清单
- Arduino Uno R3 ×1
- 半尺寸面包板 ×1
- HC-SR04 超声波模块 ×1
- 压电蜂鸣器 ×1
- 5 mm 绿色 LED ×1
- 跳线若干、泡沫假发头(外壳)、电池盒供电
接线图
| 模块引脚 | Arduino Uno |
|---|---|
| HC-SR04 VCC | 5V |
| HC-SR04 GND | GND |
| HC-SR04 Trig | D13 |
| HC-SR04 Echo | D12 |
| Buzzer + | D9 |
| Buzzer - | GND |
| LED Anode | D11 |
| LED Cathode | GND |
核心代码
#define trigPin 13
#define echoPin 12
#define buzzer 9
#define led 11
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // cm
if (distance < 100) {
tone(buzzer, 98); // 98 Hz 低音
digitalWrite(led, HIGH);
} else {
noTone(buzzer);
digitalWrite(led, LOW);
}
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
原理说明
pulseIn()读取 Echo 高电平宽度,换算距离公式:distance = duration / 58.2(代码中写作(duration/2)/29.1等价)- 阈值 100 cm 可按需修改
tone(buzzer, 98)输出约 98 Hz 方波,非标准音高,仅作示警- 串口每 500 ms 打印一次距离,便于调试
外壳制作
泡沫假发头后部挖空容纳面包板与 Uno,面部钻孔露出超声波探头(眼睛位置)、蜂鸣器(嘴部)、LED(鼻部/额头)。提供组装视频与外壳制作教程视频链接。
教学价值
- 超声波测距原理与
pulseIn使用 - 数字输出控制蜂鸣器/LED
- 阈值判断与分支结构
- 串口调试与单位换算
- 创意外壳设计结合电子电路
制造工艺
- 树莓派避障机器人搭建指南:新手入门教程
- 无人机弹道降落伞回收系统设计指南
- 智能笔:基于树莓派与 IMU 的实时手写与运动追踪
- Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
- Arduino 飞行模拟器 2020 实体开关面板
- Arduino + Excel 驱动 8×8 与 16×16 WS2812 RGB 矩阵动画编程
- 打造「索伦」半人形机器人:Arduino Mega 2560 完整指南
- LittleArm 2C:3D 打印 Arduino 机械臂 - STEM 教学专用,坚固易装
- 适用于 Arduino 项目的智能室内导航机器人套件
- RTC模块核心指南:精准计时的完整方案
- 工厂引入机器人准备好了吗?实操指南
- PACKEX Toronto:拥抱无缝自动化,正当时