当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]这个非常简单的项目旨在演示如何搭建Arduino汽车的基本原理。因此我使用了RoboRoverM1底盘,但你也可以用DIY材料自己动手制作属于自己的Arduino汽车。在本教程中,我将使用我自己设计的机器人底盘RoboRover M1。

1. 引言

你好,这是一个使用Arduino Uno制作的自动驾驶汽车项目。

这个非常简单的项目旨在演示如何搭建Arduino汽车的基本原理。因此我使用了RoboRoverM1底盘,但你也可以用DIY材料自己动手制作属于自己的Arduino汽车。在本教程中,我将使用我自己设计的机器人底盘RoboRover M1。

这是我自行设计的四轮驱动RoboRover M1底盘,采用4毫米厚ABS塑料制成。

这款机器人RoboRover M1已安装所有电子元件,并且我还为机器人制作了一个大尺寸的绿色保护罩,以保护内部的所有电子设备。

设计很棒!看起来就像一台扫地机器人。

2. 电子

2.1 机器人汽车的传感器

在下图中可以看到该机器人汽车的所有传感器。我认为只需研究机器人汽车运动的基本原理即可:

3个线路跟踪传感器,用于学习如何沿线行驶。型号为TCRT5000。

2个红外距离传感器,用于学习如何测量距离并编写避障算法。型号为GP2Y0A21YK0F。

1个安装在伺服电机上的超声波传感器。伺服电机可旋转,可用于绘制机器人前方的简单距离地图。超声波传感器型号为HC-SR04,伺服电机型号为MG995R。

2.2 机器人汽车的电机

要让机器人移动,我们需要使用电机。我使用了4个黄色电机DAGU,齿轮比为1:48,电压为5V。如果你自己制作DIY小车,也可以使用2个电机。

控制电机时,我使用L298N电机驱动器,虽然不是最佳选择,因为它会占用Arduino车的大量I/O引脚,但这是初学者指南。之后你可以升级为使用I2C电机驱动器。

2.3 机器人汽车的电源

要让机器人运行,需要使用电池供电。我建议使用7.4V锂聚合物2S电池,我认为这是这类机器人汽车的最佳解决方案。不要使用AA或AAA电池,这并不是理想的选择。

使用锂聚合物电池时,必须配备专用充电器和电压控制器。锂聚合物电池非常值得!

在机器人运行时,请使用小型电压测试仪,它会提示你何时开始为电池充电。这个小工具能帮助你避免过度放电,因为如果锂电池过度放电,可能会损坏!

3. 布线

3.1 L298N电机驱动器接线图

使用小电容焊接所有电机并安装好。

右侧电机的一根线连接到OUT3,另一根线连接到OUT4。同样方式连接第二台右侧电机。

左侧电机的一根线连接到OUT2,另一根线连接到OUT1。同样方式连接第二台左侧电机。

如果此处接线有误,在上传测试程序后,只需将电线在需要的位置进行调整即可。

制作这种连接器。使用两档开关(用于开启和关闭机器人电机及伺服)。我相信你已经知道如何焊接了。红色连接器用于电池,检查你的电池上安装的是哪种类型的连接器。我建议使用T型插头连接器。

现在不要将T型插头连接在一起!待所有连接完成后,作为最后一步再进行安装!

然后将其安装到车辆中。如果你使用的是其他自制底盘,安装方式可能会有所不同。

红色导线连接到L298N电机驱动器3针接口最左侧的+12V端子。

两根黑色导线连接到L298N电机驱动器3针接口中间的GND端子。

然后取6根长30-40厘米的电线,将其连接到L298N电机驱动器上的ENA、IN1、IN2、IN3、IN4、ENB引脚上。

第7根电线连接到L298N电机驱动器上三针连接器的中间GND插孔(即之前连接黑色电线的位置)。

最后,你的接线应如下所示。

如果你想在机器人小车中使用舵机,必须确认其电压为7.4V兼容。此时可从舵机接口取一根红色电线,连接到L298N电机驱动器三针连接器最左侧的+12V插孔(即之前连接红色电线的位置)。

首先检查舵机的电压!如果电压不兼容,只需将舵机直接连接到传感器屏蔽板,无需任何更改。在我的情况下,舵机MG995R(MG995)是7.4V兼容的,但遗憾的是在那张照片中我忘了连接舵机。

3.2 Arduino Uno传感器屏蔽板的接线

3.2.1 电机驱动器

