您是否担心买到精密的假冒AirPods Pro?为了避免损失,请立即掌握11个从外观到功能都非常标准的检查AirPods Pro的技巧。本文将指导您如何在几分钟内查询序列号、检查降噪功能并识别正品耳机。立即查看,成为一个精明的消费者!
在家制作简单的智能机器人
本文详细介绍了如何在家中使用基本元件和Arduino组装和编程一个简单的机器人,这适用于初学者,并有助于通过实践体验了解更多电子和编程知识。
您热衷于科技并想亲手制作一个智能机器人吗?别担心,您不需要成为专业的工程师或程序员即可上手!本文将指导您如何制作一个简单的机器人,它可以从A点移动到B点,提供从基本组件到现成套件的多种选择。这不仅是一次有趣的体验,还能帮助您在家中以简单易懂的方式学习电子和编程知识。
第一部分:家庭机器人组装指南:新手分步详解
第一步:新手在家制作简单机器人的方法
您无需焊接,大部分组件都可以在电子商店或网上购买。有些套件甚至包含所有必需的组件。
所需准备的组件:
-
Arduino Uno 控制板(或同等型号)
→ 这是机器人的“大脑”,控制所有操作。 -
2个连续旋转舵机
→ 帮助机器人向前、向后移动或旋转。 -
2个与舵机匹配的轮子
-
1个小型辅助轮(万向轮)
→ 帮助机器人在移动时保持平衡。 -
1个免焊接面包板
→ 建议选择每侧都有两排正负电源的型号。 -
1个距离传感器(带4针连接线)
→ 帮助机器人检测前方障碍物。 -
1个迷你按钮
→ 用于启动或关闭机器人。 -
1个10kΩ电阻
→ 帮助按钮稳定工作。 -
1根USB A to B数据线
→ 用于从计算机为Arduino编程。 -
1套排针(breakaway headers)
→ 帮助组件更方便地连接到面包板。 -
1个6节AA电池盒(带9V直流电源插孔)
→ 为机器人提供动力。 -
跳线或22 AWG细电线
→ 用于连接各个组件。 -
热熔胶或强力双面胶带
→ 用于将部件固定在机器人主体上。

第二步:开始组装:用电池盒作为机器人主体
将电池盒翻转,使其平坦的背面朝上。这将是您安装其他部件的底座——即您的“机器人主体”。

第三步:安装电机:精确对齐以确保机器人直线行驶
-
将2个舵机放置在电池盒的末端——即电线引出的地方。
-
让两个电机的底面相互接触,并平行于电池盒两侧放置。
-
每个电机的转轴部分应朝向两侧。
-
电机电线应朝后,与电池盒电线方向一致。
注意:电机需要对齐得非常直且均匀,否则机器人移动时会偏离方向。

第四步:固定电机:牢固安装以确保机器人稳定
-
使用强力双面胶带或热熔胶将2个舵机粘到电池盒上。
-
安装时,让电机的背面与电池盒背面齐平。
-
确保电机粘牢,不晃动。
结果:两个电机将占据电池盒的后半部分,形成机器人主体的尾部。

第五步:安装面包板:正确放置位置和方向
-
将面包板垂直于电池盒的长度方向,放置在前面(剩余的一半)的空置区域。
-
面包板应该稍微超出电池盒前部并稍微向两侧延伸。
-
用双面胶带或热熔胶牢固粘合,以防止插线时脱落。
-
确保面包板上的“A”行朝向舵机(即朝向机器人后方)。
正确对齐方向有助于后续轻松连接电线和组件。

第六步:安装Arduino主板:放置在正确位置以便轻松连接
-
将Arduino主板粘在两个舵机上方——它们之间的交界处将形成一个小的平面。
-
对齐时确保:
-
Arduino的USB和电源接口朝向机器人后方(与电池盒和舵机的电线方向一致)。
-
Arduino的前端只稍微重叠到面包板的前部。
-
小贴士:牢固地粘好主板,以便插线或编程时,机器人不会移动。

第七步:安装车轮:压紧以确保抓地力
-
取2个车轮并用力按压到机器人两侧舵机的转轴上。
-
可能需要施加相当大的力,因为车轮设计得非常紧密,以帮助机器人稳定移动且不打滑。
注意:确保车轮安装在轴上且不松动,否则机器人可能会跑偏或失去平衡。

第八步:安装万向轮:帮助机器人保持平衡和灵活转向
-
将机器人翻转过来,您会看到面包板从电池盒前部伸出。
-
将万向轮安装到这部分伸出的面包板底部——这将是机器人的前轮。
-
如果万向轮无法触地,请使用垫高块(risers)调整高度。
小贴士:
-
有些套件会附带万向轮的垫高块。
-
确保万向轮安装牢固且正直,以便机器人移动时可以平稳转动。

