Difference between revisions of "VEYE Camera on Orange Pi's RK35XX Boards/zh"

From wiki_veye
Jump to navigation Jump to search
 
(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]]
<br />
+
 
====相机与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]]
<br />
+
 
===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

English

怎样在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相机。

OrangePi CM4 to VEYE cam

2.2 相机与OrangePi CM5的连接

二者使用15P的FFC异面面线连接,注意接触面方向。OrangePi CM5最多支持4个VEYE摄像头,下图是同时连接多种摄像头的硬件连接方法展示。

OrangePi CM5 to all cam overview
OrangePi CM5 to all cam backview

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。

VEYE系列参数控制软件包使用说明

9 参考资料

  • 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

10 本文修改记录

  • 2025-01-09

发布第一个版本。