DeepPiCar – 第2部分:Raspberry Pi设置和PiCar组装

组装PiCar硬件并安装所有软件驱动程序。让它在客厅里运行

执行摘要

欢迎回来!在本指南中,我们将首先介绍要购买的硬件以及我们需要它们的原因。接下来,我们将对它们进行设置,以便在本文末尾我们将在客厅中运行PiCar。

硬件供应清单

  • 1 x Raspberry Pi 3型号B +套件,带2.5A电源(50美元)这是DeepPiCar的大脑。这款最新型号的Raspberry Pi配备1.4Ghz 64位四核处理器,双频wifi,蓝牙,4个USB端口和一个HDMI端口。我推荐这个套件(仅在Raspberry Pi板上),因为它带有一个电源适配器,你需要在进行非驱动编码和测试时插入,以及两个芯片散热器,这将阻止你的Raspberry Pi CPU过热。
  • 1 x 64 GB micro SD卡(8美元)这是Raspberry Pi操作系统和我们所有软件的存储位置。任何品牌的micro SD卡都应该可以正常工作。你可能只有一个人躺在你的房子周围。32GB也应该没问题。我选择了64 GB,因为我计划在我的汽车行驶时记录大量视频,以便稍后分析其行为,并使用视频在以后的项目中进行深度学习培训。
  • 1 x SunFounder PiCar-V套件(115美元)这是DeepPiCar的主体。确保你得到如上所示的Model V(又名Version 2.0)。除了Raspberry Pi和电池外,它还配备了机器人汽车所需的一切。市场上有很多Raspberry Pi车载套件,我之所以选择这款车载套件是因为它配备了开源python API来控制汽车,而其他供应商则拥有其专有的API或基于C的API。众所周知,python现在是机器学习和深度学习的首选语言。此外,开源很重要,因为如果我们发现API中的错误而不必等待制造商提供软件更新,我们可能会自己修改汽车API的内部。
  • 4 x 18650电池和1 x电池充电器(20美元)您可以获得任何18650电池和兼容充电器。这些电池适用于高耗电应用,例如驱动Raspberry Pi板和PiCar。PiCar只需要两个电池,但你总是想要另外一对新电池,这样你就可以随时保持你的车在轨道上运行。我建议晚上给两套充电,这样你就不必担心测试过程中电池没电了。
  • 1个Google Edge TPU USB加速器(75美元)每个英雄都需要一个伙伴。谷歌的边缘TPU(Edge意味着它适用于移动和嵌入式设备,而TPU代表Tensor处理单元)是Raspberry Pi板的绝佳附件。虽然Pi CPU在很小的捆绑中包含了大量的计算能力,但它并不是为深度学习而设计的。另一方面,Google新发布的Edge TPU(2019年3月)专门用于运行用TensorFlow编写的深度学习模型。在本系列的第6部分中,我们将在TensorFlow中构建一个实时交通标志检测模型。这个模型深200多层!仅在Raspberry Pi的CPU上运行此模型只能处理每秒1帧(FPS),这几乎不是实时的。此外,它消耗100%的CPU并使所有其他程序无响应。但在Edge TPU的帮助下,我们现在可以处理12个FPS,这对于实时工作来说已经足够了。我们的CPU保持冷却,可用于执行其他处理任务,如控制汽车。
  • 套迷你交通标志(15美元)和一些乐高小雕像。如果您的年轻人在游戏室中有一些玩具标志和乐高小雕像,您可能不需要购买它们。你可以使用你发现的任何标志来训练模型,只要确保它们不是太大了
  • (可选)1 x 170度广角USB相机(40美元)。这是一个可选配件。我买了它来取代SunFounder PiCar附带的相机,这样汽车就可以拥有广阔的视野。相机很棒,但不像我喜欢的广角,它不能看到前轮前面3-4英寸的车道线。我最初使用相机拍摄了第4部分中的代码。在尝试了几个镜头后,我发现这款广角相机的精度和稳定性大大提高了。控制硬件和软件(与在汽车模拟器中运行汽车相比)是很好的,因为如果单独通过软件无法轻易解决问题,您可以采用硬件修复。
  • USB键盘/鼠标和带HDMI输入的显示器。在Pi的初始设置阶段,您只需要这些。之后,我们可以通过VNC或Putty远程控制Pi。
  • 运行Windows / Mac或Linux的台式机或笔记本电脑,我将在此处称之为“PC”。我们将使用此PC远程访问并将代码部署到Pi计算机。

有时候,我的惊喜是Raspberry Pi,我们汽车的大脑只有30美元左右,比我们的许多其他配件便宜。事实上,随着时间的推移,硬件变得越来越便宜,而且软件完全免费且丰富。难道我们不是生活在一个伟大的时代吗?!

