Difference between revisions of "CS-MIPI-X for Raspberry Pi/zh"

From wiki_veye
Jump to navigation Jump to search
(Created page with "English")
 
Line 1: Line 1:
 
[[CS-MIPI-X for Raspberry Pi|English]]
 
[[CS-MIPI-X for Raspberry Pi|English]]
 +
 +
'''<big>CS-MIPI-IMX307 摄像头模组接入树莓派使用说明</big>'''
 +
===概述===
 +
CS-MIPI-IMX307 摄像头模组理论上支持树莓派的所有型号,出于性能最优考虑,建议使用树莓派3以后的版本。本篇文章以树莓派4为例讲解CS-MIPI-IMX307 摄像头模组接入树莓派的方法。此外介绍了接入树莓派Computer Module与树莓派Zero应用中的特殊之处。
 +
===硬件准备及安装===
 +
原材料:树莓派4,网线,Micro SD卡,树莓派电源线,HDMI显示器,FFC线,杜邦线,镜头,摄像头主板。
 +
 +
*如图所示,摄像头主板通过FFC异面线及图中的杜邦黑红线连接到树莓派上,黑线连接GND接口,红线连接5V接口。
 +
 +
*树莓派接好摄像头模组后,将烧录好树莓派系统的MicroSD卡插入卡槽,网线插入网线接口,HDMI显示器接入树莓派,电源线插入power接口,为树莓派接通电源。
 +
 +
TODO:加图!
 +
 +
===树莓派系统安装及配置===
 +
