0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RK3576开发板的网络摄像头方案

ljx2016 来源:ljx2016 作者:ljx2016 2025-05-12 17:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 方案简介

本方案将演示如何利用EASY-EAI-Orin-Nano以及MIPI-CSI摄像头制作一个【网络摄像头(IPCamera)】:四路MIPI-CSI摄像头分别单独输出四路流。

1.1 接线示意图

摄像头与板卡连接:

wKgZO2ghxbaAfgbFABqA-w4W7Fc598.png

板卡与局域网连接:

wKgZPGghxbaALc-xACeT2DOf9Qk572.png

wKgZO2ghxbeAO51SAADdNgPRzl4460.png

* 接线必须在断电时进行操作。

* 采用反向线连接IMX415摄像头与Cmaera1接口。(注意:用错线会烧坏摄像头或者核心板,因此在接线时务必要小心。)

* 接线端子卡扣与FPC线的蓝色塑料标识必须位于同一侧。如下图所示。

wKgZPGghxbeAW1QXABNVbAAS_Kk943.png

EASY EAI Orin-Nano默认搭配IMX415单目摄像头。同时配有一根0.5mm间距的40pin FPC反向线。

反向线:两端的蓝色标识不在同一侧面。

同向线:两端的蓝色标识处于同一侧面。

wKgZO2ghxbiAadzNAACcBKX2kqQ492.png

2.快速上手

如果您初次阅读此文档,请阅读:《入门指南/源码管理及编程介绍/源码工程管理》,按需管理自己工程源码(注:此文档必看,并建议采用【远程挂载管理】方式,否则有代码丢失风险!!!)。

2.1 源码工程下载

先在PC虚拟机定位到nfs服务目录,再在目录中创建存放源码仓库的管理目录:

cd ~/nfsroot mkdir GitHub cd GitHub

再通过git工具,在管理目录内克隆远程仓库(需要设备能对外网进行访问)

git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-3576.git

wKgZPGghxbiAWPbBAAFHkLhl81w321.png

注:

* 此处可能会因网络原因造成卡顿,请耐心等待。

* 如果实在要在gitHub网页上下载,也要把整个仓库下载下来,不能单独下载本实例对应的目录。

2.2 开发环境搭建

通过adb shell进入板卡开发环境,如下图所示。

wKgZO2ghxbiAZ1J8AAC7JgRVz1M751.png

通过以下命令,把nfs目录挂载上nfs服务器。

mount -t nfs -o nolock < nfs server ip >:< nfs path in server > /home/orin-nano/Desktop/nfs/

wKgZPGghxbmAX4wJAAD6_a7KK6A944.png

2.3 例程编译

然后定位到nfs的挂载目录,再在目录中创建存放源码仓库的管理目录:

cd /home/orin-nano/Desktop/nfs/GitHub

进入到对应的开发实例目录执行编译操作,具体命令如下所示:

cd EASY-EAI-Toolkit-3576/Solutions/rtspIPCamera/ ./build.sh

wKgZO2ghxbmAIIgEAAHQg2tkg5M199.png

2.4 例程运行及效果

执行下方命令,运行示例程序:

./Release/rtspIPCamera

执行效果如下所示。

wKgZPGghxbmAYz0zAABkj52gu8o487.png

2.5 非本地rtsp拉流

如果需要使用另一台计算机设备作为rtspClinet去拉流,则需要把127.0.0.1(本机IP)替换成rtspServer设备所在局域网的IP地址,具体操作如下。

首先通过ifconfig命令查看板卡的局域网IP地址。

sudo ifconfig

wKgZO2ghxbmAFzwBAAEa0OqUlVY916.png

然后在另外一台计算机开启rtspClinet应用(以VLC为例),填上URL进行拉流。

wKgZPGghxbmAEKAwAABimfMIAxY167.png

3. 设计说明

3.1 总体逻辑框图

wKgZO2ghxbqAd8TVAABtlAkK5Wg391.png

3.2 factory逻辑

wKgZPGghxbuAFCrFAACnK1nrLnA274.png

3.3 代码组成

本开发实例相关的所有代码,均位于EASY-EAI-Toolkit-3576/Solutions/rtspIPCamera/中。其中:

总体逻辑位于:EASY-EAI-Toolkit-3576/Solutions/rtspIPCamera/src/main.cpp

factory逻辑位于:EASY-EAI-Toolkit-3576/Solutions/rtspIPCamera/src/appSource.cpp

摄像头控制逻辑位于:EASY-EAI-Toolkit-3576/Solutions/rtspIPCamera/src/camera/

wKgZO2ghxbuAOLwcAADFf3bxHtU721.png

3.4 调用关系

wKgZPGghxbuAB7JlAACctFCahMk954.png

4. 开发指南

