介绍
添加一个摄像头模组嵌入式系统开启了机器视觉、安全、机器人和物联网。与只需插入 USB 网络摄像头的台式电脑不同,嵌入式集成需要仔细考虑接口、驱动程序、功率和尺寸。本文介绍了集成不同相机类型的实际步骤 - 从小型相机模组与 MIPI CSI-2,到CMOS相机模组与USB,甚至如何UART红外传感器模块可以与相机一起工作。
第 1 步:选择合适的摄像头模块
首先,选择一个传感器摄像头模组适合您的嵌入式系统的限制。
- 界面– 常见选项:MIPI CSI-2(低延迟、低功耗、直接连接处理器)、USB(UVC、即插即用、更长的电缆)或并行(更多引脚、较旧)。对于大多数嵌入式系统,MIPI 是最好的。
- 解决– 720p 或 1080p 足以完成许多任务; 4K需要强大的处理器。
- 物理尺寸 – A 小型相机模组(例如,8 mm × 8 mm)适合紧凑型设备。对于狭小的空间,存在 COB 板级模块。
- 灵敏度– 对于弱光或红外,选择CMOS相机模组具有背照式 (BSI) 像素。
注:AUART红外传感器模块不是相机。它通过 UART 输出距离或存在数据。您可以添加一个来检测运动并唤醒相机。
第 2 步:了解硬件接口
- MIPI CSI-2– 大多数嵌入式处理器(Raspberry Pi、i.MX、STM32MP、Jetson)都有专用的 CSI 连接器。您需要带状电缆和匹配的连接器。这树莓派摄像头模组2是一个典型的例子——它直接插入 Pi 的 CSI 端口。
- USB– 如果您的处理器有 USB 主机(例如 Raspberry Pi、BeagleBone),则可以使用 USB 摄像头模块。 Linux 内核的 UVC 驱动程序会自动处理它。
- 并行/DVP– 较旧或低功耗的 MCU(如某些 STM32F4)使用并行接口。这需要许多 GPIO 引脚和仔细的计时。
- UART红外传感器模块– 将其连接到处理器上的 UART (TX/RX)。读取其串行数据以获得距离或存在值。
步骤3:准备操作系统和驱动程序
- Linux– 对于 MIPI 相机,启用正确的设备树覆盖(例如,在 Raspberry Pi 上:dtoverlay=imx219)。 USB 摄像头使用内置的 uvcvideo 驱动程序。使用Video4Linux(V4L2)进行捕获。命令:v4l2-ctl --list-devices。
- 安卓– MIPI 相机通过相机 HAL 支持。供应商 BSP 包括驱动程序。
- RTOS(FreeRTOS、Zephyr)– 您可能需要编写一个驱动程序。更简单的并行相机更容易。
- 对于一个UART红外传感器模块,只需从串行设备读取字符并解析它们。
第四步:物理整合
- 安装– 确保小型相机模组用螺丝或粘合剂。将镜头与任何窗户对齐。
- 电缆– MIPI 色带很脆弱;保持它们短并避免急弯。 USB 电缆可以更长,但需要消除应力。
- 力量– 检查相机的电压(通常为 3.3 V 或 5 V)。有些模块需要多个电源。一个CMOS相机模组具有内置稳压器的可能只需要 3.3 V。
- 电磁干扰– MIPI 信号可能会造成干扰。使用屏蔽电缆和接地层。
第5步:编写软件来访问相机
- 使用V4L2(Linux)– 打开/dev/videoX,设置格式(例如,V4L2_PIX_FMT_YUYV 或MJPEG)、请求缓冲区并开始流式传输。许多人使用 libcamera 或 GStreamer。
- 在带有树莓派摄像头模块 2 的树莓派上– 使用 libcamera-jpeg 捕获静态图像:
- libcamera-jpeg -o test.jpg
- 带Python的USB摄像头– OpenCV可以访问任何UVC相机:cap=cv2.VideoCapture(0)
- 读取UART红外传感器模块– 以正确的波特率打开串行端口(例如/dev/ttyS0)并读取数据帧。
第 6 步:针对嵌入式约束进行优化
降低帧速率(例如,5-15 fps)以节省 CPU 和电量。
分辨率较低——全高清通常有点过分;使用较小的投资回报率。
使用感兴趣区域 (ROI) – 只读传感器的一部分。
用另一个传感器触发 – aUART红外传感器模块仅当检测到运动时才能唤醒相机。
第 7 步:调试常见问题
- 没有 /dev/videoX– 检查 dmesg|grep 视频。对于 MIPI,验证设备树覆盖。
- 绿色/粉色图像– 颜色格式错误或未设置白平衡。
- 闪烁– 调整曝光或自动增益控制。
- 高CPU– 使用硬件编码 (H.264) 或较低分辨率。
示例:Raspberry Pi + 树莓派摄像头模块 2 + UART 红外传感器
将相机连接至 CSI 端口。
将 UART 红外距离传感器连接到 GPIO UART 引脚。
编写一个读取传感器的 Python 脚本。当距离低于阈值时,从相机捕获 JPEG 图像。
这就是一个简单的运动触发相机。
结论
集成一个摄像头模组进入嵌入式系统需要选择正确的传感器摄像头模组(接口、尺寸、分辨率)、正确连接(MIPI 或 USB)、配置操作系统/驱动程序以及编写高效的捕获软件。一个小型相机模组非常适合紧凑型设计。一个CMOS相机模组提供现代的低功耗性能。这树莓派摄像头模组2是一个简单的原型设计选择。添加一个UART红外传感器模块实现智能唤醒或数据融合。通过仔细规划,您可以为任何嵌入式设备添加可靠的视觉。
联系诚诚定制摄像头模组集成支持。





