一个套件就能让多路高清摄像头接入树莓派5?

描述

 

树莓派是一款功能强大且价格亲民的微型计算机,广受开发者、创客和科技爱好者的喜爱。它适用于网站搭建、智能家居控制、游戏开发以及编程学习等多种应用场景。

艾利光科技针对树莓派开发板集成GMSL相机的需求,推出了适用于树莓派5的GMSL相机接入套件,支持多路GMSL摄像头同时接入。本文将介绍该套件的应用场景、硬件连接方式及软件配置方法,帮助您快速完成安装与设置,助力您的创新项目顺利开展。


 

应用场景

艾利光科技为树莓派5推出的GMSL相机接入套件提供三种不同的组合配置,用户可根据自身项目需求灵活选择。该套件的核心组件是艾利光科技自主研发的转接板,通过该转接板可实现GMSL相机与Raspberry Pi 5开发板之间的物理连接。

型号内容清单
AKT-R48A-000

转接板*1

FPC线束*2

AKT-R48A-200

转接板*1

FPC线束*2

8MP摄像头*2

Fakra线束*2

AKT-R48A-400

转接板*1

FPC线束*2

3MP摄像头*4

Fakra线束*4

转接板目前可适配艾利光科技2款GMSL摄像头,分别为:

ISX031系列3M(1920*1536)30fps摄像头

  • OX08B系列8M(3840*2160)30fps摄像头

并提供驱动支持。

树莓派

GMSL相机接入套件满足以下典型应用场景:

1. Master 应用

Master模式是指GMSL相机在数据传输和控制过程中处于主导地位的工作模式。在该模式下,转接板支持单边接入1路或2路相机,最多可同时连接4路分辨率为3M(1920×1536)、帧率为30fps的摄像头。

树莓派

树莓派

连接示意图 

2. Slave 应用

Slave模式是指GMSL相机在数据传输与控制过程中处于从属状态,需根据主设备的指令进行数据响应或传输。在此模式下,转接板通过Trigger信号接口与Raspberry Pi 5开发板的GPIO接口相连,可接收外部触发信号,实现最多4路相机的同步曝光控制。

树莓派树莓派

连接示意图 
 


 

硬件连接指南

1.电源连接

连接转接板电源适配器、Raspeberry pi 5开发板电源适配器。

2.CSI接口连接

Raspeberry pi 5开发板CSI接口支持2路4Lane MiPi信号输入,通过艾利光定制的FPC线束,可实现转接板与开发板连接,连接示意如下图:

树莓派

接口示意图

注意:图中标注的 CSI0 和 CSI1 为软件定义的接口标识,与软件参数配置相关。请务必按照示意图所示方式进行连接,若采用其他连接方式,可能会导致软件无法正常运行。

树莓派

最终连接效果图

3.RST和PWR引脚连接

转接板配备了 RST(复位)和 PWR(电源控制)两个引脚,其中 RST 引脚用于相机的复位操作,PWR 引脚则负责相机的电源管理。为了实现在一次通电周期内,通过软件对相机进行重复配置与重启,只需将这两个引脚连接到 Raspberry Pi 5 开发板的 40 针 GPIO 接口上,即可实现对相机的灵活控制。

树莓派

接口示意图4.外部触发连接

转接板配有 RST(复位)和 PWR(电源控制)两个引脚,分别用于相机的复位操作和电源管理。如需在单次通电过程中,通过软件对相机进行重复配置与重启,只需将这两个引脚连接至 Raspberry Pi 5 的 40 针 GPIO 接口,即可实现对相机的灵活控制。

树莓派

接口示意图

树莓派

最终连接效果图


 

软件配置指南

1. 驱动加载

驱动加载分为两个部分,第一部分是设备树的加载,另一部分是Driver的加载。

1.1 设备树的加载

① 将DTBO文件置于相应路径

树莓派支持成熟的 Overlays 机制,即通过 DTBO(设备树覆盖层)对设备树进行动态补丁。这种机制与特定内核版本关系不大,只要设备树结构未发生重大变化(如节点名称变更),编译生成的 DTBO 文件通常具有良好的通用性。

因此,我们只需将 Git 仓库中的文件:

  •  

max9296\bin\6.6.31+rpt-rpi-2712\dtbo\max9296.dtbo

复制到树莓派的 /boot/firmware/overlays/ 目录下,即可完成配置。

参考指令:

  •  

sudo cp /mnt/nas_share/raspi_image/overlays/max9296.dtbo /boot/firmware/overlays/

②执行加载DTBO到设备树

这里需要在config.txt文件中添加max9296.dtbo的支持,参考指令:

  •  

sudo vim /boot/firmware/config.txt

并输入传感器参数,这里我们以艾利光科技摄像头为例,添加以下参数:

  •  
  •  

dtoverlay=max9296,sensor-type=ISX031_MAX96717_2CHdtoverlay=max9296,cam0,sensor-type=ISX031_MAX96717_2CH

最终config.txt中的配置如下:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

[all]#dtoverlay=max9296,sensor-type=0X08B MAX96717 1CH#dtoverlay=max9296,cam0,sensor-type=0X08B MAX96717 1CHdtoverlay=max9296,sensor-type=ISX031 MAX96717 2CHdtoverlay=max9296,cam0,sensor-type=ISX031 MAX96717 2CH#dtoverlay=max9296,sensor-type=ISX031 MAX96717 1CH#dtoverlay=max9296,cam0,sensor-type=ISX031 MAX96717 1CH#dtoverlay=max9296,sensor-type=ISX031 MAX96717 2CH#dtoverlay=max9296,cam0,sensor-type=0X08B MAX96717 1CH

重启后,可以通过执行以下指令来验证Overlay是否已成功加载。若系统中出现名为max9296的设备节点,则表明Overlay加载成功。

  •  

