4为机器人准备无头Raspberry Pi
本章将介绍以下内容:
- 什么是无头系统,为什么它对机器人有用?
- 在Raspberry Pi上设置Wi-Fi并启用SSH
- 在网络上找到你的Raspberry Pi
- 连接Raspberry Pi
- 配置Raspberry Pi操作系统
要求:一台 Raspberry Pi,最好是 3A+(但 Pi3或4也可以)
4.1 什么是无头系统,为什么它对机器人有用?
无头系统是指在键盘、屏幕和鼠标访问设备不方便的时间或地点,可以通过网络从另一台计算机上操作的计算机。无头访问可用于服务器系统、制造机器人和小工具:
与屏幕、键盘和鼠标连接的 Raspberry Pi
上图展示了一个有头的系统,用户可以坐在设备前面。您需要在机器人上安装屏幕、键盘和鼠标,因此移动性较差。您可以根据需要安装/拆卸它们,但这样做也很不方便。有一些便携式系统可以与Raspberry Pis像这样对接,但当机器人移动时,您需要断开连接或与机器人一起移动。
我曾看到过带有微型板载屏幕、由无线键盘和鼠标控制的机器人。不过,在本书中,我们将机器人作为无头设备使用:
机器人上的Raspberry Pi采用无头配置
上图中的 Raspberry Pi作为无头设备安装在机器人上。这台Raspberry Pi没有屏幕和键盘的束缚;这些都由另一台计算机来处理。代码、指令和信息通过无线网络从笔记本电脑发送到 Raspberry Pi,再从 Raspberry Pi发送出去。许多代码示例都是自主运行的,计算机可以启动/停止这些示例。手机可以启动和停止自主行为,查看机器人的状态,或者直接驱动机器人,完全不需要连接笔记本电脑。这个 Raspberry Pi没有屏幕和键盘。
虽然您通常不需要屏幕和键盘,但还是值得准备一下,以防与 Raspberry Pi失去联系时,它拒绝通过网络做出响应。这时,您可以使用屏幕和键盘与它连接,查看发生了什么。
对于无头访问Raspberry Pi,我们将使用Secure Shell(SSH)。SSH提供了向Pi发送指令的命令行,以及向 Pi 传输文件的文件传输系统。
让Pi成为无头机器人可以让它自由行动。它无需携带屏幕和键盘,也无需为其供电,从而保持了机器人的轻便。由于显示器和键盘非常笨重,因此无头设计使机器人更小巧。它还能鼓励制造者思考机器人的自主行为,因为你不能总是向机器人输入命令。
4.2 在Raspberry Pi上设置Wi-Fi并启用SSH
现在你已经看到了无头系统的功能,让我们来修改SD卡,使 Raspberry Pi启动后即可作为无头设备使用。我们需要先设置 Wi-Fi:
并创建文件:
- ssh: 没有扩展名的空文件。
- wpa_supplicant.conf: 该文件包含 Wi-Fi 网络配置,如图所示:
country=CN
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="<your network ssid>"
psk="<your network password>"
}
让我们逐行查看该文件:
第一行必须指定ISO/IEC alpha2国家代码。您可以在 https://datahub.io/core/country-list 找到适合您所在位置的国家代码。如果没有,Raspberry Pi OS 将禁用Wi-Fi适配器。
接下来的两行允许其他工具更新配置。
文件的最后四行定义了机器人和 Raspberry Pi 将连接的 Wi-Fi网络。请使用您自己的网络详细信息,而不要使用此处的占位符。预共享密钥(PSK)也称为 Wi-Fi 密码。这些信息应与您将笔记本电脑或手机连接到Wi-Fi网络时使用的信息相同。我建议在电脑上保留一份 wpa_supplicant.conf 文件副本,以便在其他 Raspberry Pi SD 卡上使用。
4.3 在网络上找到你的 Pi
假设您的SSID和PSK正确无误,您的 Raspberry Pi现在已经在Wi-Fi网络上注册。不过,现在你需要找到它。Raspberry Pi使用动态地址(DHCP)。每次将它连接到网络时,它都可能获得不同的地址。访问Wi-Fi路由器的管理页面并记下IP地址在短期内有效。但每次更改地址时都这样做会令人沮丧,而且在某些情况下可能无法使用。
幸运的是,Raspberry Pi使用了一种名为mDNS(多播域名系统)的技术,因此附近的电脑都能找到它。客户端计算机会广播一条本地消息,询问是否有名称为 raspberrypi.local 的设备,Raspberry Pi会回复地址,以便找到它。这也被称为Zeroconf和Bonjour。因此,你需要做的第一件事就是确保你的电脑能做到这一点。
如果你使用的是 macOS,那么你的电脑已经在运行Bonjour软件,它已经具备mDNS功能。此外Ubuntu和Fedora桌面版本也早已兼容 mDNS。在其他 Linux 桌面上,你需要找到它们的Zeroconf或 Avahi说明。许多最新的 Linux桌面都默认启用了这一功能。
但如果你使用的是Windows,则需要使用Bonjour软件。下面我们就来看看如何设置。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
- Raspberry Pi(树莓派4B)4轻松入门(上)-安装 https://www.cnblogs.com/testing-/p/17604049.html
- Raspberry Pi 基金会安装 Raspberry Pi 操作系统指南:https://www.raspberrypi.org/documentation/installation/installing-images/README.md。
- 《Raspberry Pi By Example》,Ashwin Pajankar和Arush Kakkar,Packt Publishing,其中有一节介绍Raspberry Pi的替代操作系统,以及许多令人兴奋的 Raspberry Pi项目。
- Raspberry Pi GPIO 引脚输出 (https://pinout.xyz/): 它介绍了不同电路板与Raspberry Pi的实际引脚连接方式。
4.3.1 为Microsoft Windows设置Bonjour
如果你安装了最新版本的Skype或iTunes,你就会拥有这款软件。你可以使用本指南检查它是否已经存在并启用它:https://smallbusiness.chron.com/enable-bonjo