Quick reference card - raspberry pi 4B

251 阅读6分钟

备注:相关更新转移到 wiki.ubuntu.org.cn/%E6%A0%91%E…

[toc]

概貌

image.png

image image

image.png

//树莓派的配置使用 raspi-config 以及 /boot/config.txt,树莓派GPIO的缺省配置,比如PIN10=RXD,PIN8=TXD

Quick reference card for raspberry pi 4B

以下是为Raspberry Pi 4B整理的Python开发快速参考卡,涵盖硬件配置、系统命令、GPIO控制、传感器应用及调试技巧等关键内容,便于开发时高效查阅:


🖥️ 一、硬件概览

项目参数/说明
CPUBroadcom 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脚 image

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这样的路径里编译和调试.

//新建工程时如果是代码方式,可以选择: image 流程图方式也是如上几种.

//树莓派在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

流程图编程支持的模块包括: image image image image image image image

Q:proteus中仿真树莓派的程序,怎么在实体树莓派上实现??

A:在Proteus中仿真的树莓派程序并不能直接在实体树莓派上运行。Proteus是一个电路仿真软件,它可以模拟硬件的行为,但并不能直接运行实际的树莓派程序。要在实体树莓派上实现Proteus中仿真的程序,你需要按照以下步骤进行:

  1. 在树莓派上安装相应的开发环境:在实体树莓派上,你需要先安装Python解释器或其他编程环境,以便能够运行程序。通常可以使用操作系统的软件包管理器来安装这些工具。例如,在树莓派的官方操作系统Raspbian上,可以使用以下命令安装Python 3和pip(Python包管理器):
sudo apt-get update
sudo apt-get install python3
sudo apt-get install python3-pip
  1. 将程序复制到树莓派上:将Proteus中仿真的程序代码复制到实体树莓派上的文件系统中。你可以使用SCP(Secure Copy Protocol)或FTP(File Transfer Protocol)等协议将文件从计算机传输到树莓派。
  2. 运行程序:在树莓派上打开终端或命令行界面,并导航到程序文件所在的目录。然后使用Python解释器或其他编程环境来运行程序。例如,如果程序是一个Python脚本,可以使用以下命令来运行它:
python3 your_script.py

确保树莓派上的程序与Proteus中的程序一致,包括引脚分配、功能和行为等。如果需要使用外部硬件,确保将它们正确连接到树莓派的适当引脚上。

需要注意的是,由于实体树莓派的资源和性能限制,一些在Proteus中模拟的功能可能无法完全实现或表现出不同的行为。因此,在将程序从仿真环境转移到实体硬件时,需要进行适当的调整和测试。