# 第一个硬件项目 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- 本章节以Quectel Pi开发套件支持的配件IMX219 摄像头作为例子,带您快速熟悉Quectel Pi的外设调试。 --- # 用 IMX219 摄像头拍第一张照片 如果您没有IMX219摄像头模块,可跳过此章节。更详细使用摄像头教程:[MIPI摄像头](<../../使用指南/摄像头/MIPI摄像头/MIPI摄像头.md>) ## 安装摄像头 1. 关闭开发板电源。 2. 找到板上标注为 **CAM0** 或 **CAM1** 的 MIPI CSI 排线接口。 3. 将 IMX219 摄像头的排线金手指朝下,插入接口并扣紧卡扣。 4. 重新上电启动。 > **注意**:排线方向不可插反,金手指面朝电路板方向(朝下)。安装和拆卸排线时务必先断电。
image
image
## 控制摄像头(Gnome) 摄像头可以拍照/录制成文件查看,也可以直接在显示屏桌面预览: ### 设置桌面环境变量 M1的Debian系统默认桌面是Gnome,复制下方命令行代码,在adb终端执行即可: ```bash #如不在桌面上预览则不需要 #gnome桌面 export GST_V4L2_FORCE_LIBV4L2=0 export WAYLAND_DISPLAY=wayland-0 export XDG_RUNTIME_DIR=/run/user/1000 ``` ### 拍照 用 camera=0/1 来区分CSI卡槽所插入的摄像头,camera=0 代表第一个CSI 卡槽,camera=1 代表第二个 CSI 卡槽。下文命令以 camera0 为例,若接入 camera1,需修改摄像头对应节点位置。 | **

摄像头
** | **

对应节点位置
** | | --- | --- | |

camera0
|

/dev/video33
| |

camera1
|

/dev/video51
| 1. 在设备终端运行以下命令: ```bash # 配置摄像头输出 1640×1232 的 NV12 原始数据 v4l2-ctl -d /dev/video33 --set-fmt-video=width=1640,height=1232,pixelformat=NV12 # 跳过 5 帧后,用 mmap 方式采集 1 帧,保存为 YUV 文件。 v4l2-ctl -d /dev/video33 --stream-mmap=2 --stream-skip=5 --stream-count=1 --stream-to=/tmp/raw_cam1.yuv # 用 FFmpeg 将此原始 YUV 帧编码为 JPEG 图片 ffmpeg -f rawvideo -pix_fmt nv12 -s 1640x1232 -i /tmp/raw_cam1.yuv -frames:v 1 -q:v 2 /tmp/photo_cam1.jpg ``` 2. 图像文件保存在/tmp/目录下 ### 录像 1. 在设备终端运行以下命令: ```bash # 配置摄像头输出 1640×1232 分辨率、NV12 格式的原始数据。 v4l2-ctl -d /dev/video33 --set-fmt-video=width=1640,height=1232,pixelformat=NV12 # 使用 4 个缓冲区,跳过前 10 帧,连续采集 60 帧原始 YUV 数据,保存为文件。 v4l2-ctl -d /dev/video33 --stream-mmap=4 --stream-skip=10 --stream-count=60 --stream-to=/tmp/rec_cam0.yuv # 将原始 YUV 序列以 30fps 帧率解读,用 H.264 编码器压缩,编码预设为 fast,视频码率设为 8 Mbps,最终封装成 MP4 视频文件。 ffmpeg -f rawvideo -pix_fmt nv12 -s 1640x1232 -framerate 30 \ -i /tmp/rec_cam0.yuv -c:v h264 -preset fast -b:v 8M /tmp/rec_cam0.mp4 ``` 2. MP4文件保存在/tmp/目录下 3. 如果要停止摄像头录制,请按下CTRL+C