Changes

Jump to navigation Jump to search
Line 9: Line 9:     
===硬件准备及安装===
 
===硬件准备及安装===
系统安装如图所示。我们有专门的RK3399平台套装。具体参数请参考:'''[[VEYE-MIPI-290RK/VEYE-MIPI-327RK Data Sheet/zh|VEYE-MIPI-327RK数据手册]]。'''[[File:Veye nano pi OverAll.jpg|center|thumb|602x602px|VEYE-MIPI-327 摄像头模组与NanoPi M4板连接示意图|link=http://wiki.veye.cc/index.php/File:Veye_nano_pi_OverAll.jpg]][[File:VEYEWiring scheme00 副本12.jpg|center|thumb|602x602px|NanoPi M4板插接示意图|link=http://wiki.veye.cc/index.php/File:VEYEWiring_scheme00_%E5%89%AF%E6%9C%AC12.jpg]][[File:Veye nano piWiring scheme01.jpg|center|thumb|596x596px|VEYE-MIPI-290/327 摄像头模组插接示意图|link=http://wiki.veye.cc/index.php/File:Veye_nano_piWiring_scheme01.jpg]]
+
系统安装如图所示。我们有专门的RK3399平台套装。具体参数请参考:'''[[VEYE-MIPI-290RK/VEYE-MIPI-327RK Data Sheet/zh|VEYE-MIPI-327RK数据手册]]。'''
 +
[[File:Veye nano pi OverAll.jpg|center|thumb|602x602px|VEYE-MIPI-327 摄像头模组与NanoPi M4板连接示意图]]
 +
[[File:VEYEWiring scheme00 副本12.jpg|center|thumb|602x602px|NanoPi M4板插接示意图]]
 +
[[File:Veye nano piWiring scheme01.jpg|center|thumb|596x596px|VEYE-MIPI-290/327 摄像头模组插接示意图]]
      Line 32: Line 35:  
|TX1<br />
 
|TX1<br />
 
|}
 
|}
 +
 
===使用编译好的整体镜像更新NanoPi4系统===
 
===使用编译好的整体镜像更新NanoPi4系统===
   Line 40: Line 44:  
*烧录镜像文件
 
*烧录镜像文件
   −
利用SD Card Formatter软件将micro SD卡格式化(格式化前有必要将需要的文件进行备份),将下载后的压缩文件解压为rk3399-sd-friendlydesktop-bionic-4.4-arm64-20200110.img。
+
利用SD Card Formatter软件将micro SD卡格式化(格式化前有必要将需要的文件进行备份),将下载后的压缩文件解压为rk3399-sd-friendlydesktop-bionic-4.4-arm64-20200112.img。
    
使用win32diskimager软件将解压后的镜像文件写入micro SD卡。
 
使用win32diskimager软件将解压后的镜像文件写入micro SD卡。
Line 137: Line 141:  
===应用和测试===
 
===应用和测试===
   −
==== 系统状态检测 ====
+
====系统状态检测====
完成系统安装后,在Jetson Nano板端执行以下命令来检测是否正确连接摄像头。
+
完成系统安装后,在板端执行以下命令来检测是否正确连接摄像头。
    
<code>dmesg | grep veye327</code>  
 
<code>dmesg | grep veye327</code>  
Line 146: Line 150:  
<code>Detected VEYE06 sensor</code>
 
<code>Detected VEYE06 sensor</code>
   −
==== 视频流测试 ====
+
====视频流测试====
   −
===== 使用gstreamer =====
+
=====使用gstreamer=====
 +
 
 +
======使用gst-camera-veye.sh======
 
由于友善之臂官方提供的gst-camera.sh默认分辨率为720p,VEYE-MIPI-327不支持,我们提供了 修改版本的gst-camera-veye.sh。
 
由于友善之臂官方提供的gst-camera.sh默认分辨率为720p,VEYE-MIPI-327不支持,我们提供了 修改版本的gst-camera-veye.sh。
   Line 155: Line 161:  
<code>rk3399_veye_dimaging_bsp/ubuntu/platform/friendlyarm_nanopi4/gst-camera-sh/</code>
 
<code>rk3399_veye_dimaging_bsp/ubuntu/platform/friendlyarm_nanopi4/gst-camera-sh/</code>
   −
* 视频预览1080p HD
+
*视频预览1080p HD
 +
 
 +
<code>./gst-camera-veye.sh -a preview</code>
 +
 
 +
*视频录像1080p HD
 +
 
 +
