亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

树莓派 GPIO Python 编程全攻略:从引脚认知到实战项目

GPIO(通用输入输出)引脚是所有树莓派单板计算机的核心扩展接口,通过它可连接传感器、执行器、显示屏等外设,赋予树莓派感知与控制物理世界的能力。本教程将系统讲解 GPIO 引脚定义、硬件接线、Python 编程环境搭建及经典实战项目,助您快速上手物理计算开发。

GPIO 基础认知

树莓派 GPIO Python 编程全攻略:从引脚认知到实战项目
图 1:40 引脚 GPIO 排布

GPIO 即 General Purpose Input/Output,是树莓派 SoC 直接引出的可编程数字信号引脚,支持 3.3V 电平。通过软件配置,每个引脚可动态切换为输入(读取按键、传感器)或输出(驱动 LED、继电器、电机驱动模块)模式。树莓派 Zero / 3B+/4B/5 均采用标准 40Pin 排针(早期 Model A/B 为 26Pin),引脚功能定义完全兼容。

40Pin 功能详解(BCM 编号模式)

树莓派 GPIO Python 编程全攻略:从引脚认知到实战项目
图 2:树莓派 4B 主板

物理引脚BCM 编号功能别名备注
1-3.3V 电源最大 50mA
2-5V 电源直通电源输入,电流取决于适配器
3GPIO 2I2C1 SDA内置 1.8kΩ 上拉
4-5V 电源-
5GPIO 3I2C1 SCL内置 1.8kΩ 上拉
6-GND-
7GPIO 4GPCLK0可作 1-Wire 总线
8GPIO 14UART0 TXD串口发送
9-GND-
10GPIO 15UART0 RXD串口接收
11GPIO 17-通用 I/O
12GPIO 18PWM0 / PCM_CLK硬件 PWM
13GPIO 27-通用 I/O
14-GND-
15GPIO 22-通用 I/O
16GPIO 23-通用 I/O
17-3.3V 电源-
18GPIO 24-通用 I/O
19GPIO 10SPI0 MOSISPI 主出从入
20-GND-
21GPIO 9SPI0 MISOSPI 主入从出
22GPIO 25-通用 I/O
23GPIO 11SPI0 SCLKSPI 时钟
24GPIO 8SPI0 CE0SPI 片选 0
25-GND-
26GPIO 7SPI0 CE1SPI 片选 1
27GPIO 0ID_SDEEPROM 数据(HAT 识别)
28GPIO 1ID_SCEEPROM 时钟(HAT 识别)
29GPIO 5-通用 I/O
30-GND-
31GPIO 6-通用 I/O
32GPIO 12PWM0硬件 PWM
33GPIO 13PWM1硬件 PWM
34-GND-
35GPIO 19PCM_FS / SPI1音频/第二 SPI
36GPIO 16-通用 I/O
37GPIO 26-通用 I/O
38GPIO 20SPI1 MOSI第二 SPI
39-GND-
40GPIO 21SPI1 MISO第二 SPI

注意:GPIO 电平为 3.3V,严禁直接接入 5V 信号,否则烧毁 SoC。驱动大电流负载请使用晶体管、MOSFET 或光耦隔离模块。

Python 编程环境搭建

树莓派 GPIO Python 编程全攻略:从引脚认知到实战项目
图 3:Python 编程概念

硬件准备清单

软件库选择:GPIO Zero vs RPi.GPIO

特性GPIO Zero(推荐新手)RPi.GPIO(底层控制)
API 风格面向对象、声明式过程式、寄存器级
内设驱动LED、Button、PWMLED、MotionSensor 等无,需自行实现
并发支持内置事件回调、线程安全需自行处理线程/中断
安装命令sudo apt install python3-gpiozero系统预装 import RPi.GPIO as GPIO

本教程以 GPIO Zero 为主,兼顾 RPi.GPIO 关键设置。

RPi.GPIO 基础初始化代码

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)        # 采用 BCM 编号
GPIO.setwarnings(False)       # 关闭重复配置警告
GPIO.setup(17, GPIO.OUT)      # 设置 GPIO17 为输出
GPIO.output(17, GPIO.HIGH)    # 输出高电平点亮 LED

GPIO Zero 典型用法示例

from gpiozero import LED, Button, MotionSensor
from signal import pause

led = LED(17)                 # GPIO17 接 LED
btn = Button(2)               # GPIO2 接按键(内部上拉)
pir = MotionSensor(4)         # GPIO4 接 PIR 传感器

btn.when_pressed = led.on
btn.when_released = led.off
pir.when_motion = led.on
pir.when_no_motion = led.off

pause()                       # 保持主线程运行,响应事件

进阶实战项目推荐

树莓派 GPIO Python 编程全攻略:从引脚认知到实战项目
图 4:树莓派 4B

项目核心外设关键知识点难度
智能夜灯光敏电阻 + LEDADC 读取(需 MCP3008)、阈值判断⭐
人体感应报警PIR + 蜂鸣器 + 推送通知中断回调、HTTP 请求、系统服务化⭐⭐
温湿度监测看板DHT22 / SHT30 + OLEDI2C/单总线通信、数据可视化⭐⭐
舵机云台追踪2×SG90 + 摄像头硬件 PWM、OpenCV 人脸检测、PID 控制⭐⭐⭐
家庭自动化网关继电器模块 + MQTT + Home Assistant网络编程、设备抽象、OTA 固件更新⭐⭐⭐⭐

常见坑点避雷指南

结语

掌握 GPIO 编程是树莓派从“会跑 Linux 的小电脑”进化为“物理计算核心”的关键一步。建议从 GPIO Zero 入手,逐步深入底层寄存器与中断机制,结合传感器融合、边缘计算、容器化部署等现代技术栈,构建属于您的智能硬件生态。如有疑问,欢迎随时交流探讨。

工业技术

  1. 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
  2. 树莓派 3 接 HC‑SR04 超声波测距传感器完全指南
  3. 树莓派无原生 ADC 读取模拟传感器:阶跃响应法实战
  4. 战略采购精通:锁定优质供应商的5个经过验证的步骤
  5. 全球水资源危机:威胁人类的关键短缺
  6. 精通加工:稳定产出高质量零件的关键步骤
  7. 全球生产舞台:制造业如何驱动经济
  8. BGA返修的最后步骤:全面指南(第二部分)
  9. 精密CNC加工:生产步骤专业指南
  10. 酞菁颜料应用版图与品质红线:涂料、油墨、塑料及跨行业赋能
  11. 碱性染料跨行业应用全景:纺织、纸张、油墨、蚊香、农化与石油
  12. 颜料蓝:核心应用场景、性能优势与头部制造商选择逻辑