自动漫游车辆 第一部分






4.97/5 (15投票s)
一个从头到尾的项目,概述了制造自主漫游车 的步骤和陷阱。
引言
在我年轻的时候,我开始做一名计算机程序员,当时的公司给了我机会涉足许多不同的感兴趣领域。其中一个领域尤其让我着迷的是新兴的机器人技术领域,我们为汽车行业开发的一些项目使我能够为各种内置了一些智能的机器开发固件。此时,我也对电子学产生了兴趣,并请了我的一些电气工程师同事教我电子学,作为回报,我教他们编程。这非常奏效,我也学到了很多东西,但当我离开公司时,我在佛罗里达州找到了一份工作,新工作没有机会让我追求我新发现的兴趣,所以它沉寂了很多年。但几年前我退休了,对电子学和机器人学的兴趣又浮现出来,我决定再次追求这份兴趣。
我的计划是制造一辆自主漫游车,并将其命名为 Robbie,以纪念那部老电视系列《迷失太空》中那个可爱的机器人,你知道的……危险,威尔·罗宾逊……我打算在这一系列文章中记录这个过程,这是第一篇。我将讨论基本的底盘设计、设计决策以及用于让 Robbie 活过来的零部件,在哪里找到它们以及成本。我在此项目中使用的设计和零件只是我当时的方式,应仅作为参考。
最初
我在进行任何设计之前大约一个月开始研究,然后又花了两周时间才开始订购零件。我首先购买了一本我极力推荐的书,Gordon McComb 的《Robot Builders Bonanza》,现已出到第 4 版,对于每个机器人爱好者来说,这本书都是必备的参考资料,它涵盖了机器人制造过程的方方面面。这本书在我订购所需零件时给予了我极大的帮助,例如;电机类型、合适的齿轮比、底盘使用的材料等等。买这本书,你不会后悔的!
现在我已经读完了这本书并订购了零件,准备开始设计底盘了。多年前,我为几个个人项目使用了一个名为 TurboCAD 的 CAD 程序,所以我对如何使用它略知一二。我仍然有一个旧版本(TurboCAD 6.0,现在已到 20.0 版),但它在 Windows 7 上无法运行,而且我不想再花 100 美元购买最新版本,所以我搜索了 eBay,找到了一个旧的 18.0 版本,大约 16 美元(含运费)。考虑到价格差异以及我打算用它做什么,我认为旧版本就足够了。如果你不懂 CAD 或者不想花钱,设计可以以任何适合你的方式完成,包括画在餐巾纸上,如果你只有那个的话,这都没关系。下图是我完成的设计。


结构图
我多次修改了图纸,直到我得到了我认为可行的方案,但塑料只能以 24"X48" 的尺寸购买,所以如果我发现它不符合我的需求,我有很多材料可以使用。
大脑
我最初计划在这个项目中使用一个微控制器,即一颗运行在 16MHz 的 ATMega2560,但我发现了一个 Dagu 电机控制器,它处理 4 个带编码的直流电机,价格为 22 美元,我订购了它,因为我自己制作的控制器只能处理 2 个电机且不带编码,所以至少我需要再组装一个板子,而且它不会像这么紧凑,还不包括编码。由于编码器对 CPU 占用率很高,我决定分配一个 ATMega28P 来处理这项任务,并将使用一种修改后的 SPI 通信方式在微控制器之间进行通信。我一边等待零件到货,一边研究 SPI 通信,几乎完成了,但还没有测试,所以将在下一期下载中包含。
在此处可能需要对编码进行简短的解释,并说明它有什么用。编码由两部分组成;一个具有一定数量槽、孔或特殊反射材料的移动部件和一个检测它们的传感器。每次检测到一个槽时,都会产生 2 个中断;一个是在检测到槽的开始时,另一个是在不再检测到开口时,从而产生一个类似于 Dagu 手册中所示图像的“编码器输入 A”和“编码器输入 B”的波形。我购买的轮式编码器每个轮子有两个编码器,它们大约相差 90 度,电路板上的逻辑混合了这两种波形,以产生一个波形,如下图所示。传感器之所以相差 90 度,是为了能够根据编码器信息确定设备的行驶方向。虽然编码是确定距离的一个好方法,但存在固有的问题,例如当车轮转动但漫游车未移动时,例如在冰面上行驶或漫游车的运动受到某种限制时。

