Raspberry Pi操作系统
介绍Raspberry Pi操作系统的使用。
简介
Raspberry Pi操作系统是一款基于Debian的免费操作系统,专为Raspberry Pi硬件优化而成。该系统支持超过35,000个Debian软件包,适用于大多数Raspberry Pi使用场景,是我们推荐的首选操作系统。
由于源自Debian,Raspberry Pi OS遵循其分阶段发布的版本周期,大约每两年推出一个新版本。当前最新版本基于Debian Trixie构建,而上一版本则基于Debian Bookworm。
获取Raspberry Pi操作系统
Raspberry Pi操作系统可通过官方工具Raspberry Pi Imager获取,也可在Raspberry Pi官网的中下载系统镜像。
我们提供如下64位和32位的操作系统:
Raspberry Pi OS with desktop(带桌面版):
Raspberry Pi Imager中的默认选项,内置Chromium浏览器、Firefox浏览器、VLC媒体播放器和Thonny Python环境等常用应用。Raspberry Pi OS with desktop and recommended software(完整版):在
Raspberry Pi Imager中标注为 “Raspberry Pi OS Full”,除桌面版应用外,还包含LibreOffice办公套件、KiCad、Scratch编程环境及其他多种软件。Raspberry Pi OS Lite(精简版):不包含图形桌面,适用于无界面服务器等场景,推荐在Raspberry Pi 1、Raspberry Pi 2 和 Raspberry Pi Zero设备上使用。
若您正在使用旧版本的Raspberry Pi操作系统并希望升级至新主版本,建议重新烧录新版本系统镜像。有关更多说明,请参阅操作系统主版本升级部分。
更新软件
请始终将Raspberry Pi上运行的软件更新到最新版本,这有助于防范安全漏洞并及时获得功能修复,保障设备安全稳定运行。
使用APT管理软件包
在Raspberry Pi操作系统中,推荐使用高级包工具(APT)来管理软件安装、更新和卸载。您可直接通过终端中的apt命令行工具来调用APT的全部功能。
安装更新
apt将软件源列表存储在/etc/apt/sources.list文件中。在安装软件前,请运行如下命令,根据/etc/apt/sources.list文件更新本地的软件包列表。
sudo apt update
- 运行以下命令将已安装的所有软件包升级至最新版本:
sudo apt full-upgrade
提示
与Debian系统不同,Raspberry Pi操作系统处于持续开发状态,软件包依赖关系有时会发生变化,所以如果需要安装更新,建议使用sudo apt full-upgrade命令。
请定期运行这些命令以保持系统软件最新。通过apt更新Raspberry Pi操作系统时,其Linux内核和固件也会同步更新。
当Raspberry Pi发布新的主版本操作系统时,上述命令不会将您的系统升级至该新版本。如需升级到新的主版本,请遵循我们的操作系统升级指南。
搜索软件
如果需要在软件仓库中搜索软件包,请通过apt-cache search命令传递搜索关键词:
apt-cache search <keyword>
例如,以下是通过关键词 "raspi" 进行搜索的示例:
apt-cache search raspi
搜索结果显示如下,搜索结果返回了多个名称或描述中包含该关键词(raspi)的软件包。
raspi3-firmware - Raspberry Pi 2 and 3 GPU firmware and bootloaders libcamera-apps - libcamera-appslibcamera-apps-lite - libcamera-apps-litepython-picamera - Pure Python interface to the Raspberry Pi's camera module.python-picamera-docs - Documentation for the Python interface to the RPi's camera module.python3-picamera - Pure Python interface to the Raspberry Pi's camera module.raspi-config - Raspberry Pi configuration toolraspi-gpio - Dump the state of the BCM270x GPIOsraspi-gpio-dbgsym - debug symbols for raspi-gpioraspinfo - Dump information about the Pirc-gui - raspi-config GUIraspi-copies-and-fills - ARM-accelerated versions of selected functions from string.hraspi-copies-and-fills-dbgsym - debug symbols for raspi-copies-and-fills
运行如下命令可查看软件包的详细信息:
apt-cache show <package-name>
例如,要查看"raspi-config"软件包的详细信息,可使用以下查询命令:
apt-cache show raspi-config
返回的详细信息包含:
Package: raspi-configVersion: 20210212Architecture: allInstalled-Size: 121Depends: whiptail, parted, lua5.1, alsa-utils, psmisc, initramfs-toolsRecommends: triggerhappy, iwPriority: optionalSection: utilsFilename: pool/main/r/raspi-config/raspi-config_20210212_all.debSize: 27976SHA256: 772d4fd3c6d8c9da47ac56012b74e7828b53c8521ff1c47266bb38ec71750c10SHA1: 08254c976a8260bde914c2df72f92ffb9317fef6MD5sum: 80aaac13be6a9b455c822edb91cf8ea2Description: Raspberry Pi configuration toolA simple configuration tool for common Raspberry Pi administrative tasksDescription-md5: 19630c04463bfe7193152448b53d85a0
通过此命令可验证软件包的维护者、版本和大小是否符合预期。
安装软件包
若需要在Raspberry Pi上安装软件包,可运行如下命令来安装,其中“package-name”为软件包名。
sudo apt install <package-name>
执行命令后,apt将显示该软件包所需的磁盘空间大小。输入Y并按Enter键确认安装,若需跳过确认步骤,可在上述命令的末端添加-y参数(sudo apt install <package-name> -y)。
卸载软件包
若需要在Raspberry Pi上卸载软件包,可运行如下命令来卸载,其中“package-name”为软件包名。
sudo apt remove <package-name>
提示
若要彻底清除软件包的所有痕迹(包括配置文件),请将使用sudo apt purge <package-name>命令。
执行卸载操作后,apt将显示可释放的磁盘空间大小,输入Y并按Enter键确认卸载。若需跳过确认步骤,可在上述命令的末端添加-y参数(sudo apt remove <package-name> -y)。
管理apt磁盘空间
运行sudo apt full-upgrade前,系统会显示完成升级需要下载的数据量及所需的磁盘空间。如需检查当前可用磁盘空间是否充足,请运行以下命令:
df -h
apt会将下载的软件包(.deb)文件存储在/var/cache/apt/archives目录中。安装过程中,apt会先下载这些软件包,然后将文件从包中复制到系统指定位置。根据已安装的软件情况,这些缓存文件可能会占用大量磁盘空间。如需清理残留的软件包文件,请运行以下命令:
sudo apt clean
升级操作系统至新的主版本
警告
在进行主要版本升级前,请务必备份重要数据。
若要将Raspberry Pi操作系统升级至新的主版本,请按以下步骤操作:
准备一张新的SD卡,并且将新版本的镜像烧录至SD卡中。
使用USB读卡器或网络存储将现有系统中的文件及配置迁移至新SD卡中。
将新SD卡插入Raspberry Pi卡槽并启动设备。
升级固件
警告
在进行主要版本升级前,请务必备份重要数据。 预发布版本的软件不保证稳定运行。除非Raspberry Pi工程师明确推荐,否则请勿在任何系统上运行rpi-update命令。此操作可能导致系统不稳定或崩溃,严禁将其作为常规升级流程的一部分。
如需将Raspberry Pi固件升级至最新版本,请使用rpi-update工具。该工具会执行以下操作:
下载最新预发布版本的Linux内核及其匹配模块、设备树文件和最新版VideoCore固件。
将上述文件安装至当前Raspberry Pi操作系统中。
rpi-update的所有源数据均来自rpi-firmware代码库,该库包含官方固件库的数据子集。
请以root权限运行rpi-update启动更新,完成更新后请重启Raspberry Pi,使所有更改生效:
sudo rpi-update
sudo reboot
提示
更新Raspberry Pi固件的详细操作请参考白皮书文件。
将固件回退至上一稳定版本
若在升级至最新版本固件后遇到问题,可通过以下命令回退至上一个稳定版本:
sudo apt update
sudo apt install --reinstall raspi-firmware
将Lite版Raspberry Pi操作系统转换为桌面版Raspberry Pi操作系统
您可以通过apt安装相关软件包,将Lite精简版操作系统升级为桌面版操作系统。
- 安装合适的桌面版操作系统。
- 如需安装 Wayland(推荐)系统,请运行:
sudo apt install rpd-wayland-core
- 如需安装X窗口系统,请运行:
sudo apt install rpd-x-core
- 安装Raspberry Pi主题与控制中心。
sudo apt install rpd-theme
sudo apt install rpd-preferences
- 安装应用套件。
sudo apt install rpd-applications
sudo apt install rpd-utilities
sudo apt install rpd-developer
sudo apt install rpd-graphics
- 为所选窗口系统安装扩展功能(如截图、远程桌面等)
- Wayland用户,请运行:
sudo apt install rpd-wayland-extras
- X窗口系统用户,请运行:
sudo apt install rpd-x-extras
- 重启Raspberry Pi,进入桌面环境。
sudo reboot
至此,您的系统已包含桌面版Raspberry Pi操作系统的全部组件。
- 如需恢复Lite版本Raspberry Pi操作系统,您可直接卸载已安装的桌面组件。若希望保留桌面软件包但获得与Lite版相同的使用体验,可通过
raspi-config工具将Raspberry Pi设置为默认启动到命令行界面。 - 您也可通过依次访问Raspberry Pi主菜单中的"Preferences" > "Recommended Software",安装完整版Raspberry Pi操作系统包含的推荐应用程序。
播放音频和视频
Raspberry Pi操作系统中已预装VLC媒体播放器,您可使用VLC播放视频与音频文件,该播放器在系统中启用了硬件加速功能,并支持多种主流音视频文件格式。
VLC媒体播放器
VLC GUI
在Raspberry Pi桌面环境中播放音视频文件时,只需在文件管理器中双击目标文件,系统便会自动启动VLC进行播放。您也可通过以下方式操作:从“Sound & Video”菜单启动VLC媒体播放器,再单击顶部“Media”菜单并选择“Open File...”,在定位至目标文件即可。
默认情况下,系统会通过HDMI接口向显示器传输音频。若需切换至耳机接口或USB音箱等音频输出设备,只需右键单击系统托盘区的扬声器图标,即可在弹出菜单中切换输出接口。
VLC CLI
您也可通过命令行启动VLC播放器,以下示例使用《Big Buck Bunny》短片片段演示操作步骤:
- 下载示例视频。
wget --trust-server-names http://rpltd.co/big-buck-bunny
- 运行如下命令,在VLC中播放视频短片。
vlc big-buck-bunny-1080p.mp4
- 若需在文件播放结束后自动关闭VLC图形界面,请添加
play-and-exit参数:
vlc --play-and-exit big-buck-bunny-1080p.mp4
- 若需启用全屏模式播放视频(在特定场景下可提升播放流畅度),请添加
fullscreen参数:
vlc --play-and-exit --fullscreen big-buck-bunny-1080p.mp4
使用cvlc命令可实现无图形界面的媒体播放
若在命令中使用 cvlc替代 vlc,则不会显示 VLC 图形界面:
cvlc --play-and-exit big-buck-bunny-1080p.mp4
在Raspberry Pi OS Lite上播放音视频
与完整版Raspberry Pi操作系统不同,Raspberry Pi OS Lite未预装VLC播放器。若需在无桌面环境下通过VLC播放音视频,请先安装以下基础组件:
sudo apt install --no-install-recommends vlc-bin vlc-plugin-base
以下示例,通过启动音频短片演示操作流程:
- 运行如下命令,下载音频短片。
wget --trust-server-names http://rpltd.co/startup-music
- 运行如下命令,在VLC中播放音频短片。
cvlc --play-and-exit computer-startup-music.mp3
指定音频输出设备
若需强制使用特定音频设备,添加-A参数的alsa值以启用ALSA音频输出,并通过--alsa-audio-device参数指定具体音频输出设备:
cvlc --play-and-exit -A alsa --alsa-audio-device <alsa-device> computer-startup-music.mp3
请将<alsa-device>占位符替换为下列选项之一:
| ALSA device | 说明 |
|---|---|
| sysdefault:CARD=Headphones | 耳机接口 |
| sysdefault:CARD=vc4hdmi | 配备单HDMI接口的设备(包括Zero系列、CM4S、Compute Module 4之前的计算模块版本,以及Raspberry Pi 4之前的机型)上的HDMI音频输出接口 |
| sysdefault:CARD=vc4hdmi0 | 自Raspberry Pi 4B起的机型、自CM4起的计算模块以及键盘整机型号上的HDMI0音频输出接口 |
| sysdefault:CARD=vc4hdmi1 | 自Raspberry Pi 4B起的机型、自CM4起的计算模块以及键盘整机型号上的HDMI1音频输出接口 |
提示
运行如下命令,获取Raspberry Pi上所有ALSA设备的列表。
aplay -L | grep sysdefault
指定视频输出设备
若需强制使用特定视频设备,通过--drm-vout-display参数指定具体视频输出设备:
cvlc --play-and-exit --drm-vout-display <drm-device> big-buck-bunny-1080p.mp4
请将<drm-device>占位符替换为下列选项之一:
| DRM device | 说明 |
|---|---|
| HDMI-A-1 | 适用于Raspberry Pi Zero 或 1、2、3 代机型的HDMI输出接口,或Raspberry Pi 4、5、400机型的HDMI0输出接口 |
| HDMI-A-2 | 自Raspberry Pi 4B起的机型、自CM4(含CM4S)起的计算模块以及键盘整机型号上的HDMI1音频输出接口 |
| DSI-1 | Raspberry Pi Touch Display 或者Raspberry Pi Touch Display 2 |
| DSI-2 | 配备多DSI接口机型(自Raspberry Pi 5起的机型,以及自CM5起的计算模块)上的第2路DSI输出接口 |
提示
运行如下命令,获取Raspberry Pi上所有DRM设备的列表。
kmsprint | grep Connector
指定音视频输出设备
您可以组合使用音频和视频输出选项。例如,若要将视频输出指向触摸屏,同时将音频输出至3.5mm耳机接口,可结合使用以下命令参数:
cvlc --play-and-exit --fullscreen --drm-vout-display DSI-1 -A alsa --alsa-audio-device sysdefault:CARD=Headphones your_video.mp4
提升视频流播放性能
若您拥有原始H.264视频流(例如从Raspebrry Pi Camera模块捕获的原始数据),可通过将其封装为MP4等容器格式来提升VLC播放性能。使用ffmpeg可将视频流内容转换为容器文件。例如,以下命令将名为video.h264的30fps视频流转换为MP4容器格式:
ffmpeg -r 30 -i video.h264 -c:v copy video.mp4
实用工具
Raspberry Pi操作系统中预置了多款实用的命令行工具。
kmsprint
kmsprint工具可用于列出Raspberry Pi所连接显示器支持的显示模式。通过运行kmsprint可查看已连接显示器的详细信息,使用kmsprint -m则可查看每个显示器支持的所有显示模式列表。您可在 GitHub上找到kmsprint工具的源代码。
vclog
vclog工具用于显示Arm架构Linux系统中VideoCore GPU的日志信息,需以root权限运行。
使用sudo vclog --msg可查看消息日志,而sudo vclog --assert则用于查看断言日志。
vcgencmd
vcgencmd工具用于输出Raspberry Pi上 VideoCore GPU 的状态信息,其源代码可在GitHub上获取。
要查看vcgencmd支持的所有命令列表,可直接运行vcgencmd commands。以下列举部分常用命令及其所需参数:
vcos
vcos命令包含两个实用子命令:
version:显示VideoCore固件的构建日期与版本信息。
log status:显示各VideoCore固件模块的错误日志状态。
version
显示VideoCore固件的构建日期与版本信息。
get_throttled
返回系统的节流状态(以位模式表示)。各比特位被置位时表示以下状态:
| Bit | 16进制值 | 含义 |
|---|---|---|
| 0 | 0x1 | 检测到欠压 |
| 1 | 0x2 | Arm频率受限 |
| 2 | 0x4 | 当前处于节流状态 |
| 3 | 0x8 | 软性温度限制生效 |
| 16 | 0x10000 | 曾发生欠压事件 |
| 17 | 0x20000 | 曾触发Arm频率限制 |
| 18 | 0x40000 | 曾发生节流事件 |
| 19 | 0x80000 | 曾触发软性温度限制 |
measure_temp
返回由SoC内部温度传感器测得的温度值。在Raspberry Pi 4上,measure_temp pmic命令可返回电源管理芯片(PMIC)的温度读数。
measure_clock [clock]
返回指定时钟源的当前频率,支持以下时钟类型参数:
| 时钟 | 说明 |
|---|---|
| arm | Arm核心 |
| core | GPU核心 |
| h264 | H.264编解码模块 |
| isp | 图像传感器处理模块 |
| v3d | 3D图形处理模块 |
| uart | 串口通信模块 |
| pwm | 脉宽调制模块(模拟音频输出) |
| emmc | SD卡接口模块 |
| pixel | 像素阀控制器 |
| vec | 模拟视频编码器 |
| hdmi | 高清多媒体接口 |
| dpi | 显示并行接口 |
例如:vcgencmd measure_clock arm
measure_volts [block]
显示指定硬件模块的当前工作电压,支持以下模块参数:
| 模块 | 说明 |
|---|---|
| core | VC4核心电压 |
| sdram_c | SDRAM核心电压 |
| sdram_i | SDRAM输入/输出电压 |
| sdram_p | SDRAM物理层电压 |
otp_dump
显示SoC内部OTP(一次性可编程)存储器的内容,这些数据以32位值形式存储,索引编号为8 至64。详见OTP位说明页面以获取更多信息。
get_config [configuration item|int|str]
显示指定配置设置的值;若需查看特定类型的所有配置项,可指定参数int(整型)或str(字符串型)。例如,以下命令将返回设备的总内存容量(单位:MB):
vcgencmd get_config total_mem
get_mem type
报告Arm和GPU可寻址的内存容量。
查看Arm可访问的内存:
vcgencmd get_mem arm查看GPU可访问的内存:
vcgencmd get_mem gpu
在内存大于1GB的设备上,由于GPU固件仅能识别前1GB内存,arm参数将始终返回1GB减去gpu内存值的结果。如需获取设备总内存的准确信息,请查阅total_mem配置项及前文get_config章节的说明。
codec_enabled [type]
报告指定编解码器类型是否已启用。支持的编解码器类型包括:AGIF、FLAC、H263、H264、MJPA、MJPB、MJPG、MPG2、MPG4、MVC0、PCM、THRA、VORB、VP6、VP8、WMV9、WVC1。由于Raspberry Pi 4和Pi 400的H.265硬件模块不属于VideoCore GPU组成部分,其状态无法通过此命令查询。
mem_oom
显示VideoCore内存空间中发生的OOM(内存不足)事件统计信息。
mem_reloc_stats
显示VideoCore中可重定位内存分配器的统计信息。
read_ring_osc
返回环形振荡器的当前速度、电压和温度值。
辅助功能选项
视觉辅助功能
Raspberry Pi OS为视障用户提供了实用的辅助工具,您可通过Recommended Software(推荐软件)菜单获取。
我们提供以下核心辅助功能:
Orca屏幕阅读器:为桌面环境操作提供语音导航支持。
屏幕放大镜:可局部放大界面元素,提升视觉辨识度。
Orca屏幕阅读器
您可通过以下任一方式安装Orca屏幕阅读器:
在Raspberry Pi主菜单的Recommended Software(推荐软件)中查找安装。
直接使用快捷键
Ctrl + Alt + Space自动触发安装流程。
首次烧录新系统镜像启动后,设备会在30秒后自动播放语音提示,指导您完成Orca的安装操作。
在Raspberry Pi上使用Python
Raspberry Pi操作系统已预装 Python 3。请注意,随意修改系统自带的Python环境可能引发系统问题。安装第三方Python库时,请务必通过正确的软件包管理工具进行操作。
在Linux系统中,您可通过以下两种方式安装Python依赖项:
使用
apt安装预配置的系统软件包。在虚拟环境中使用Python依赖管理器
pip进行安装。
提示
从Raspberry Pi OS Bookworm版本开始,pip仅支持在Python虚拟环境(venv)中安装库。此变更由Python官方社区推行(详见 PEP 668),非Raspberry Pi单方面调整。
使用apt安装Python软件包
通过apt安装的软件包均为Raspberry Pi操作系统专属的软件包。这些软件包通常为预编译版本,安装速度更快。由于apt会统一管理所有软件包的依赖关系,此安装方式将自动包含运行所需的所有子依赖项,且在卸载时可确保不会破坏其他软件包的正常运行。
sudo apt install python3-build-hat
要通过apt查找分发的Python软件包,可使用apt search命令。多数Python软件包的命名遵循python-或python3-前缀规范: 例如可通过python3-numpy名称查找numpy库。
使用pip安装Python库
Bookworm版本对pip安装的调整
在旧版Raspberry Pi操作系统中,用户可直接使用pip将库安装到系统级Python环境中。自Raspberry Pi OS Bookworm版本起,系统已禁止直接向系统级Python环境安装第三方库。更改为将库安装到虚拟环境(venv)中。若需为所有用户进行系统级安装,请使用apt进行安装。
若尝试在系统级范围内安装Python包,会输出类似以下错误提示:
pip install buildhat
错误信息:
error: externally-managed-environment
× This environment is externally managed╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz is the package you are trying toinstall.
If you wish to install a non-Debian-packaged Python package,create a virtual environment using python3 -m venv path/to/venv.Then use path/to/venv/bin/python and path/to/venv/bin/pip. Makesure you have python3-full installed.
For more information visit http://rptl.io/venv
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.hint: See PEP 668 for the detailed specification.
Python开发者长期面临操作系统包管理器(如 apt)与Python专用包管理工具(如pip)之间的冲突问题。这些冲突既包括Python层级的API不兼容,也涉及文件所有权的争夺。
自Raspberry Pi操作系统Bookworm版本起,通过pip安装的软件包必须安装到Python虚拟环境(venv)中。虚拟环境是一个独立的容器,您可以安全地安装第三方模块,而不会干扰系统的Python环境。
在虚拟环境中使用pip
要使用虚拟环境,首先需要创建一个容器来存储该环境。根据您使用Python的不同方式,可以通过多种方法实现这一点。
- 项目级环境
- 许多用户会为每个Python项目创建独立的虚拟环境。将虚拟环境配置文件夹放置在每个项目的根文件夹中,通常使用像
env这样的共享名称。从每个项目的根文件夹运行以下命令来创建虚拟环境配置文件夹:
python -m venv env
- 在开始处理项目之前,从项目根目录运行以下命令来开始使用虚拟环境:
source env/bin/activate
进入到env目录。
当完成项目工作时,从任意目录运行以下命令即可离开虚拟环境:
deactivate
- 用户级环境
您可以为您的用户账号创建一个单一的虚拟环境,而无需为每个Python项目分别创建。在运行任何Python代码之前,先激活该虚拟环境。对于需要在多个项目间共享大量库的工作流程而言,这种方法可能更为便捷。
当为整个用户账号的多个项目创建虚拟环境时,建议将虚拟环境配置文件放置在您的主目录中。将配置存储在以英文句点开头的文件夹内可默认隐藏该文件夹,避免其杂乱的显示在个人主文件夹中。
- 使用以下命令在当前用户的主目录中创建一个隐藏文件夹来存放虚拟环境:
python -m venv ~/.env
- 从任意目录运行以下命令以开始使用该虚拟环境:
source ~/.env/bin/activate
进入到env目录。
从任意目录运行以下命令,退出虚拟环境:
deactivate
创建虚拟环境
运行以下命令来创建虚拟环境配置文件夹,将<env-name>替换为您想要使用的虚拟环境名称(例如env):
python -m venv <env-name>
提示
在文件夹名称前添加--system-site-packages参数,可将系统Python安装中所有已安装的软件包预加载到虚拟环境中。
进入虚拟环境
- 执行虚拟环境配置文件夹中的
bin/activate脚本以进入虚拟环境:
source <env-name>/bin/activate
- 进入到
<env-name>目录。
命令提示符前缀中的<env-name>表示当前终端会话处于名为<env-name>的虚拟环境中。
- 验证是否处于虚拟环境中,可使用
pip list命令查看已安装的软件包列表:
pip list
返回信息:
Package Version---------- -------pip 23.0.1setuptools 66.1.1
这个列表应该比系统Python中已安装的软件包列表短得多。现在您可以安全地使用pip安装软件包。在虚拟环境中使用pip安装的任何软件包只会安装到该虚拟环境中。在虚拟环境中,python或python3命令会自动使用虚拟环境内的Python版本及已安装的软件包,而非系统自带的Python。
退出虚拟环境
在<env-name>目录下,运行如下命令,退出虚拟环境。
deactivate
使用Thonny编辑器
我们推荐在Raspberry Pi上使用Thonny编辑器编写Python代码。
默认情况下,Thonny使用系统自带的Python编辑器。但您可以通过单击Thonny窗口右下角的interpreter菜单,切换至使用Python虚拟环境。您可以选择已配置的环境,或通过“Configure interpreter…”选项配置新的虚拟环境。

