机器人编程教程3探索Raspberry Pi

发布时间 2023-08-13 14:07:40作者: 磁石空杯

3探索Raspberry Pi

本章将涉及以下主题:

  • 探索 Raspberry Pi 的功能
  • 选择连接
  • 什么是 Raspberry Pi OS?
  • 为Raspberry Pi OS 准备 SD 卡

3.1 探索Raspberry Pi的功能

控制器将决定机器人的输入和输出类型、电子设备的功率要求、可使用的传感器类型以及运行的代码。更改控制器可能意味着重写代码、重新设计控制器的安装位置以及更改电源要求。

Raspberry Pi 是一系列专为教育领域设计的小型计算机。它既是一台完整的计算机,又有用于连接定制硬件的输入/输出引脚,因此深受创客(指喜欢制作机器人和小玩意儿等业余爱好的人)的喜爱。与标准计算设备相比,微控制器的成本相对低廉,体积也较小,这些都有助于实现这一目标。所有型号的 Raspberry Pi 都具有连接摄像头、显示器和键盘以及网络的功能。

3.1.1 速度和功能

Raspberry Pi 的功能强大,足以处理一些视觉处理任务,如面部识别和跟踪物体,后期型号的 Raspberry Pi 可以更快地完成这些任务。语音识别任务也是如此。因此,推荐使用速度更快的 4B、3B+ 和 3A+ 型号。Pico、Zero 和 Zero W 型号要慢得多,虽然系统仍能运行,但速度可能会令人沮丧。

Raspberry Pi 是一种单板计算机(SBC Single-Board Computer),其功能强大到足以运行完整的计算机操作系统,特别是 Linux 版本。

一些可用作控制器的替代 SBC 运行 Linux,如 BeagleBone、CHIP、OnionIoT 和 Gumstix Linux 计算机,但这些计算机要么比 Raspberry Pi 昂贵,要么功能较弱。只有部分产品集成了摄像头。虽然 BeagleBone 的模拟 IO 连接性更出色,但 Raspberry Pi 3A+ 更像是一个全能型产品,有许多扩展选项。

3.1.2 连接和网络

Raspberry Pi 3A+ 还配有 USB 端口和 HDMI 端口。我们不打算在本书中使用它们,不过如果出现问题,与机器人失去联系,它们在调试时还是很方便的。有鉴于此,我们建议配备额外的屏幕和键盘。

Raspberry Pi 4、3 和 Zero W 系列都板载了 Wi-Fi 和蓝牙。在本书中,我们将一直使用 Wi-Fi 与机器人连接,因此推荐使用具有 Wi-Fi 功能的机型。Wi-Fi 可用于对机器人进行编程、驱动和启动代码运行。

Raspberry Pi 有 I/O 引脚,可以连接到传感器。在 Raspberry Pi 3A+ 中,通用输入/输出 (GPIO General Purpose Input/Output) 连接已经焊接到位,可以随时使用。Raspberry Pi Zero 和 Zero W 型号没有连接针座。第一代 Raspberry Pi 电路板的 I/O 连接器也不尽相同。这些原因使得 3 和 4 系列 Raspberry Pi 成为最佳选择。

选择 Raspberry Pi 3A+ 或Raspberry Pi 4B

以下功能列表可以满足我们的所有需求:

  • 输入/输出
  • 摄像头接口
  • 可进行视觉和语音处理
  • 板载 Wi-Fi 和蓝牙
  • 运行 Python 代码
  • 预焊接接头,可连接机器人设备
  • 体积小,价格相对便宜

除此之外,3A+ 还配备了基于 ARM 的四核 CPU,主频为 1.4 GHz,足以满足我们的使用要求。以后的 Raspberry Pi 版本可能会以更快的处理速度和更多的功能取代该型号。

3.2 选择连接

在制作机器人时,我们将使用 Raspberry Pi 提供的部分连接。让我们来看看这些连接是什么,以及我们将如何使用它们。。


高亮区域表示使用中的连接:

首先,我们将使用电源接口,标记为电源输入,位于图的左下方。它通过微型USB(4B为tpye-c)接口插入,与许多手机上的接口类似。我们可以将 USB 电池组插入这个端口,只要它们能提供适当的电量。

中下部突出显示的端口是摄像头(摄像头串行接口 (CSI))端口;这是用于Pi摄像头的端口,我们将在准备进行视觉处理时连接摄像头。

我们将使用Raspberry Pi下方的Micro SD卡插槽来运行代码。我们将不使用以太网或 HDMI,因为我们将通过 Wi-Fi与Raspberry Pi通信。


The Raspberry Pi GPIO port (B+, 2, 3, 3B+, Zero, and Zero W)