运动
有两种主要方式可以移动你的漫游车;履带或车轮,两者都有各自的优缺点,但我选择了车轮,因为我认为这是一种更简单的设置,并且四轮驱动系统将提供更多的动力,并且更容易在不同路面上操作。
决定使用哪种类型的电机是我们设计阶段的下一步,有几种类型可供选择;连续伺服电机、直流电机或步进电机。
- 连续伺服电机 - 只是一种特殊的伺服电机,它没有有限旋转的限制。伺服电机只是一个带有反馈电路的封闭式齿轮直流电机。它们由 50Hz 信号控制,并通过改变脉冲宽度来确定角度位置。
- 直流电机 - 齿轮直流电机是一种连续旋转的设备,没有任何反馈,当你施加电源时它就会移动,反向施加电源,电机就会向相反的方向旋转。如果你想了解更多关于直流电机和步进电机的信息,请查看我的文章 电机入门和 L293D 四路半 H 桥驱动器。
- 步进电机 - 也是一种连续旋转的设备,但当你施加电源时,它只移动几度然后停止,要使其持续旋转,你需要对电机脉冲供电。它们不像其他两种电机那样提供扭矩,并且更重。
speed = Wheel Circumference * RPM 42mm = 1.65354 inches Wheel Circumference = 5.19 speed = 5.19 * 320 RPM = 1661.48 Inches/min. or 27 inches/sec
乍一看这似乎有点快,但我将使用脉冲宽度调制 (PWM) 来控制电机速度,PWM 利用可变占空比来控制设备获得的功率。要了解更多关于 PWM 的信息,我找到了一个非常好的视频,它在几分钟内就解释了它。 在这里找到它。
物料清单
我包含了一份主要零件清单,其中列出了我订购的地点以及我记得的尽可能准确的价格;
价格 | 其中 | 描述 |
---|---|---|
~$20.00 | Lightake.com | ATMega2560 (版本 1,买得便宜) |
$12.00 | Adafruit.com | ATMega328P裸板 AVR 开发板 |
$21.95 | Jameco.com | Dagu 电机控制器,4 通道 4.5A 4.5-12V 带编码器 |
4 个 @ 15.95 美元/个。 | pololu.com | 100:1 微型减速电机,高功率 |
$39.95 | pololu.ocm | 一套 42X19mm 轮子带编码器 |
$6.98 | pololu.com | 一套 42X19mm 轮子 |
$44.01 | BatterySpace.com | 7.2V 电池组带充电器 |
$39.00 | USPlastics.com | .200" 硬质发泡 PVC |
$247.69 |
所以,我为基础漫游车购买了所有必需的零件,总价接近 250 美元,其中一些零件我库存中有,一些我需要订购,但这些应该就是我需要订购的全部了,因为我需要的大部分其他零件我都有库存。有更便宜、更简单的方法来构建一个工作的自主车辆,要了解如何做到,请参考《Robot Builders Bonanza》一书。
大多数零件不需要解释,如果你已经开发过 AVR 系列微控制器,你至少会对这些神奇设备的内部工作原理有所了解,如果没有,这可能不是一个好的初学者项目。唯一需要更多讨论的零件是 Dagu 控制器板,它的手册非常简略,而且在谷歌搜索时似乎也没有太多相关信息。我还没有大量使用它,但我可以说它似乎是一个相当不错的控制器,我认为它能够很好地驱动我全部 4 个电机。我编写了一个 C++ 类,提供了该板子大部分基本功能,并在此处提供下载。它可能不会很有用,因为它针对 ATMega328P 编写,但可以作为参考或修改后用于其他微控制器。
我在这里还要提到一点重要的是使用 2 个电源,一个用于逻辑,另一个用于电机。这种电源分离是必要的,因为电机非常耗电且产生大量电噪声,逻辑需要稳定无噪声的信号,或者尽可能无噪声。对于逻辑电源,我使用了我旧手机里的电池,并从手机主板上拆下了连接器,然后将它们安装在一个自制板上。这有点棘手,因为连接器是表面贴装的,看起来有点简陋,但它工作得很好。
结论
目前,我仍在努力进行电机控制器固件的测试,并在基本功能之上添加一层,以更智能地协调 4 个轮子的运动。在下一期中,我计划记录我将所有部件安装好并让漫游车自行移动的努力。到那时,它就会像马格鲁先生一样,对于那些够老记得的人来说,它就像瞎子一样没有智能,但仍然能够自行移动。