使用Arduino Uno的简易传感器扩展板连接所有传感器和电机驱动器线缆。我的型号为Arduino Sensor Shield V5。

将电机驱动器的线缆连接到传感器扩展板上的数字引脚:

•ENA → D5

•IN1 → D2

•IN2 → D8

•ENB → D3

•IN3 → D11

•IN4 → D10

3.2.2 线性传感器

线性传感器是数字类型的,但我们可以使用Arduino Uno的模拟输入来读取其数字信号。将传感器的GND引脚连接到扩展板的GND引脚,VCC引脚连接到扩展板的VCC引脚(5V)。

将线性传感器的信号连接到传感器扩展板上的模拟引脚:

•线性传感器(左)→ A3

•线性传感器(中)→ A4

•线性传感器(右)→ A5

3.2.3 红外传感器

与Sharp公司的模拟式红外距离传感器连接方式相同。请注意,Sharp传感器的中间导线(黑色)为GND,左侧导线(红色)为VCC,右侧导线(黄色)为信号输出。

将传感器的GND引脚连接到扩展板的GND引脚,VCC引脚连接到扩展板的VCC引脚(5V)。

将红外传感器的信号连接到传感器扩展板上的模拟引脚:

•传感器左侧 → A0

•传感器右侧 → A1

3.2.4 超声波传感器与舵机

超声波传感器连接至以下引脚:

将传感器的GND引脚连接到屏蔽板上的GND引脚,VCC引脚连接到屏蔽板上的5V VCC引脚。其余引脚连接至屏蔽板上的数字输入引脚。

触发引脚(Trig)连接至D7

回波引脚(Echo)连接至D4

舵机连接至以下引脚:

将舵机的GND线(黑色或棕色)连接到屏蔽板上的GND引脚。

如果舵机支持7.4V电压,则将VCC线(红色或橙色)连接到L298N电机驱动器3针接口最左侧的+12V插孔;若舵机不支持7.4V,则将舵机的VCC线连接到舵机屏蔽板上的VCC引脚。

信号线(黄色、白色或橙色)连接至屏蔽板上的数字引脚D9。

恭喜!你的机器人已经完成!

你可以将黑色连接器插入Arduino,然后打开它。

使用T型插头(或其他任何类型)连接电池。通过开关启动电机。现在开始编写代码吧!希望在你打开机器人电子设备后不会发生火灾。

4. 编码

4.1 安装库

所有库均可从项目的附件部分下载。

我为该机器人创建了多个库,以便以轻松有趣的方式学习编程。我为后续模块制作了自定义库:舵机、电机驱动器、Sharp红外距离传感器、超声波距离传感器、舵机。

这些库设计用于帮助初学者更轻松地理解代码,即使你不是Arduino专家也可以使用,但你可以选择不使用这些库。通过阅读库中的注释,可以更好地了解它们的工作原理。

在尝试运行以下代码之前,请先安装所有库。安装方法与安装所有Arduino库相同。

4.2 代码示例

这里我将提供一些代码示例,请仔细阅读代码中的注释。

代码#1 测试电机

首先测试你的电机,如果发现电机旋转方向错误,请调整电线连接。

上传程序后,打开Arduino Uno并启动电机,按下Arduino板上的复位按钮,即可从头开始运行代码。

代码#2 测试Sharp红外距离传感器

测试红外传感器,确认其是否正常工作。所有信息将通过串口传输。

上传程序并在Arduino IDE中打开串口,以查看距离测量结果。

代码#3 超声波雷达测距传感器

此程序将测试超声波传感器,并检测舵机的旋转。这是一个简单的雷达系统,舵机可左右或居中转动,超声波传感器测量距离。

上传程序后,在Arduino IDE中打开串口,开启Arduino Uno并启动电机,按下Arduino板上的复位按钮,使程序从最开始重新运行。

代码#4 测试线路传感器

代码#5 使用红外距离传感器实现机器人避障移动

该程序可通过红外距离传感器让机器人避开障碍物。

上传程序后,开启Arduino Uno并启动电机,按下Arduino板上的复位按钮,使程序从头开始运行。机器人将开始移动并避开障碍物!

代码#6 机器人沿线行驶

该程序使用线路传感器让机器人沿直线行驶。请先用一条黑色线条在地面上画出一条小轨道。

上传程序后,开启Arduino Uno并启动电机,按下Arduino板上的复位按钮,使程序从头开始运行。机器人一旦被线路传感器检测到黑色线条,就会开始跟随该线条。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