4.1 Toolkit仓库介绍

wKgZO2ghxbyAQGoOAADDXknuJ14195.png

4.2 示例文件&目录结构

4.2.1 开发实例介绍

每个开发实例就是一个独立的项目,项目使用cmake构建自动编译部署。一个最简单的项目至少要包含以下元素:build.sh、CMakeLists.txt、main.c,如下所示。

wKgZPGghxbyACx2VAAA-tvU96MI457.png

具体介绍如下所示。

组成部分 描述
build.sh 编译脚本,用于管理生成可执行文件后的部署准备工作,用户可自定义shell命令
CMakeLists.txt 工程管理文件,用于组织整个工程结构,指导cmake生成Makefile
include 用于存放第三方应用库、头文件目录等
src 用于存放实现本方案需求的源代码

4.2.2 可拓展的目录

可拓展的目录是指:开发过程中增加某些功能模块,功能代码。增加模式分为两种:

增加已编译的第三方库,在include、libs目录内添加头文件和库文件;

增加用户自定义的功能模块,推荐在src目录内增加;

具体情况如下所示,第三方模块相关的文件由include/3rd_model/xxx.h、libs/3rd_model/xxx.a。自定义的功能模块为src/mySrcCode、src/mySrcCode2。

wKgZO2ghxbyAcR02AACKPLHq0d0858.png

4.3 CMakeLists.txt文件解析

4.3.1 编译环境配置部分:

第一部分为配置部分,配置部分如下所示。(获取当前方案目录、配置工具链、提取方案名称):

wKgZPGghxbyAREIcAAEn2HI42m0520.png

配置信息如下所示。

配置项 描述
CMake要求版本 cmake_minimum_required函数指定,要求的最低版本
CMAKE_SYSTEM_NAME cmake的系统类型,交叉编译必须
CMAKE_CROSSCOMPILING cmake是否启动交叉编译
cross.camke camke_host_system_information获取平台信息,发现不是armv7l或者aarch64就导入当前平台的交叉编译配置。
project项目名 由project函数指定

4.3.2 easyeai-api配置部分

第二部分是引入我司的功能组件库(针对当前方案进行:配置EASY EAI API头文件目录${XXX_INCLUDE_DIRS}、源码文件目录${XXX_SOURCE_DIRS}以及所依赖的库参数${XXX_LIBS}):

wKgZO2ghxb2AHW0IAAIfslAuXZA579.png

配置信息如下所示。

配置项 描述
api_inc 最终通过target_include_directories关键字指定目标包含的头文件路径
api_srcs 最终通过add_executable关键字指定所需easyeai-api的源码
sysLib_list 最终通过target_link_libraries关键字指定easyeai-api所需的库参数

4.3.3 第三方库配置部分

第三部分配置第三方的库(针对当前方案进行:配置第三方头文件目录、库文件目录、配置第三方库链接参数以及配置源码目录):

wKgZPGghxb2ARdQxAANbURBblKw942.png

配置信息如下所示。

配置项 描述
custom_inc 自定义变量custom_inc,最终通过target_include_directories函数指定目标包含的头文件路径,在源码include目录下
link_directories 由link_directories函数指定第三方库所在路径
custom_libs 自定义变量custom_libs,最终通过target_link_libraries函数指定目标引用的库链接参数
aux_source_directory 自定义变量dir_srcs,用于添加工程代码以及自定义的个人代码

例如添加个人库的目录组成方式如下所示。

wKgZO2ghxb2AH5evAABkXvUe78U468.png

aux_source_directory的修改方式为:

aux_source_directory(./src ./src/mySrcCode ./src/mySrcCode2 dir_srcs)

aux_source_directory(./src dir_srcs) aux_source_directory(./src/mySrcCode dir_srcs) aux_source_directory(./src/mySrcCode2 dir_srcs)

4.3.4 本方案配置部分

第四部分配置项目的编译信息,内容如下所示:

wKgZPGghxb6AWWjgAABM4MBBs2Q984.png

配置项如下所示。

配置项 需求
add_executable 编译结果为${CURRENT_FOLDER}指定,即方案目录名;
编译的源文件为${dir_srcs}和${api_srcs}指定;
target_include_directories 指定头文件的名字,由${custom_inc}与${api_inc}指定;
target_link_libraries 指定的库编译参数,由${custom_libs}与${sysLib_list}指定;

4.4 build.sh编译脚本:

4.4.1 路径定位部分

第一部分用于提取目录用于编译操作,内容如下所示:(进入build.sh脚本所在目录,并且提取当前目录绝对路径,提取当前目录名称)

wKgZO2ghxb6AYeqMAAArNYW9H20209.png

4.4.2 清除编译部分

