Difference between revisions of "VEYE Camera on Orange Pi's RK35XX Boards/zh"
(8 intermediate revisions by the same user not shown) | |||
Line 29: | Line 29: | ||
二者使用15P的FFC异面面线连接,注意接触面方向。请注意,只有下图所示的CAM1支持VEYE相机。 | 二者使用15P的FFC异面面线连接,注意接触面方向。请注意,只有下图所示的CAM1支持VEYE相机。 | ||
[[File:OrangePi CM4 to VEYE cam.jpg|center|thumb|600x600px|OrangePi CM4 to VEYE cam]] | [[File:OrangePi CM4 to VEYE cam.jpg|center|thumb|600x600px|OrangePi CM4 to VEYE cam]] | ||
− | + | ||
− | ====相机与OrangePi CM5的连接==== | + | ==== 相机与OrangePi CM5的连接 ==== |
二者使用15P的FFC异面面线连接,注意接触面方向。OrangePi CM5最多支持4个VEYE摄像头,下图是同时连接多种摄像头的硬件连接方法展示。 | 二者使用15P的FFC异面面线连接,注意接触面方向。OrangePi CM5最多支持4个VEYE摄像头,下图是同时连接多种摄像头的硬件连接方法展示。 | ||
[[File:OrangePi CM5 to all cam overview.jpg|center|thumb|600x600px|OrangePi CM5 to all cam overview]] | [[File:OrangePi CM5 to all cam overview.jpg|center|thumb|600x600px|OrangePi CM5 to all cam overview]] | ||
[[File:OrangePi CM5 to all cam backview.jpg|center|thumb|600x600px|OrangePi CM5 to all cam backview]] | [[File:OrangePi CM5 to all cam backview.jpg|center|thumb|600x600px|OrangePi CM5 to all cam backview]] | ||
− | + | ||
− | ===github库介绍=== | + | === github库介绍 === |
https://github.com/veyeimaging/rk35xx_veye_bsp | https://github.com/veyeimaging/rk35xx_veye_bsp | ||
Line 52: | Line 52: | ||
参考OrangePi CM4[http://www.orangepi.cn/orangepiwiki/index.php/Orange_Pi_CM4 用户手册],或者OrangePi CM5的[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-CM5.html 用户手册]烧写系统。当然,也可以使用通用的dpkg命令,安装deb包。 | 参考OrangePi CM4[http://www.orangepi.cn/orangepiwiki/index.php/Orange_Pi_CM4 用户手册],或者OrangePi CM5的[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-CM5.html 用户手册]烧写系统。当然,也可以使用通用的dpkg命令,安装deb包。 | ||
+ | |||
+ | === 系统状态检测 === | ||
+ | 完成系统安装后,系统上电。在主板端执行以下命令来检测是否正确连接相机。 | ||
+ | |||
+ | <code>sudo dmesg | grep veye</code> | ||
+ | |||
+ | ==== CM4 ==== | ||
+ | 应当有类似如下提示: | ||
+ | |||
+ | <code>veyecam2m 1-003b: camera id is veyecam2m</code> | ||
+ | |||
+ | <code>veyecam2m 1-003b: sensor is IMX462</code> | ||
+ | |||
+ | 执行如下命令,检查video设备节点 | ||
+ | |||
+ | <code>ls /dev/video0</code> | ||
+ | |||
+ | 可以看到 | ||
+ | |||
+ | <code>video0</code> | ||
+ | |||
+ | 正确识别摄像头之后,相机被识别为/dev/video0。 | ||
+ | |||
+ | 各个信息对应关系如下表: | ||
+ | {| class="wikitable" | ||
+ | !CAM num | ||
+ | !I2C | ||
+ | !media node | ||
+ | !video node | ||
+ | |- | ||
+ | |1 | ||
+ | |1 | ||
+ | |veyecam2m 1-003b | ||
+ | |/dev/video0 | ||
+ | |} | ||
+ | ==== CM5 ==== | ||
+ | CM5 支持接入4个相机, dmesg信息中包含如下内容: | ||
+ | |||
+ | <code>veyecam2m 3-003b: camera id is veyecam2m</code> | ||
+ | |||
+ | <code>veyecam2m 3-003b: sensor is IMX462</code> | ||
+ | |||
+ | <code>veyecam2m 4-003b: camera id is veyecam2m</code> | ||
+ | |||
+ | <code>veyecam2m 4-003b: sensor is IMX462</code> | ||
+ | |||
+ | <code>veyecam2m 5-003b: camera id is veyecam2m</code> | ||
+ | |||
+ | <code>veyecam2m 5-003b: sensor is IMX462</code> | ||
+ | |||
+ | <code>veyecam2m 6-003b: camera id is veyecam2m</code> | ||
+ | |||
+ | <code>veyecam2m 6-003b: sensor is IMX462</code> | ||
+ | |||
+ | 各个信息对应关系如下表: | ||
+ | {| class="wikitable" | ||
+ | !CAM num | ||
+ | !I2C | ||
+ | !media node | ||
+ | !video node | ||
+ | |- | ||
+ | |1 | ||
+ | |4 | ||
+ | |veyecam2m 4-003b | ||
+ | |/dev/video22 | ||
+ | |- | ||
+ | |2 | ||
+ | |3 | ||
+ | |veyecam2m 3-003b | ||
+ | |/dev/video33 | ||
+ | |- | ||
+ | |3 | ||
+ | |5 | ||
+ | |veyecam2m 5-003b | ||
+ | |/dev/video11 | ||
+ | |- | ||
+ | |4 | ||
+ | |6 | ||
+ | |veyecam2m 6-003b | ||
+ | |/dev/video0 | ||
+ | |} | ||
+ | ===应用范例=== | ||
+ | ==== v4l2-ctl==== | ||
+ | 下面的例子中/dev/video0可以按需修改为自己想要操作的相机对应的video node。 | ||
+ | |||
+ | =====安装v4l2-utils===== | ||
+ | <code>sudo apt-get install v4l-utils</code> | ||
+ | ===== 列出相机支持的数据格式===== | ||
+ | <code>v4l2-ctl --list-formats-ext -d /dev/video0</code> | ||
+ | =====抓取图片===== | ||
+ | <code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv -d /dev/video0</code> | ||
+ | |||
+ | 对于RK3566,还可以: | ||
+ | |||
+ | <code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=100 --stream-to=uyvy-1920x1080.yuv -d /dev/video0</code> | ||
+ | |||
+ | 可以使用yuv player或者vooya等软件播放图片。 | ||
+ | =====查看帧率===== | ||
+ | <code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-count=-1 --stream-to=/dev/null -d /dev/video0</code> | ||
+ | ====yavta示例==== | ||
+ | <code>git clone <nowiki>https://github.com/veyeimaging/yavta.git</nowiki></code> | ||
+ | |||
+ | <code>cd yavta;make</code> | ||
+ | |||
+ | <code>./yavta -c1 -Fnv12-1920x1080.yuv --skip 0 -f NV12 -s 1920x1080 /dev/video0</code> | ||
+ | ====gstreamer应用范例==== | ||
+ | 我们提供了几个gstreamer例程,实现了预览,抓拍,录像等功能。详见github上的[https://github.com/veyeimaging/rk35xx_veye_bsp/tree/main/samples samples]目录。 | ||
+ | ====OpenCV的导入==== | ||
+ | 首先安装OpenCV: | ||
+ | |||
+ | <code>sudo apt install python3-opencv</code> | ||
+ | |||
+ | 我们提供了几个将摄像头数据导入opencv的例程。详见github上的[https://github.com/veyeimaging/rk35xx_veye_bsp/tree/main/samples samples]目录。 | ||
+ | ===从源码编译驱动和dtb=== | ||
+ | https://github.com/veyeimaging/rk35xx_orangepi/tree/main/linux | ||
+ | ===i2c脚本使用说明=== | ||
+ | 由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。 | ||
+ | |||
+ | https://github.com/veyeimaging/rk35xx_veye_bsp/tree/main/i2c_cmd | ||
+ | |||
+ | 注意脚本使用中,采用-b [i2cbus]参数来指明摄像头使用的i2c bus。 | ||
+ | |||
+ | [https://wiki.veye.cc/index.php/VEYE-MIPI-290/327_i2c/zh VEYE系列参数控制软件包使用说明] | ||
+ | ===参考资料=== | ||
+ | |||
+ | *OrangePi CM4 | ||
+ | |||
+ | http://www.orangepi.cn/orangepiwiki/index.php/Orange_Pi_CM4 | ||
+ | |||
+ | *OrangePi CM5 | ||
+ | |||
+ | http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-CM5.html | ||
+ | ===本文修改记录=== | ||
+ | |||
+ | *2025-01-09 | ||
+ | |||
+ | 发布第一个版本。<br /> |
Latest revision as of 15:22, 9 January 2025
怎样在Orange Pi的RK35XX板子上使用VEY系列摄像机
1 概述
VEYE系列相机是我们推出的视频流模式MIPI摄像机。本文以Orange Pi的CM4和CM5主板为例,介绍怎样将VEYE系列摄像机接入RK3566/RK3568/RK3588系统。
我们提供了Linux操作系统下的驱动。
1.1 支持的摄像机模组
系列 | 型号 | 状态 |
---|---|---|
VEYE系列 | VEYE-MIPI-IMX327S | 完成 |
VEYE系列 | VEYE-MIPI-IMX462 | 完成 |
VEYE系列 | VEYE-MIPI-IMX385 | 完成 |
2 硬件准备及安装
我们使用Orange Pi的CM4和CM5的官方底板,这两个底板提供了兼容树莓派的15Pin端子,无需使用转接板即可将我们的相机安装到其主板上。
2.1 相机与OrangePi CM4的连接
二者使用15P的FFC异面面线连接,注意接触面方向。请注意,只有下图所示的CAM1支持VEYE相机。
2.2 相机与OrangePi CM5的连接
二者使用15P的FFC异面面线连接,注意接触面方向。OrangePi CM5最多支持4个VEYE摄像头,下图是同时连接多种摄像头的硬件连接方法展示。
3 github库介绍
https://github.com/veyeimaging/rk35xx_veye_bsp
https://github.com/veyeimaging/rk35xx_orangepi
包括以下主要内容:
- driver和dts源码
- i2c通信工具集
- 应用层demo
此外,在releases中,提供了编译好的烧写镜像和linux内核的deb安装包。
4 更新主板的Ubuntu系统
我们提供了发布系统的烧写镜像,同时提供了linux内核的deb安装包。
参考OrangePi CM4用户手册,或者OrangePi CM5的用户手册烧写系统。当然,也可以使用通用的dpkg命令,安装deb包。
5 系统状态检测
完成系统安装后,系统上电。在主板端执行以下命令来检测是否正确连接相机。
sudo dmesg | grep veye
5.1 CM4
应当有类似如下提示:
veyecam2m 1-003b: camera id is veyecam2m
veyecam2m 1-003b: sensor is IMX462
执行如下命令,检查video设备节点
ls /dev/video0
可以看到
video0
正确识别摄像头之后,相机被识别为/dev/video0。
各个信息对应关系如下表:
CAM num | I2C | media node | video node |
---|---|---|---|
1 | 1 | veyecam2m 1-003b | /dev/video0 |
5.2 CM5
CM5 支持接入4个相机, dmesg信息中包含如下内容:
veyecam2m 3-003b: camera id is veyecam2m
veyecam2m 3-003b: sensor is IMX462
veyecam2m 4-003b: camera id is veyecam2m
veyecam2m 4-003b: sensor is IMX462
veyecam2m 5-003b: camera id is veyecam2m
veyecam2m 5-003b: sensor is IMX462
veyecam2m 6-003b: camera id is veyecam2m
veyecam2m 6-003b: sensor is IMX462
各个信息对应关系如下表:
CAM num | I2C | media node | video node |
---|---|---|---|
1 | 4 | veyecam2m 4-003b | /dev/video22 |
2 | 3 | veyecam2m 3-003b | /dev/video33 |
3 | 5 | veyecam2m 5-003b | /dev/video11 |
4 | 6 | veyecam2m 6-003b | /dev/video0 |
6 应用范例
6.1 v4l2-ctl
下面的例子中/dev/video0可以按需修改为自己想要操作的相机对应的video node。
6.1.1 安装v4l2-utils
sudo apt-get install v4l-utils
6.1.2 列出相机支持的数据格式
v4l2-ctl --list-formats-ext -d /dev/video0
6.1.3 抓取图片
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv -d /dev/video0
对于RK3566,还可以:
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=100 --stream-to=uyvy-1920x1080.yuv -d /dev/video0
可以使用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 -d /dev/video0
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
https://github.com/veyeimaging/rk35xx_orangepi/tree/main/linux
8 i2c脚本使用说明
由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。
https://github.com/veyeimaging/rk35xx_veye_bsp/tree/main/i2c_cmd
注意脚本使用中,采用-b [i2cbus]参数来指明摄像头使用的i2c bus。
9 参考资料
- OrangePi CM4
http://www.orangepi.cn/orangepiwiki/index.php/Orange_Pi_CM4
- OrangePi CM5
10 本文修改记录
- 2025-01-09
发布第一个版本。