Arduino UNO的线路跟随机器人车,L298N驱动器,红外传感器

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电机轮毂

热门类别:

  1. 电路
  2. Arduino 项目
  3. 自主研发项目

Arduino线路跟随器机器人车的原理图:

[Arduino线路跟随机器人,带红外传感器,Arduino Uno和L298N电机驱动器](data:image/svg+xml,Arduino线路跟随机器人,带红外传感器,Arduino Uno和L298N电机驱动器

制作汽车的步骤:

第 1 步:

首先,我们需要一块木片作为汽车底盘。在这里,我使用13CM x 10CM胶合板作为汽车底盘。您也可以使用亚克力板或预制底盘。

[img](data:image/svg+xml,

第 2 步:

现在用胶枪或任何其他胶水将电机安装在胶合板的 4 个角上。确保在安装电机时,电机放置应正确。否则,汽车将无法直行。

[img](data:image/svg+xml,

第 3 步:

现在连接TT齿轮电机,如下所示。我们将以十字形图案连接电机。这是因为我们必须使汽车以这样一种方式制造汽车,即两个侧面电机沿同一方向旋转,以便向前向后和其他已知方向行驶。

[img](data:image/svg+xml,

第 4 步:

连接电机后,连接应如下所示。在这里,我提供了两面图片,让您清楚地了解发生了什么。

[img](data:image/svg+xml,

第 5 步:

这里我们使用L298N电机驱动器。我使用双面胶带将L298N电机驱动器连接到胶合板上。您也可以为此使用螺母和螺栓。

[img](data:image/svg+xml,

第 6 步:

现在将电机线与 L298N 电机驱动器连接。然后拧紧电机驱动器线。并避免任何类型的松动连接。

[img](data:image/svg+xml,

连接后,所有电线将如下所示。

**注意:**上传代码后,如果汽车没有朝正确的方向行驶或方向错误,那么只需更换电机线即可。它会正常工作。

[img](data:image/svg+xml,

第 7 步:

对于电池,我使用的是 2, 18650 电池。这对于制造这种类型的汽车非常有用。为了连接电池,我使用的是 2s 18650 电池座。我还添加了一个开关。

[img](data:image/svg+xml,

电池线将与电机驱动器输入线连接。您还可以清楚地看到连接电池线的位置。

第 8 步:

在这个项目中,我使用Arduino Uno作为微控制器。您还可以根据需要使用任何其他微控制器。

[img](data:image/svg+xml,

接下来,您必须从电机驱动器上卸下跳线短路连接器以进行下一步连接。

第 9 步:

在图片中,我提到了电机驱动器的必要连接。

[img](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。现在我们必须对运行汽车进行校准。

[img](data:image/svg+xml,

第 11 步:

将电池连接到汽车并打开开关。

[img](data:image/svg+xml,

第 12 步:(传感器校准)*** 重要***

在校准之前,您必须将车轮连接到汽车。您无需打开串行监视器进行校准。这只是手动校准。在这里,我使用数字读取函数来区分明暗。因此,红外传感器将仅提供高/低作为输出。

[img](data:image/svg+xml,

将汽车悬空。在这里,我使用喷漆的顶盖将汽车放在上面进行校准。在这里,我使用带有T形线的白色表面耦合进行校准。(黑色电工胶带)

[img](data:image/svg+xml,

如图所示放置汽车。现在您已准备好进行校准。首先将 2 个电位计(左侧和右侧传感器)逆时针完全旋转。

[img](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);
}

下载

如果汽车没有朝着正确的方向行驶,则进行简单的故障排除:

如果发生这种情况并且您的汽车没有朝着正确的方向行驶,那么您不必修改任何代码。您只需更换电机驱动器线即可。现在您的汽车将朝着正确的方向行驶。

[img](data:image/svg+xml,线路跟随器汽车演示

简化的印刷电路板:

我还为线跟随机器人车创建了一个简化的PCB,您可以从PCB制造公司PCBWay订购。它将为汽车提供更专业的外观。

[img](data:image/svg+xml,我在EasyEDA中设计了原理图。

为汽车提供所有必要的连接,如电源输入、L298N 电机驱动器引脚排列、左红外传感器和右红外传感器引脚排列。

[img](data:image/svg+xml,印刷电路板布局

在这里,我使用了Atmega328P微控制器。该IC也用于Arduino Uno R3。因此,我们将对Arduino UNO R3进行编程,并从UNO板上取出芯片并将其放置在PCB上。这将使汽车的外观最小。

[img](data:image/svg+xml,印刷电路板 3D 视图

如何订购印刷电路板?

印刷电路板格柏链接:下载

结论:

总而言之,对于业余爱好者来说,这是一辆很棒的汽车。汽车的速度很低,无法有效地跟随线路。如果你想加速汽车,那么你可以使用红外阵列。

我还在代码中提供了如何在直线和角度旋转的同时加速汽车。只需根据您的汽车更改速度参数即可。不要使速度参数过多,否则汽车将无法进行任何快速旋转。

您还可以阅读其它Arduino项目文章。

猜你喜欢

转载自blog.csdn.net/acktomas/article/details/129472787