手把手打造Arduino Nano喂食机器人
元件与物料
| 元件 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| HC-SR04 超声波测距模块 | 1 |
| 半尺寸无焊面包板 | 1 |
| SG90 微型舵机 | 1 |
| 杜邦线若干 | 1 |
必备工具
- 热熔胶枪
应用与服务
- Arduino IDE
- Arduino Web Editor
项目由来
女儿想要一个会“吃东西”的机器人。翻箱倒腾找出纸板、Arduino Nano、超声波、舵机,以最低成本、最快速度做了这个亲子玩具。
制作机身
用纸板剪折机身,热熔胶粘合:



挖眼孔、做嘴巴(舵机驱动上下张合):


电路连接

- HC-SR04:Trig → D3,Echo → D2;
- SG90:信号线 → D9,VCC/GND 接 5V/GND;
- USB 供电。

调试与成品


完整代码
GoldScrew_EatingRobot.ino
/* 纸板喂食机器人
* Author: GoldScrew
* Email: goldscrewdiy@gmail.com
* 功能: HC-SR04检测距离<=5cm视为有食物,驱动舵机张嘴“进食”
*/
#include
#define SERVO_PIN 9
const int trig = 3;
const int echo = 2;
Servo mouthServo;
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
mouthServo.attach(SERVO_PIN);
mouthServo.write(90); // 闭嘴位置
}
void loop() {
unsigned long duration;
int distance;
digitalWrite(trig, LOW); delayMicroseconds(2);
digitalWrite(trig, HIGH); delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = int(duration / 2 / 29.412); // cm
if (distance <= 5) {
Serial.println("the distance is less than 5 cm");
mouthServo.write(0); // 张嘴
delay(1200);
} else {
Serial.println("the distance is more than 5 cm");
mouthServo.write(90); // 闭嘴
}
delay(200);
}
原理图

制造工艺
- Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
- Unopad:基于 Arduino 的无缝 Ableton Live MIDI 控制器
- 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
- Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
- Arduino Nano 手持盖革计数器:DIY 核辐射检测仪
- Arduino 合成乐音:从零实现 88 键钢琴全音域
- 基于 Arduino 和超声波传感器的自动门控制系统
- 通过专用 Android App 蓝牙控制 Arduino 机械臂
- 四轮 Arduino 机器人:Dabble App 蓝牙手柄遥控
- Arduino Modbus 从机开发全攻略:基于 RS485 扩展板的分步实现指南