第二部分:家庭机器人接线:简单易懂的组件连接
第一步:准备排针以连接电机
-
从大型排针条上掰下2段3针排针(3-pin headers)。
-
将金属引脚向下推,使每个引脚在塑料的两侧都均匀突出。
→ 目的是让您可以将一端插入面包板,而另一端将连接来自舵机的电线。
注意:这是帮助电机和控制电路之间快速、整齐连接的准备步骤。

第二步:将排针插入面包板:连接电机的精确位置
-
将2段排针(3针排针)插入面包板的E行:
-
第一段插入1到3号孔
-
第二段插入6到8号孔
-
-
确保引脚插入牢固、垂直,不松动。
目的:这将是一个中间点,让您可以轻松将舵机的电线整齐方便地连接到控制电路。

第三步:将舵机电线连接到面包板
-
将舵机的电线插入面包板上已安装的排针:
-
每个舵机的黑线(GND线)在左侧,即插入1号和6号引脚。
-
左侧舵机连接到左侧排针(1-3号引脚)
-
右侧舵机连接到右侧排针(6-8号引脚)
-
注意:
-
务必按线色(黑-红-黄)正确插入,以避免短路。
-
确保左右舵机连接正确,以使机器人正常工作。

第四步:为电机供电:将电源线连接到正极导轨
-
使用2根红色跳线连接:
-
C2引脚 → 连接到面包板后方的红色(正极)导轨
-
C7引脚 → 也连接到同一红色导轨
-
注意:
-
这个红色导轨是所有元件的公共正极。
-
请使用面包板后面的导轨(靠近机器人主体的一侧),以保持电线整洁且易于管理。

第5步:连接接地线(GND):连接电机的地线
-
使用2根黑色跳线连接:
-
B1引脚 → 连接到面包板后面的蓝色导轨(GND)
-
B6引脚 → 也连接到同一蓝色导轨
-
重要提示:
-
只能插入蓝色导轨(接地/地线) — 不得误插入红色导轨(正极电源),否则会导致短路。
-
后面的蓝色导轨将为整个机器人系统提供公共接地。

第6步:连接Arduino到电机的控制线
-
使用2根白色跳线连接:
-
Arduino上的引脚12 → 连接到面包板上的A3孔
-
Arduino上的引脚13 → 连接到面包板上的A8孔
-
意义:
-
这是从Arduino到两个舵机的控制信号线。
-
它帮助Arduino命令车轮转动,使机器人按意愿移动。

第7步:安装距离传感器:中间位置,不使用外部导轨
-
将距离传感器插入面包板上的J排(有字母的排),就在机器人前面。
-
放置传感器,使其位于正中间,两侧空出的孔数相等。
-
不要将传感器插入面包板的外部导轨(电源/地线)。
注意:
-
正确放置有助于传感器有效工作并避免电线缠绕。
-
该传感器将帮助机器人检测前方障碍物以避免碰撞。

第8步:连接传感器接地:确保稳定运行
-
使用1根黑色跳线连接:
-
引脚I14(传感器引脚后面)→ 连接到传感器左侧的蓝色导轨(接地)(面包板后面)。
-
目的:
-
此连接有助于为距离传感器连接接地(GND),这是传感器稳定准确运行所必需的。
-
确保您正确插入蓝色导轨,避免误插入红色导轨(正极电源)。

第9步:为传感器供电:连接到正极导轨
-
使用1根红色跳线连接:
-
引脚I17(传感器的电源引脚)→ 连接到传感器右侧的红色导轨(正极电源)(面包板后面)。
-
目的:
-
为距离传感器提供工作电压(VCC)。
-
确保电线正确插入红色导轨,不要与接地(蓝色导轨)混淆。

第10步:连接传感器到Arduino的信号线:传输控制数据
-
使用2根白色跳线连接:
-
引脚I15(传感器的第一个信号引脚)→ 连接到Arduino上的引脚9
-
引脚I16(第二个信号引脚)→ 连接到Arduino上的引脚8
-
目的:
-
允许传感器向Arduino发送距离数据。
-
然后,Arduino将处理信息并控制机器人避开障碍物。

第3部分:DIY机器人供电方法:安全高效地在家制作
第1步:如何放置机器人以查看电池
-
将机器人侧放。
-
旋转机器人,以便您清楚地看到电池盒。
-
确保电池盒的电缆在底部,向左拉出。

