使用 Python 在 Raspberry Pi 上构建物理项目

2025 年 3 月 17 日 | 阅读 26 分钟

树莓派是一款低成本、信用卡大小的计算机,由英国树莓派基金会开发,用于支持基础计算机科学在教育机构的教学。此后,它在创客、爱好者和专家中因各种项目而广受欢迎。

Python 是一种流行的、高级的编程语言,易于学习和使用,使其成为想要构建物理项目的初学者的理想选择。它拥有广泛的库和模块。

借助树莓派和 Python,您可以构建与物理世界交互的项目,例如控制 LED、读取传感器,甚至创建定制机器人。您还可以使用树莓派和 Python 来创建更高级的项目,例如家庭自动化系统或气象站。

树莓派概述

树莓派是一款低成本、信用卡大小的计算机,由英国树莓派基金会开发,旨在促进基础计算机科学在学校的教学。它已成为业余爱好者、创客和专业人士在各种项目中的热门选择。

Building Physical Projects with Python on the Raspberry Pi
  • 硬件:树莓派有多种型号,具有不同的规格,可满足各种项目需求。最新的型号 Raspberry Pi 4 和 Raspberry Pi 400 拥有强大的处理器、高达 8GB 的 RAM,并支持 4K 显示器,非常适合要求苛刻的应用。
  • 操作系统:树莓派运行各种操作系统,包括基于 Debian Linux 的 Raspberry Pi OS 和其他多个 Linux 发行版。这为构建项目提供了一个稳定且得到良好支持的平台,并可以访问大型开源软件存储库。
  • GPIO 引脚:树莓派上的 GPIO 引脚可以连接外部硬件,如传感器、执行器和显示器。这使得构建各种物理计算项目成为可能,从简单的 LED 控制器项目到更复杂的机器人或气象站项目。
  • 多媒体能力:树莓派内置视频和音频输出支持,非常适合需要多媒体技能和能力的任务,例如构建媒体中心、游戏机或音乐播放器。
  • 网络:树莓派用户和开发人员拥有庞大而活跃的社区,提供设备上的项目构建支持、资源和操作指南……这个网络为任何有兴趣使用树莓派构建项目的人提供了丰富的知识、信息和灵感。
  • 可访问性:树莓派旨在让所有年龄段和技能水平的人都能轻松使用,是学习计算、编程和物理计算的理想平台。树莓派基金会提供一系列教育资源和计划,以鼓励在学校教授计算机科学。

树莓派与 Arduino

Arduino 是一个基于微控制器的平台,广泛用于构建物理计算项目。微控制器是单个集成电路上的小型计算机,可以控制外部硬件并读取传感器。

Arduino 平台可以轻松构建与物理世界交互的项目,从简单的 LED 控制器项目到更复杂的机器人或气象站项目。

树莓派和 Arduino 都是构建物理计算项目的流行平台,但它们各有优势和用途。掌握这些结构之间的关键差异可以帮助您决定哪种最适合您的任务。

以下是树莓派和 Arduino 之间的一些显着区别

  • 计算能力:树莓派是一款功能齐全的计算机,可用于各种项目,从媒体中心等简单项目到家庭自动化设备等更复杂的项目。另一方面,Arduino 是一个微控制器,一个用于控制外部硬件和读取传感器的更简单的设备。Arduino 的功能不如树莓派强大,但更简单,学习曲线更小。它运行各种操作系统...
  • GPIO 引脚:树莓派和 Arduino 都有 GPIO 引脚,可用于将外部硬件(如传感器和执行器)连接到设备。树莓派有 40 个 GPIO 引脚,而 Arduino 的 GPIO 引脚数量因型号而异。
  • 编程:树莓派运行各种编程语言,包括 Python,由于其简单性和易用性,Python 是许多树莓派项目的首选语言。Arduino 使用基于 C/C++ 的编程语言,并且其编程环境比树莓派更简单。
  • 成本:树莓派比 Arduino 贵,最新型号的价格约为 35 美元。Arduino 价格便宜,有些型号起价约为 10 美元。
  • 社区:树莓派和 Arduino 都拥有庞大而活跃的用户和开发者社区,他们提供项目构建的支持、资源和教程。然而,由于树莓派作为通用计算机的普及性,树莓派社区通常更大、更活跃。