cd /proc/device-tree/axi/pcie@120000/rp1/i2c@80000/max9296@10

树莓派

1.2 Driver的加载

基于 Raspberry Pi 官方发布的镜像版本,我们为每个内核版本预先编译了对应的驱动程序,并上传至 GitHub,方便用户下载使用。您只需根据当前系统所使用的内核版本,将 GitHub 中对应的 .ko 驱动文件复制到 /lib/modules/{内核版本号}/ 目录下即可。

{kernel version}可以使用以下指令获取:

  •  
  •  

$ uname -r6.6.31+rpt-rpi-2712

然后执行,并分析驱动依赖:

  •  

sudo depmod

最后输入以下指令:

  •  

sudo modprobe max9296

当驱动加载成功后,dmesg命令会输出相应的日志信息。若日志内容中未出现任何错误报告,则表明驱动已成功加载。

树莓派

注意:

在此场景中,我们选择使用 modprobe 而非 insmod 来加载驱动,主要原因是 Linux 下的 V4L2 驱动框架结构复杂,且依赖多个内核模块。modprobe 能够自动解析并加载所需的依赖模块,确保 V4L2 驱动完整、正确地加载和运行,而 insmod 则无法自动处理这些依赖关系。

2. 配置media pipe在Raspberry Pi 5的原生CFE(固件环境)驱动中,CSI2和CFE并未直接串联。因此,需要手动重新配置pipe(管道)。

为此,我们已在 Git 仓库的 max9296\script\ 路径下提供了相关脚本。请将其中的 aili_run_camera.sh 文件复制到 Raspberry Pi 的任意目录,然后执行以下命令运行脚本:

  •  

./aili_run_camera.sh csi_channel width hight deserdes_channel

参数解析:
 

csi_channel :表示指定使用的CSI(Camera Serial Interface)通道。所有可配置参数如下:

  •  
  •  
  •  

csi0 -- 使用csi0,参考硬件连接的示意图csi1 -- 使用csi1,参考硬件连接的示意图all  -- 同时使用csi0和csi1

width : 表示当前该CSI通道所连接的Sensor(传感器)分辨率的宽度。

height:表示当前该CSI通道所连接的Sensor(传感器)分辨率的高度。

deserdes_channel:用于指定是使用一个还是两个deserdes通道。当仅使用一个通道时,需使用LINKA,配置参数如下:

  •  
  •  

1ch -- 使用deserdes的一个通道,LINKA2ch -- 使用deserdes的两个通道

注意事项:

1. 参数 width 和 height 必须与所加载的传感器驱动类型相匹配:

当使用 ISX031_MAX96717_2CH 或 ISX031_MAX96717_1CH 驱动时,width 应设置为 1920,height 应设置为 1536;

当使用 OX08B_MAX96717_1CH 驱动时,width 应设置为 3840,height 应设置为 2160。

2. 在加载 OX08B_MAX96717_1CH 驱动时,deserdes_channel 只能配置为 1ch(单通道)。使用示例:

  •  

./aili_run_camera.sh all 192015362ch //

表示同时使用csi0和csi1,分辨率设置为1920x1536,deserdes的两个通道同时输出,即同时采集4路图像。

执行完毕后,若控制台显示已执行的指令且未报错,则表明操作已成功完成。

3.使用gstreamer显示图像

您可以使用位于 max9296\script\ 目录下的脚本来同时显示图像。请将其中的 aili_review_camera.sh 脚本文件复制到 Raspberry Pi 的任意目录中,并在该目录下执行以下命令,即可启动图像显示功能:

  •  

./aili_review_camera.sh csi_channel width hight deserdes_channel

参数解析:
 

csi_channel :表示指定使用的CSI(Camera Serial Interface)通道。所有可配置参数如下:

  •  
  •  
  •  

csi0 -- 使用csi0,参考硬件连接的示意图csi1 -- 使用csi1,参考硬件连接的示意图all  -- 同时使用csi0和csi1

width : 表示当前该CSI通道所连接的Sensor(传感器)分辨率的宽度。

height:表示当前该CSI通道所连接的Sensor(传感器)分辨率的高度。

deserdes_channel:用于指定是使用一个还是两个deserdes通道。当仅使用一个通道时,需使用LINKA,配置参数如下:

  •  
  •  

1ch -- 使用deserdes的一个通道,LINKA2ch -- 使用deserdes的两个通道

注意事项:
 

1. 请确保此脚本的参数与./aili_run_camera.sh脚本的参数保持一致。2. 该指令必须在具备图形用户界面的本地控制台执行,无法通过远程SSH连接执行。


 

应用示例

示例一:4路3M(1920*1536)摄像头应用

树莓派

采用4个艾利光ISX031系列摄像头

config.txt 配置:

树莓派

依次执行指令:

  •  
  •  

./aili_run_camera.sh all 192015362ch./aili_review_camera.sh all 192015362ch

执行结果:

树莓派

示例二:2路8M(3840*2160)摄像头应用

树莓派

采用2个艾利光OX08B系列摄像头

config.txt 配置:

树莓派

依次执行指令:

  •  
  •  

./aili_run_camera.sh all 384021601ch./aili_review_camera.sh all 384021652ch

执行结果:

树莓派

示例三:3路摄像头应用

树莓派

采用2个艾利光ISX031系列3M(1920*1536)摄像头及1个艾利光OX08B系列8M(3840*2160)摄像头

config.txt 配置:

树莓派

依次执行指令:

  •  
  •  
  •  
  •  

./aili_run_camera.sh csi1 192015362ch./aili_run_camera.sh csi0 384021601ch./aili_review_camera.sh csi1 192015362ch./aili_review_camera.sh csi0 384021601ch

执行结果:

树莓派

 

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分