第2步:将红线连接到电池盒的正确位置
-
将一根红线连接到下方左起第二个弹簧。
-
再次检查以确保电池盒方向正确。

第3步:连接黑线为Arduino供电
-
将黑线连接到右下角的最后一个弹簧。
-
这两根线将为Arduino提供正确的电压。

第4步:将电线连接到电路板上的引脚
-
将红线和黑线连接到电路板右侧的红色和蓝色引脚。
-
黑线插入蓝色引脚30号位置。
-
红线插入红色引脚30号位置。

第5步:将Arduino的GND线连接到电路板
-
将Arduino的GND引脚的黑线连接到电路板后方的蓝色条。
-
将电线插入蓝色条上的28号引脚。

第6步:连接电路板上蓝色条之间的黑线
-
将黑线从后面的蓝色条连接到前面的蓝色条的29号引脚。
-
不要连接到红色条,以免损坏Arduino。

第7步:用红线为Arduino供电
-
将红线从前面红色条的30号引脚连接到Arduino上的5V引脚。
-
这根线将为Arduino提供电源。

第8步:安装开关以便轻松关闭机器人
-
将开关插入24-26号引脚排之间的插槽。
-
这个开关可以让你在不拔掉电源的情况下关闭机器人。

第9步:为开关供电
-
将红线从H24引脚连接到传感器右侧的下一个红色条引脚。
-
这根线将为开关供电。

第10步:将电阻连接到电路板
-
使用电阻将H26连接到蓝色条。
-
将电阻插入您之前连接的黑线旁边的引脚。

第11步:连接白线以使Arduino识别开关
-
将白线从G26连接到Arduino上的引脚2。
-
这根线帮助Arduino识别开关。

第4部分:Arduino软件设置指南,用于在家编程机器人
第1步:下载并使用Arduino IDE
-
从arduino.cc/en/main/software网站下载并解压Arduino IDE。这是一个开发环境,用于编程并将代码上传到Arduino微控制器。
-
下载后,双击文件解压,然后将文件夹移动到易于访问的位置。
-
您无需安装程序,只需通过双击
arduino.exe文件直接从解压后的文件夹运行即可。

第2步:连接Arduino的电源
-
将电池盒连接到Arduino。
-
将电池盒的插头插入Arduino上的连接端口,为它供电。

第3步:连接Arduino到电脑
-
通过USB端口将Arduino插入电脑。
-
Windows可能无法立即识别该设备。

第4步:在Windows上打开设备管理器
-
按下Win+R组合键,然后输入
devmgmt.msc。 -
此命令将打开设备管理器(Device Manager)。

第5步:更新设备驱动程序软件
-
右键点击“Other devices”中的“Unknown device”并选择“Update Driver Software”。
-
如果未看到此选项,请点击“Properties”,选择“Driver”选项卡,然后点击“Update Driver”。

第6步:选择Arduino驱动程序
-
选择“Browse my computer for driver software”。
-
这允许您选择Arduino IDE附带的驱动程序。

第7步:选择驱动程序文件夹
-
点击“Browse”,然后导航到您之前解压缩的文件夹。
-
其中会有一个“drivers”文件夹。

第8步:确认驱动程序安装
-
选择“drivers”文件夹并点击“OK”。
-
如果出现关于未知来源软件的警告,请确认以继续。

第5部分:如何用Arduino编程机器人移动:易于应用的示例代码
第1步:打开Arduino IDE
-
通过双击IDE文件夹中的
arduino.exe文件来打开Arduino IDE。 -
打开程序时,您会看到一个空白项目。

第2步:粘贴代码以使机器人直线移动
-
将以下代码粘贴到Arduino IDE中,使机器人直线移动。此代码帮助Arduino持续向前移动。
#include <Servo.h> // 将“Servo”库添加到程序中 // 创建两个舵机对象 Servo leftMotor; Servo rightMotor; void setup() { leftMotor.attach(12); // 如果您不小心更改了连接引脚,可以在此处更改引脚号 rightMotor.attach(13); } void loop() { leftMotor.write(180); // 对于连续旋转舵机,180 使舵机以最大速度“向前”移动 rightMotor.write(0); // 如果两者都设置为180,机器人将原地打转,因为舵机方向相反。“0”将以最大速度“向后”移动。 }

第3步:在Arduino上上传并运行程序
-
构建并将程序上传到Arduino。点击左上角的右箭头按钮,将程序构建并上传到已连接的Arduino。
-
您可能需要将机器人抬离地面,因为它在程序上传后会立即开始向前移动。