设置树莓派

设置树莓派是一个简单的过程,任何人都可以完成,无论他们的技术背景或经验如何。在本文中,我们将提供一个分步指南,帮助您设置树莓派并开始您的第一个项目。

所需材料:-

  • 树莓派
  • MicroSD 卡(最小 8GB)
  • 电源
  • HDMI 线
  • 键盘。
  • 鼠标。
  • Monitor

步骤 1:下载操作系统。

设置树莓派的第一步是下载您想要的操作系统(OS)。树莓派支持多种操作系统,包括 Raspbian、Ubuntu 等。

本文将使用 Raspbian,这是树莓派可靠的操作系统。您可以从可靠的树莓派网站获取最新版本的 Raspbian。

步骤 2:将操作系统写入 MicroSD 卡。

下载操作系统后,将其写入 MicroSD 卡。您可以使用 Etcher 等工具来完成此操作,Etcher 是一款免费开源工具,可轻松将操作系统写入 SD 卡。请仔细遵循 Etcher 的说明将操作系统写入 MicroSD 卡。

步骤 3:使用 MicroSD 卡启动树莓派。

将操作系统写入 MicroSD 卡后,应立即将其插入树莓派。MicroSD 卡插槽位于树莓派底部,您需要将卡推入插槽直到听到咔哒声。

步骤 4:连接外围设备

接下来,您需要将外围设备连接到树莓派。这包括电源、HDMI 线、键盘、鼠标和显示器。将 HDMI 线连接到树莓派上的 HDMI 端口和显示器,并将键盘和鼠标连接到树莓派上的 USB 端口。

步骤 5:打开树莓派电源

最后,您需要通过插入电源来打开树莓派电源。树莓派启动后,您应该会在显示器上看到 Raspbian 桌面。

步骤 6:配置树莓派

最后一步是根据您的偏好配置树莓派。这包括设置 Wi-Fi、键盘布局和其他设置。您可以通过单击桌面左上角的树莓派图标,选择“首选项”,然后选择“树莓派配置”来访问配置设置。

树莓派所需硬件

设置树莓派所需的硬件是整个过程的关键组成部分,它将决定您的树莓派项目的能力。

  • 树莓派:首先,您需要选择要使用的树莓派型号。有几种不同的型号可供选择,包括 Raspberry Pi 3 Model B、Raspberry Pi 4 Model B 等,每种型号都有不同的规格和功能。
  • MicroSD 卡:接下来,您将需要一张 MicroSD 卡作为树莓派的主要存储。树莓派使用 MicroSD 卡来存储其操作系统以及您想要保存的任何文件或数据。建议使用容量至少为 8GB 的 MicroSD 卡,但最好使用至少 16GB 存储空间的卡,以确保您有足够的空间用于项目。
  • 电源:要为树莓派供电,您需要一个 5V 直流电源,其电流至少为 2.5A。这将确保树莓派运行稳定并有足够的功率来执行您需要的任务。
  • HDMI 线:您需要一根 HDMI 线将树莓派连接到显示器或电视。这将使您能够在屏幕上看到树莓派的输出,并使用键盘和鼠标进行交互。
  • 键盘和鼠标:您需要一个 USB 键盘和鼠标来与树莓派进行交互。
  • 显示器:还需要一个带 HDMI 输入的显示器或电视来显示树莓派的输出。

可选硬件

此外,根据您的具体项目要求,您可能还需要以下硬件:

  • 面包板:如果您计划使用树莓派构建电子电路,则可能需要一块面包板来连接组件。
  • 跳线:跳线用于在面包板上的组件和树莓派之间建立连接。
  • 传感器:根据您的项目,您可能需要各种传感器,例如温度传感器、光传感器等。
  • 执行器:根据您的项目,您可能需要各种执行器,例如电机、继电器等。

