Changes

Jump to navigation Jump to search
Line 65: Line 65:  
ADP-MV1需要独立的5V供电,可以使用杜邦线直接从树莓派主板取电。
 
ADP-MV1需要独立的5V供电,可以使用杜邦线直接从树莓派主板取电。
 
[[File:ADP-MV1-MV-MIPI-X 07.jpg|center|thumb|800x800px|ADP-MV1 power supply]]
 
[[File:ADP-MV1-MV-MIPI-X 07.jpg|center|thumb|800x800px|ADP-MV1 power supply]]
<br />
   
<br />
 
<br />
 
===== 树莓派5 =====
 
===== 树莓派5 =====
 
二者使用15P转22P的FFC同面线连接,注意接触面安装方向。
 
二者使用15P转22P的FFC同面线连接,注意接触面安装方向。
 +
{| class="wikitable"
 +
!TOP
 +
!BOTTOM
 +
|-
 +
|[[File:ADP-MV1 to RPI5.jpg|center|thumb|600x600px|ADP-MV1 to RPI5]]
 +
|[[File:ADP-MV1 to RPI5 2.jpg|alt=|center|thumb|600x600px|ADP-MV1 to RPI5_2]]
 +
|}<br />
 
===== 树莓派Model B和Model B+ =====
 
===== 树莓派Model B和Model B+ =====
 
二者使用1mm间距*15P的FFC异面线连接,注意接触面安装方向。
 
二者使用1mm间距*15P的FFC异面线连接,注意接触面安装方向。
Line 83: Line 89:  
===== 树莓派5 =====
 
===== 树莓派5 =====
 
RAW-MIPI-SC132M使用15to22pin同面FFC线,其他RAW系列相机使用22pin异面FFC线。
 
RAW-MIPI-SC132M使用15to22pin同面FFC线,其他RAW系列相机使用22pin异面FFC线。
 +
[[File:RAW CAM to RPI5.jpg|center|thumb|800x800px|RAW CAM to RPI5]]
 +
<br />
    
===== 树莓派Model B和Model B+ =====
 
===== 树莓派Model B和Model B+ =====
Line 248: Line 256:     
我们提供了一系列脚本实现这个功能,保存在rpi5_scripts目录。
 
我们提供了一系列脚本实现这个功能,保存在rpi5_scripts目录。
 +
 +
* ./find_entity.sh
 +
 +
<code>$ ./find_entity.sh</code>
 +
 +
<code>Found mvcam @ i2c-4 entity on /dev/media3</code>
 +
 +
<code>Plese get frame from /dev/video0 and use /dev/v4l-subdev2 for camera setting.</code>
 +
 +
<code>Found mvcam @ i2c-6 entity on /dev/media0</code>
 +
 +
<code>Plese get frame from /dev/video8 and use /dev/v4l-subdev5 for camera setting.</code>
 +
 +
树莓派5重启之后,相机的media node,video node可能发生变化,因此,建议执行后续操作前执行<code>./find_entity.sh</code>以明确设备节点。
 +
 +
上述提示信息中,可以看到系统插入了两个相机,以及每个相机的对应的设备节点。
 +
 +
<code>i2c-4</code>对应板子上的CAM1插口,<code>i2c-6</code>对应板子上的CAM0插口。
 +
 +
* media_setting_rpi5.sh
 +
 +
<code>./media_setting_rpi5.sh</code>
 +
 +
<code>Usage: ./media_setting_rpi5.sh veyecam2m/csimx307/cssc132/mvcam -fmt [UYVY/RAW8/RAW10/RAW12] -w [width] -h [height]</code>
 +
 +
<code>This shell script is designed to detect the connection of a camera on Raspberry Pi 5.</code>
 +
 +
<code>    It utilizes media-ctl and v4l2-ctl commands to configure the linking relationships and data formats of the media pad.</code>
 +
 +
<code>    Once completed, you can directly use /dev/video0 or /dev/video8 to obtain image data</code>
 +
 +
在进行后续操作前,必须执行此脚本以完成参数的配置。
 +
 +
举例来说,对于RAW-MIPI-AR0234M:
 +
 +
<code>./media_setting_rpi5.sh mvcam -fmt RAW8 -w 1920 -h 1200</code>
    
====v4l2-ctl 应用范例====
 
====v4l2-ctl 应用范例====
Line 285: Line 329:  
<small><code>                Size: Discrete 3088x2064</code></small>
 
<small><code>                Size: Discrete 3088x2064</code></small>
   −
<small><code>        [5]: 'UYVY' (UYVY 4:2:2)</code></small>
+
注:对于树莓派5,实际支持的图像格式取决于相机能力,而不是此处的列表。
 
  −