这是组装完成后的最终产品。我在这里使用广角相机。

Raspberry Pi设置

Raspberry Pi操作系统设置(1小时)

  • 按照这个优秀的分步指南,将NOOBS Raspbian操作系统(各种Linux)安装到micro SD卡上。它需要大约20分钟和大约4GB的磁盘空间。安装并重新启动后,您应该看到如下所示的完整GUI桌面。这感觉就像你在Windows或Mac GUI环境中,不是吗?
  • 在安装过程中,Pi会要求您更改默认用户的密码pirasp例如,我们将密码设置为。
  • 初始安装后,Pi可能需要升级到最新的软件。这可能需要10-15分钟。

设置远程访问

设置远程访问允许Pi计算机无头运行(即没有显示器/键盘/鼠标),这使我们无需一直连接显示器和键盘/鼠标。该视频提供了有关如何设置SSH和VNC远程访问的非常好的教程。无论如何,这是步骤。

  • 打开终端应用程序,如下所示。终端应用程序是一个非常重要的程序,因为后面文章中的大多数命令都将从终端输入。
  • 通过运行找到Pi的IP地址ifconfig。在这种情况下,我的Pi的IP地址是192.168.1.120
pi @ raspberrypi:〜$ ifconfig | grep wlan0 -A1
wlan0:flags = 4163 <UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.120 netmask 255.255.255.0 broadcast 192.168.1.255
  • sudo raspi-config在终端中运行以启动“Raspberry Pi软件配置工具”。系统可能会提示您输入用户密码pi
  • 启用S​​SH服务器:选择5. Interface Options– > SSH– >Enable
  • 启用VNC服务器:选择5. Interface Options– > VNC– >Enable
  • 下载RealVNC Viewer并将其安装到您的PC上。
  • 使用Real VNC Viewer连接到Pi的IP地址。您将看到与Pi正在运行的桌面相同的桌面。
  • 此时,您可以安全地断开显示器/键盘/鼠标与Pi计算机的连接,只需插入电源适配器即可。

设置远程文件访问

由于我们的Pi将无头运行,我们希望能够从远程计算机访问Pi的文件系统,以便我们可以轻松地将文件传输到Pi计算机或从Pi计算机传输文件。我们将在Pi上安装Samba文件服务器。

pi @ raspberrypi:〜$ sudo apt-get update && sudo apt-get upgrade -y
获取:1 http://archive.raspberrypi.org/debian stretch InRelease [25.4 kB] 
软件包[45.0 kB] 
[省略...] 
解压缩lxplug-ptbatt(0.5)over(0.4)... 
设置lxplug-ptbatt(0.5)... 
pi @ 




raspberrypi :〜$ sudo apt-get install samba samba-common-bin -y读取包列表...完成构建依赖树        [省略...] 处理libc-bin的触发器(2.24-11 + deb9u4)... 处理触发器为systemd(232-25 + deb9u11)... pi @ raspberrypi :〜$ sudo rm / etc /samba/smb.conf pi @ raspberrypi:〜$ sudo nano /etc/samba/smb.conf

然后将以下行粘贴到nano编辑器中

[global] 
netbios name = Pi
服务器字符串= PiCar文件系统
工作组= WORKGROUP

[HOMEPI]
路径= / home / pi
comment =无评论
browsable = yes
writable =是
创建掩码= 0777
目录掩码= 0777
public = no

通过Ctrl-X保存并退出nano,单击是以保存更改。

然后设置Samba服务器密码。为简单起见,我们将使用与raspSamba服务器密码相同的内容。设置密码后,重新启动Samba服务器。

#create samba密码
pi @ raspberrypi:〜$ sudo smbpasswd -a pi
新的SMB密码:
重新输入新的SMB密码:
添加了用户pi。#re restart samba server
pi @ raspberrypi:〜$ sudo service smbd restart

此时,您应该能够通过Pi的IP地址(My Pi的IP为192.168.1.120)从PC连接到Pi计算机。转到您的PC(Windows),打开命令提示符(cmd.exe)并键入:

#将Pi主目录挂载到R:PC上的驱动器
C:\> net use r:\\ 192.168.1.120 \ homepi
命令成功完成。
C:\ Users \ dctia> r:C:\> dir r:
驱动器R中的
卷是HOMEPI 卷序列号是61E3-70FF 目录R:\ 05/02/2019 03:57 PM <DIR>。
04/08/2019 04:48 AM <DIR> ..
04/08/2019 05:43 AM <DIR> Desktop
04/08/2019 05:43 AM <DIR> Documents
04/08/2019 05:43 AM < DIR>下载
04/08/2019 05:15 AM <DIR> MagPi
04/08/2019 05:43 AM <DIR> Music
05/02/2019 03:43 PM <DIR>图片
04/08/2019 05:43 AM <DIR> Public
04/08/2019 05:43 AM <DIR>模板
04/08/2019 05:43 AM <DIR>视频
0文件0字节
11 Dir(s )22,864,379,904字节免费