设置树莓派软件的过程

在树莓派上设置软件涉及几个步骤,包括下载操作系统映像,将映像写入 MicroSD 卡,以及配置树莓派。

以下是该过程的总体概述:

  • 树莓派 Imager 下载页面
    树莓派 Imager 是树莓派基金会提供的一款软件工具,可轻松地在树莓派设备上设置操作系统。Imager 可在树莓派下载页面上下载,您可以选择与您的计算机操作系统兼容的版本。
    Building Physical Projects with Python on the Raspberry Pi
  • 树莓派 Imager 初始状态
    下载树莓派 Imager 后,在您的计算机上启动该应用程序。Imager 将提供两个选项——“选择操作系统”和“选择 SD 卡”。首先选择“选择操作系统”选项。
    Building Physical Projects with Python on the Raspberry Pi
    根据您计算机的安全设置,Windows 可能会显示警告消息,指出树莓派 Imager 是一个未经识别的应用程序,可能有害。在这种情况下,您可以通过单击“更多信息”,然后选择“运行”来运行 Imager。
    Building Physical Projects with Python on the Raspberry Pi
  • 树莓派 Imager 选择 SD 卡
    Imager 随后将显示可安装在您的树莓派设备上的可用操作系统列表。选择 Raspbian 操作系统,然后单击“选择 SD 卡”选项。这将提示您选择将用作树莓派设备主要存储的 MicroSD 卡。
    Building Physical Projects with Python on the Raspberry Pi
  • 树莓派 Imager 写入
    选择操作系统和 SD 卡后,单击“写入”按钮开始格式化 SD 卡并安装操作系统。此过程可能需要几分钟,但完成后,您将看到一条消息,表明操作系统已成功安装在 SD 卡上。
    Building Physical Projects with Python on the Raspberry Pi
  • 树莓派 Imager 完成
    最后,安全地从计算机中弹出 SD 卡,然后您就可以将其连接到树莓派设备了。我们现在可以成功启动您的树莓派并开始使用它了。
    Building Physical Projects with Python on the Raspberry Pi

从 NOOBS 安装 Raspbian

树莓派基金会还提供了树莓派 Imager 的替代方案,称为 NOOBS(New Out Of Box Software)。NOOBS 是一个软件包,包含多个操作系统,包括 Raspbian,可以安装在树莓派上。

Building Physical Projects with Python on the Raspberry Pi

要使用 NOOBS,您首先需要从树莓派网站下载 NOOBS 包。该包包含一个 ZIP 文件,其中包含操作系统映像和 NOOBS 软件。

接下来,您需要将 ZIP 文件的内容解压缩到 MicroSD 卡。该卡应至少有 8GB 的存储空间,尽管建议使用 16GB 或更多容量的卡。

Building Physical Projects with Python on the Raspberry Pi

将 ZIP 文件内容复制到 MicroSD 卡后,将其插入树莓派,并连接到显示器、键盘和鼠标。打开树莓派电源,您应该会看到 NOOBS 界面。

Building Physical Projects with Python on the Raspberry Pi

在 NOOBS 界面中,您可以选择 Raspbian 作为您要安装的操作系统,然后单击“安装”按钮开始安装过程。虽然安装过程需要一段时间,但完成后,您的树莓派将安装 Raspbian,您可以开始使用它了。

设置向导

Raspbian 有一个设置过程,可以帮助您配置密码、设置区域设置、选择无线网络以及在首次启动时更改操作系统。继续按照指示进行操作。

完成这些步骤后,重新启动操作系统,您就可以在树莓派上开始 Python 编程了。

在树莓派上运行 Python

要在树莓派上启动 Python,请打开终端并在命令行中键入“python”。这将启动 Python 交互式 shell,您可以在其中输入命令并实时查看结果。您可以在保存为 Python 脚本之前在此模式下测试和调试代码。

您还可以使用 Nano 或 IDLE 等文本编辑器编写并保存代码,并将其作为独立程序运行。为此,您需要创建一个带有代码的 .py 文件并将其保存到您的树莓派。

