Difference between revisions of "VEYE CS Camera on Radxa Boards/zh"
(→概述) |
|||
(One intermediate revision by the same user not shown) | |||
Line 42: | Line 42: | ||
====概述==== | ====概述==== | ||
本章节描述怎样更新RK356x系统以支持我们的摄像头模组。我们提供了deb安装包,可以直接安装。 | 本章节描述怎样更新RK356x系统以支持我们的摄像头模组。我们提供了deb安装包,可以直接安装。 | ||
− | + | ====烧写Radxa官方标准系统==== | |
参考Radxa文档,烧写标准系统。 | 参考Radxa文档,烧写标准系统。 | ||
− | + | ====使用编译好的debain安装包==== | |
在RK35xx板子上,执行: | 在RK35xx板子上,执行: | ||
Line 60: | Line 60: | ||
如果版本不匹配,需要从源代码进行编译。 | 如果版本不匹配,需要从源代码进行编译。 | ||
− | + | ===系统状态检测=== | |
完成系统安装后,在Radxa板端执行以下命令来检测是否正确连接摄像头。 | 完成系统安装后,在Radxa板端执行以下命令来检测是否正确连接摄像头。 | ||
Line 82: | Line 82: | ||
正确识别摄像头之后,MIPI-CSI2接口的摄像头识别为/dev/video0。对于Radxa zero 3W,相机挂载在i2c-2。 | 正确识别摄像头之后,MIPI-CSI2接口的摄像头识别为/dev/video0。对于Radxa zero 3W,相机挂载在i2c-2。 | ||
− | + | ===应用范例=== | |
− | + | ====v4l2-ctl==== | |
− | + | =====安装v4l2-utils===== | |
<code>sudo apt-get install v4l-utils</code> | <code>sudo apt-get install v4l-utils</code> | ||
− | + | =====列出相机支持的数据格式===== | |
<code>v4l2-ctl --list-formats-ext</code> | <code>v4l2-ctl --list-formats-ext</code> | ||
− | + | =====抓取图片===== | |
<code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv</code> | <code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv</code> | ||
Line 96: | Line 96: | ||
可以使用yuv player或者vooya等软件播放图片。 | 可以使用yuv player或者vooya等软件播放图片。 | ||
− | + | =====查看帧率===== | |
<code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-count=-1 --stream-to=/dev/null</code> | <code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-count=-1 --stream-to=/dev/null</code> | ||
− | + | ====yavta示例==== | |
<code>git clone <nowiki>https://github.com/veyeimaging/yavta.git</nowiki></code> | <code>git clone <nowiki>https://github.com/veyeimaging/yavta.git</nowiki></code> | ||
Line 104: | Line 104: | ||
<code>./yavta -c1 -Fnv12-1920x1080.yuv --skip 0 -f NV12 -s 1920x1080 /dev/video0</code> | <code>./yavta -c1 -Fnv12-1920x1080.yuv --skip 0 -f NV12 -s 1920x1080 /dev/video0</code> | ||
− | + | ====gstreamer应用范例==== | |
我们提供了几个gstreamer例程,实现了预览,抓拍,录像等功能。详见github上的[https://github.com/veyeimaging/rk356x_radxa/tree/main/linux/samples samples]目录。 | 我们提供了几个gstreamer例程,实现了预览,抓拍,录像等功能。详见github上的[https://github.com/veyeimaging/rk356x_radxa/tree/main/linux/samples samples]目录。 | ||
− | + | ====OpenCV的导入==== | |
首先安装OpenCV: | 首先安装OpenCV: | ||
Line 112: | Line 112: | ||
我们提供了几个将摄像头数据导入opencv的例程。详见github上的[https://github.com/veyeimaging/rk356x_radxa/tree/main/linux/samples samples]目录。 | 我们提供了几个将摄像头数据导入opencv的例程。详见github上的[https://github.com/veyeimaging/rk356x_radxa/tree/main/linux/samples samples]目录。 | ||
− | + | ===从源码编译驱动和dtb=== | |
*RK356x | *RK356x |
Latest revision as of 14:48, 25 April 2024
怎样在Radxa的RK35XX板子上使用VEYE和CS系列摄像机
1 概述
VEYE系列相机是我们推出的视频流模式MIPI摄像机。本文以Radxa的ZERO 3W主板为例,介绍怎样将VEYE系列摄像机接入RK3566/RK3568/RK3588系统。
我们提供了Linux操作系统下的驱动。
1.1 支持的摄像机模组
系列 | 型号 | 状态 |
---|---|---|
VEYE系列 | VEYE-MIPI-IMX327S | 完成 |
VEYE系列 | VEYE-MIPI-IMX462 | 完成 |
VEYE系列 | VEYE-MIPI-IMX385 | 完成 |
此外,在Linux系统下,已经调通Fpdlink连接模式的驱动。
2 硬件准备及安装
Radxa ZERO 3W提供了兼容树莓派的22Pin端子,无需使用转接板即可将我们的相机安装到其主板上。
2.1 摄像机与Radxa ZERO 3W的主板连接
二者使用15转22P的FFC同面线连接,注意接触面向外。
3 github库介绍
https://github.com/veyeimaging/rk35xx_radxa
包括以下主要内容:
- driver和dts源码
- i2c通信工具集
- 应用层demo
此外,在releases中,提供了编译好的linux内核安装包。
4 更新主板的Radxa Debain系统
4.1 概述
本章节描述怎样更新RK356x系统以支持我们的摄像头模组。我们提供了deb安装包,可以直接安装。
4.2 烧写Radxa官方标准系统
参考Radxa文档,烧写标准系统。
4.3 使用编译好的debain安装包
在RK35xx板子上,执行:
下载https://github.com/veyeimaging/rk35xx_radxa/releases/中最新的rk356x_radxa_zero3w.tar.gz。
tar -xavf rk356x_radxa_zero3w.tar.gz
cd rk356x_radxa_zero3w/released_images/cam2m
sudo dpkg -i linux-headers-5.10.160-36-rk356x_5.10.160-36_arm64_cam2m.deb
sudo dpkg -i linux-image-5.10.160-36-rk356x_5.10.160-36_arm64_cam2m.deb
sudo reboot
如果版本不匹配,需要从源代码进行编译。
5 系统状态检测
完成系统安装后,在Radxa板端执行以下命令来检测是否正确连接摄像头。
- VEYE-MIPI-XXX
sudo dmesg | grep veye
应当有类似如下提示:
veyecam2m 2-003b: camera id is veyecam2m
veyecam2m 2-003b: sensor is IMX327
- 执行如下命令检查video0设备节点
ls /dev/video0
可以看到
video0
正确识别摄像头之后,MIPI-CSI2接口的摄像头识别为/dev/video0。对于Radxa zero 3W,相机挂载在i2c-2。
6 应用范例
6.1 v4l2-ctl
6.1.1 安装v4l2-utils
sudo apt-get install v4l-utils
6.1.2 列出相机支持的数据格式
v4l2-ctl --list-formats-ext
6.1.3 抓取图片
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv
对于RK3566,还可以:
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=uyvy-1920x1080.yuv
可以使用yuv player或者vooya等软件播放图片。
6.1.4 查看帧率
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-count=-1 --stream-to=/dev/null
6.2 yavta示例
git clone https://github.com/veyeimaging/yavta.git
cd yavta;make
./yavta -c1 -Fnv12-1920x1080.yuv --skip 0 -f NV12 -s 1920x1080 /dev/video0
6.3 gstreamer应用范例
我们提供了几个gstreamer例程,实现了预览,抓拍,录像等功能。详见github上的samples目录。
6.4 OpenCV的导入
首先安装OpenCV:
sudo apt install python3-opencv
我们提供了几个将摄像头数据导入opencv的例程。详见github上的samples目录。
7 从源码编译驱动和dtb
- RK356x
https://github.com/veyeimaging/rk35xx_radxa/tree/main/linux/drivers/rk356x
8 i2c脚本使用说明
由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。
https://github.com/veyeimaging/rk35xx_radxa/tree/main/i2c_cmd
注意脚本使用中,采用-b [i2cbus]参数来指明摄像头使用的i2c bus。
9 参考资料
- Radxa Zero 3W Manual
https://docs.radxa.com/zero/zero3
- BSP toolkit
https://radxa-repo.github.io/bsp/
10 本文修改记录
- 2024-04-24
发布第一个版本。