事实上,这是我们的Pi计算机文件系统,我们可以从它的文件管理器中看到。这将非常有用,因为我们可以直接从我们的PC编辑驻留在Pi上的文件。例如,我们可以使用PyCharm IDE首先在Pi上编辑Python程序,然后使用Pi的终端(通过VNC)来运行这些程序。

如果你有一台Mac,这里是如何连接到Pi的文件服务器。按Command-K打开“连接到服务器”窗口。输入网络驱动器路径(替换为Pi的IP地址),即smb://192.168.1.120/homepi,然后单击“连接”。输入登录名/密码,即pi / rasp,然后单击“确定”以安装网络驱动器。然后,驱动器现在将显示在桌面和Finder窗口侧栏中。有关Mac上更深入的网络连接说明,请查看此优秀文章

安装USB摄像头

USB摄像头的设备驱动程序应该已经配备了Raspian OS。我们将安装摄像机查看器,以便我们可以看到实时视频。

  • 将USB相机从PiCar套件中取出并插入Pi计算机的USB端口
  • sudo apt-get install cheese从终端运行安装“奶酪”,相机查看器。
pi @ raspberrypi:〜$ sudo apt-get install cheese -y
读取包列表...完成
构建依赖关系树
读取状态信息...完成
....
cheese是最新版本(3.22.1-1)。
  • 通过Raspberry Pi button(Top Left Corner)– > Sound & Video– > 启动奶酪应用程序Cheese您应该看到如上图所示的实时视频源。

SunFounder PiCar-V软件配置(偏离手册)

在组装PiCar之前,我们需要安装PiCar的python API。SunFounder发布了其Python API的服务器版本和客户端版本。客户端API代码用于远程控制PiCar,在您的PC上运行,它使用Python版本3.服务器API代码在PiCar上运行,遗憾的是,它使用的是Python版本2,这是一个过时的版本。由于我们编写的自驱动程序将专门在PiCar上运行,因此PiCar Server API也必须在Python 3中运行。幸运的是,SunFounder的所有API代码都是Github上的开源代码,我制作了一个分支并将整个仓库(服务器和客户端)更新为Python 3.(我将很快将我的更改提交给SunFounder,因此它可以合并回到主要回购,一经SunFounder批准。)

暂时,运行以下命令(粗体),而不是SunFounder手册中的软件命令。您不必在本手册的第20-26页上运行命令。

#将所有对python(版本2)的调用路由到python3,
#pip(版本2)到pip3,即使在sudo模式下
#note:`sudo abcd`在管理员模式下运行`abcd`命令
alias python = python3
alias pip = pip3
alias sudo ='sudo'
#下载修补的PiCar-V驱动程序API,并运行它的设置
pi @ raspberrypi :〜$ cd pi @ raspberrypi:〜$ git clone https://github.com/dctian/SunFounder_PiCar.git
克隆到' SunFounder_PiCar'...
remote:枚举对象:9,完成。
remote:计数对象:100%(9/9),完成。
remote:压缩对象:100%(9/9),完成。
remote:总计276(delta 0),重用2(delta 0),pack-reused 267
接收物体:100%(276/276),53.33 KiB | 0字节/秒,完成。
解决增量:100%(171/171),完成。
pi @ raspberrypi:〜$ cd~ / SunFounder_PiCar / picar /

pi @ raspberrypi:〜/ SunFounder_PiCar / picar $ git clone https://github.com/dctian/SunFounder_PCA9685.git
克隆到'SunFounder_PCA9685'...
remote:枚举对象:7,完成了。
remote:计数对象:100%(7/7),完成。
remote:压缩对象:100%(5/5),完成。
远程:总计87(delta 2),重用6(delta 2),pack-
reused 80 Unpacking对象:100%(87/87),完成。pi @ raspberrypi:〜/ SunFounder_PiCar / picar $ cd~ / SunFounder_PiCar /
pi @ raspberrypi:〜/ SunFounder_PiCar $ sudo python setup.py install
将SunFounder-PiCar 1.0.1添加到easy-install.pth文件
中将picar脚本安装到/ usr / local / bin
[省略....] #下载修补后的PiCar-V应用程序
#并安装相关软件
pi @ raspberrypi:〜/ SunFounder_PiCar / picar $ cd
pi @ raspberrypi :〜$ git clone https://github.com/dctian/SunFounder_PiCar-V.git
克隆到'SunFounder_PiCar-V'...
remote:枚举对象:969,完成。
remote:总计969(delta 0),重用0(delta 0),pack-
reused 969 接收对象:100%(969/969),9.46 MiB | 849.00 KiB / s,完成。
解决增量:100%(432/432),完成。pi @ raspberrypi:〜$ cd SunFounder_PiCar -V pi @ raspberrypi:〜/ SunFounder_PiCar-V $sudo ./install_dependencies
将sunFounder-PiCar 1.0.1添加到easy-install.pth文件
中将picar脚本安装到/ usr / local / bin 安装/usr/local/lib/python2.7/dist-packages/SunFounder_PiCar-1.0.1- py2.7.egg
处理SunFounder-PiCar的依赖关系== 1.0.1
完成SunFounder-PiCar的处理依赖关系== 1.0.1
完成
将MJPG-Streamer复制到备用位置。完成
Enalbe I2C。完成安装结果:
django成功
python-smbus成功
python-opencv成功
libjpeg8-dev成功
你需要更改的东西可能需要重启才能生效。
你想立即重启吗?(是/否)是的