我们可以通过三种方式在树莓派上运行 Python:

  • 使用 Mu 编辑器
  • 通过 SSH 远程编辑
  • 使用 Mu 编辑器创建 python-projects 目录

使用 Mu 编辑器

MU 编辑器是树莓派上一个简单、适合初学者的代码编辑器。然而,与 PyCharm 或 Visual Studio Code 等其他代码编辑器相比,它的功能较少。

要在树莓派上使用 MU 编辑器运行 Python,您首先需要将 MU 编辑器安装到您的树莓派上。您可以通过在终端中运行以下命令来完成此操作:

安装 MU 编辑器后,您可以通过在终端中运行以下命令来启动该应用程序:

MU 编辑器将打开,您将看到一个空白的编辑器窗口。您可以在此窗口中开始编写 Python 代码。这是一个简单的示例,可以帮助您入门

要运行您的 Python 代码,您可以按 F5 键或单击工具栏上的“运行”按钮。代码的输出将显示在终端窗口中。

一旦您在树莓派上安装了 MU 编辑器,您就可以使用它来运行 Python 代码。为此,请按照以下步骤操作:

  • 单击桌面快捷方式或导航到您安装和运行应用程序的位置来打开 MU 编辑器。
    Building Physical Projects with Python on the Raspberry Pi
  • 通过单击“文件”菜单并选择“新建”来创建一个新文件。
  • 在编辑器中编写您的 Python 代码。请务必使用正确的缩进,这在 Python 中非常重要。
  • 通过单击“文件”菜单并选择“保存”来保存文件。为文件指定一个描述性名称,例如“led_blink.py”或“temperature_sensor.py”。
  • 通过单击“运行”菜单并选择“运行模块”来运行代码。或者,您可以使用键盘快捷键“F5”。

代码的输出将显示在编辑器底部的 Python shell 中。如果您的代码中有任何错误,它们也将在此处显示。

如果您需要更改代码,请在编辑器中进行更改,保存文件,然后重新运行代码。

通过 SSH 远程编辑

可以通过安全外壳(SSH)协议对树莓派进行编程和远程控制。这使您无需物理连接键盘、鼠标和显示器即可运行和调试代码、访问文件以及控制树莓派。

Building Physical Projects with Python on the Raspberry Pi

以下是通过 SSH 在树莓派上远程执行 Python 的方法:

在树莓派上授权 SSH:在使用 SSH 连接到树莓派之前,必须在设备上启用 SSH。您可以通过打开树莓派配置工具并导航到“接口”选项卡来启用 SSH。然后,您可以从那里启用 SSH 选项。

这将显示有关树莓派上网络接口的信息,包括 eth0 或 wlan0 接口的 IP 地址。查找 inet 地址,即树莓派的 IP 地址。

通过 SSH 连接到树莓派:您可以使用 Windows 上的 PuTTY 或 macOS 和 Linux 上的 Terminal 通过 SSH 连接到树莓派。要连接,您需要知道树莓派的 IP 地址。您可以通过检查路由器的网络设置或使用 Advanced IP Scanner 等工具来查找 IP 地址。

要连接到树莓派,请在终端或命令提示符中输入以下命令:

替换为您的树莓派的 IP 地址。树莓派的默认用户名为 pi,因此系统会提示您输入该用户的密码。默认密码为 raspberry。

登录树莓派:一旦您获得了树莓派的 IP 地址,就可以使用 PuTTY 或 Terminal 通过 SSH 连接到该设备。您可能需要输入此最终用户的密码,因为树莓派的默认用户名为 pi。Raspberry 是预设密码。

在树莓派上运行 Python:登录树莓派后,您可以使用 Python 解释器运行代码。可以通过在终端中输入命令 python3 并按 Enter 键来启动 Python 解释器。然后可以通过按 Enter 键输入并运行 Python 代码。您可以输入 exit() 或按 Ctrl + D 退出 Python 解释器。

要启动 Python 解释器,请在终端中输入以下命令:

