🍓 第十章 相机模块与视频串流
📄 一句话概括

树莓派的相机不走 USB、不走 GPIO,而是走一条专用排线(CSI)直连主芯片;官方相机家族从入门的 Camera Module 3 到可换镜头的 HQ Camera,选型先认接口再认需求。

📝 本节和前面几节的关系

1-3 讲硬件规格时提过一嘴【CSI/DSI 排线】,当时只是接口清单里的一项——本节把它展开成整整一章的主角。1-2 的型号知识马上要派上用场:Pi 5 的相机接口换了针数,买错排线是新手第一大坑。7-1 说【一根 GPIO 针只能表达两种情况】,而相机一帧画面就是千万个像素——量大到必须走专用通道,这正是 CSI 存在的理由。10-2 起动手,本节只认不装。

一、相机是怎么接上去的:CSI 专用接口

树莓派板上有一条细长的黑色卡扣插座,丝印写着 CAM(有的板标 CAMERA),它就是 CSI——Camera Serial Interface(相机串行接口)。三个关键认识:

二、官方相机家族:一张表认全

型号 传感器 像素 招牌特点
Camera Module 3 Sony IMX708 约 1200 万 自动对焦(PDAF)+ HDR,一般项目首选
Camera Module 3 Wide Sony IMX708 约 1200 万 120° 广角+自动对焦,看全景/小车视角
Camera Module 3 NoIR Sony IMX708 约 1200 万 去掉红外滤光片,配红外灯就是夜视仪
Camera Module 2 Sony IMX219 约 800 万 老一代,手动调焦,便宜
HQ Camera Sony IMX477 约 1230 万 C/CS 卡口可换镜头,画质天花板
Global Shutter Camera Sony IMX296 约 160 万 全局快门,拍高速运动不变形(机器视觉)
AI Camera Sony IMX500 约 1230 万 传感器芯片里自带 AI 加速器,自己认东西

三个理解要点:

  1. NoIR 不是【红外相机】这么玄:普通相机有一片滤光片把红外光挡掉(不然颜色会怪),NoIR 把这片拿掉——白天拍出来偏色,晚上配红外补光灯反而看得见。夜视=NoIR + 红外灯,缺一不可
  2. 自动对焦是 Module 3 的分水岭:V2 之前都要拧镜头圈,V3 有一颗马达替你对焦,还能用命令指定对多远
  3. AI Camera 的智能在相机里、不在树莓派里:识别在传感器芯片上完成,树莓派只收结果——省 CPU,但玩法受芯片限制

三、排线与针数:本节最大的坑在【买线】上

主板 相机接口 排线
Pi 4 及更早的 B 系 15 针(1mm 间距) 随老相机附带的宽排线
Pi 5、Zero/Zero 2 W 22 针(0.5mm 间距) 细窄的迷你排线

四、CSI 与 USB:两条路线的预告

买相机时其实只有两条路:官方 CSI 模块(本节主角)和随便一个 USB 网络摄像头(10-6 的主角)。

两套软件栈互不相通——这句话是整章的地基,10-6 会专门对比。

五、怎么选:三问定型号

  1. 拍什么?日常拍照录像监控 → Camera Module 3;要看大范围 → Wide;夜里看 → NoIR + 红外灯;拍高速运动物(流水线、机械臂)→ Global Shutter
  2. 要不要换镜头?要微距、长焦、显微镜 → 只有 HQ Camera 有 C/CS 卡口
  3. 板子是什么?Pi 5/Zero 系先确认手里有没有 22 针排线,Pi 400/Pi 500 根本没有 CSI 口——只能走 USB(10-6)

六、动手 Demo:不通电,先把自己那套【接口户口】查清楚

全程不用插相机,只认板子:

# ① 看自己是哪块板(决定针数与排线)
cat /proc/device-tree/model; echo

# ② 数一眼板上的相机插座:找丝印 CAM/CAMERA 的黑色卡扣座
#    Pi 5 用户:应该找到两个(CAM0/CAM1),且比老板的插座更细密(22 针)

# ③ 拿出相机附带的排线,对比两端宽度:
#    接主板的一端必须与板上的插座针数一致,接相机的一端看模块自己的插座

看到什么算成功:第 ① 步打出板子型号(如 Raspberry Pi 5 Model B Rev 1.0);对照上面第三节的表,你能说出【我的板要用哪一种排线】。

读结果:这一步把 1-2 的型号知识和本节的排线表连成一条因果链——板型决定排线,排线决定能不能点亮。10-2 插上后如果认不到相机,第一件事就是回来重查这张户口。

七、30 秒实验:算一算【1200 万像素】到底多少

Camera Module 3 的最大静态分辨率是 4608 × 2592:

  1. 总像素是多少?
  2. 家族表里写【约 1200 万】,对得上吗?
  3. 顺手算一下 V2 的 3280 × 2464。

参考答案:1. 4608 × 2592 = 11,943,936 个像素。2. ≈ 1194 万,对得上(商品页标 12MP 是四舍五入的说法)。3. 3280 × 2464 = 8,081,920 ≈ 808 万,也就是【800 万像素】的来历——广告像素数 = 横向 × 纵向,自己一乘就拆穿。

八、常见误区

  1. 【CAM 和 DISP 座随便插,反正长得一样】 —— 插错口相机认不到。先看丝印再插。
  2. 【排线两面都一样,怎么插都行】 —— 插反不烧板,但认不到相机;方向照官方图(Pi 5 触点朝网口侧)。
  3. 【像素越高画质越好】 —— 画质还看传感器尺寸、镜头、光。160 万像素的 Global Shutter 在拍高速运动这件事上反而碾压 1200 万的普通模块——按需求选,不按数字选。
  4. 【老相机接新板=不兼容】 —— 相机没问题,差一根转接排线(15 转 22 针)。
  5. 【NoIR 就是夜视仪】 —— NoIR 只是把红外滤光片拆了,夜里必须另配红外补光灯,否则黑上加黑。
自测三问(点开对答案) 1. CSI 和 GPIO 都在板子上,为什么相机不走 GPIO? 2. Pi 5 接 V2 相机,还要买什么? 3. 想做【夜里看院子】的项目,选哪个模块、还差什么? **参考答案** 1. 一帧画面是千万级像素的高速连续数据,GPIO 一根针只能表达高低两种电平、带宽完全不够——相机走 **MIPI CSI-2 专用通道直连 SoC**,低延迟高带宽。 2. 一根 **15 转 22 针的转接排线**(Pi 5 是 22 针迷你座,V2 随附的是 15 针宽排线)。 3. **Camera Module 3 NoIR**(或 Wide NoIR),还差**红外补光灯**——没有补光,NoIR 夜里也看不见。

相关笔记