第一个硬件项目

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


本章节以Quectel Pi开发套件支持的配件IMX219 摄像头作为例子,带您快速熟悉Quectel Pi的外设调试。


用 IMX219 摄像头拍第一张照片

如果您没有IMX219摄像头模块,可跳过此章节。更详细使用摄像头教程:MIPI摄像头

安装摄像头

  1. 关闭开发板电源。

  2. 找到板上标注为 CAM0CAM1 的 MIPI CSI 排线接口。

  3. 将 IMX219 摄像头的排线金手指朝下,插入接口并扣紧卡扣。

  4. 重新上电启动。

注意:排线方向不可插反,金手指面朝电路板方向(朝下)。安装和拆卸排线时务必先断电。

image
image

控制摄像头(Gnome)

摄像头可以拍照/录制成文件查看,也可以直接在显示屏桌面预览:

设置桌面环境变量

M1的Debian系统默认桌面是Gnome,复制下方命令行代码,在adb终端执行即可:

#如不在桌面上预览则不需要
#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. 在设备终端运行以下命令:

# 配置摄像头输出 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
  1. 图像文件保存在/tmp/目录下

录像

  1. 在设备终端运行以下命令:

# 配置摄像头输出 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
  1. MP4文件保存在/tmp/目录下

  2. 如果要停止摄像头录制,请按下CTRL+C