现在您可以在终端中运行 Python 代码,包括执行。

使用 Mu 编辑器创建 python-projects 目录

要使用 Mu Editor 创建 python-projects 目录,请按照以下步骤操作:

  • 打开 Mu Editor,然后单击“文件”菜单。
  • 从下拉菜单中选择“新建”,然后选择“目录”。
  • 将目录命名为“python-projects”。
  • 通过单击“文件”菜单并选择“打开”来导航到新创建的目录。
  • 从文件浏览器中选择“python-projects”目录。

现在您应该会在 Mu Editor 的文件浏览器中看到“python-projects”目录。您现在可以将 Python 项目保存在此目录中。

保持项目井井有条并放在专用目录中很重要。这样做将使管理项目和与他人共享代码更加容易。

通过 SSH 创建 python-projects 目录

要在 SSH 上为树莓派创建 python-projects 目录,您需要使用终端应用程序,例如 Mac 上的 Terminal 或 Windows 上的 Putty。首先,您需要使用 IP 地址、默认用户名(pi)和密码(raspberry)通过 SSH 连接到您的树莓派。

连接后,您可以使用以下命令创建 python-projects 目录:

在这种情况下,mkdir 命令会创建一个具有指定名称“python-projects”的目录。路径开头的 ~/ 指定当前用户的家目录,在这种情况下为 pi。

您可以使用 ls 命令(该命令列出目录的内容)来验证目录是否已创建:

由于我们刚刚创建了目录,还没有添加任何文件,因此这应该会返回一个空目录。

您现在可以导航到 python-projects 目录并使用 cd 命令开始创建您的 Python 项目:

与物理组件交互

要与电子元件、GPIO 引脚、按钮、LED、蜂鸣器和运动传感器等物理组件进行交互,您需要使用树莓派的 GPIO(通用输入/输出)引脚。GPIO 引脚是数字输入和输出,允许树莓派与物理世界交互。

LED:要控制 LED,您可以将正极连接到 GPIO 引脚,将负极连接到接地引脚。然后,您可以编写 Python 脚本来控制 LED 的状态,将其打开和关闭。

LED 有不同的形状和尺寸,可以是直插式或表面贴装式。直插式 LED 有两根引脚插入印刷电路板(PCB)上的孔中,而表面贴装 LED 直接安装在 PCB 上。

以下是您必须遵循的连接此电路的步骤:-

  • 使用母对公跳线,将树莓派的 GND 引脚连接到面包板的负极轨。
  • 将 LED 插入相互靠近但不在同一行的面包板孔中。
  • 将 LED 的较长正极插入右侧的孔中。
  • 将 LED 的较短负极插入左侧的孔中。
  • 将 330 欧姆电阻的一端插入 LED 负极所在同一面包板行的孔中。
  • 将电阻的另一端插入面包板的负极轨。
  • 使用母对公跳线将树莓派的 GPIO4 连接到 LED 正极所在同一面包板行的孔中。
Building Physical Projects with Python on the Raspberry Pi

您可以使用下图检查接线情况

如果接线看起来正确,您就可以开始编写 Python 代码让 LED 发光了。为此电路在 python-initiatives 目录中创建一个报告开始。将此文件命名为 led.py

为了使 LED 闪烁,请在此代码中创建 LED 类的实例并调用其 blink() 函数。在系统终止之前,LED 将每秒在开和关之间交替。blink() 方法的默认超时时间为一秒。

从 gpiozero 模块开始初始化 LED,并从 signal 模块暂停:

创建一个名为 led 的单独 LED 实例。选择 GPIO 引脚 4

对 led 使用 blink() 方法

之后添加一个 pause() 调用,以确保程序不会关闭

您的整个代码应该看起来像这样:

要查看 LED 闪烁,请保存并执行文件。

LED 现在应该每秒闪烁一次。当您完成观看 Python 代码运行时,请按 Ctrl+C 停止程序或在 Mu 中停止。

您现在了解了如何使用树莓派上的 Python 来操作 LED。在下一个电路中,Python 将用于为树莓派提供音频。

