树莓派 OV5647 摄像头(V1.3)配置完全指南

📷 树莓派 OV5647 摄像头(V1.3)配置完全指南 (2026 修订版)

适用硬件

  • 主板:Raspberry Pi 4B / 3B+ / Zero 2 W / CM4
  • 摄像头:OV5647 500万像素 (Raspberry Pi Camera Module V1.3)
  • 系统:Raspberry Pi OS Bullseye (11)Bookworm (12)

核心变化提示

  • Bullseye 起,旧版 raspistill/picamera 已被弃用,全面转向 libcamera
  • Bookworm 起,默认使用 Wayland 显示服务器,且 /boot/config.txt 路径可能变为 /boot/firmware/config.txt

一、物理连接与方向检查(至关重要)

在运行任何命令前,请确保物理连接正确。90% 的故障源于排线插反或未插到底。

✅ 正确的排线方向

接口位置蓝色胶条/标签朝向金属触点朝向备注
树莓派主板端朝向 USB/网口中心朝向板子边缘/HDMI卡扣拉起插入,按下锁紧
摄像头模块端背对电路板元件朝向电路板铜箔务必插到底,直到感觉受阻

⚠️ 警告:如果方向插反,虽然通常不会烧毁硬件,但会导致 detected=0timeout 错误。


二、系统配置步骤

1. 修改启动配置文件

根据系统版本,配置文件路径可能不同:

  • Bullseye 及更早: /boot/config.txt
  • Bookworm 及更新: /boot/firmware/config.txt
# 自动检测并编辑正确的文件
sudo nano $(ls /boot/config.txt /boot/firmware/config.txt 2>/dev/null | head -n 1)

添加或修改以下内容(确保没有冲突项):

[all]
# 1. 启用旧版 MMAL 支持 (仅当必须使用 raspistill 时需要,libcamera 不需要,但建议保留以防兼容性问题)
start_x=1

# 2. 【关键】禁用自动检测,防止系统与手动驱动冲突
camera_auto_detect=0

# 3. 手动加载 OV5647 驱动
dtoverlay=ov5647

# 4. 启用 I2C 接口 (OV5647 依赖 I2C 通信)
dtparam=i2c_arm=on

# 5. 分配足够的 GPU 内存 (建议 128MB,若运行桌面环境可设为 256MB)
gpu_mem=128

保存退出 (Ctrl+O, Enter, Ctrl+X),然后重启

sudo reboot

2. 启用 I2C 接口 (双重保险)

虽然 config.txt 已开启,但建议通过工具确认状态:

sudo raspi-config
  • 进入 Interface Options -> I2C -> 选择 Yes
  • 进入 Camera (如果有此选项) -> 选择 Yes (这会尝试启用旧驱动,若与手动配置冲突请忽略,以 config.txt 为准)。

三、验证硬件状态

重启后,按顺序执行以下检查:

3.1 检查内核识别

vcgencmd get_camera
  • ✅ 成功: supported=1 detected=1, libcamera interfaces=1
    • detected=1: 硬件已连通。
    • libcamera interfaces=1: 驱动已正确加载给 libcamera。
  • ❌ 失败: detected=0
    • 原因: 排线松动、方向错误、或 camera_auto_detect 未关闭。
    • 对策: 断电重插排线,检查 dmesg

3.2 检查 I2C 总线

sudo i2cdetect -y 1
  • ✅ 成功: 在地址 0x36 处显示 36
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- --
    
  • ❌ 失败: 全为 --
    • 原因: I2C 未启用或物理连接完全断开。

3.3 查看内核日志

dmesg | grep -i "ov5647\|unicam"
  • 正常: ov5647 10-0036: OV5647 camera module detected
  • 异常: probe ... failed with error -121 (远程 I/O 错误,通常是排线问题)。

四、拍照与录像测试 (Libcamera)

Bullseye 之后,强烈建议只使用 libcamera 套件。

4.1 列出可用摄像头

libcamera-still --list-cameras

输出应包含 ov5647 字样及支持的分辨率模式。

4.2 拍摄单张照片

# 基础用法
libcamera-still -o image.jpg

# 推荐用法:指定分辨率、延时 2 秒(防抖动)、预览窗口
libcamera-still -t 2000 --width 2592 --height 1944 -o image_high_res.jpg

4.3 录制视频

# 录制 10 秒视频
libcamera-vid -t 10000 -o video.h264

# 无限录制 (按 Ctrl+C 停止),不保存文件仅预览
libcamera-vid -t 0 --output /dev/null

4.4 Python 开发 (Picamera2)

旧版 picamera 库已不再维护,请使用 picamera2

from picamera2 import Picamera2
import time

picam2 = Picamera2()
config = picam2.create_preview_configuration(main={"size": (1280, 720)})
picam2.configure(config)
picam2.start()
time.sleep(2)
picam2.capture_file("test_python.jpg")
picam2.stop()
print("Photo captured!")

安装: sudo apt install python3-picamera2


五、进阶故障排查 (Troubleshooting)

如果上述步骤仍无法工作,请对照下表:

现象可能原因解决方案
detected=0排线未插好/方向反断电后重新插拔,确保蓝色标签朝向网口。
No cameras availablecamera_auto_detect=1 冲突编辑 config.txt,确保设置 camera_auto_detect=0
Camera frontend has timed out数据链路不通 (MIPI 故障)1. 更换排线 (排线内部断裂常见)。2. 降低分辨率/帧率测试。3. 检查电源供电是否不足。
i2cdetect 找不到 0x36I2C 未启用或硬件损坏确认 dtparam=i2c_arm=on 已添加并重启;若仍无,可能是摄像头模块损坏。
黑屏但有日志光线太暗或曝光未锁定OV5647 在暗处会自动延长曝光导致看似黑屏,尝试增加环境光或添加 --exposure normal
Bookworm 系统报错Wayland/权限问题尝试在终端前加 sudo 测试;或检查用户是否在 video 组 (sudo usermod -aG video $USER)。

💡 特别提示:关于 Bookworm (Debian 12)

如果你升级到了最新的 Bookworm 系统:

  1. 配置文件路径通常为 /boot/firmware/config.txt
  2. 默认显示服务器是 Wayland。如果在桌面环境下预览窗口不显示,尝试切换回 X11 (在 raspi-config -> Advanced Options -> Compositor / Wayland 中调整),或者确保在终端运行而非通过 SSH X11 转发(SSH 转发预览需要 -n 参数禁用预览)。

六、常用参数速查表 (libcamera-still)

参数说明示例
-o输出文件名-o photo.jpg
-t预览时间 (毫秒)-t 2000 (2秒)
--width / --height分辨率--width 1920 --height 1080
--rotation旋转角度--rotation 180 (倒置)
--hflip / --vflip水平/垂直翻转--hflip
--gain模拟增益 (ISO)--gain 2.0
--shutter快门速度 (微秒)--shutter 20000
--encoding编码格式--encoding png (默认 jpg)

结语
OV5647 是一款经典的摄像头,但在现代树莓派系统上需要正确的手动配置。只要 vcgencmd get_camera 显示 detected=1,剩下的软件问题通常都能通过调整 libcamera 参数解决。如果始终无法 detected=1,请优先怀疑排线摄像头模块本身的硬件故障。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ヌヌ イホ キT エ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值