Arduino UNO的线路跟随机器人车,L298N驱动器,红外传感器
原文
一些机器人制作项目
使用Arduino UNO,L298N电机驱动器,红外传感器制作Arduino线路跟随器机器人车
展示如何使用 Arduino UNO 和 2 个红外传感器模块制作线路跟随机器人汽车。Line follower名称表示全自动汽车。这遵循嵌入任何地板或任何表面上的视觉线(很可能是白色或黑色)。
该项目基于Arduino微控制器。是一条基本的线路跟随机器人项目。
Arduino线路跟随机器人,利用红外传感器,Arduino Uno和L298N电机驱动器
机器人车如何工作?
红外传感器可感测线条颜色是否反射。这里的反射意味着表面将光发回。在这种情况下,反射表面是白色表面。(**非反射表面只是黑线。**这意味着黑色轨道不会反射任何光线。红外传感器的工作原理是它感应到是否有任何反射光返回。 然后传感器会给出输出。如果没有反射,则红外传感器将不会提供任何输出,或者换句话说,输出将很低。
基于此高输出和低输出结果,微控制器可以控制汽车。
微控制器为汽车提供方向,然后何时转向(左或右)以及在哪里停车,如果 2 个传感器得到黑色表面,那么它会告诉微控制器停止汽车。
Arduino线路跟随机器人汽车所需的东西
Amazon.com 链接
-
红外传感器
-
Arduino UNO R3
-
L298N 电机驱动器
-
TT减速电机
-
跳线
-
18650电池
-
2S,18650电池座
-
65MM电机轮毂
热门类别:
- 电路
- Arduino 项目
- 自主研发项目
Arduino线路跟随器机器人车的原理图:
[](data:image/svg+xml,Arduino线路跟随机器人,带红外传感器,Arduino Uno和L298N电机驱动器
制作汽车的步骤:
第 1 步:
首先,我们需要一块木片作为汽车底盘。在这里,我使用13CM x 10CM胶合板作为汽车底盘。您也可以使用亚克力板或预制底盘。
[](data:image/svg+xml,
第 2 步:
现在用胶枪或任何其他胶水将电机安装在胶合板的 4 个角上。确保在安装电机时,电机放置应正确。否则,汽车将无法直行。
[](data:image/svg+xml,
第 3 步:
现在连接TT齿轮电机,如下所示。我们将以十字形图案连接电机。这是因为我们必须使汽车以这样一种方式制造汽车,即两个侧面电机沿同一方向旋转,以便向前向后和其他已知方向行驶。
[](data:image/svg+xml,
第 4 步:
连接电机后,连接应如下所示。在这里,我提供了两面图片,让您清楚地了解发生了什么。
[](data:image/svg+xml,
第 5 步:
这里我们使用L298N电机驱动器。我使用双面胶带将L298N电机驱动器连接到胶合板上。您也可以为此使用螺母和螺栓。
[](data:image/svg+xml,
第 6 步:
现在将电机线与 L298N 电机驱动器连接。然后拧紧电机驱动器线。并避免任何类型的松动连接。
[](data:image/svg+xml,
连接后,所有电线将如下所示。
**注意:**上传代码后,如果汽车没有朝正确的方向行驶或方向错误,那么只需更换电机线即可。它会正常工作。
[](data:image/svg+xml,
第 7 步:
对于电池,我使用的是 2, 18650 电池。这对于制造这种类型的汽车非常有用。为了连接电池,我使用的是 2s 18650 电池座。我还添加了一个开关。
[](data:image/svg+xml,
电池线将与电机驱动器输入线连接。您还可以清楚地看到连接电池线的位置。
第 8 步:
在这个项目中,我使用Arduino Uno作为微控制器。您还可以根据需要使用任何其他微控制器。
[](data:image/svg+xml,
接下来,您必须从电机驱动器上卸下跳线短路连接器以进行下一步连接。
第 9 步:
在图片中,我提到了电机驱动器的必要连接。
[](data:image/svg+xml,
Arduino Uno | L298N Motor Driver |
---|---|
Pin 10 | ENA |
Pin 9 | IN1 |
Pin 8 | IN2 |
Pin 7 | IN3 |
Pin 6 | IN4 |
Pin 5 | ENB |
第 10 步:
连接红外传感器,如照片所示。然后将必要的电线与Arduino UNO连接。只需按照原理图中的接线图进行操作即可。
现在将代码上传到Arduino。现在我们必须对运行汽车进行校准。
[](data:image/svg+xml,
第 11 步:
将电池连接到汽车并打开开关。
[](data:image/svg+xml,
第 12 步:(传感器校准)*** 重要***
在校准之前,您必须将车轮连接到汽车。您无需打开串行监视器进行校准。这只是手动校准。在这里,我使用数字读取函数来区分明暗。因此,红外传感器将仅提供高/低作为输出。
[](data:image/svg+xml,
将汽车悬空。在这里,我使用喷漆的顶盖将汽车放在上面进行校准。在这里,我使用带有T形线的白色表面耦合进行校准。(黑色电工胶带)
[](data:image/svg+xml,
如图所示放置汽车。现在您已准备好进行校准。首先将 2 个电位计(左侧和右侧传感器)逆时针完全旋转。
[](data:image/svg+xml,
- 现在顺时针缓慢地逐个旋转电位计,直到红外传感器的 LED 亮起。
- 接下来,慢慢地将汽车向左和向右移动,使汽车左和右传感器将在黑线上。然后车轮向不同的方向旋转。
- 更具体地说,如果您将左传感器放在黑线上,汽车将尝试向正确的方向移动。同样,如果右侧传感器处于黑暗状态,则汽车向左方向移动。
- 这是因为将汽车一直放在黑线上。这种配置的一个主要特点是,在这种配置中你不能走得太快。作为一个初学者项目,这很棒。
[[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tf5e6hlP-1678587460475)(https://circuitbest.com/wp-content/uploads/2020/11/3.gif)]](data:image/svg+xml,
因此,在这种情况下,校准过程会更容易一些。现在您可以打开汽车并放置在您想要跟随的位置,汽车将遵循这条线。
Arduino 线路跟随器汽车代码:
/*
Description: This program is used to make Arduino Line Follower Robot Car.
Note: You can use any value between 0 to 255 for M1_Speed, M2_Speed, LeftRotationSpeed, RightRotationSpeed.
Here 0 means Low Speed and 255 is for High Speed.
*/
#define in1 9
#define in2 8
#define in3 7
#define in4 6
#define enA 10
#define enB 5
int M1_Speed = 80; // speed of motor 1
int M2_Speed = 80; // speed of motor 2
int LeftRotationSpeed = 250; // Left Rotation Speed
int RightRotationSpeed = 250; // Right Rotation Speed
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(A0, INPUT); // initialize Left sensor as an input
pinMode(A1, INPUT); // initialize Right sensor as an input
}
void loop() {
int LEFT_SENSOR = digitalRead(A0);
int RIGHT_SENSOR = digitalRead(A1);
if (RIGHT_SENSOR == 0 && LEFT_SENSOR == 0) {
forward(); //FORWARD
}
else if (RIGHT_SENSOR == 0 && LEFT_SENSOR == 1) {
right(); //Move Right
}
else if (RIGHT_SENSOR == 1 && LEFT_SENSOR == 0) {
left(); //Move Left
}
else if (RIGHT_SENSOR == 1 && LEFT_SENSOR == 1) {
Stop(); //STOP
}
}
void forward() {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, M1_Speed);
analogWrite(enB, M2_Speed);
}
void backward() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enA, M1_Speed);
analogWrite(enB, M2_Speed);
}
void right() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, LeftRotationSpeed);
analogWrite(enB, RightRotationSpeed);
}
void left() {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enA, LeftRotationSpeed);
analogWrite(enB, RightRotationSpeed);
}
void Stop() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
下载
如果汽车没有朝着正确的方向行驶,则进行简单的故障排除:
如果发生这种情况并且您的汽车没有朝着正确的方向行驶,那么您不必修改任何代码。您只需更换电机驱动器线即可。现在您的汽车将朝着正确的方向行驶。
[](data:image/svg+xml,线路跟随器汽车演示
简化的印刷电路板:
我还为线跟随机器人车创建了一个简化的PCB,您可以从PCB制造公司PCBWay订购。它将为汽车提供更专业的外观。
[](data:image/svg+xml,我在EasyEDA中设计了原理图。
为汽车提供所有必要的连接,如电源输入、L298N 电机驱动器引脚排列、左红外传感器和右红外传感器引脚排列。
[](data:image/svg+xml,印刷电路板布局
在这里,我使用了Atmega328P微控制器。该IC也用于Arduino Uno R3。因此,我们将对Arduino UNO R3进行编程,并从UNO板上取出芯片并将其放置在PCB上。这将使汽车的外观最小。
[](data:image/svg+xml,印刷电路板 3D 视图
如何订购印刷电路板?
印刷电路板格柏链接:下载
结论:
总而言之,对于业余爱好者来说,这是一辆很棒的汽车。汽车的速度很低,无法有效地跟随线路。如果你想加速汽车,那么你可以使用红外阵列。
我还在代码中提供了如何在直线和角度旋转的同时加速汽车。只需根据您的汽车更改速度参数即可。不要使速度参数过多,否则汽车将无法进行任何快速旋转。文章来源:https://www.toymoban.com/news/detail-500380.html
您还可以阅读其它Arduino项目文章。文章来源地址https://www.toymoban.com/news/detail-500380.html
到了这里,关于Arduino UNO的线路跟随机器人车,L298N驱动器,红外传感器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!