GPIO 传感器:-

GPIO 引脚主要有两种类型:输入和输出。输入引脚读取来自传感器和其他设备的数字信号,而输出引脚用于发送数字信号以控制 LED、电机和其他输出设备。

树莓派有 40 个 GPIO 引脚,编号从 1 到 40。这些引脚分为两行,每行 20 个。引脚根据它们在板上的物理位置进行标记,并且可以通过软件配置其功能。

Building Physical Projects with Python on the Raspberry Pi

树莓派上有三种类型的 GPIO 引脚:

  • 标准 GPIO 引脚:这些是通用引脚,可以配置为输入或输出。它们标记为 GPIOX,其中 X 是引脚号。
  • 电源引脚:这些引脚为连接到树莓派的组件提供电源。3.3V 和 5V 引脚提供这些电压的电源,而 GND 是接地引脚。
  • 特殊引脚:这些引脚具有特殊功能,例如 SPI、I2C 和 UART 引脚,用于使用这些协议与其他设备进行通信。这些引脚具有专用功能,不能用作标准 GPIO。

蜂鸣器:如果您想打开或关闭蜂鸣器或播放不同的音调,您可以将其连接到 GPIO 引脚,接地,然后使用 Python 脚本进行控制。

蜂鸣器是高度数字化的,并发出声音。它通常具有压电材料,当施加电信号时会振动,产生声波。蜂鸣器通常用于数字设备以提供听觉反馈,例如指示按下了某个开关或发生了错误。

通常,您会将蜂鸣器连接到树莓派上的 GPIO 引脚,并使用 Python 程序创建电信号以触发适当的声音。所需的具体代码将取决于蜂鸣器的类型和预期的声音。

  • 应将蜂鸣器放置在面包板上,并记下其正极的位置。
  • 使用母对公跳线将树莓派的 GND 引脚连接到蜂鸣器负极所在同一面包板行的孔中。
  • 使用母对公跳线将树莓派的 GPIO4 引脚连接到蜂鸣器正极所在同一面包板行的孔中。
Building Physical Projects with Python on the Raspberry Pi

将您的接线与下面的插图进行比较

现在接线已配置好,让我们立即开始编码。为这个电路在 Python 作业列表中创建文档。将此文件重命名为 buzzer.py

为了使蜂鸣器发出蜂鸣声,请在此代码中设置 Buzzer 类的实例并使用它。beep() 方法。on_time 和 off_time 是前两个参数。beep() 函数。这些设置决定了蜂鸣器在连接到流程值时应持续发声和停止发声的时间。两者的默认价格均为一秒。

从 signal 模块的 pause 命令开始,然后从 gpiozero 模块添加 Buzzer

随后,创建一个名为 buzzer 的蜂鸣器实例。选择 GPIO 引脚 4

调用 buzzer 上的 .beep() 方法。在 on-time 和 off-time 字段中都放入 0.5。这会导致蜂鸣器每半秒发出一次蜂鸣声

在末尾添加一个 pause() 调用,以确保应用程序不会终止

您的整个程序必须如下所示:-

保持文档打开并运行,以听到蜂鸣器每半秒发出一次蜂鸣声。

蜂鸣器将持续响铃,直到您使用 Ctrl+C 取消程序或在 Mu 中停止它。

注意:请注意:如果您使用的是 Mu,蜂鸣声即使在您关闭系统后仍会持续。断开 GND 连接以中断电路并停止声音。

如果蜂鸣声持续存在,您应该在重新连接 GND 电缆时启动 Mu。

太棒了!到目前为止,您已经学会了如何在树莓派上使用 Python 控制三种不同类型的电子元件。让我们在下一个电路中研究一个更复杂的因素。

跳线

跳线是电子电路中用于在印刷电路板(PCB)或面包板上的两点之间创建临时或永久连接的小型可移除连接器。它们通常用于配置或定制电子设备、启用或禁用功能,或更改电路的行为。

它们有三种类型:

  • 公对公。
  • 母对公。
  • 母对母。

按钮

