我想向你介绍 T.A.R.A.S,机器人车。T.A.R.A.S 实际上是一个 backronym;我是从一位帮助我起步的商业导师那里得名的。在绞尽脑汁试图想出一些办法后,我终于想出了如何把我的朋友塔拉斯变成 T.A.R.A.S,这个神奇的树莓派自动安全代理。从名字上你可能可以看出,T.A.R.A.S 将为我们监控一切,并充当自动保安。
T.A.R.A.S 将使用覆盆子 Pi 作为大脑和电机驱动板来控制摄像机框架和轮子的运动。T.A.R.A.S 还将具有传感器输入以及 LED 和蜂鸣器输出。T.A.R.A.S 将是我们在本书中获得的技能的集合。
我们将在本章中构建 T.A.R.A.S 并编写代码来控制它。
本章将介绍以下主题:
我把 T.A.R.A.S 设计得尽可能简单。T.A.R.A.S 由激光切割硬纸板底盘、3D 打印转轮和摄像头安装部件组成(也可以选择使用激光切割转轮安装)。为了让您构建 T.A.R.A.S,我为机箱提供了 SVG 文件,为 3D 打印部件提供了 STL 文件。所有其他零件可在线购买。以下是 T.a.R.a.S.的照片。组装前:
伺服摄像机支架(如图所示已装配)-搜索www.aliexpress.com中的摄像机平台防振摄像机支架
3D 打印支架(摄像头支架)
车轮用直流电机(显示时附带电机线和延长线)-搜索www.aliexpress.com智能汽车机器人塑料轮胎车轮
车轮支架(3D 打印)
发光二极管
LED 灯座搜索www.aliexpress.com寻找 LED 灯座黑色夹
摄像机支架(激光切割)
主动蜂鸣器搜索www.aliexpress.com查找 5V 主动蜂鸣器
距离传感器(HC-SR04)-搜索www.aliexpress.com以查找 HC-SR04
备用车轮支架(激光切割)
Raspberry Pi 摄像头(长镜头版本,无电缆显示)-搜索www.aliexpress.com
电机驱动板(激光切割)
车轮搜索www.aliexpress.com智能汽车机器人塑料轮胎车轮
机器人车底盘(激光切割)
L298N 电机驱动板模块的电机驱动板搜索www.aliexpress.com
直流桶形插孔(图中附有电线)-www.aliexpress.com
Adafruit 16 通道 PWM/伺服 HAT-https://www.adafruit.com/product/2327
覆盆子皮
40 针单列公针头连接器带(未显示)-www.aliexpress.com
各种松动的导线和试验板跳线(未显示)-购买许多不同的导线和试验板跳线是个好主意;您可以在www.aliexpress.com中搜索试验板跳线
热收缩(未显示)
带直流插孔的 7.4V 可充电电池(未显示)-搜索www.aliexpress.com以查找 7.4V 18650 锂离子可充电电池组(请务必在 16 中选择一个与直流桶插孔匹配的电池组)
除第 22 部分外,您可以使用 AA 大小的动力电池储物箱,而不是第 16 部分和第 22 部分-www.aliexpress.com
微型试验板(未显示)-搜索www.aliexpress.com查找 SYB-170 微型无焊原型试验试验板
各种防区(未显示)-防区高度应至少为 40 mm;尽可能多的对峙是一个好主意,因为它们似乎总是派上用场,你可以在www.aliexpress.com上搜索电子领域的对峙
330 和 470 欧姆电阻器(未显示)-购买许多电阻器是个好主意,因为它们确实很方便;在www.aliexpress.com中搜索电阻器组
便携式 USB 电源包(未显示)-此类型用于在移动中为手机充电;我们将使用此电源组为树莓 Pi 供电
以下是建造 T.A.R.A.S(我们的机器人车)的步骤。您的 T.A.R.A.S 版本可能与本书中使用的版本相近,或者您可以根据需要进行修改。首先,我使用的是一个长镜头的覆盆子 Pi 相机模块(夜视模型有更长的镜头)。我还使用 Adafruit 16 通道 PWM/伺服帽驱动摄像机支架的伺服。您可以选择使用另一块板或完全放弃伺服系统,将相机安装在固定位置。
One of my favorite robot backronyms is Vincent from the 1980s Disney movie The Black Hole. Vincent, or more accurately, V.I.N.CENT, stands for Vital Information Necessary Centralized. If you know the movie, you will know that V.I.N.CENT is quite clever and very polite. V.I.N.CENT is also a bit of a know-it-all and can be a little irritating at times.
我已经包括了两种不同的方式来安装车轮马达:使用 3D 打印车轮安装或使用激光切割车轮安装。我更喜欢 3D 打印支架,因为它允许螺钉埋头,从而在底盘和车轮之间提供更多空间
If you are 3D printing the wheel mounts and camera brace yourself, you may use whichever solid filament type you desire. Personally, I used PETG as I like the way it bends without breaking. PLA is fine as well. Be sure to 3D print the wheel mounts on their sides so that they print wide and not high. This will result in a print that may be a little messy around the holes (for PETG, at least), but it will be a much stronger part. I managed to print a single wheel mount in 30 minutes and the camera brace in about 90 minutes.
建造机器人车需要一个下午的时间
如果你没听说过的话,纽约市有一家很棒的公司,为全世界的电子爱好者提供服务,名为 Adafruit。Adafruit 为 Raspberry Pi 创建了许多帽子(硬件添加在顶部),包括我们将用于我们的机器人的那顶,Adafruit 16 通道 PWM/伺服帽子。
有了这顶帽子,控制伺服系统所需的重复时间脉冲从树莓 Pi 卸下并放到帽子上。有了这顶帽子,你可以控制多达 16 个伺服。
以下是帽子及其附带的标题的照片:
出于我们的目的,我们需要将头部焊接到电路板上:
由于我们将使用电机板上的电线为伺服板供电,所以将电源头焊接到电路板上。
我们需要从 Raspberry Pi 访问 GPIO 引脚,因此必须添加另一个引脚行。从 40 针收割台接头上断开 25 针。将引脚焊接到电路板上:
我们需要连接电机,使两个电机始终在同一时间、同一方向旋转:
通过我们的伺服摄像机支架,T.A.R.A.S 能够将头部左右移动,上下移动。这对于我们在第 14 章中使用 Python控制机器人车的项目非常有用。当你把伺服摄像机支架的零件倒在桌子上时,你将如何把它组装成有用的东西似乎有点让人望而生畏。
以下是伺服摄像机支架部件的照片,。我不想试着给零件命名,我只想写下字母,并参考字母进行组装:
要组装伺服摄像机支架,请执行以下操作:
让我们面对现实吧。机器人不是机器人,除非它有某种面孔(向 R2D2 道歉)。在这一步中,我们将附加零件以构建 T.A.R.A.S.的头部和面部。
According to Rodney Brooks, founder of Rethink Robotics, robots do not have faces just to make them friendly. Faces on robots are used as visual cues for humans to pick up on. For example, if a robot moves its head in a certain direction, we can safely assume that the robot is analyzing something in that direction. When we move the head of T.A.R.A.S, we are giving cues to those around us that T.A.R.A.S is looking that way.
以下是完成头部所需零件的照片:
我们现在将组装 T.A.R.A.S.的头部。以下是零件列表:
要组装头部,请执行以下操作:
直流电机板位于 T.A.R.A.S 的背面,装有移动车轮的直流电机驱动器。DC 桶形插孔和尾灯 LED 也位于 DC 电机板上。我们将通过创建尾灯 LED 开始此步骤。
下图显示了制造尾灯 LED 所需的零件:
以下是零件列表:
以下是创建 LED 尾灯的步骤:
Solder a brown wire to the cathode and apply heat shrink (in this photo, we show a red LED with an extended brown wire). This is the negative end of the assembly:
现在我们已经完成了两个尾灯的组装,让我们把直流电机板放在一起。以下是我们需要将直流电机板组装在一起的部件的照片:
以下是零件列表:
让我们开始把它放在一起:
这是侧视图:
这是接线图:
在此步骤中,我们将开始将零件连接到机箱。我们将首先固定车轮支架,然后固定电机。我们将在这一步中使用的车轮支架是 3D 打印的
此步骤所需的零件如下图所示:
以下是零件列表:
让我们开始把它放在一起:
接下来,我们将连接电机传动板总成并连接车轮电机:
机器人车开始看起来像机器人车了。在这一步中,我们将连接摄像机支架(或 T.A.R.A.S 的头部)和树莓派。
我们先从覆盆子皮开始。这就是我们在如何将树莓 Pi 和 Adafruit 伺服板安装到底盘上时必须有点创意的地方。Adafruit 伺服板是一个令人惊讶的小板,但该套件缺乏所需的对峙,以保持板的一部分接触树莓派。我发现很难将 M3 螺栓穿过板上的安装孔。我的解决方案是使用 30 mm 的母对头将覆盆子 Pi 连接到底盘,使用 10 mm 的母对头将覆盆子 Pi 从 Adafruit 伺服板上分离。
以下是我收集的树莓派与一些对峙的照片:
以下是上图中的组件:
要创建此回路,请执行以下操作:
现在,让我们连接摄像机支架,连接摄像机,并安装 Adafruit 伺服板:
要安装在底盘上的最终部件是蜂鸣器和分压器。我们需要分压器,以便从距离传感器的回波引脚向树莓 Pi 提供 3.3V 电压。对于蜂鸣器,我们使用的是有源蜂鸣器。
An active buzzer omits a sound when a DC voltage is applied to it. Passive buzzers require an AC voltage. More coding is required for a passive buzzer. Passive buzzers are more like little speakers and, as such, you can control the sound coming from them.
以下是完成此步骤所需的组件:
按照以下步骤完成电路:
现在是你一直在等待的部分:连接所有的电线!好吧,也许在老鼠窝里整理电线来弄清楚它们不是你认为的好时机。然而,只要有点耐心,这一步就会在你意识到之前结束。
参考以下接线图,将所有导线连接到适当的位置。电机驱动板的电源和电机连接不包括在我们的接线图中,因为我们在第 7 步“电机接线”中处理了这一问题。我已经注意到根据电线颜色的用途对其进行分组。请注意,接线图不是按比例绘制的:
要连接 T.A.R.A.S,请执行以下连接:
为了给 T.A.R.A.S.供电,我们将使用两个便携式电源。对于 Raspberry Pi,我们将使用标准 USB 便携式电源组。对于电机驱动板和伺服帽,我们将使用可充电的 7.4V 电池。要安装电池,请执行以下操作:
在第 14 章中,我们将开始编写代码来控制 T.A.R.A.S。在我们开始编写代码之前,最好先看看如何设置 Raspberry Pi 来访问所需的接口。我们应该安装创建控制代码所需的库。
为确保我们为机器人车启用了所需的推理,请执行以下操作:
导航至应用程序菜单|首选项|树莓 Pi 配置
单击接口选项卡
启用摄像头、SSH 和 I2C。您可能需要重新启动 Raspberry Pi:
If you haven't changed the default password for the pi
user, you may get a warning about it after you enable SSH. It's a good idea to change the password from the default. You may change it under the System tab in the Raspberry Pi Configuration tool.
要访问 Adafruit 伺服帽,必须下载并安装库:
git
用于从互联网下载 Adafruit 伺服帽库。用 Raspbian 打开终端,然后键入以下内容:sudo apt-get install -y git build-essential python-dev
git
已安装,您将收到一条消息,表明已安装。如果没有,则继续安装git
。git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
cd Adafruit_Python_PCA9685
sudo python3 setup.py install
在本章中,我们建造了我们的机器人车 T.A.R.A.S。我们首先概述了各个部分,然后把它们放在一起。如果你以前从未制造过机器人,那么恭喜你!你正式进入了机器人世界。你从这里把它带到哪里取决于你。
在本书的其余部分中,我们将对 T.A.R.A.S 进行编程以执行任务。在第 14 章中使用 Python控制机器人车,T.A.R.A.S 将被召唤参与一项秘密任务。