3.3.2 GPIO 应用说明
本文档介绍如何使用 Python 的 gpiozero
库控制开发板的 GPIO 功能。gpiozero
提供简洁、直观的接口,适用于常见的按钮、LED、舵机等设备控制。官方文档地址为:https://gpiozero.readthedocs.io/
准备工作
在使用 GPIO 前,请参考《引脚定义说明》,确认所使用主控板型的引脚编号。本文以 MUSE Pi 开发板为示例进行说明。
环境安装
您可以选择在系统主环境或虚拟环境中安装 gpiozero
库。
- 系统主环境安装:
sudo apt update
sudo apt install python3-gpiozero
- 虚拟环境安装:
source your-venv-path/bin/activate
pip install -i https://git.spacemit.com/api/v4/projects/33/packages/pypi/simple gpiozero
引脚工厂配置
gpiozero
运行时需要显式指定底层引脚工厂,推荐使用 lgpio
库。
在程序开头添加以下配置代码:
from gpiozero.pins.lgpio import LGPIOFactory
from gpiozero import Device
Device.pin_factory = LGPIOFactory(chip=0) # 对应 /dev/gpiochip0
同时设置设备节点权限:
sudo chmod a+rw /dev/gpiochip0
查看引脚布局
可使用以下命令查看开发板的 GPIO 引脚布局:
pinout
输出示例如下:
Description : SpaceMIT Board spacemit k1-x MUSE-Pi board rev 1.1
Revision : deb002
SoC : M1-8571
RAM : 7GB
Storage : MicroSD/SSD
USB ports : 2 (of which 2 USB3)
Ethernet ports : 2 (1000Mbps max. speed)
Wi-fi : True
Bluetooth : True
Camera ports (CSI) : 1
Display ports (DSI): 1
,---------------------------------------------------------------.
| ooooooooooooo J24 :
| 1oooooooooooo : |Ethernet1
| MUSE Pi : |Ethernet2
,--------------------------------------------------------------.
MUSE_Pi:
3V3 (1) (2) 5V
GPIO52 (3) (4) 5V
GPIO51 (5) (6) GND
GPIO70 (7) (8) GPIO47
GND (9) (10) GPIO48
GPIO71 (11) (12) GPIO74
GPIO72 (13) (14) GND
GPIO73 (15) (16) GPIO91
3V3 (17) (18) GPIO92
GPIO77 (19) (20) GND
GPIO78 (21) (22) GPIO49
GPIO75 (23) (24) GPIO76
GND (25) (26) GPIO50