按钮,也称为按下开关或瞬时开关,是用于临时控制电气电路的电子开关。当按下按钮时,它会在两个导电板或触点之间创建临时电气连接,允许电流流过电路。

按钮有各种形状、尺寸和配置。一些常见的配置通常包括常开(NO)和常闭(NC)按钮。NO 按钮默认处于打开状态,按下按钮会闭合电路,允许电流流过。NC 按钮默认处于闭合状态,按下按钮会断开电路,中断电流。

要使用它,您必须首先将按钮连接到树莓派上的任何 GPIO 引脚。在大多数情况下,一个引脚连接到按钮的一侧,另一个引脚连接到另一侧。当按下按钮时,电路闭合,信号发送到 GPIO 引脚。

如果您使用 Mu,请按照以下步骤创建报告:

  • 单击“新建”菜单项。
  • 单击“保存”。
  • 转到 /home/pi 目录下的 Python Initiatives。
  • 将文件命名为 button.py 并保存。
Building Physical Projects with Python on the Raspberry Pi

创建文档后,您就可以开始编程了。首先应从 gpiozero 包中添加 Button 类。此外,还需要从 signal 包导入 pause。

可以使用 Python 中的 GPIO 库来确定按钮的当前状态。首先必须使用 GPIO.setup() 函数将 GPIO 引脚设置为输入。之后,您可以使用 GPIO.input() 方法读取引脚的状态。如果状态为 GPIO.HIGH,则表示按钮被按下;如果状态为 GPIO.LOW,则表示按钮未被按下。

将引脚编号作为参数传递,并初始化 Button 类的对象。在这种情况下,您应该使用 GPIO4 引脚,以便您可以将其作为参数 4 传递。

接下来,创建将用于特定按钮事件的函数,例如可以通过按钮访问的函数:

Button 类的事件属性是 when_pressed、when_held 和 when_released。这些属性可以连接到特定的事件。

when_held 属性需要一些解释,而 when_pressed 和 when_released 属性则不言自明。如果一个函数与 when_held 属性关联,那么只有当按钮被按下并按住足够长的时间时,它才会被激活。

通过 Button 实例的 hold_time 属性。when_held 的保持时间由 .hold_time 设置。hold_time 的默认值为一秒半。在开发 Button 实例时,您可以通过提供浮点值来覆盖此设置。

这可以使 Button 实例在按下并按住按钮后延迟 2.5 秒执行 button_held() 函数。

现在您已经了解了 Buttons 上的特殊事件属性,请将它们分别设置为您之前描述的相应功能:

太棒了!您的按钮安装已完成。为了让系统继续监听指定的操作,必须调用 pause()。在文件末尾调用 pause() 是最佳选择。

在完成接线和编码后,您就可以测试您的第一个电路了。在 python-tasks 目录中运行此程序。

如果您使用的是 Mu,请确保首先保存文件,然后单击“运行”以启动程序。

该程序现在正在运行并监听事件。当您按下按钮时,您应该会在控制台中看到以下内容:

按下并按住按钮至少一秒钟后,您应该会看到以下输出。

最后,当您释放按钮时,您应该会看到以下内容:

现在!我们已经使用 Python 强调并编程了您在树莓派上的第一个电路。

您需要手动停止应用程序,因为您在代码中使用了 pause()。如果您在 Mu 中运行此程序,则可以通过单击停止按钮来停止。如果您从命令行运行此程序,则可以使用 Ctrl+C 停止系统。

运动传感器:将运动传感器连接到树莓派的 GPIO 引脚,您可以分析传感器的输出来创建一个 Python 脚本,根据其数据执行操作。

Building Physical Projects with Python on the Raspberry Pi

借助蜂鸣器、PIR 运动传感器和一些 Python 脚本,树莓派可以用来构建一个运动激活的警报设备。PIR 运动传感器通过检测运动物体和人的红外辐射来感应运动。检测到运动时,蜂鸣器会发出警报声。

Building Physical Projects with Python on the Raspberry Pi

接线