<small><code>                Size: Discrete 3088x2064</code></small>
  −
 
  −
需要特别说明的是,MV系列相机提供的UYVY模式仅作调试使用,且图像宽度不能超过2880。
      
====== 列出驱动中实现的相机的可配置参数 ======
 
====== 列出驱动中实现的相机的可配置参数 ======
Line 316: Line 356:  
<code>v4l2-ctl --get-ctrl [ctrl_type]</code>
 
<code>v4l2-ctl --get-ctrl [ctrl_type]</code>
   −
以上所有功能,均可使用[[Mv mipi i2c.sh user guide|mv_mipi_i2c.sh]]实现。
+
 
 +
注:对于树莓派5,本节的所有使用v4l2-ctl配置参数的命令需要增加 -d参数来指明配置参数使用的subdev。
 +
 
 +
比如执行./media_setting_rpi5.sh或者./find_entity.sh的时候提示使用/dev/v4l-subdev2进行参数配置。
 +
 
 +
则<code>v4l2-ctl -L</code>需要变更为<code>v4l2-ctl -L -d /dev/v4l-subdev2</code>。
 +
 
 +
 
 +
注:以上所有功能,均可使用[[Mv mipi i2c.sh user guide|mv_mipi_i2c.sh]]实现。
    
需要指出的是,以上参数在开始取图的状态均不可修改。下面进行逐个说明:
 
需要指出的是,以上参数在开始取图的状态均不可修改。下面进行逐个说明:
Line 351: Line 399:     
设置roi后,最大帧率会自动调整。
 
设置roi后,最大帧率会自动调整。
 +
 +
注:此方法不适用于树莓派5。
    
* 方法2,使用自定义roi_x,roi_y配合<code>--set-fmt-video</code>
 
* 方法2,使用自定义roi_x,roi_y配合<code>--set-fmt-video</code>
Line 362: Line 412:     
===== 设置ROI =====
 
===== 设置ROI =====
<code>v4l2-ctl --set-selection=target=crop,top=0,left=0,width=$WIDTH,height=$HEIGHT</code>
+
<code>v4l2-ctl --set-ctrl roi_x=0</code>
 +
 
 +
<code>v4l2-ctl --set-ctrl roi_y=0</code>
 +
 
 +
<code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT</code>
    
===== 设置帧率 =====
 
===== 设置帧率 =====
Line 368: Line 422:     
===== 可使用如下命令进行帧率统计 =====
 
===== 可使用如下命令进行帧率统计 =====
<code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=/dev/null</code>
+
<code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=/dev/null</code>
    
===== 保存图片到文件 =====
 
===== 保存图片到文件 =====
Line 478: Line 532:     
===== 实时预览 =====
 
===== 实时预览 =====
 +
在树莓派5上,vlc进行播放现在有问题,不能使用。
    
====== 使用vlc播放图像 ======
 
====== 使用vlc播放图像 ======
Line 547: Line 602:     
<code>python ./v4l2dev_2_opencv_show_grey.py --width 640 --height 480 --fps 30</code>
 
<code>python ./v4l2dev_2_opencv_show_grey.py --width 640 --height 480 --fps 30</code>
 +
 +
对于树莓派5,需要增加一个<code>--ctldev /dev/v4l-subdev*</code>参数用于指明配置参数的subdev。
    
==== 触发模式 ====
 
==== 触发模式 ====
Line 552: Line 609:     
===== 设置ROI和帧率 =====
 
===== 设置ROI和帧率 =====
<code>v4l2-ctl --set-selection=target=crop,top=0,left=0,width=$WIDTH,height=$HEIGHT</code>
+
<code>v4l2-ctl --set-ctrl roi_x=0</code>
 +
 
 +
<code>v4l2-ctl --set-ctrl roi_y=0</code>
 +
 
 +
<code>v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT</code>
    
<code>v4l2-ctl --set-ctrl frame_rate=$FPS</code>
 
<code>v4l2-ctl --set-ctrl frame_rate=$FPS</code>
Line 588: Line 649:     
====== 进行硬触发操作 ======
 
====== 进行硬触发操作 ======
 +
在其他的shell终端,可以多次执行下面命令进行多次触发。
 +
 
<code>python gpio_trigger.py</code>
 
<code>python gpio_trigger.py</code>
   Line 794: Line 857:  
=== shell脚本进行参数配置 ===
 
=== shell脚本进行参数配置 ===
 
我们提供了shell脚本来配置参数。
 
我们提供了shell脚本来配置参数。
 +
 +
https://github.com/veyeimaging/raspberrypi_v4l2/tree/main/mv_tools_rpi
    
[[mv_mipi_i2c.sh user guide]]
 
[[mv_mipi_i2c.sh user guide]]

Navigation menu