第二部分清除操作,清除目录为build、Release,内容如下所示:(执行build.sh脚本时,带入了参数“clear”,则清空编译输出)

wKgZPGghxb6ARnl3AAAcOc9PK-E325.png

4.4.3 编译操作

第三部分,编译直接调用cmake,内容如下所示:(重新编译,成部署目录,并把资源自动部署进板卡)

wKgZO2ghxb6ARfnAAAAeTKcD4SU842.png

wKgZPGghxb6AY071AAAqnpTAf3M612.png



审核编辑 黄宇

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

    关注

    25

    文章

    5682

    浏览量

    104768
  • rk3576
    +关注

    关注

    1

    文章

    175

    浏览量

    728
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    迅为八核高算力RK3576开发板摄像头实时推理测试 ppyoloe目标检测

    迅为八核高算力RK3576开发板摄像头实时推理测试 ppyoloe目标检测
    的头像 发表于 07-14 15:18 292次阅读
    迅为八核高算力<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b><b class='flag-5'>摄像头</b>实时推理测试 ppyoloe目标检测

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割
    的头像 发表于 07-11 14:31 340次阅读
    迅为<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b><b class='flag-5'>摄像头</b>实时推理测试-ppseg 图像分割

    基于RK3576开发板的人脸识别算法

    RK3576开发板展示人脸识别算法例程和API说明
    的头像 发表于 05-07 16:48 1938次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的人脸识别算法

    基于RK3576开发板的RTC使用说明

    文章主要展示RK3576开发板的RTC信息和快速上手例程
    的头像 发表于 05-07 15:04 817次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的RTC使用说明

    基于RK3576开发板的PWN使用说明

    RK3576开发板使用PWN教程及Demo
    的头像 发表于 05-07 14:07 1284次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的PWN使用说明

    基于RK3576开发板的TF卡槽使用说明

    RK3576开发板使用TF卡槽
    的头像 发表于 05-07 09:24 758次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的TF卡槽使用说明

    基于RK3576开发板的WDT看门狗使用说明

    RK3576开发板的WDT使用说明
    的头像 发表于 05-06 17:15 640次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的WDT看门狗使用说明

    基于RK3576开发板的HDMI-OUT使用说明

    RK3576开发板的HDMI-OUT使用说明
    的头像 发表于 05-06 16:48 343次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的HDMI-OUT使用说明

    基于RK3576开发板的MIPI-DSI使用

    MIPI DSI接口是由MIPI联盟下的Display工作组指定的DSI(Display Serial Interface)的接口标准。rk3576开发板使用mipi-dsi教程
    的头像 发表于 05-06 16:11 384次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>的MIPI-DSI使用

    米尔瑞芯微RK3576实测轻松搞定三屏八摄像头

    推出的MYD-LR3576开发板开发了一个三屏异显,8路摄像头输入的DEMO, 实测下来,RK3576轻松搞定了该任务。 MYD-LR
    发表于 01-17 11:33

    RK3576有多强?实测三屏八摄像头轻松搞定

    的MYD-LR3576开发板开发了一个三屏异显,8路摄像头输入的DEMO,实测下来,RK3576轻松搞定了该任务。MYD-LR
    的头像 发表于 01-16 08:06 664次阅读
    <b class='flag-5'>RK3576</b>有多强?实测三屏八<b class='flag-5'>摄像头</b>轻松搞定

    迅为RK3576开发板核心与底板接口硬件介绍

    迅为RK3576开发板核心与底板接口硬件介绍
    的头像 发表于 01-14 15:15 1522次阅读
    迅为<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>核心<b class='flag-5'>板</b>与底板接口硬件介绍

    【米尔RK3576开发板评测】+项目名称【米尔RK3576开发板评测】一个视频和你共同认识一下米尔RK3576开发板

    收到米尔RK3576开发板后,也对米尔RK3576开发板进行了了解,米尔这款开发板真的很不错,下面是官方的一些参数介绍: MYC-LR
    发表于 12-18 20:50

    【米尔RK3576开发板评测】带你初步了解米尔RK3576这块开发板

    这几天刚收到米尔邮寄过来的米尔RK3576开发板,收到板子的拆箱的第一感觉就是惊艳。巴掌大小的一块开发板上集成度非常高,布线很合理,元件布局也很整齐,黑色的板子也非常高端。 给大家看一下收到
    发表于 12-18 20:35

    米尔RK3576开发板特惠活动!

    近日,米尔电子发布基于瑞芯微RK3576核心开发板RK3576作为国产热门处理器,其高性能数据处理能力、领先的AI智能分析、强大的扩展性与兼容性受到广大
    的头像 发表于 11-12 01:00 863次阅读
    米尔<b class='flag-5'>RK3576</b><b class='flag-5'>开发板</b>特惠活动!