保存时间:2026/4/2 19:09:49
arp -a、Angry IP Scanner)找到树莓派的 IPssh 用户名@树莓派IP 直接登录ssh raspberrypi.local 直接连接(无需知道 IP)raspberrypi.local 进行 SSH 连接cat /proc/cpuinfo 查看硬件信息,或者看芯片上的丝印。ssh raspberrypi.local 直接连接,无需网线或 WiFiUse password authentication,设置用户名和密码ssh 你的用户名@raspberrypi.local
.local 解析失败,可在路由器后台或用 arp -a 命令找到树莓派的 IP,用 ssh 用户名@IP地址 连接Enable USB Ethernet gadget,确认树莓派 5 已正常供电ssh 用户名@raspberrypi.local 连接dmesg | grep -i "mmc\|sd\|card"
mmc0、mmc1、sdhci 或 mmcblk 的行mmc0: new high speed SDHC card at address 1234,说明硬件被识别了lsblk
mmcblk0(或 mmcblk1),分区是 mmcblk0p1mmcblk*,说明系统没识别到这张卡lspci | grep -i sd
SD Host controller 的设备lsusb | grep -i card
lsmod | grep sdhci
sdhci、sdhci_pci 等模块加载sudo modprobe sdhci
sudo modprobe sdhci_pci
/dev/mmcblk0(整块卡)/dev/mmcblk0p1、/dev/mmcblk0p2.../dev/sda、/dev/sdb 命名规则不同,是 SD 卡的专属命名# 尝试挂载第一个分区(先创建挂载点)
mkdir -p ~/sdcard
sudo mount /dev/mmcblk0p1 ~/sdcard
sdhci 相关模块fdisk /dev/mmcblk0 检查fsck /dev/mmcblk0p1 修复# 1. 看块设备
lsblk
# 2. 看内核日志
dmesg | tail -20 | grep -i mmc
# 3. 看 PCI SD 控制器
lspci | grep -i sd
| 系统选项 | 优势 | 劣势 | 适合场景 |
|---|---|---|---|
| Raspberry Pi OS (64-bit)(推荐) | - 官方原生系统,对树莓派 5 硬件(PCIe、USB3.0、GPIO)支持最完善- 内核和固件更新最快,bug 最少- 大部分 NPU 厂商(如 Hailo、Raspberry Pi 自家 AI 板)都优先提供针对它的驱动和 SDK | - 基于 Debian,包管理和 Ubuntu 略有差异,但命令高度兼容 | 想稳定跑 NPU、优先保证硬件兼容性的场景 |
| Ubuntu 22.04 for Raspberry Pi 5 | - 和你日常使用的 Ubuntu 完全一致,操作习惯无缝衔接- 生态成熟,软件包丰富 | - 对树莓派 5 专属硬件(如 RP1 芯片、PCIe)的支持略晚于官方系统- 部分 NPU 驱动可能需要额外编译内核模块 | 想保持 Ubuntu 操作习惯,且 NPU 厂商明确支持 Ubuntu 的场景 |
| Raspberry Pi OS (other) | - 包含 Lite 版(无桌面,更轻量)、legacy 版本等 | - Lite 版需要手动安装所有依赖,适合进阶用户 | 做无界面嵌入式设备时用 |
Other general-purpose OS → Ubuntu 找到,或从 Ubuntu 官网下载)Enable SSH,设置用户名和密码Other general-purpose OS → Ubuntu → Ubuntu Server 22.04 LTS (64-bit) 或桌面版hailo-installer 一键脚本,直接在 Raspberry Pi OS 上跑就能装好CAM/DISP0 和 CAM/DISP1),位于 HDMI 接口和网口之间libcamera 框架管理,AI 背板由 Hailo SDK 管理,两者可以同时工作| 摄像头型号 | 分辨率 | 帧率 | 对焦 | 价格 | 适合度 |
|---|---|---|---|---|---|
| Camera Module 3(推荐) | 11.9MP,最高 2304×1296 | 30fps@1080p | 电动对焦,可软件控制 | 中高 | ⭐⭐⭐⭐⭐ |
| Camera Module 2 | 8MP,1640×1232 | 30fps@1080p | 可调对焦 | 中 | ⭐⭐⭐ |
| HQ Camera | 12.3MP,4056×3040 | 10fps@1080p | 可换镜头,可调焦 | 高 | ⭐⭐ |
| Global Shutter Camera | 12.3MP,4056×3040 | 30fps@1080p | 可调焦 | 高 | ⭐⭐⭐ |
libcamera 框架完美支持libcamera 捕获帧,配合 OpenCV 做屏幕识别libcamera-jpeg 命令测试对焦,通过 libcamera API 软件设置对焦距离,保证屏幕清晰| 版本 | 参考价格(人民币) | 特点 |
|---|---|---|
| Camera Module 3 标准版 | ¥180 ~ ¥260 | 11.9MP,电动对焦,76° 水平视角,自带标准镜头 |
| Camera Module 3 Wide | ¥200 ~ ¥280 | 同传感器,102° 广角版,适合更大范围监控 |
| Camera Module 3 NoIR | ¥200 ~ ¥280 | 红外版,支持夜间监控,日常使用和标准版一致 |
libcamera 原生接口 + Python 是最稳最快的方式,OpenCV/FFmpeg 都可以作为上层处理工具,但原型阶段优先用 picamera2(libcamera 的 Python 封装)。# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 libcamera 和 picamera2(Python 绑定)
sudo apt install -y python3-picamera2 python3-libcamera python3-opencv
# 验证摄像头是否被识别
libcamera-hello
| 方案 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| picamera2(推荐) | 原生 libcamera 封装,延迟最低,配置简单,Python 友好 | 功能不如 OpenCV 丰富 | 1 秒 1 帧截屏、原型验证 |
| OpenCV | 强大的图像处理能力,直接拿到 numpy 数组 | 需通过 cv2.VideoCapture 调用,可能有额外延迟 | 需要做视觉识别、模板匹配 |
| FFmpeg | 适合录屏 / 推流,命令行操作 | 不适合实时 Python 逻辑控制 | 批量录制、推流 |
import time
from picamera2 import Picamera2
import cv2
# 初始化摄像头
picam2 = Picamera2()
# 配置预览分辨率(1080p 足够识别屏幕)
picam2.configure(picam2.create_still_configuration(main={"size": (1920, 1080)}))
picam2.start()
try:
while True:
# 捕获一帧(numpy 数组,BGR 格式,可直接给 OpenCV)
frame = picam2.capture_array()
# 保存为图片
cv2.imwrite(f"screen_capture_{int(time.time())}.jpg", frame)
print(f"已保存截图: screen_capture_{int(time.time())}.jpg")
# 等待 1 秒
time.sleep(1)
finally:
picam2.stop()
picam2.capture_array() 直接返回 numpy.ndarray,可以无缝对接 OpenCV 做识别import cv2
import time
# 打开摄像头(libcamera 后端)
cap = cv2.VideoCapture(0, cv2.CAP_V4L2)
if not cap.isOpened():
print("无法打开摄像头")
exit()
try:
while True:
ret, frame = cap.read()
if not ret:
print("无法获取帧")
break
# 保存截图
cv2.imwrite(f"opencv_capture_{int(time.time())}.jpg", frame)
time.sleep(1)
finally:
cap.release()
cv2.destroyAllWindows()
picam2.set_controls({"AfMode": 2, "AfTrigger": 0}) 触发自动对焦,保证屏幕清晰picamera2 实现 1 秒 1 帧截屏,验证摄像头和存储功能capture_array() 拿到的帧传给 OpenCV,做屏幕模板匹配 / 文字识别picamera2 本身的输出方式picamera2 本身的输出方式picamera2 支持多种输出模式:capture_file() / cv2.imwrite() → 保存为 JPG/PNGcapture_array() → 直接拿到 numpy 数组(给 OpenCV / 深度学习用)start_preview() → 弹出本地 X11 窗口(可以通过 SSH X11 转发到你的笔记本)-X 或 -Y 参数:ssh -X your_pi_username@raspberrypi.local
libcamera-hello -t 0
-t 0 表示无限时长预览from picamera2 import Picamera2
picam2 = Picamera2()
picam2.start_preview() # 弹出 X11 窗口
picam2.start()
input("按回车结束预览...")
picam2.stop()
libcamera-vid -t 0 --inline -o udp://你的笔记本IP:5000
--inline:让流支持实时播放udp://你的笔记本IP:5000:替换成你笔记本的局域网 IPffplay udp://@0.0.0.0:5000
udp://@0.0.0.0:5000libcamera-vid -t 0 --inline -o - | ffmpeg -i - -c:v copy -f hls -hls_time 1 -hls_list_size 5 -hls_flags delete_segments /var/www/html/stream.m3u8
http://raspberrypi.local/stream.m3u8(需要先装 Nginx/Apache 放静态文件)| 方案 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| SSH + X11 预览 | 零配置、延迟最低、直接看画面 | 窗口可能有点卡,分辨率不能太高 | 调试对焦、快速验证 |
| FFmpeg UDP 流 | 低延迟、流畅、适合长时间观看 | 需要知道笔记本 IP,命令稍复杂 | 实时监控、演示 |
| FFmpeg HTTP 流 | 浏览器直接看,跨平台 | 延迟稍高(1~2 秒) | 远程查看、分享画面 |
libcamera-hello,直接看预览窗口,最快验证摄像头是否正常、对焦是否清晰ffplay 直接看实时画面。