<code>./gst-camera-veye.sh --action video -output 1.ts</code>
 +
 
 +
*抓拍图片
 +
 
 +
<code>./gst-camera-veye.sh -a photo -o 1.jpg</code>
 +
 
 +
======直接使用gst-launch-1.0======
 +
 
 +
*视频预览1080p HD
 +
 
 +
<code>gst-launch-1.0 rkisp device=/dev/video1 io-mode=4 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! rkximagesink</code>
   −
<br />
+
*视频录像1080p HD
 +
 
 +
<code>gst-launch-1.0 rkisp num-buffers=512 device=/dev/video0 io-mode=1 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! mpph264enc ! queue ! h264parse ! filesink location=/tmp/out.mp4 -e</code>
 +
 
 +
*抓拍图片
 +
 
 +
<code>gst-launch-1.0 rkisp num-buffers=2 device=/dev/video0 io-mode=1 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=10/1 ! jpegenc ! multifilesink location="/tmp/isp-frame%d.jpg" -e</code>
 +
 
 +
*抓拍5张YUY2格式图片
 +
 
 +
<code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY8_2X8 --stream-mmap=3 --stream-skip=0 --stream-to=/tmp/cif.out --stream-count=5 --stream-poll</code>
 +
 
 +
====视频控制软件包的使用====
 +
我们使用DRA(Directly Register Access)模式进行摄像头模组寄存器的配置。并且提供了一个shell脚本帮助使用。
 +
 
 +
<code>rk3399_veye_dimaging_bsp/ubuntu/i2c_cmd</code>
 +
 
 +
*Ubuntu系统执行命令
 +
 
 +
<code>i2cdetect [value]</code>
 +
{| class="wikitable"
 +
!value
 +
!description
 +
|-
 +
|1
 +
|MIPI-CSI1
 +
|-
 +
|2
 +
|MIPI-CSI2
 +
|}检测硬件连接是否正常,VEYE327摄像头模组的产品i2c地址为0x3b。
 +
 
 +
*确定硬件连接正常后,脚本命令如下,-b指明i2c bus:
 +
 
 +
<code>veye_mipi_i2c_rk.sh</code>
 +
 
 +
视频控制接口软件包选项具体使用操作详见:[[VEYE-MIPI-290/327 i2c/zh|I2C脚本使用说明]]。
 +
 
 +
=== 现存问题 ===
 +
 
 +
==== 问题现象 ====
 +
 
 +
* 视频录像不满帧
 +
 
 +
使用上一节所用的gstreamer指令进行视频编码,无法达到满帧。只能达到大约17帧左右。
 +
 
 +
* 内存泄漏
 +
 
 +
使用rkisp这个gstreamer插件,会有严重的内存泄漏。
 +
 
 +
==== 问题原因 ====
 +
rockchip的rk3399虽然支持yuv格式的camera模组输入,但是由于此类模组接入较少,他们提供的gstreamer插件存在严重的bug。
 +
 
 +
===参考资料===
 +
====RK3399介绍====
 +
RK3399是[http://www.rock-chips.com/ 瑞芯微]出品的一款高性价比的运算平台SoC。在业内拥有广泛的应用。
 +
 
 +
RK3399的资料详细,开放度高,备受欢迎。 重点资料列举如下:
 +
 
 +
[http://opensource.rock-chips.com/wiki_Main_Page wiki]
 +
 
 +
[https://github.com/rockchip-linux/ github]
 +
 
 +
[https://github.com/rockchip-linux/docs docs]
   −
* 视频录像1080p HD
+
采用RK3399的主板也非常丰富,可供选择。各家软件均为基于瑞芯微资料制作,所以本文的内容也具有一定的普适性,不局限于NanoPi4系列。
 +
====NanoPi M4介绍====
 +
NanoPi M4是[https://www.friendlyarm.com/ 友善之臂]出品的基于RK3399的开发板。在爱好者和行业内拥趸极多。其资料开放,易于开发,[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4/zh wiki]详细周到。
   −
<br />
+
友善之臂也维护了自己[https://github.com/friendlyarm github]。
   −
* 抓拍图片
+
我们在开发的时候,采用的是友善之臂的[http://download.friendlyarm.com/NanoPiM4 官方定版版本],建议采用google drive云盘下载,速度更快。
   −
==== 视频控制软件包的使用 ====
+
Nanopi的4系列均采用RK3399芯片,本文均可适用。
 
<br />
 
<br />
===参考资料===
 

Navigation menu