在Python中使用GPIO
使用GPIO Zero库可以轻松通过Python控制GPIO设备。该库在gpiozero.readthedocs.io上提供了全面的文档。
有关GPIO硬件的信息,请参阅GPIO硬件。
LED控制
以下示例代码为控制连接到GPIO17的LED:
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
在Thonny这类IDE中运行此代码,LED将会反复闪烁。
LED的控制方法包括on()、off()、toggle()和blink()。
读取按键状态
以下示例代码为读取连接到GPIO2的按键状态:
from gpiozero import Button
from time import sleep
button = Button(2)
while True:
if button.is_pressed:
print("Pressed")
else:
print("Released")
sleep(1)
按钮功能包括属性is_pressed(是否按下)和is_held(是否长按);回调函数when_pressed(按下时)、when_released(释放时)和 when_held(长按时);以及方法wait_for_press()(等待按下)和wait_for_release()(等待释放)。
使用按键控制LED
以下示例代码为读取连接到GPIO2的按键状态,并在按键按下时点亮连接到GPIO17的LED:
- 示例代码1
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
while True:
if button.is_pressed:
led.on()
else:
led.off()
- 示例代码2
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
while True:
button.wait_for_press()
led.on()
button.wait_for_release()
led.off()
- 示例代码3
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
button.when_pressed = led.on
button.when_released = led.off
