全面认识海思SDK及嵌入式层开发(1)

2023-05-16

目录

  • 一、全面认识和检测配套开发套装
    • 1、套装配件介绍
    • 2、检测开发板
    • 3、注意
  • 二、视频设备开发的技术流
    • 1、视频从产生到被消费的整个流程
    • 2、视频行业的商业角度分段
    • 3、几个疑问点

一、全面认识和检测配套开发套装

购买方式:淘宝搜索->朱有鹏老师个人店
在这里插入图片描述

1、套装配件介绍

(1)主板
在这里插入图片描述
(2)默认安装SENSOR组合:AR0130

(3)备用SENSOR组合2:OV9712

(4) 隔离式 USB转串口小板+杜邦线
  开发板出现问题不会影响电脑,反之电脑出现问题也不会影响开发板。如开发板串口这边出现过高电压或者电流,通过usb传输到电脑主板,会导致电脑主板烧毁(我出现过,一个月修了4次电脑)或者电脑蓝屏,但隔离式可以避免这种问题。
在这里插入图片描述
我们开发板使用的是3.3v,故而将3.3v和DPT短接。VCC不接(其是给连接的调试模块供电的,但我们的开发板通过电源线供电了不需要,而且这个VCC是5v,而开发板的工作电压是3.3V)
(5)USB WIFI网卡

(6)DC供电线

(7)网线

2、检测开发板

在这里插入图片描述
资源下载链接:链接:https://pan.baidu.com/s/16JwtfjLgPZ6Zw4TMsqqTyw
提取码:vw4t
–来自百度网盘超级会员V5的分享

也可以去朱老师的微信公众号进行下载:《朱老师物联网大讲堂》

(1)开发板出厂默认烧录了系统,但是没有部署应用程序,所以测试略麻烦

(2)要测试先接线:USB转串口、网线、电源线三个缺一不可

(3)虚拟机(ubuntu 16.04)要布置好然后开启,自己安装一个(自己安装需要配置的内容比较多可参考我的另一篇文章《嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)》)或者去朱老师网盘中下载,下载打开朱老师提供的ubuntu16.04,其中的网卡名称为ens33,需要进行简单的配置才可以正常工作。

《嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)》链接:
https://blog.csdn.net/weixin_45842280/article/details/121352077
1、vi /etc/network/interfaces
将内容修改为:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
#iface ens33 inet dhcp
address 192.168.1.141
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.8.8

# dhcp
#auto ens33
#iface ens33 inet dhcp

如下图所示:

在这里插入图片描述

2、vi /etc/NetworkManager/NetworkManager.conf
修改如下:
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=true

在这里插入图片描述

3、重启虚拟机,命令行执行:ifup ens33
若无法上网则关闭虚拟机,将电脑关机重启再打开虚拟机.
除了执行命令:ifup ens33,也可操作图形界面,如下:

在这里插入图片描述
(4)SecureCRT监视打开,开发板开机,自动挂载到/home/aston/rootfs中,通过共享文件夹或者samba服务器的方式将AR0130版本的RTSP流测试app.rar放到该目录中并解压(建议在windows中解压,ubuntu 16.04中解压该文件需要安装一个软件,略微麻烦),除了使用SecureCRT也可以使用其他软件,我给大家安利一个我正在用的开源免费软件:MobaXterm,可自行在应用商店或者百度下载。
在这里插入图片描述
(5)自动加入/mnt中,执行./sample_venc即可

(6)在vlc中输入地址,即可浏览实时画面