具体安装树莓派系统方法请参考官方文档,详见:[https://www.raspberrypi.org/documentation/installation/ Install raspberrypi guide]
 +
 +
接通电源后,树莓派系统启动,初始树莓派系统中Camera 和 I2C都处于未启用状态。开机后我们需要将其手动打开,执行命令
 +
 +
<code>sudo raspi-config</code>[[File:Veye-Raspi-config.png|thumb|alt=|center|608x608px|link=http://wiki.veye.cc/index.php/File:Veye-Raspi-config.png]]进入选项5,启用Camera 和 I2C,然后重启。
 +
 +
建议启用树莓派系统的ssh服务及samba服务,这里不再赘述树莓派系统如何开启ssh和samba服务。
 +
===软件包下载与介绍===
 +
====有两种方式下载及传输软件包到树莓派====
 +
 +
*执行命令行
 +
 +
<code>git clone <nowiki>https://github.com/veyeimaging/raspberrypi.git</nowiki></code>
 +
 +
直接将文件复制到树莓派系统中。
 +
 +
*点击[https://github.com/veyeimaging/raspberrypi 链接]下载软件包
 +
 +
利用samba将软件包文件传输至树莓派系统中,也可用U盘将软件包文件拷贝至树莓派系统中。
 +
====软件包介绍====
 +
[[File:Rpi github overview.jpg|alt=|center|thumb|626x626px|github 软件包概览|link=http://wiki.veye.cc/index.php/File:Rpi_github_overview.jpg]]
 +
 +
*软件包包括视频流软件包和视频控制软件包。i2c_cmd为视频控制接口软件包。视频流接口软件包有两个,veye_raspcam为raspcam type工具集。D_mipi_rpi为D-SDK软件包,提供了C语言的SDK并由C语言和python语言的demo。【现在veye type工具集已经支持CS-MIPI-IMX307,D-SDK软件包尚处在开发中】
 +
 +
*视频流软件包提供实时显示、抓拍、录像等功能,视频控制软件包通过I2C协议控制摄像机模组,提供主要的ISP参数配置等功能。
 +
 +
这两部分都是开源的。
 +
===视频流软件包使用===
 +
 +
===== 视频码流模式的说明 =====
 +
veye type工具集支持多种码流模式,如1080p@30fps,720p@60fps等。-md 选项用以指明使用的模式,默认为0。
 +
 +
请先使用[[CS-MIPI-X i2c/zh#videofmt|cs_mipi_i2c.sh]]配置和确认当前模式。
 +
{| class="wikitable"
 +
|+模组模式说明
 +
!序号
 +
!模式类型
 +
|-
 +
|0
 +
|1080p@30fps
 +
|-
 +
|1
 +
|720p@60fps
 +
|}
 +
<br />
 +
====raspicam type工具集====
 +
首先增加可执行权限
 +
 +
<code>cd raspberrypi/veye_raspcam/bin/</code>
 +
 +
<code>chmod +x *</code>
 +
 +
*veye_raspipreview
 +
 +
<code>./veye_raspipreview -t 20000 -md 1 -p '0,0,1280,720'</code>
 +
 +
实现20s(即20000毫秒)的720p@60视频实时显示到HDMI输出,输出窗口为1280*720,可以自行调节t的大小和输出窗口。
 +
 +
<code>./veye_raspipreview -t -1</code>
 +
 +
将t调节成 -1,可以实现视频持续输出显示到HDMI输出,全屏显示。
 +
 +
*veye_raspivid 录像
 +
 +
<code>./veye_raspivid -t 5000 -md 1 -o ~/test.h264</code>
 +
 +
实现录像5s,码流模式为720p@60, 录像文件保存到~/test.h264。可以自行调节t的大小来选择录制时间的长短。
 +
 +
与此同时,实现视频实时显示到HDMI输出。(如不需要preview功能,可以添加 ''-n'' 选项)
 +
 +
*veye_raspivid 网络传输(direct tcp stream with netcat)
 +
 +
'''''树莓派一侧执行'''''
 +
 +
<code>./veye_raspivid -b 4000000 -t 0 -o - | nc -l -p 5000</code>
 +
 +
码流带宽为4Mbps,持续传输,监听端口为5000。
 +
 +
电脑一侧,如为windows系统,建议使用powershell。
 +
 +
'''''电脑一侧使用gstreamer'''''
 +
 +
<code>./gst-launch-1.0 -v tcpclientsrc host=x.x.x.x port=5000 ! decodebin ! autovideosink</code>
 +
 +
其中x.x.x.x为树莓派的IP地址
 +
 +
[https://gstreamer.freedesktop.org/ gstreamer]的windows版本[https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c 下载地址]。只安装runtime files即可。
 +
 +
'''''电脑一侧使用mplayer'''''
 +
 +
<code>./mplayer -x 1280 -y 720 -geometry 0:0 -fps 200 -demuxer h264es -noborder ffmpeg://tcp://x.x.x.x:5000</code>
 +
 +
其中x.x.x.x为树莓派的IP地址
 +
 +
mplayer for windows [http://mplayerwin.sourceforge.net/downloads.html 下载地址]。
 +
 +
*veye_raspividyuv
 +
 +
<code>./veye_raspividyuv -t 200 -o /dev/shm/test.yuv</code>
 +
 +
实现录像yuv格式数据200ms,录像文件保存到/dev/shm/test.yuv,存储格式为YUV420 I420 格式。可以自行调节t的大小来选择录制时间的长短。
 +
 +
*veye_raspstillyuv
 +
 +
<code>./veye_raspistillyuv -md 1 -o /dev/shm/test.yuv</code>
 +
 +
实现抓拍一张图片存储到/dev/shm目录(内存文件系统),图片为720p大小。 然后客户可以导出并查看。文件格式为1920*1080大小的yuv数据。存储格式为YUV420 I420 格式。
 +
 +
<code>./veye_raspistillyuv -tl 50 -t 1000 -o /dev/shm/test%d.yuv</code>
 +
 +
实现间隔50ms抓拍一张图片存储到/dev/shm目录(内存文件系统),持续1秒,然后客户可以导出并查看。文件格式为1920*1080大小的yuv数据。存储格式为YUV420 I420 格式。
 +
 +
*veye_raspistill
 +
 +
<code>./veye_raspistill -md 1 -o ~/test.jpg</code>
 +
 +
实现抓拍一张图片,图片为1280*720,并保存,文件格式为jpg。
 +
 +
<code>./veye_raspistill -e bmp -tl 50 -t 1000  -o /dev/shm/test%d.bmp</code>
 +
 +
实现间隔50ms抓拍一张bmp图片存储到/dev/shm目录(内存文件系统),持续1秒,然后客户可以导出并查看。
 +
 +
<code>./veye_raspistill -k -o ~/test%d.jpg -t 0</code>
 +
 +
实现视频预览,同时通过键盘控制抓拍,Enter键抓拍一张,X Enter退出。
 +
 +
veye_raspistill命令支持preview,-n可以取消preview。
 +
 +
==== D-SDK软件包【TODO】 ====
 +
<br />
 +
===视频控制软件包使用===
 +
由于树莓派的I2C-0作为GPU所用,为了避免冲突,我们使用I2C-1作为控制总线。我们提供了一个脚本camera_i2c_config进行总线的管脚复用配置。
 +
 +
具体使用说明请见:[[CS-MIPI-X i2c/zh|I2C脚本使用说明]]
 +
<br />

Revision as of 11:55, 3 December 2019

English

CS-MIPI-IMX307 摄像头模组接入树莓派使用说明

1 概述

CS-MIPI-IMX307 摄像头模组理论上支持树莓派的所有型号,出于性能最优考虑,建议使用树莓派3以后的版本。本篇文章以树莓派4为例讲解CS-MIPI-IMX307 摄像头模组接入树莓派的方法。此外介绍了接入树莓派Computer Module与树莓派Zero应用中的特殊之处。

2 硬件准备及安装

原材料:树莓派4,网线,Micro SD卡,树莓派电源线,HDMI显示器,FFC线,杜邦线,镜头,摄像头主板。

  • 如图所示,摄像头主板通过FFC异面线及图中的杜邦黑红线连接到树莓派上,黑线连接GND接口,红线连接5V接口。
  • 树莓派接好摄像头模组后,将烧录好树莓派系统的MicroSD卡插入卡槽,网线插入网线接口,HDMI显示器接入树莓派,电源线插入power接口,为树莓派接通电源。

TODO:加图!

3 树莓派系统安装及配置

具体安装树莓派系统方法请参考官方文档,详见:Install raspberrypi guide

接通电源后,树莓派系统启动,初始树莓派系统中Camera 和 I2C都处于未启用状态。开机后我们需要将其手动打开,执行命令

sudo raspi-config

进入选项5,启用Camera 和 I2C,然后重启。

建议启用树莓派系统的ssh服务及samba服务,这里不再赘述树莓派系统如何开启ssh和samba服务。

4 软件包下载与介绍

4.1 有两种方式下载及传输软件包到树莓派

  • 执行命令行

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

直接将文件复制到树莓派系统中。

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

4.2 软件包介绍

github 软件包概览
  • 软件包包括视频流软件包和视频控制软件包。i2c_cmd为视频控制接口软件包。视频流接口软件包有两个,veye_raspcam为raspcam type工具集。D_mipi_rpi为D-SDK软件包,提供了C语言的SDK并由C语言和python语言的demo。【现在veye type工具集已经支持CS-MIPI-IMX307,D-SDK软件包尚处在开发中】
  • 视频流软件包提供实时显示、抓拍、录像等功能,视频控制软件包通过I2C协议控制摄像机模组,提供主要的ISP参数配置等功能。

这两部分都是开源的。

5 视频流软件包使用

5.1 视频码流模式的说明

veye type工具集支持多种码流模式,如1080p@30fps,720p@60fps等。-md 选项用以指明使用的模式,默认为0。

请先使用cs_mipi_i2c.sh配置和确认当前模式。

模组模式说明
序号 模式类型
0 1080p@30fps
1 720p@60fps


5.2 raspicam type工具集

首先增加可执行权限

cd raspberrypi/veye_raspcam/bin/

chmod +x *

  • veye_raspipreview

./veye_raspipreview -t 20000 -md 1 -p '0,0,1280,720'

实现20s(即20000毫秒)的720p@60视频实时显示到HDMI输出,输出窗口为1280*720,可以自行调节t的大小和输出窗口。

./veye_raspipreview -t -1

将t调节成 -1,可以实现视频持续输出显示到HDMI输出,全屏显示。

  • veye_raspivid 录像

./veye_raspivid -t 5000 -md 1 -o ~/test.h264

实现录像5s,码流模式为720p@60, 录像文件保存到~/test.h264。可以自行调节t的大小来选择录制时间的长短。

与此同时,实现视频实时显示到HDMI输出。(如不需要preview功能,可以添加 -n 选项)

  • veye_raspivid 网络传输(direct tcp stream with netcat)

树莓派一侧执行

./veye_raspivid -b 4000000 -t 0 -o - | nc -l -p 5000

码流带宽为4Mbps,持续传输,监听端口为5000。

电脑一侧,如为windows系统,建议使用powershell。

电脑一侧使用gstreamer

./gst-launch-1.0 -v tcpclientsrc host=x.x.x.x port=5000 ! decodebin ! autovideosink

其中x.x.x.x为树莓派的IP地址

gstreamer的windows版本下载地址。只安装runtime files即可。

电脑一侧使用mplayer

./mplayer -x 1280 -y 720 -geometry 0:0 -fps 200 -demuxer h264es -noborder ffmpeg://tcp://x.x.x.x:5000

其中x.x.x.x为树莓派的IP地址

mplayer for windows 下载地址

  • veye_raspividyuv

./veye_raspividyuv -t 200 -o /dev/shm/test.yuv

实现录像yuv格式数据200ms,录像文件保存到/dev/shm/test.yuv,存储格式为YUV420 I420 格式。可以自行调节t的大小来选择录制时间的长短。

  • veye_raspstillyuv

./veye_raspistillyuv -md 1 -o /dev/shm/test.yuv

实现抓拍一张图片存储到/dev/shm目录(内存文件系统),图片为720p大小。 然后客户可以导出并查看。文件格式为1920*1080大小的yuv数据。存储格式为YUV420 I420 格式。

./veye_raspistillyuv -tl 50 -t 1000 -o /dev/shm/test%d.yuv

实现间隔50ms抓拍一张图片存储到/dev/shm目录(内存文件系统),持续1秒,然后客户可以导出并查看。文件格式为1920*1080大小的yuv数据。存储格式为YUV420 I420 格式。

  • veye_raspistill

./veye_raspistill -md 1 -o ~/test.jpg

实现抓拍一张图片,图片为1280*720,并保存,文件格式为jpg。

./veye_raspistill -e bmp -tl 50 -t 1000  -o /dev/shm/test%d.bmp

实现间隔50ms抓拍一张bmp图片存储到/dev/shm目录(内存文件系统),持续1秒,然后客户可以导出并查看。

./veye_raspistill -k -o ~/test%d.jpg -t 0

实现视频预览,同时通过键盘控制抓拍,Enter键抓拍一张,X Enter退出。

veye_raspistill命令支持preview,-n可以取消preview。

5.3 D-SDK软件包【TODO】


6 视频控制软件包使用

由于树莓派的I2C-0作为GPU所用,为了避免冲突,我们使用I2C-1作为控制总线。我们提供了一个脚本camera_i2c_config进行总线的管脚复用配置。

具体使用说明请见:I2C脚本使用说明