打造智能汽车的核心部件是树莓派。树莓派不是蛋黄派,没有馅就吃不了,而是信用卡大小的电路板,英文名是Raspberry PI。树莓派足够强大,拥有普通电脑的所有硬件配置,如CPU、内存、显卡、声卡、wifi、蓝牙、USB接口和网线接口。可以这么说,Raspberry Pi 是一台微型计算机。不仅如此,它还具有 40 个引脚,可让您连接 LED、传感器、驱动板等设备以检测信号并发出控制命令。
我在这里用到的树莓派机型是树莓派3 Model B(以下简称3B),于2016年2月发布,目前售价在200多元。现在有更强大的3B+,它升级了内存和网卡等,价格比3B更高。单击此处查看 Raspberry Pi 版本的比较表。与普通计算机相比,Raspberry Pi 的价格实在是太便宜了。
2 为树莓派制作SD卡
树莓派本身没有硬盘,SD卡是它的硬盘,所以所有操作系统文件都必须写入SD卡。换句话说,如果树莓派中的软件坏了,无法启动,你可以用新的操作系统的SD卡替换它。所以树莓派本身一般不会出现软件故障,故障都在SD卡上。
在使用 Raspberry Pi 之前,请将操作系统刷入其中。烧录的操作也很简单,去官网下载安装镜像,用烧录软件烧录到SD卡上。无论您使用的是装有 Windows、MAC 还是 Linux 的个人计算机,您都可以借助闪存软件轻松制作 Raspberry Pi SD 卡。单击此处查看详细教程。
MAC系统甚至可以在不使用刷机工具的情况下使用命令行。我们以MAC Book Pro为例,来说明烧录树莓派SD卡的操作流程。
插入 SD 卡
首先将 SD 卡插入计算机(您可能需要一个带有 USB 端口的读卡器)。打开命令行,执行df -lh命令,查看当前挂载的卷,判断SD卡是否被读取。
xxdeMacBook-Pro:Downloads administrator$ df -lh
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1 233Gi 43Gi 189Gi 19% 813124 4294154155 0% /
/dev/disk2s1 15Gi 2.4Mi 15Gi 1% 0 0 100% /Volumes/SD
我们可以通过属性确定 disk2s1 是系统中 SD 卡的对应分区,例如 Size Used Avail 等。如果您的 SD 卡有多个分区,那么可能还有 disk2s2、disk2s3…。
卸载 SD 卡
使用命令 diskutil unmount /dev/disk2s1 卸载 SD 卡
xxdeMacBook-Pro:Downloads administrator$ diskutil unmount /dev/disk2s1
Volume SD on disk2s1 unmounted
确认设备编号
通过命令 diskutil list 确定设备
iluhaodeMacBook-Pro:Downloads administrator$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage Macintosh HD 250.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD +249.8 GB disk1
Logical Volume on disk0s2
E8CADD9F-4CA2-4156-9CEE-D3FCE187322D
Unencrypted
/dev/disk2 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *15.9 GB disk2
1: Windows_FAT_32 SD 15.9 GB disk2s1
根据显示信息SIZE,可以判断出/dev/disk2是SD卡,应该根据SD卡的实际情况来判断。
编程系统
使用cd命令进入镜像文件所在的目录,然后运行命令
sudo dd bs=4m if=xxx of=yyy
执行系统刷新。 if=“xxxx” of=“yyyy” “xxxx”代表镜像的名称,“yyyy”代表我们要烧录的SD卡的设备号。例如:
xxdeMacBook-Pro:Downloads administrator$ sudo dd bs=4m if=rpi_35_v6_1_2_3_jessie_kernel_4_4_50.img of=/dev/disk2
Password:
1062+1 records in
1062+1 records out
4454400000 bytes transferred in 339.766726 secs (13110171 bytes/sec)
当系统提示您输入密码时,您需要输入计算机密码,并且在键入过程中可能不会显示任何内容,因此请在完成后按 Enter。几分钟后(这个过程可能很长,请耐心等待),出现“记录输入,记录输出”等消息,表示系统已成功刷机。
卸载 SD 卡
通过命令 diskutil unmountDisk 卸载 SD 卡。
xxdeMacBook-Pro:Downloads administrator$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
这样,
树莓派的 SD 卡已准备就绪,此时 SD 卡已取出。
3 引导配置
将带有操作系统的SD卡插入树莓派卡槽,开机,系统会自动开机。
在使用它之前,需要对其进行初始配置。要查看启动屏幕,您可以使用 HDMI 电缆将 Raspberry Pi 连接到带有 HDMI 连接器的显示器,例如计算机显示器或电视。只需要将初始配置连接到显示器,
然后在使用过程中,我们可以使用其他计算机远程登录树莓派,不再需要连接到显示器。
树莓派开启后,会启动配置向导,可以一步一步操作安装提示。设置国家和地区 -> 设置用户名和密码(此用户名和密码将来也会用于远程登录) ->选择 wifi 网络 -> 检查更新 ->重新启动
下图是 Raspberry Pi 启动后的默认桌面
要输入您的用户名和密码,您需要鼠标和键盘,只需将 USB 端口插入其中,您就可以开始了,就像使用任何其他计算机一样。
请看这里为启动配置的图解教程,一步即可重启,后续操作可能与它不一样。
Raspberry Pi 的默认用户名是
Pi 和默认密码是 Raspberry,可以使用命令行进行更改。
sudo passwd pi
系统将提示用户输入新密码两次,之后更改将成功。树莓派有一个root账号,但默认是锁定的,需要用户手动开启。在启用 root 帐户之前,您需要为其设置密码,就像您可以更改 pi 帐户的密码一样。
sudo passwd root
输入根
密码两次,输入以下命令解锁root账号,跳转到root账号。
sudo passwd --unlock root #解锁root账号
su root #跳转到root账号
root账号
权限高,请不要修改该账号下的系统文件。
4 远程连接
是
每次使用树莓派时都有显示器和键盘鼠标很麻烦吗?有一种比远程连接更好的方法。通过远程连接,您可以达到与直接操作相同的效果,那为什么不呢?
4.1 SSH远程连接
Raspberry Pi 默认提供 SSH 连接。
4.2 远程桌面
SSH远程连接不是很有问题,因为你看不到系统桌面,而且对于习惯了Windows操作系统的人来说,命令行感觉很不舒服,就像回到了DOS时代。
有更好的方法吗?答案是肯定的。我们可以使用远程桌面连接到树莓派。
实现远程桌面需要安装 VNCserver,幸运的是,最新的 Raspberry Pi 操作系统默认附带 VNCserver。如果您不幸刷新了一个没有 VNCserver 的系统,请不要担心,只需安装一个即可。
打开树莓派的命令行界面,输入以下命令
sudo apt-get update
sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer
经过
同时,将安装 VNCserver,并且可能需要重新启动才能生效。
之后,只需打开远程连接功能即可。以下是打开远程连接功能的方法。
打开命令行,输入sudo raspi-config,会显示系统配置界面,如下图所示。
选择 5 个接口选项进入下面的屏幕
选择 P3 VNC,然后选择 True。树莓派远程配置完成。
接下来,您需要在自己的计算机上安装 VNCserver,以便成功连接到 Raspberry Pi。
安装方法也很简单,点击链接,根据自己的操作系统选择对应的版本进行下载安装。例如,如果我有一本MAC书,我选择“MACos”并下载名为“VNC-Viewer-6.18.907-MacOSX-x86_64.dmg
“。
安装后,打开它并输入 Raspberry Pi 的私有 IP 地址,然后输入您的用户名和密码以成功连接。
除了VNCserver之外,还有tightvncserver也可以用于远程连接,但是我个人觉得不好用,因为我已经研究了很长时间,还没有配置剪贴板共享。最后,我发现系统自带的VNCserver非常好用,推荐使用这个。
使用VNC连接树莓派后,屏幕分辨率可能过大或过小,需要调整分辨率。
在命令行中,输入 sudo raspi-config。
弹出原树莓派系统的配置界面:
决议
的意思是“决议”。
如果您连接到大屏幕电视,则可以选择高达 1920×1080 的分辨率。
在 VNC 中,shell 使用 xshell,而传输到 Raspberry Pi 的文件使用 winscp。所有操作均在局域网上进行,基本没有延迟。
5 更换软件源
树莓派系统安装后,软件默认使用国外镜像源进行更新,由于众所周知的原因,国内访问速度很慢,需要更换为国内的镜像源。Raspberry Pi 官方提供了更新源列表,这里我们使用 USTC 软件源和系统源。1. 登录树莓派。您可以直接使用屏幕键盘和鼠标打开终端,也可以通过 SSH 登录 Raspberry Pi。2. 备份源文件。运行以下命令:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
若要修改软件更新源,请运行以下命令:
sudo nano /etc/apt/sources.list
将第一行改为 USTC 的软件源地址,“Ctrl+O”保存,然后按回车键,“Ctrl+X”退出。
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
若要同步更新源,请运行以下命令:
sudo apt-get update
稍等片刻,你就完成了。
修改软件仓库后,每次执行 sudo apt-get 命令时,都会从指定的镜像源下载安装包。
此外,对 Raspibian 操作系统的更新需要新映像源的规范。更新系统后,这将更快。方法如下:
登录到 Raspberry Pi。备份源文件。运行以下命令:
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
若要修改系统更新源,请运行以下命令:
sudo nano /etc/apt/sources.list.d/raspi.list
将第一行改为 USTC 的系统源地址,“Ctrl+O”保存,然后按回车键,“Ctrl+X”退出。
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
更新以安装软件包可能需要很长时间。
sudo apt-get upgrade
如果不需要将操作系统更新到最新版本,可以暂时禁用此命令。
产品目录:
“教你造一辆智能汽车(0)——写在前面的话”。
“教你打造智能汽车(1)——树莓派及其使用配置”。
“教你造一辆智能汽车(2)——点亮LED灯”。
“教你造一辆智能车(3)——车跑”。
“教你造一辆智能汽车(4)——使用传感器自动避开障碍物”。
“教你造智能车(5)——用舵机搭相机云台”。