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

本文详细介绍了如何使用ArduinoUNO、L298N电机驱动器和红外传感器构建线路跟随机器人车。机器人通过红外传感器检测黑白线条来确定行驶方向,由微控制器控制动作。制作过程包括搭建底盘、安装电机和传感器、连接电子元件以及校准传感器等步骤。提供的代码实现了根据传感器读数控制汽车前进、转弯和停止的功能。
摘要由CSDN通过智能技术生成

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 UnoL298N Motor Driver
Pin 10ENA
Pin 9IN1
Pin 8IN2
Pin 7IN3
Pin 6IN4
Pin 5ENB
第 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项目文章。

基于Arduino leonardo主控器4轮驱动智能小概述: Arduino四轮驱动智能小是一款面向教育的集成机器人,将Arduino leonardo主控器、优质电机动力系统、电机驱动和传感器集成到109*122mm的空间之上。让玩家不用耗费精力在繁琐的组装和调试上,从而集中精力发挥自己的想象。 另外,小利用Arduino IDE编程,是目前世界上最普及的硬件入门编程软件。即使没有任何技术背景,也能快速入门,掌控小的操控。 下面的文档中具备8节课程,让玩家循序渐进的学习。教程和代码包下载见附件内容。 课程1:小入门 课程2:控制蜂鸣器 课程3:蜂鸣器播报光线方向 课程 4:小巡线程序 :小巡线程序 课程 5:RGBRGB 灯的使用 课程 6:小避障程序 :小避障程序 课程 7:编码器的使用 :编码器的使用 课程8:红外遥控小 4WD mini型集成了以下功能: 红外发射管:发射红外信号,用于物体探测等 光敏二极管:用于检测是否有光照,使小进行巡光运动等 红外接收管:接收红外发射管发射出的红外信号 按键:用于输入信号给小,以控制小 全彩LED灯:可以使用程序使其发出不同颜色的光,可用于装饰或者程序调试等 USB程序下载与通讯接口:下载程序会使用到,在调试时可以和电脑通讯观察程序运行状况 蜂鸣器(无源):发出报警声或音乐等 控制器:运行编写程序的芯片 电机:通过控制电机的不同动作,使小前进后退或转弯 重启按键;使小的程序重新运行 电源开关按键:开关小电源 电源接口:给整个小供电 电池充电接口:如果使用的是充电电池,可以直接用这个口给电池充电。 红外巡线传感器 四轮智能小参数如下: 重量: 350g 工作电压: 4.5--6V Bootloader: Arduino Leonardo 巡线传感器x5 光敏二极管 x2 硅胶软质按键 WS2812 RGB LED 通信端口IIC,Micro USB 尺寸: 109*122mm N20电机规格 工作电压:3V或6V 6V空载转速:15000 rpm 齿轮箱减速比:30:1 6V负载转速:500 rpm6V 电流:40mA@6V 堵转电流:100mA@6V 力矩:1.2kg/cm@6V 类似设计资料共享:https://www.cirmall.com/circuit/4202/(A4WD四轮驱动机器人,基于Arduino设计) 实物购买链接:https://item.taobao.com/item.htm?spm=2013.1.w10035...
### 回答1: L298N驱动模块需要较高的电压来驱动电机,一般需要使用外部电源供电。如果你要使用Arduino UNOL298N驱动模块供电,需要注意以下几点: 1. Arduino UNO的5V引脚不能直接给L298N驱动模块供电,因为5V电压太低,无法驱动电机。 2. L298N驱动模块需要12V以上的电压来驱动电机,因此需要使用外部电源供电。你可以将外部电源的正极连接到L298N驱动模块的12V引脚,负极连接到L298N驱动模块的GND引脚。 3. 需要将Arduino UNO的GND引脚和L298N驱动模块的GND引脚连接在一起,以确保电路的接地一致。 4. 在使用L298N驱动模块时,需要注意电机的功率和电流,确保外部电源的电压和电流足够驱动电机。 总之,给L298N驱动模块供电需要使用外部电源,可以将外部电源的正极连接到L298N驱动模块的12V引脚,负极连接到L298N驱动模块的GND引脚,同时将Arduino UNO的GND引脚和L298N驱动模块的GND引脚连接在一起。 ### 回答2: L298N驱动模块是用来控制直流电机的模块,它需要供电才能正常工作。给L298N驱动模块供电时,我们需要注意以下几点。 首先,L298N驱动模块的工作电压范围是5V至35V,因此,我们可以选择在这个电压范围内来给它供电。 其次,我们需要为L298N驱动模块提供两种电压:逻辑电压和电机电压。逻辑电压是用来供应L298N内部的逻辑电路的,一般设置为5V。而电机电压则是用来驱动电机的,根据电机的额定电压来选择。 接下来,我们需要将Arduino UNOL298N驱动模块进行连接。首先,将Arduino UNO的5V引脚与L298N的VSS引脚相连,以为L298N提供逻辑电压。然后,将Arduino UNO的GND引脚与L298N的GND引脚相连,以建立共地。最后,将Arduino UNO的数字引脚与L298N的IN1和IN2引脚相连,用来控制电机的转向和速度。 最后,我们需要为L298N驱动模块的电机电压部分提供电源。根据电机的额定电压,我们可以选择合适的电源来供应。一般情况下,我们可以选择使用额定电压范围内的电源适配器,或者使用电池组。 总而言之,为L298N驱动模块供电需要注意逻辑电压和电机电压的选择,以及正确连接Arduino UNOL298N模块。这样,我们就可以成功为L298N驱动模块供电,并且使用Arduino UNO控制电机的转向和速度了。 ### 回答3: L298N驱动模块需要外部电源来供电,因为它提供给电机的功率通常超出了Arduino Uno的能力范围。 为了给L298N驱动模块供电,首先需要确定电源的电压范围。通常,L298N可以接受7V至35V的电压。一种常见的选择是使用12V直流电源。 接下来,将该电源的正极连接到L298N驱动模块的电源接口的“12V”引脚上。将负极连接到“GND”引脚上,以确保电源的负极与L298N驱动模块以及Arduino Uno之间存在共地。 在给驱动模块供电之前,需要确保Arduino Uno与驱动模块之间没有其他电缆连接。然后,将驱动模块的电源和地线与Arduino Uno分别连接。 将驱动模块的电源线连接到Arduino Uno的3.3V或5V引脚上(根据L298N模块和Arduino Uno之间的电压兼容性而定)。请注意,选择适当的电源引脚以确保供电稳定且在合适的范围内。 最后,将驱动模块的地线连接到Arduino Uno的GND引脚上。这样可以确保驱动模块与Arduino Uno之间的电地连接。 一旦完成上述操作,L298N驱动模块就可以通过外部电源供电。此时,可以通过Arduino Uno来控制L298N驱动模块并驱动连接在其输出引脚上的电机。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔚蓝慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值