VEYE MIPI 290/327 for Nano Pi/zh

From wiki_veye
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

English

1 本文已废弃,请参考新版本

如何在友善之臂的Nano Pi M4平台使用VEYE-MIPI-290/327摄像头模组

2 概述

本篇文章讲述VEYE-MIPI-290/327 摄像头模组接入RK3399平台的具体详细步骤及使用说明。以VEYE-MIPI-290/327 摄像头模组接入NanoPi M4为例来详细讲解接入的具体步骤及使用说明。源代码及使用和RK3399平台的介绍都在本文中介绍。

3 硬件准备及安装

原材料:NanoPi M4板,HDMI显示器,网线,Micro SD卡,FFC异面线,NanoPi M4电源线,镜头,摄像头主板,NanoPi转接板(转接板包括树莓派转接板以及Nano Pi转接板,详细说明请见Adapter Board for Raspberry PiAdapter Board for Rockchip

如图所示,摄像头主板加Nano Pi转接板构成摄像头模组,摄像头模组通过FFC异面线连接到NanoPi M4板上MIPI CSI-2接口,Micro SD卡插入卡槽,HDMI显示器接入NanoPi M4板,网线插入网线接口,NanoPi M4电源线插入电源接口为NanoPi M4板提供电源。

VEYE-MIPI-290/327 摄像头模组与NanoPi M4板连接示意图
NanoPi M4板插接示意图
VEYE-MIPI-290/327 摄像头模组插接示意图


注:NanoPi M4板的MIPI-CSI2接口说明

接口 I2C DPHY facing 复用
MIPI-CSI1 1 RX0 back NA
MIPI-CSI2 2 RX1 front TX1

4 Ubuntu系统安装

  • 下载系统镜像文件

我们在20190308发布的友善之臂friendlydesktop系统版本基础上,编译好了新的镜像(包括resource.img和kernel.img)。点击链接下载镜像压缩文件。

rk3399-sd-friendlydesktop-bionic-4.4-veye-arm64-20190423.img.7z为镜像压缩文件
  • 烧录镜像文件

烧录镜像具体方法:利用SD Card Formatter软件将Micro SD卡格式化(格式化前有必要将需要的文件进行备份),将下载后的压缩文件解压,利用Win32 Disk Imager软件将解压后的镜像文件写入Micro SD卡。

5 视频流接口使用

  • 使用V4L2

rk_ispdemo为直接使用C语言调用V4L2接口,也比较方便进行智能分析。源代码路径:

linuxsdk-friendlyelec\external\camera_engine_cifisp\rkisp-demo

  • 使用gstreamer

可以实现抓拍、录像、预览等功能。视频流接口具体使用方法,详见:nanopi官方资料

6 视频控制接口软件包使用

6.1 下载及传输软件包

  • 执行命令行

git clone https://github.com/veyeimaging/nanopi4.git

直接将文件复制到Ubuntu系统中。

  • 点击链接下载视频控制接口软件包
i2c为视频控制接口软件包

利用samba将软件包文件传输至Ubuntu系统中,也可用U盘将软件包文件拷贝至Ubuntu系统中。

6.2 使用视频控制接口软件包

  • Ubuntu系统用户登陆切换到root账户,执行命令行

i2cdetect [value]

value description
1 MIPI-CSI1
2 MIPI-CSI2

检测硬件连接是否正常,VEYE290/327摄像头模组的产品I2C地址为0x3b。

  • 确定硬件连接正常后,在root账户下执行脚本命令

veye_mipi_i2c_rk.sh

视频控制接口软件包选项具体使用操作详见:I2C脚本使用说明

7 源代码及使用

7.1 kernel驱动源代码

  1. 共三个文件,包括:veye_camera_module.c veye_camera_module.h veye290_v4l2-i2c-subdev.c 放置到linux源码的drivers/media/i2c/soc_camera/rockchip目录下。 注:VEYE327的驱动源码与290完全一致。
  2. Kconfig drivers/media/i2c/soc_camera/rockchip/Kconfig,增加veye产品类型——VIDEO_VEYE290。 在make menuconfig中选中VEYE290。 路径:> Device Drivers > Multimedia support > Sensors used on soc_camera driver 。
  3. Makefile drivers/media/i2c/soc_camera/rockchip/Makefile obj-$(CONFIG_VIDEO_VEYE290) += veye_camera_module.o rk_camera_module.o veye290_v4l2-i2c-subdev.o

7.2 DTS文件

只需修改一个dit文件——rk3399-nanopi4-cifisp.dtsi。

路径:kernel/arch/arm64/boot/dts/rockchip

veye290.xml

文件请放到/etc/cam_iq下。

8 参考资料

8.1 RK3399介绍

RK3399是瑞芯微出品的一款高性价比的运算平台SoC。在业内拥有广泛的应用。

RK3399的资料详细,开放度高,备受欢迎。 重点资料列举如下:

wiki

github

docs

采用RK3399的主板也非常丰富,可供选择。各家软件均为基于瑞芯微资料制作,所以本文的内容也具有一定的普适性,不局限于NanoPi4系列。

8.2 NanoPi M4介绍

NanoPi M4是友善之臂出品的基于RK3399的开发板。在爱好者和行业内拥趸极多。其资料开放,易于开发,wiki详细周到。

友善之臂也维护了自己github

我们在开发的时候,采用的是友善之臂的官方定版版本,建议采用google drive云盘下载,速度更快。

Nanopi的4系列均采用RK3399芯片,本文均可适用。

8.3 RK3399 ISP简介(Linux)

Rk3399和RK3288采用同样的ISP硬件和驱动。由于linux和Android平台的软件框架差异很大,所以对接VEYE模组的过程也不同。Linux平台下,瑞芯微有两种ISP驱动,isp1为新版本,官方推荐使用;isp10为老版本。NanoPi选择isp10版本作为默认驱动。为了保持与原系统兼容性,我们也采用isp10版本进行开发。

8.4 linux平台

在linux平台下,isp10驱动和sensor的驱动均编译到kernel中,此外需要配置好DTS文件。

8.5 主要参考文档

瑞芯微官方ISP介绍

《RK_ISP10_Camera_User_Manual_v2.2.pdf》