第4步:添加急停开关功能(Kill Switch)
-
将以下代码添加到程序的
void loop()部分,以激活急停开关。将此代码放置在write()命令上方。
if(digitalRead(2) == HIGH) // 检查Arduino引脚2上的按钮是否被按下 { while(1) { leftMotor.write(90); // “90”是舵机的中性位置,使其停止转动 rightMotor.write(90); } }
-
这将帮助机器人在按钮激活后立即停止。

第5步:上传并测试带有急停开关的代码
-
上传并测试您的代码。添加急停开关功能后,机器人将持续向前移动,直到您按下开关,此时它将停止。
#include <Servo.h> // 创建两个舵机对象 Servo leftMotor; Servo rightMotor; void setup() { leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) { while(1) { leftMotor.write(90); rightMotor.write(90); } } leftMotor.write(180); rightMotor.write(0); }
-
将代码上传到Arduino后,机器人将继续移动,直到按下急停开关,机器人便会停止。

第6部分:通过传感器控制机器人避开障碍物
以下是您的机器人的完整代码,借助超声波传感器,它可以在遇到障碍物时向前移动并左转。
#include <Servo.h>
Servo leftMotor;
Servo rightMotor;
const int serialPeriod = 250; // 每1/4秒限制控制台输出
unsigned long timeSerialDelay = 0;
const int loopPeriod = 20; // 每20毫秒读取传感器数据(50赫兹频率)
unsigned long timeLoopDelay = 0;
// 为超声波传感器分配TRIG和ECHO引脚
const int ultrasonic2TrigPin = 8;
const int ultrasonic2EchoPin = 9;
int ultrasonic2Distance;
int ultrasonic2Duration;
// 定义两种状态:直行或左转
#define DRIVE_FORWARD 0
#define TURN_LEFT 1
int state = DRIVE_FORWARD; // 0 = 直行(默认),1 = 左转
void setup()
{
Serial.begin(9600);
pinMode(ultrasonic2TrigPin, OUTPUT);
pinMode(ultrasonic2EchoPin, INPUT);
leftMotor.attach(12);
rightMotor.attach(13);
}
void loop()
{
if(digitalRead(2) == HIGH) // 检查急停开关
{
while(1)
{
leftMotor.write(90);
rightMotor.write(90);
}
}
debugOutput(); // 在控制台打印调试信息
if(millis() - timeLoopDelay >= loopPeriod)
{
readUltrasonicSensors(); // 读取并保存传感器距离
stateMachine(); // 处理机器人状态
timeLoopDelay = millis();
}
}
void stateMachine()
{
if(state == DRIVE_FORWARD) // 如果没有障碍物
{
if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // 如果前方没有障碍物
{
rightMotor.write(180); // 直行
leftMotor.write(0);
}
else // 如果有障碍物
{
state = TURN_LEFT; // 切换到左转状态
}
}
else if(state == TURN_LEFT) // 如果有障碍物,左转
{
unsigned long timeToTurnLeft = 500; // 左转90度的时间(约0.5秒)
unsigned long turnStartTime = millis(); // 保存开始转弯的时间
while((millis() - turnStartTime) < timeToTurnLeft) // 在指定时间内转弯
{
rightMotor.write(180);
leftMotor.write(180);
}
state = DRIVE_FORWARD; // 转弯完成后,返回直行状态
}
}
void readUltrasonicSensors()
{
digitalWrite(ultrasonic2TrigPin, HIGH);
delayMicroseconds(10); // 将TRIG引脚保持高电平至少10微秒
digitalWrite(ultrasonic2TrigPin, LOW);
ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH);
ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; // 根据脉冲长度计算距离
}
// 控制台调试输出
void debugOutput()
{
if((millis() - timeSerialDelay) > serialPeriod)
{
Serial.print("ultrasonic2Distance: ");
Serial.print(ultrasonic2Distance);
Serial.print("cm");
Serial.println();
timeSerialDelay = millis();
}
}
解释:
-
超声波传感器:测量距离并帮助机器人检测障碍物。
-
机器人移动:机器人无障碍时直行,遇障碍时左转。
-
急停开关(Kill Switch):按下按钮时,机器人停止。
将代码上传到Arduino并进行测试,使机器人能够自动避开障碍物并在遇到障碍时左转。
翻译:Rowan Hudson Le。


3 条评论
Hãy nhớ đo từng bộ phận trước khi mua để bạn không phải trả lại bất cứ thứ gì!
Nếu bạn muốn thêm cá tính cho robot của mình, hãy cắt mắt, tay và chân ra khỏi giấy, sau đó dán chúng bằng băng dính.
Gắn 2 đầu bàn chải đánh răng vào đế robot nếu bạn muốn nó quét sàn.