完成接线的步骤如下:-

  • 使用母对公跳线将树莓派的 5V 和 GND 引脚连接到面包板侧面的正负极轨。
  • 使用母对公跳线将树莓派的 GPIO14 连接到面包板上的 LED。
  • 使用 330 欧姆电阻将面包板的负极轨连接到 LED 的负极。
  • 在面包板上放置一个蜂鸣器,并使用母对公跳线将蜂鸣器连接到树莓派的 GPIO15 引脚。
  • 使用公对公跳线将蜂鸣器的负极连接到面包板的后轨。
  • 使用母对公跳线将传感器的 VCC 引脚连接到面包板的电源轨。
  • 在传感器的 OUT 引脚和树莓派的 GPIO4 引脚之间连接一根母对母跳线。
  • 使用母对公跳线将传感器的 GND 引脚连接到面包板的负极轨。
Building Physical Projects with Python on the Raspberry Pi

源代码解释

与往常一样,为这项工作在 Python 项目列表中添加一个报告。在此任务中将此文件命名为 motion detector.py

首先,您必须导入 CSV 模块以在检测到运动时维护时间戳。此外,导入 pathlib 模块的 Path,以便您可以引用您的 CSV 文件。

然后,从 datetime 模块导入 date 和 time 以生成运动事件的时间戳。

随后,从 signal 模块导入 pause,以及从 gpiozero 导入所需的元素类。

借助导入的工具,您可以设置您将使用的以下电子组件。为 MotionSensor、Buzzer 和 LED 类构建时序。将 PIN 作为传递参数输入。

随后,标记将存储每次检测到运动的时间戳的 CSV 文件区域。它将被称为 detected_motion.csv。创建一个字典来存储时间戳值,用于 CSV 的写入方式:-

应使用一种方法将时间戳信息保存到 CSV 文件中。创建文件时会提供标题行。

start_motion() 方法的描述此特性可以通过各种行为来体现。

  • 启动 LED 的半秒间隔闪烁(开启或关闭)。
  • 蜂鸣器发声以示信号。
  • movement 字典应继续使用 start_time 时间戳。

通过上传名称到 print(),您可以观察应用程序运行时发生的动作。

随后,定义一个 end_motion() 属性来实现以下行为:

  • 关闭蜂鸣器和 LED。
  • 保存结束时间的戳。
  • 要将运动记录保存到 CSV 文件,请运行 write_to_csv()。
  • 重置运动字典。

在执行任何替换代码之前,请检查是否存在 movement["start_time"] 值。仅当捕获到开始时间戳时才将数据记录到 CSV。

为了确保排除任何初始运动,包括调用 .wait_for_no_motion()。

对于 MotionSensor 示例,将 .when_motion 和 .when_no_motion 属性设置如下:

要测试您新设计的运动探测器警报,请保存文件并执行它。

输出

Readying sensor...
Sensor ready

如果您将手挥动到运动探测器前面,蜂鸣器应开始响,LED 应闪烁。如果您停止移动几秒钟,警报应会消失。您应该会在控制台中看到以下内容:

输出

Readying sensor...
Sensor ready
motion detected
motion ended
motion detected
motion ended
...

您可以通过在 Mu 中使用停止命令或 Ctrl+C 来进步并停止应用程序。

查看生成的 CSV 报告以获取更多信息:-

输出

pi@raspberrypi:~/python-projects $ cat detected_motion.csv

start_time,end_time
2020-04-21 10:53:07.052609,2020-04-21 10:53:13.966061
2020-04-21 10:56:56.477952,2020-04-21 10:57:03.490855
2020-04-21 10:57:04.693970,2020-04-21 10:57:12.007095

正如您所见,CSV 报告已收到运动开始和结束时间的时间戳。

结论

树莓派是一个不断改进的绝佳计算工具。其广泛的功能使其成为物理计算的首选硬件。

本教程已向您展示如何:-

  • 在树莓派上安装 Python 软件并运行它。
  • 检查传感器数据。
  • 向电子设备输出。
  • 通过使用 Python 创建一个出色的树莓派项目。