外部设备可以连接到SPI、I2C、串行和I2S数据总线或数字I/O引脚。

3.2.1 电源引脚

5V和3.3V引脚以及标有GND的引脚用于供电。GND是接地的缩写,相当于电池或电源的负极。5V引脚可用于从电池为Pi供电。5V和3.3V可用于为小型电子设备或传感器供电。

3.2.1.1 数据总线

SPI、I2C 和串行总线用于在控制器和智能设备之间发送控制和传感器数据。I2S用于在Raspberry Pi之间传输编码数字音频信号(PCM)。可以通过配置启用这些数据总线的端口,或者在数据总线关闭时将这些引脚用作普通数字引脚。

标有SDA和SCL的引脚是I2C数据总线。我们将其用于传感器和电机控制板。指令通过该端口发送。

引脚9、10和11组成SPI端口,我们用它来驱动RGB LED。

虽然Raspberry Pi上有一个音频端口,但它并不适合驱动扬声器,因此我们将使用 GPIO 端口上的I2S引脚来驱动扬声器。I2S引脚为 18、19、20 和 21。由于它们也有用于音频输入的引脚,因此我们将其用于语音处理。

3.2.1.2 通用IO

其他没有特定字或阴影类型编号的引脚是通用I/O引脚。通用I/O引脚用于伺服电机、编码器和超声波传感器的数字输入和输出。

3.2.1 Raspberry Pi HAT

Raspberry Pi HAT(也称为 Bonnets)是设计用于插入 GPIO 针座的电路板,可方便地将Raspberry Pi连接到电机或传感器等设备。

有些电路板通过GPIO引脚连接更多电路板/连接装置来使用这些引脚,有些则需要扩展电路板来访问这些引脚。

HAT将GPIO引脚用于不同的用途;例如,音频HAT将I2S引脚用于音频接口,但有些电机控制器 HAT 使用相同的引脚来控制电机。同时使用这些HAT可能会出现问题,因此在使用多个HAT或特定总线时要注意这一点。

参考资料

3.3 什么是 Raspberry Pi OS?

Raspberry Pi OS是我们用来驱动Raspberry Pi的软件,是我们的代码将在其中运行的操作系统。它是Raspberry Pi基金会的官方操作系统,附带的软件可使Raspberry Pi的工作更轻松。Raspberry Pi OS可以支持完整的桌面,也可以支持最小的命令行和纯网络系统。

Raspberry Pi 操作系统基于 Debian Linux 发行版。Debian是一个软件集合,可以一起运行,提供大量功能和多种可能性。这样的Linux发行版是许多互联网服务器、手机和其他设备的基础。该操作系统的软件专为Raspberry Pi硬件进行了优化,即内核和驱动程序。它还有一些巧妙的方法来配置Raspberry Pi用户可能需要的专门功能。

我们将以比台式机更简约的方式使用它,放弃对键盘、鼠标和显示器的支持。这个最小版本被称为Raspberry Pi OS Lite,因为当不需要桌面软件时,它的下载量要小得多,而且占用的micro SD卡空间也更小。不运行窗口管理器可以释放内存,减少对Raspberry Pi处理能力的使用,使其能够用于视觉处理等活动。我们将使用用于机器人编程的软件和工具来扩展Raspberry Pi OS Lite。

在本书的学习过程中,你将主要通过代码和命令行与机器人进行交互。Linux和Raspberry Pi OS在编写时考虑到了通过网络使用命令行,这非常适合机器人编程的无头特性。

我们使用Linux对Python编程语言的强大支持以及Linux提供的网络工具。Raspberry Pi OS在 Raspberry Pi社区被广泛使用,在需要帮助时也最容易找到答案。它不是 Raspberry Pi的唯一操作系统,但对于刚开始使用Raspberry Pi的人来说,它是最有用的选择。

准备 SD 卡

要在Raspberry Pi上使用Raspberry Pi OS,需要将软件以Raspberry Pi可以加载的方式放入微型SD卡中。

Raspberry Pi开发了Raspberry Pi Imager,用于将软件放到SD卡上。让我们下载它并在卡上获得正确的映像:

访问raspberrypi.org/software上的 Raspberry Pi软件下载页面,为你的电脑选择下载按钮,如下图所示:

将微型SD卡装入读卡器,插入笔记本电脑的端口。

选择 Raspberry Pi OS(其他)。由于我们要尽量简化操作,因此请从该菜单中选择 Raspberry Pi OS Lite(32 位)。

现在准备写入。单击 "写入 "按钮:

系统会问你是否确定,点击 "是 "继续。下载和写入图像需要一些时间。