菜单栏:媒体->打开网络串流->网络,输入:rtsp://192.168.1.10:554/stream_chn0.h264
勾选:显示更多选项。在正在缓冲中设置为300(原来是1000192.168.1.10:开发板的ip

在这里插入图片描述
在这里插入图片描述

3、注意

(1)开发板上摄像头的镜头可以自己拧,一边拧一边看图像清晰度,调整到最合适,然后固定螺丝即可。注意有延时的,所以拧一下要停一下看效果。而且延时会累计,所以延时会越来越大。延时如果太大,把VLC关闭重新打开一次就ok了。

(2)图像的4个角可能会有黑边,原因是镜头没有装载正中间,镜头螺丝可以重新固定一下。
在这里插入图片描述
在这里插入图片描述
(3)图像是有畸变的(看到的画面偏圆、弯曲、有弧度,可通过软件算法消除畸变),正常的,镜头的原因。在这里插入图片描述

二、视频设备开发的技术流

1、视频从产生到被消费的整个流程

(1)基本认知:视频是由单帧图像(即图片)以每秒x帧的速率连续组成的,单帧图像类似位图。我们常说的电影一般是每秒24张图片的速度(即每秒24帧)进行播放。

(2)原始视频产生:镜头(光信号->光信号)和sensor(光信号->电信号)
sensor本身直接出来的是一个模拟的电信号,经过AD转换得到数字的电信号(即一系列二进制数据,代表原始图像数据)

(3)图像处理:ISP(image signal processing),如对原始图像进行畸变矫正,处理后的图像仍是原始图像数据,未经过编码及压缩。

(4)视频编码压缩:如h.264/h.265压缩算法,运算,内置DSP进行压缩运算的(HI3518E是ARM+DSP双核),如果用CPU进行压缩运算,是十分耗费CPU的,需要高性能的CPU。

(5)视频流传输:网络传输、http/rtsp等

(6)视频存储:将视频流打包成MP4等格式存储,等待调阅

(7)视频回放:解码+播放

2、视频行业的商业角度分段

(1)主芯片商(海思,安霸等等,研究编码压缩算法,再以SDK的方式发布)、sensor(如索尼)、镜头等分立原件厂商

(2)模组厂商(海康威视,大华等,将(1)中的各部分集中到一起进行开发,目前全世界模组很大一部分都是中国提供的)

(3)视频服务器厂商(使编码后的视频可以通过服务器传输,传输到外网),类似大拿科技这种

(4)面向解决方案的方案开发商(买(2)、(3)的基础上提供一个解决方案,如工厂安防,幼儿园安防系统等等)

(5)工程商或销售商(没啥技术含量,主要体力活,安装设备之类的,有什么技术问题他们去找他们的供应商解决)

(2)、(4)是求职的不错选择!

3、几个疑问点

(1)视频为什么要编码和解码?
  原始的视频太大了,无法传输,网速是有限的。例如输出一路1920×1080分辨率、24位色、每秒30帧的高清视频,就这么一秒钟的视频,它的码率达就到了1.5Gbps.因此需要编码,尽最大可能将其压缩至最低。

(2)HI3518E主要解决什么问题?
  视频编码压缩算法。

(3)为什么使用linux而不是其他os?
  Linux的网络协议栈是最全的,Linux的网络开发是最多的,Linux的资源是最多的,其它系统相对较少,ISP这部分的处理有的用Linux,有的用了RTOS(如安霸),海思是全都用了Linux。

注:本资料大部分由朱老师物联网大讲堂课程笔记整理而来并且引用了部分他人博客的内容,如有侵权,联系删除!水平有限,如有错误,欢迎各位在评论区交流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全面认识海思SDK及嵌入式层开发(1) 的相关文章

  • 新手程序员必学的代码编程技巧

    程序员往往渴望加入的是一支 30 的时间在写代码 xff0c 而70 的时间在喝着咖啡讨论着如何将产品做好 的团队 软件工作应该成为一项技术和艺术融合的高智力活动 xff0c 而项目经理应该是一个高度理解质量 范围和进度客观规律的明白人 x
  • 数学之美—细数 傅里叶变换 原理

    目录 一 傅里叶级数 xff08 Fourier Series FS xff09 的实数域表示 二 傅里叶级数 xff08 Fourier Series FS xff09 的复数域表示 三 傅里叶变换 xff08 FT xff09 的引出
  • C++小知识01 —— 0、‘0’、“0”、“\0”、‘\0’、NULL和nullptr

    可能对于才学完C 的初学者来说 这些概念都很简单 但是把它们放在一起 就真的真的给整不会了 其中最容易混淆的有单引号与双引号的用法 还有NULL与nullptr的用法 下面我会依次用代码文字结合的形式给大家讲解 0 这个就很简单 它就是数字
  • 如何解决Git代码冲突?

    本文主要用的是vscode工具 1 为什么会出现代码冲突问题呢 xff1f 可以理解为就是同一时间几个人更改同一个文件 xff0c git 不知道该听谁的 xff0c 所以就报冲突 xff0c 让开发者自己去选择 xff0c 选取到底用哪个
  • 算法优化工程师

    嵌入式算法移植优化 嵌入式算法移植优化 CUDA编程 嵌入式算法移植优化 CPU GPU TPU NPU都是什么 嵌入式算法移植优化 模型压缩与剪枝 嵌入式算法移植优化 pthread 嵌入式算法移植优化 SIMD编程 xff08 单指令流
  • Elasticsearch7.8.0启动报jdk版本错误

    因为7 8 0版本自带jdk12 xff0c 就可能会出现自己linux环境下的jdk版本较低 启动时老报错 xff0c 这时候就需要干掉当前jdk xff0c 然后启动elasticsearch xff0c 让他去匹配自带的jdk 使用命
  • 2-2进程管理-处理机调度

    文章目录 一 调度的层次二 进程调度的时机 切换与过程 调度方式三 调度器 闲逛进程四 调度算法的评价指标五 调度算法 xff08 一 xff09 先来先服务SCFS xff08 二 xff09 短作业优先算法SJF xff08 三 xff
  • 百度ai开放平台使用方法(附带例子详细步骤)

    百度ai开放平台 1 百度ai开放平台内有众多功能 xff0c 如文字识别 xff0c 语音技术等等内容 xff0c 本文章以身份证识别为例子 xff0c 教大家怎么使用它啦 链接走起 xff1a https cloud baidu com
  • 树莓派4b装完系统后,外接的显示屏刚开始蓝屏,过一会就不亮了是什么原因

    有可能是显示屏的连接或设置问题 xff0c 以下是一些可能导致这种情况的原因及相应的解决方法 xff1a 1 连接问题 xff1a 请确保显示屏与树莓派4B连接的正确 xff0c 建议检查接头是否牢固 另外 xff0c 如果你是通过 HDM
  • Maven报错:The packaging for this project did not assign a file to the build arti fact

    https blog csdn net gao zhennan article details 89713407
  • YOLO-MASK对图像数据集进行清洗

    一 前情介绍 之前在捣鼓yolo系列模型 xff0c 尝试着对coco的羊数据集进行训练 xff0c 可是发现不管怎么调参 xff0c Map一直在60几 xff0c 死活上不了70 后来在一位资深老算法师的指点下 xff0c 才明白 xf
  • 进程,文件,内存简述

    1 进程 一个程序一旦在操作系统里动起来 xff0c 他就成为了一个进程 进程表 xff1a 存放有进程的运行情况以及信息 进程核 xff1a 一个时刻 xff0c 一个进程占用的所有资源 核快照 xff1a 进程在某一时刻的状态 当产生了
  • GNURadio中运行ofdm_rx报错:gr::log :INFO: packet_headerparser_b0 - Detected an invalid packet at item ××

    修改方法 xff1a 减小发送端的乘数因子 但是本着知其然还要知其所以然的学习态度 xff0c 下面就解释下出现这种现象的原因 xff1a 2021 10 28 更新 xff1a 在实际的测试中发现 xff0c 引起该问题的原因还有可能是接
  • 关于改进邮政编码的建议 2018-03-08

    关于改进邮政编码的建议 2018 03 08 邮政法 第二十三条规定 xff1a 用户交寄邮件 xff0c 应当清楚 准确地填写收件人姓名 地址和邮政编码 邮政企业应当在邮政营业场所免费为用户提供邮政编码查询服务 邮政编码由邮政企业根据国务
  • Chapter5 MapReduce

    5 1概述 5 1 1分布式并行编程 MapReduce是一种分布式并行编程框架 在计算机发展史上的 34 摩尔定律 34 xff1a CPU的性能每隔18个月就可以翻一番 然而 xff0c 从2005年起 xff0c 摩尔定律逐渐失效 x
  • 解决Hadoop集群hdfs无法启动DataNode的问题

    问题描述 xff1a 在hadoop启动hdfs的之后 xff0c 使用jps命令查看运行情况时发现hdfs的DataNode并没有打开 笔者出现此情况前曾使用hdfs namenode format格式化了hdfs 如有三个hadoop集
  • Kalman滤波参数、调整原则

    1 Q P R关系 P的迭代为P 61 QTPQ xff1b R为观测的协方差 xff1b 状态延时高 xff0c 说明收敛速度慢 估计参数P越大 xff0c 收敛的越快 测量误差R越小 xff0c 收敛的越快 调整这两个参数即可 xff0
  • python import函数使用

    import函数调用整个模块 例子 xff1a 首先建一个python文件 pizza py span class token keyword def span span class token function make pizza sp
  • RLException: [fake_turtlebot.launch] is neither a launch file in package [rbx1_bringup] nor is [rbx1

    RLException fake turtlebot launch is neither a launch file in package rbx1 bringup nor is rbx1 bringup a launch file nam
  • ros-Launch启动文件的使用方法

    ros Launch启动文件的使用方法 Launch可以启动多个节点 xff0c 运行rosrun命令 可以自动启动rosmaster xff08 不需要再输入roscore命令启动rosmaster xff09 自动检测有没有rosmas

随机推荐