备注:相关更新转移到 wiki.ubuntu.org.cn/%E6%A0%91%E…
[toc]
概貌
//树莓派的配置使用 raspi-config 以及 /boot/config.txt,树莓派GPIO的缺省配置,比如PIN10=RXD,PIN8=TXD
Quick reference card for raspberry pi 4B
以下是为Raspberry Pi 4B整理的Python开发快速参考卡,涵盖硬件配置、系统命令、GPIO控制、传感器应用及调试技巧等关键内容,便于开发时高效查阅:
🖥️ 一、硬件概览
| 项目 | 参数/说明 |
|---|---|
| CPU | Broadcom BCM2711 (Cortex-A72 四核 @ 1.5GHz) |
| 内存 | 2GB/4GB/8GB LPDDR4 |
| GPIO引脚 | 40针(兼容26针老版),支持UART/I²C/SPI/PWM |
| 视频输出 | 2× Micro HDMI(支持4K@60Hz) |
| 网络 | 双频WiFi 5 + 千兆以太网 + Bluetooth 5.0 |
| USB接口 | 2× USB 3.0 + 2× USB 2.0 |
| 存储 | MicroSD卡槽(系统启动) |
💡 关键引脚功能:
- I²C0:GPIO2(SDA)、GPIO3(SCL)
- SPI0:GPIO10(MOSI)、GPIO9(MISO)、GPIO11(SCLK)、GPIO8(CE0)、GPIO7(CE1)
- PWM:GPIO 12/13/18/19
⚙️ 二、系统配置
1. 基础命令
sudo raspi-config # 系统配置(时区/网络/接口使能)
pinout # 查看引脚图
vcgencmd measure_temp # 检测CPU温度
2. 换源加速
# 软件源换国内镜像(如清华源)
sudo sed -i 's|raspbian.raspberrypi.org|mirrors.tuna.tsinghua.edu.cn/raspbian|g' /etc/apt/sources.list
# pip换源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
3. 远程连接
ssh pi@<树莓派IP> # SSH登录(默认用户pi,密码raspberry)
sudo apt install xrdp # 安装远程桌面(通过Windows远程连接)
🐍 三、Python开发环境
1. 库安装
sudo apt install python3-pip # 安装pip3
pip3 install RPi.GPIO gpiozero # GPIO控制库
pip3 install smbus2 spidev # I²C/SPI通信库
2. GPIO控制示例
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) # 使用BCM编号
GPIO.setup(17, GPIO.OUT) # 设置GPIO17为输出
GPIO.output(17, GPIO.HIGH) # 输出高电平
GPIO.cleanup() # 清理引脚状态
3. 传感器集成(以DHT11为例)
import Adafruit_DHT
sensor = Adafruit_DHT.DHT11
pin = 4
humidity, temp = Adafruit_DHT.read_retry(sensor, pin)
print(f"温度: {temp}°C, 湿度: {humidity}%")
🔌 四、GPIO高级功能
1. PWM输出
from gpiozero import PWMLED
led = PWMLED(18) # 使用GPIO18
led.value = 0.5 # 50%占空比
2. I²C通信
import smbus2
bus = smbus2.SMBus(1) # I²C通道1(GPIO2/3)
address = 0x48 # 设备地址
bus.write_byte_data(address, 0x01, 0xAA) # 写入数据
data = bus.read_byte(address) # 读取数据
3. 中断检测
from gpiozero import Button
button = Button(2) # GPIO2接按钮
button.when_pressed = lambda: print("按下!") # 下降沿触发
📡 五、网络与通信
1. HTTP服务
from http.server import SimpleHTTPRequestHandler, HTTPServer
server = HTTPServer(('', 8000), SimpleHTTPRequestHandler)
server.serve_forever() # 启动本地Web服务器
2. MQTT通信
import paho.mqtt.client as mqtt
client = mqtt.Client()
client.connect("broker.hivemq.com", 1883)
client.publish("raspberry/temp", "25.5") # 发布数据
⚡ 六、开机自启动
1. 通过rc.local
# 编辑rc.local文件
sudo nano /etc/rc.local
# 在exit 0前添加:
sudo python3 /home/pi/your_script.py &
2. 解决权限问题
sudo pip3 install <缺失库> # 避免sudo执行时找不到第三方库
🐞 七、调试与优化
1. 常见问题
- GPIO冲突:确保同一引脚未重复初始化
- I²C设备未识别:
sudo i2cdetect -y 1检测设备地址 - PWM无输出:检查引脚是否支持硬件PWM(GPIO12/13/18/19)
2. 性能监控
top # 实时进程监控
free -h # 内存使用情况
df -h # 存储空间检查
📚 资源速查表
| 场景 | 推荐工具/库 | 参考来源 |
|---|---|---|
| GPIO基础控制 | RPi.GPIO / gpiozero | |
| 传感器驱动 | Adafruit_DHT / smbus2 | |
| 开机自启 | rc.local | |
| 网络通信 | paho-mqtt / flask | - |
💡 开发提示:
- 避免使用
GPIO0-8(可能影响SD卡启动)- 高精度定时用
time.monotonic()替代time.time()- 使用
systemd管理复杂服务(替代rc.local)
将此参考卡保存为单页PDF,助你高效开发树莓派项目!📥
专用命令
//配置:sudo raspi-config
//raspivid:录制视频 $ raspivid -o video h264 -t 10000
//raspiStill:拍摄单张静态图像 $ raspistill -o imagel. jpg
//pinout :打印pin脚
GPIO
//安装 gpiozero
Installing GPIOZero
sudo curl https://bootstrap.pypa.io/get-pip.py | sudo python3
sudo pip3 install gpiozero
//检查gpiozero版本
nisy@raspberrypi:~ $ pip3 list | grep -i gpio
gpiozero 1.6.2
pigpio 1.78
RPi.GPIO 0.7.0
//安装 RPi.GPIO
sudo pip install RPi.GPIO
选中pin脚(以17pin为例):
echo 17 >/sys/class/gpio/export
设置输出模式:
echo out > /sys/class/gpio/gpio17/direction
设置输出模式下的拉高:
echo high > /sys/class/gpio/gpio17/direction
或者echo 1 > /sys/class/gpio/gpio17/value
设置输出模式下的拉低:
echo low > /sys/class/gpio/gpio17/direction
或者echo 0 > /sys/class/gpio/gpio17/value
设置输入模式:
echo in > /sys/class/gpio/gpio17/direction
读取输入电平:
cat /sys/class/gpio/gpio17/value
取消选中pin脚:
echo 17 > /sys/class/gpio/unexport
Proteus 仿真树莓派
//新建项目时,选择"New Project",则后面可以选择"Create Firmware Project"(即代码编程)或者"Create Flowchart Project"(即流程图编程,实际调试的源代码类似在
C:\Users\MateBook Xpro\AppData\Local\Temp\VSM Studio\a9566699ec5e4c73b9e40c34d8360e61\RPI4_1\Debug\main.py这样的路径里编译和调试.
//新建工程时如果是代码方式,可以选择:
流程图方式也是如上几种.
//树莓派在proteus中是从python模拟的角度,所以添加树莓派是从Microprocessor ICs ->Python Processors 来添加树莓派
The following libraries are supported:
smbus
pygame
wiringpi
RPi.GPIO
spidev
There is also a set of Python libraries, which are supplied by us in the Raspberry Pi drivers directory:
Adafruit_GPIO
Adafruit_I2C
Adafruit_MCP230xx
Adafruit_MCP3008
Adafruit_MotorHAT
Adafruit_PCA9685
Adafruit_PureIO
automationhat
explorerhat
ADS1x15
cap1xxx
grove_128_64_oled
grove_rgb_lcd
grovepi
max31855
pcf8574
pcf8591
piglow
sn3218
流程图编程支持的模块包括:
Q:proteus中仿真树莓派的程序,怎么在实体树莓派上实现??
A:在Proteus中仿真的树莓派程序并不能直接在实体树莓派上运行。Proteus是一个电路仿真软件,它可以模拟硬件的行为,但并不能直接运行实际的树莓派程序。要在实体树莓派上实现Proteus中仿真的程序,你需要按照以下步骤进行:
- 在树莓派上安装相应的开发环境:在实体树莓派上,你需要先安装Python解释器或其他编程环境,以便能够运行程序。通常可以使用操作系统的软件包管理器来安装这些工具。例如,在树莓派的官方操作系统Raspbian上,可以使用以下命令安装Python 3和pip(Python包管理器):
sudo apt-get update
sudo apt-get install python3
sudo apt-get install python3-pip
- 将程序复制到树莓派上:将Proteus中仿真的程序代码复制到实体树莓派上的文件系统中。你可以使用SCP(Secure Copy Protocol)或FTP(File Transfer Protocol)等协议将文件从计算机传输到树莓派。
- 运行程序:在树莓派上打开终端或命令行界面,并导航到程序文件所在的目录。然后使用Python解释器或其他编程环境来运行程序。例如,如果程序是一个Python脚本,可以使用以下命令来运行它:
python3 your_script.py
确保树莓派上的程序与Proteus中的程序一致,包括引脚分配、功能和行为等。如果需要使用外部硬件,确保将它们正确连接到树莓派的适当引脚上。
需要注意的是,由于实体树莓派的资源和性能限制,一些在Proteus中模拟的功能可能无法完全实现或表现出不同的行为。因此,在将程序从仿真环境转移到实体硬件时,需要进行适当的调整和测试。