瑞芯微(EASY EAI)RV1126B AOV方案

1. 方案简介

本文将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头运行AOV方案。

1.1 接线示意图

摄像头与板卡连接(注意:两个CSI接口都要被接上):

v2-e763b5c2527cc2e37f1e42b967e4213a_720w.webp

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

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

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

v2-4f28fcae2f5904b0f29003a06e483e64_720w.webp

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

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

2. 快速上手

2.1 开发环境准备

特别注意:

v2-ab351b0db1c9ae9edb2aa3a407c0c522_720w.webp

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh 2404

v2-e1127efd76bcca3331922be6d17e546f_720w.webp

2.2 源码下载以及例程编译

在EASY-EAI编译环境下创建存放源码仓库的管理目录:

cd /opt mkdir EASY-EAI-Toolkit cd EASY-EAI-Toolkit

通过git工具,在管理目录内克隆远程仓库

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

v2-67d8e73ccfe13280db05364195d1679f_720w.webp

注:

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

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

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

cd EASY-EAI-Toolkit-1126B/Solutions/aov ./build.sh

注:

* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

v2-dc6d5a58b78f3a5621ca5bd02dde2825_720w.webp

2.3 例程运行

通过串口调试或ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata/Solu

v2-6f6475f47eece4265b60cf10e33fb104_720w.webp

运行下方命令,停止rkaiq_3A.service:

systemctl stop rkaiq_3A.service

也可以通过disable永久性禁用(重启也不会启动):

systemctl disable rkaiq_3A.service

运行例程命令如下所示。

mv rkadk_defsetting* /oem/usr/etc/ ./aov -a /etc/iqfiles/ -c 2 -t 5

v2-7bcc5a609f894b4921d740c2435191fc_720w.webp

参数说明:

-a:指定使用的iq文件所在目录。

-c:进行2轮休眠录像。

-t:每个录像持续时间为5秒。

运行效果如下:

录像完毕后,会在TF卡(/mnt/sdcard)内产生2个录像文件:

v2-6044ed3f78a996b2fff27b10fe0e3df1_720w.webp

录像过程中,整板功耗为:3928mW

v2-5a8ebfb525248280f9fde2738d690b6c_720w.webp

录像完毕后,进入休眠模式,整板功耗为:143mW

v2-88b8dfbb74accc72d1de5fa806e831db_720w.webp

*注:此功耗为整板功耗,若要定制底板,进一步控制外设电源,能做到【更低的休眠功耗】。

3. 设计参考

Rockchip_Developer_Guide_Linux_Rkadk_CN.pdf》

《Rockchip_Developer_Guide_Linux_AOV_CN.pdf》

4. 开发指南

4.1 Toolkit仓库介绍

v2-e3f3244dfdea0a946923ac8a508361ab_720w.webp

4.2 示例文件&目录结构

4.2.1 开发实例介绍

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

v2-40eab7857ac8f9692fd77f98187bf5d0_720w.webp

具体介绍如下所示。

v2-e0e4c2a0f06a0456981e05967a485be4_720w.webp

4.2.2 可拓展的目录

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

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

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

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

v2-63e850dc736ee24422887058ab301197_720w.webp

4.3 CMakeLists.txt文件解析

4.3.1 编译环境配置部分:

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

v2-505d01dc6da1eeb1826829a21415a78e_720w.webp

配置信息如下所示。

v2-964da4a6bdbe11d7704fbe0e748ceef5_720w.webp

4.3.2 easyeai-api配置部分

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

v2-7fae216a5526981eaa693dfd1ac31039_720w.webp

配置信息如下所示。

v2-fd0b169176de77689cfb90de81bf7096_720w.webp

4.3.3 第三方库配置部分

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

v2-84e291470747a9693fa5e42f1f26e59a_720w.webp

配置信息如下所示。

v2-98742037cdfbc7b1fd2390d5ed9ef855_720w.webp

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

v2-44affac8a79404ce5310580e8e0177c6_720w.webp

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 本方案配置部分

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

v2-7df7ec3f43cbf26bffc065e746fd7aca_720w.webp

配置项如下所示。

v2-dc2529b0a1d096c9f2ba4ce26974c734_720w.webp

4.4 build.sh编译脚本:

4.4.1 路径定位部分

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

v2-4008adfa25ba7b305c6e87cb9320b0ff_720w.webp

4.4.2 清除编译部分

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

v2-2f1813e257fbb22e032aa1a59893b2f1_720w.webp

4.4.3 编译操作

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

v2-8afa7dc242cf20167b1f982a7fb42c6a_720w.webp

v2-df2cc90591f10f8746ba09221d4703d1_720w.webp
热门