回答是,提示重启时。重新启动后,应安装所有必需的硬件驱动程序。我们将在汽车装配后测试它们。

PiCar大会

装配过程密切重新组装构建复杂的乐高套装,整个过程大约需要2个小时,手眼协调很多,并且很有趣。(您甚至可能在施工阶段让您的年轻人参与其中。)PiCar Kit附带一份印刷的逐步说明手册。但我推荐这两个额外的资源。

  • 教学手册的PDF版本。打印手册很小,图表可能打印得不是很清楚,而PDF版本非常清晰,可以搜索和放大以获得更多细节。我发现在组装阶段我的笔记本电脑上的PDF非常有帮助。
  • 由SunFounder发布的YouTube 4部分教学视频。不幸的是,这些视频适用于较旧版本的PiCar,因此某些部件(如伺服电机组件)不同。但大多数零件和装配技术都是一样的。因此,如果您对装配手册中的特定图表感到头疼,您可能需要查看视频的相关部分。我希望SunFounder能够为新的PiCar-V套件发布一组新的视频。

旧版PiCar的装配视频(4个部分),一个有用的参考

当橡胶遇上这条路!

现在PiCar的所有基本硬件和软件都已到位,让我们尝试运行它!

  • 通过VNC从PC连接到PiCar
  • 确保有新电池,将开关拨到ON位置并拔下micro USB充电线。请注意,您的VNC远程会话应该仍然有效。
  • 在Pi终端中,运行以下命令(以粗体显示)。你应该:
  1. 看到汽车行驶得更快,然后发出时减速 picar.back_wheel.test()
  2. 当发出时,看到前轮转向左,中间和右侧picar.front_wheel.test()。要停止这些测试,请按Ctrl-C。要退出python程序,请按Ctrl-D。
pi @ raspberrypi:〜/ SunFounder_PiCar / picar $ python3 
Python 3.5.3(默认,2018年9月27日,17:25:39)
[GCC 6.3.0 20170516]关于linux输入
“help”,“copyright”,“credits”或“许可证”了解更多信息。>>> 导入picar
>>> picar.setup() >>> picar.front_wheels.test()
DEBUG“front_wheels.py”:设置调试关闭
DEBUG“front_wheels.py”:设置轮调试关闭
DEBUG“Servo.py” :设置调试关闭
turn_left
turn_straight
turn_right >>> picar.back_wheels.test()
DEBUG“back_wheels.py”:设置调试关闭
DEBUG“TB6612.py”:

DEBUG“PCA9685.py”:设置调试关闭
前进,速度= 0
前进,速度= 1
前进,速度= 2
前进,速度= 3
前进,速度= 4
前进,速度= 5
前进,速度= 6
前进,速度= 7
前进,速度= 8
前进,速度= 9
前进,速度= 10
前进,速度= 11
  • 如果您遇到错误或看不到车轮移动,那么您的硬件连接或软件设置有问题。对于前者,请仔细检查您的电线连接,确保电池充满电。对于后者,请在评论部分发布一条消息,其中包含您遵循的详细步骤和错误消息,我将尽力提供帮助。

下一步是什么

恭喜你,你现在应该有一个PiCar,可以看到(通过奶酪),并运行(通过python 3代码)!它还不是一款深度学习车,但我们正在努力实现这一目标。每当你准备好的时候,请继续前进到第3部分,在那里我们将为PiCar提供计算机视觉和深度学习的超级大国。

以下是整个指南的链接:

第1部分:概述

第2部分:Raspberry Pi设置和PiCar组装(本文)

第3部分:让PiCar看到并思考

第4部分:通过OpenCV进行自主车道导航

第5部分:通过深度学习进行自主车道导航

第6部分:交通标志和行人检测和处理

发表评论

电子邮件地址不会被公开。 必填项已用*标注