第一步:明确你的机器人目标与功能
要定义你的机器人想做什么,这决定了你后续的复杂程度和所需材料。
功能选项 (从简单到复杂):
-
基础展示型:
- 功能: 可以遥控移动,头部或眼睛有LED灯闪烁,发出简单的声音。
- 特点: 结构简单,适合初学者,主要目的是外观和基础互动。
-
中型互动型:
- 功能: 在基础型上增加机械臂,可以抓取小物件(如包裹、小球);增加超声波传感器,实现自动避障;增加循迹功能,沿黑线行走。
- 特点: 需要更复杂的编程和结构设计,是进阶玩家的首选。
-
高级智能型:
- 功能: 结合摄像头和AI图像识别,可以识别特定物体或人脸;通过语音助手(如Alexa)进行控制;实现更复杂的自主导航和任务规划。
- 特点: 技术门槛高,需要较强的编程和AI知识,但功能非常强大。
本文将以最受欢迎的“中型互动型”为例进行详细讲解。
第二步:核心组件清单
你需要准备以下几类硬件:
结构与动力部分
- 主体:
- 亚马逊快递纸箱: 至少1个,作为机器人的身体,建议选择尺寸稍大、结构坚固的箱子。
- 亚克力板/PVC板: 用于制作底盘、机械臂的支架等,更坚固。
- 3D打印件: 如果你有3D打印机,可以打印出更酷炫的齿轮、外壳和连接件。
- 驱动系统:
- TT马达 + 轮子: 2套,用于驱动机器人移动,TT马达是小型项目中最常用的直流减速电机。
- 双路电机驱动板: 1个,用于控制电机的正转、反转和速度,常用的有L298N或更现代的TB6612。
- 控制系统:
- 主控板: 1块,这是机器人的“大脑”。
- Arduino Uno/Nano: 最流行,社区支持强大,适合初学者。
- Raspberry Pi (树莓派): 功能更强大,可以运行Linux系统,适合需要连接摄像头、实现复杂逻辑的项目。
- 主控板: 1块,这是机器人的“大脑”。
- 电源:
- 18650锂电池组 + 充电管理模块: 提供便携的电源,推荐2节串联(7.4V),给电机和主控板供电。
- 电池盒: 用于固定电池。
传感器部分
- 超声波传感器 (HC-SR04): 1-2个,用于测量前方或侧方障碍物的距离,实现避障。
- 红外循迹传感器模块: 1个,通常包含2-3个红外对管,用于识别黑线,实现循迹。
- 人体红外传感器 (PIR): 1个,可选,用于检测是否有人靠近,实现“打招呼”等互动。
执行器部分
- 机械臂:
- SG90舵机 (4个): 用于制作简易机械臂,控制抓取、旋转等动作,SG90便宜且易于控制。
- 金属齿轮舵机 (可选): 如果机械臂需要承重,建议使用更坚固的金属齿轮舵机。
- LED灯:
- WS2812B LED灯带 (Neopixel): 1小段,可以编程控制每个灯的颜色,制作炫酷的眼睛或呼吸灯效果。
- 蜂鸣器: 1个,用于发出提示音或简单的旋律。
工具与辅料
- 热熔胶枪: DIY神器,用于快速固定各种部件。
- 扎带、螺丝、螺母、双面胶: 用于固定和连接。
- 杜邦线: 用于连接各个电子模块。
- 焊锡和电烙铁 (可选): 用于更可靠的电路连接。
- 美工刀、尺子、铅笔: 用于切割和测量纸箱。
第三步:机械结构设计与组装
这是将想法变为现实的关键一步。
底盘设计:
- 用亚克力板或硬纸板制作一个底盘,将两个TT马达固定在底盘后方。
- 在底盘前方安装一个万向轮(或用另一个小轮子),作为支撑。
- 将电机驱动板、主控板、电池盒等电子元件固定在底盘上,注意重心平衡。
身体组装:
- 将亚马逊纸箱作为身体,固定在底盘上方。
- 在纸箱上为传感器(超声波、循迹)和“眼睛”(LED灯带)开好孔。
- 设计一个简单的机械臂支架,固定在纸箱的一侧,然后将舵机和机械臂爪子组装上去。
整体布局:
- 电源: 电池放在底盘底部,降低重心。
- 大脑: Arduino/Raspberry Pi放在中间位置,方便接线。
- 感官: 传感器头部伸出,视野开阔。
- 手臂: 机械臂安装在侧面,不影响移动。
第四步:电路连接
将所有电子模块按照逻辑连接起来。
连接逻辑:
-
电源:
- 电池组正极 -> 电机驱动板
VMOT(电机电源输入) - 电池组负极 -> 电机驱动板
GND - 电池组正极 -> 主控板
VIN(或通过5V稳压模块) - 电池组负极 -> 主控板
GND - 注意: 电机功率较大,不要直接从主控板的5V引脚取电,以免烧毁芯片。
- 电池组正极 -> 电机驱动板
-
电机:
- 电机驱动板的
OUT1/OUT2-> 左侧TT电机 - 电机驱动板的
OUT3/OUT4-> 右侧TT电机 - 电机驱动板的
IN1/IN2/IN3/IN4-> Arduino的数字引脚(如5, 6, 9, 10)
- 电机驱动板的
-
传感器:
- 超声波传感器:
VCC-> Arduino5VGND-> ArduinoGNDTrig-> Arduino 数字引脚(如7)Echo-> Arduino 数字引脚(如8)
- 红外循迹传感器:
VCC-> Arduino5VGND-> ArduinoGNDOUT-> Arduino 模拟引脚(如A0)
- 超声波传感器:
-
执行器:
- 舵机:
VCC(红色) -> Arduino5VGND(棕色/黑色) -> ArduinoGNDSignal(橙色) -> Arduino 数字引脚(如11)
- LED灯带:
5V-> Arduino5V(注意电流,可能需要外部电源)GND-> ArduinoGNDDI(数据输入) -> Arduino 数字引脚(如3)
- 蜂鸣器:
- -> Arduino 数字引脚(如
12) - -> Arduino
GND
- -> Arduino 数字引脚(如
- 舵机:
建议: 使用不同颜色的杜邦线,并做好标记,方便排查问题。
第五步:编程与控制
这是让机器人“活”起来的核心。
环境搭建:
- 安装 Arduino IDE。
- 在“文件” -> “首选项”的“附加开发板管理器网址”中,添加第三方库地址(如果需要)。
- 在“工具” -> “开发板”中选择你的Arduino型号。
安装所需库:
- 在“工具” -> “管理库”中搜索并安装:
Servo(控制舵机,通常自带)NewPing(简化超声波传感器编程)FastLED(高效控制WS2812B灯带)
编写示例代码 (Arduino):
示例1: 遥控小车 + 避障
#include <NewPing.h>
#include <Servo.h>
// 定义引脚
#define ECHO_PIN 8
#define TRIG_PIN 7
#define MAX_DISTANCE 200 // 最大探测距离
#define ENA 5
#define IN1 6
#define IN2 9
#define IN3 10
#define IN4 11
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
// 设置电机控制引脚为输出
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
delay(50); // 等待传感器稳定
unsigned int distance = sonar.ping_cm(); // 读取距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 0 && distance < 20) { // 如果距离小于20cm
stop(); // 停止
delay(500);
back(); // 后退
delay(500);
left(); // 左转
delay(500);
} else {
forward(); // 否则前进
}
}
// 电机控制函数
void forward() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 200); // 设置速度
analogWrite(ENB, 200);
}
void back() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, 200);
analogWrite(ENB, 200);
}
void left() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 200);
analogWrite(ENB, 200);
}
void right() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, 200);
analogWrite(ENB, 200);
}
void stop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
示例2: 机械臂控制
#include <Servo.h>
Servo clawServo; // 抓取舵机
Servo baseServo; // 底座舵机
Servo wristServo; // 手腕舵机
Servo armServo; // 大臂舵机
void setup() {
clawServo.attach(3);
baseServo.attach(5);
wristServo.attach(6);
armServo.attach(9);
// 初始化到初始位置
clawServo.write(90);
baseServo.write(90);
wristServo.write(90);
armServo.write(90);
delay(1000);
}
void loop() {
// 示例:抓取动作
clawServo.write(0); // 张开爪子
delay(1000);
armServo.write(45); // 举起手臂
delay(1000);
clawServo.write(180); // 合拢爪子
delay(1000);
armServo.write(90); // 放下手臂
delay(1000);
}
上传代码:
- 用USB线将Arduino连接到电脑。
- 在Arduino IDE中选择正确的端口和开发板。
- 点击“上传”按钮。
第六步:美化与优化
- 外观: 用马克笔、贴纸、颜料来装饰你的亚马逊盒子机器人,让它看起来更酷。
- 外壳: 如果觉得纸箱太简陋,可以用亚克力板或木板制作一个更精致的外壳。
- 功能扩展:
- 添加蓝牙模块(如HC-05),用手机App控制。
- 添加Wi-Fi模块(如ESP8266),实现网络控制。
- 升级为Raspberry Pi,接入摄像头,实现人脸识别和图像追踪。
制作亚马逊盒子机器人是一个充满挑战和乐趣的过程,从设计、组装、接线到编程,每一步都能让你学到新知识。
关键建议:
- 由简到繁: 先实现最基础的功能(如遥控小车),再逐步添加传感器和执行器。
- 善用资源: Arduino和Raspberry Pi社区非常庞大,遇到问题时,搜索官方论坛、GitHub或YouTube,你几乎总能找到解决方案。
- 耐心调试: 电子项目99%的时间都在调试,保持耐心,仔细检查接线、代码和电源供应。
祝你成功打造出独一无二的亚马逊盒子机器人!
标签: 亚马逊盒子机器人制作教程 废弃亚马逊盒子机器人DIY 亚马逊盒子机器人儿童手工
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。