香橙派AIpro外设接口样例大全(附源码)

news2024/12/29 10:47:25

 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能 AI 开发板,其搭载了昇腾 AI 处理器,可提供 8TOPS INT8 的计算能力,内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛用于教育、机器人、无人机等场景。

丰富的接口更是赋予了Orange Pi AIpro强大的可拓展性。包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB、两个MIPI摄像头、一个MIPI屏等,预留电池接口。

 小编整理了外设接口使用示例,并提供了样例源码,供大家体验和学习。

  1. 通过MIPI接口播放音频
  2. USB接口录制和播放音频
  3. 通过MIPI接口获取Camera图像
  4. 通过USB接口获取Camera图像
  5. 通过HDMI接口显示图像
  6. 通过MIPI接口显示图像

通过MIPI接口播放音频

1. 首先将耳机插入开发板的3.5mm耳机接口中。

2. 然后进入音频测试程序所在的目录中。

(base) HwHiAiUser@orangepiaipro:~$ sudo -i 
(base) root@orangepiaipro:~# cd /opt/opi_test/audio 
(base) root@orangepiaipro:/opt/opi_test/audio# ls 
capture.sh play.sh qzgy_48k_16_mono_30s.pcm sample_audio sample_audio_2ch

3. 使用以下命令就可以播放测试音频到耳机了。

(base) root@orangepiaipro:/opt/opi_test/audio# ./sample_audio_2ch play 2 qzgy_48k_16_mono_30s.pcm

 获取样例源码请访问:Ascend/EdgeAndbotics - Gitee.com

 本样例调用AscendCL的媒体数据处理接口实现音频的播放,最终在程序运行时播放*.pcm音频文件的内容,主要接口调用流程如下:

详细接口介绍请移步文末访问昇腾社区文档中心。

通过USB接口录制和播放音频

1. 首先需要准备一个带录音功能的USB接口的耳机。

2. 然后将USB接口的耳机插入开发的USB接口中。

3. 使用arecord -l命令查看下录音设备的编号,如下面的输出所示,其中card0中的0表示录音设备编号为0。

(base) HwHiAiUser@orangepiaipro:~$ arecord -l 
**** List of CAPTURE Hardware Devices ****
card 0: Audio [AB13X USB Audio], device 0: USB Audio [USB Audio]
 Subdevices: 1/1
 Subdevice #0: subdevice #0

4. 进入USB音频测试代码路径中。

(base) HwHiAiUser@orangepiaipro:~$ sudo -i 
(base) root@orangepiaipro:~# cd /opt/opi_test/USBAudio 
(base) root@orangepiaipro:/opt/opi_test/USBAudio# ls 
Readme.md main main.c

5. 使用下面的命令可以使用USB音频设备录制一段音频。其中0表示录音设备编号,需根据实际情况填写。

(base) root@orangepiaipro:/opt/opi_test/USBAudio# ./main plughw:0

6. 录制结束后,在终端界面输入over即可退出录制。

(base) root@orangepiaipro:/opt/opi_test/USBAudio# ./main plughw:0 
Start record!
over #输入 over 结束录制音频 
(base) root@orangepiaipro:/opt/opi_test/USBAudio#

7. 录音成功后,在USBAudio样例目录下会生成音频文件audio.pcm。

(base) root@orangepiaipro:/opt/opi_test/USBAudio# ls *.pcm 
audio.pcm

8. 确保使用aplay -l命令能看到USB的播音设备。

(base) root@orangepiaipro:/opt/opi_test/USBAudio# aplay -l 
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [AB13X USB Audio], device 0: USB Audio [USB Audio]
 Subdevices: 0/1
 Subdevice #0: subdevice #0

9. 在Linux系统桌面中,使用下面命令可以将录制的音频播放到USB耳机。

(base) root@orangepiaipro:/opt/opi_test/USBAudio# ffplay -ar 44100 -ac 2 -f s16le audio.pcm

 获取样例源码请访问:Ascend/EdgeAndRobotics - Gitee.com

通过MIPI接口获取Camera图像

目前MIPI摄像头测试只能用样例程序拍一张图片,步骤如下所示:

1. 首先需要准备一个树莓派IMX219摄像头。

2. 然后将摄像头连接到开发板的MIPI摄像头接口中。测试一个摄像头拍照时,请使用CAMERA0接口。

3. 登录Linux系统桌面,打开一个终端,再进入测试程序所在路径。

(base) HwHiAiUser@orangepiaipro:~$ sudo -i 
(base) root@orangepiaipro:~# cd /opt/opi_test/camera 
(base) root@orangepiaipro:/opt/opi_test/camera# ls 
sample_hdmi test_one.sh test_two.sh update_dt.sh vi_l1_sample

4. 运行下面的命令就会使用CAMERA0拍摄一张照片。

5. 拍摄好的图片如下所示:

(base) root@orangepiaipro:/opt/opi_test/camera# ls *.yuv 
vi_pipe0_chn0_w1920_h1080.yuv

6. 在Linux桌面中使用ffplay命令可以查看下拍摄的图片。

(base) root@orangepiaipro:/opt/opi_test/camera# ffplay -pix_fmt yuv420p -video_size 
1920*1080 ./vi_pipe0_chn0_w1920_h1080.yuv

获取样例源码请访问:Ascend/EdgeAndRobotics - Gitee.com

本样例调用AscendCL的媒体数据处理接口获取和处理Camera图像,最终在程序运行时处理为YUV或RAW格式的图像,详细接口介绍请移步文末访问昇腾社区文档中心。

通过USB接口获取Camera图像

1. 首先将USB摄像头插入到开发板的USB3.0 HOST接口中。

2. 然后通过v4l2-ctl命令就可以看到USB摄像头的设备节点信息为/dev/video0。

(base) HwHiAiUser@orangepiaipro:~$ sudo apt-get update  
(base) HwHiAiUser@orangepiaipro:~$ sudo apt-get install -y v4l-utils  
(base) HwHiAiUser@orangepiaipro:~$ sudo v4l2-ctl --list-devices  
Q8 HD Webcam: Q8 HD Webcam (usb-xhci-hcd.3.auto-1):  
 /dev/video0  
 /dev/video1 #这个是用来采集metadata的,先忽略
 /dev/media0

注意:v4l2中的l是小写字母l,不是数字1。另外video的序号不一定都是video0,请以实际看到的为准。

3. 下面使用内置的USBCamera样例代码测试 USB 摄像头。

首先进入USBCamera样例代码的路径。

(base) HwHiAiUser@orangepiaipro:~$ sudo -i 
(base) root@orangepiaipro:~# cd /opt/opi_test/USBCamera 
(base) root@orangepiaipro:/opt/opi_test/USBCamera# ls 
main main.cpp readme.md

运行下面的命令就可以使用USB摄像头拍一张照片:

(base) root@orangepiaipro:/opt/opi_test/USBCamera# ./main /dev/video0

运行成功后,在USBCamera 样例目录下会生成一个yuyv422格式、1280*720分辨率的out.yuv文件。

(base) root@orangepiaipro:/opt/opi_test/USBCamera# ls 
main main.cpp out.yuv readme.md

在Linux桌面中使用下面的命令可以查看out.yuv文件的内容。

(base) root@orangepiaipro:/opt/opi_test/USBCamera# ffplay -pix_fmt yuyv422 -video_size 1280*720 out.yuv

获取样例源码请访问:Ascend/EdgeAndRobotics - Gitee.com

通过HDMI接口显示图像

1. 首先连接HDMI0接口到HDMI显示器。

2. 然后切换到root用户,并进入HDMI0测试程序所在路径。

(base) HwHiAiUser@orangepiaipro:~$ sudo -i 
(base) root@orangepiaipro:~# cd /opt/opi_test/hdmi0_pic 
(base) root@orangepiaipro:/opt/opi_test/hdmi0_pic# ls 
sample_hdmi test.sh update_dt.sh ut_1920x1080_nv12.yuv

3. 运行update_dt.sh脚本更新dt.img(关闭drm的配置,打开vdp的配置)。update_dt.sh脚本运行完后会自动重启Linux系统。

(base) root@orangepiaipro:/opt/opi_test/hdmi0_pic# ./update_dt.sh

4. 重启后再次进入HDMI0测试程序所在路径,然后运行test.sh脚本就会播放一张图片到HDMI 显示器(默认显示 10 秒),并且同时会播放一段音频到HDMI显示器,如果HDMI显示器支持播放音频的话,还能听到声音。

(base) root@orangepiaipro:/opt/opi_test/hdmi0_pic# ./test.sh

5. HDMI显示的图片如下所示:

测试HDMI1输出一张图片的方法和HDMI0一样,只是测试程序的路径为:

/opt/opi_test/hdmi1_pic

获取样例源码请访问:Ascend/EdgeAndRobotics - Gitee.com,本样例调用AscendCL的媒体数据处理接口使能HDMI接口,从而在显示器上显示yuv420 NV12格式、1920*1080分辨率的图片。详细接口介绍请移步文末访问昇腾社区文档中心。

通过MIPI接口显示图像

1. 准备树莓派5寸MIPI LCD显示屏、15pin MIPI 排线。

2. 将15pin MIPI排线按照下图所示的方式连接到树莓派5寸屏幕上(注意绝缘面的朝向)。

3. 将LCD屏幕连接到开发板的MIPI LCD接口上。

使用MIPI LCD屏幕显示Linux系统桌面的功能还在开发中。目前MIPI LCD屏幕只能用样例程序显示一张图片。

4. 进入测试程序所在的路径。

(base) HwHiAiUser@orangepiaipro:~$ sudo -i 
(base) root@orangepiaipro:~# cd /opt/opi_test/lcd 
(base) root@orangepiaipro:/opt/opi_test/lcd# ls 
raspberry_demo test.sh update_dt.sh ut_800x480_nv12.yu

5. 运行update_dt.sh脚本更新dt.img(关闭drm的配置,打开vdp的配置)。update_dt.sh脚本运行完后会自动重启Linux系统。

(base) root@orangepiaipro:/opt/opi_test/lcd# ./update_dt.sh

6. 重启后再次进入LCD测试程序所在的路径,然后运行test.sh脚本就会播放一张图片到LCD屏幕。

(base) root@orangepiaipro:/opt/opi_test/lcd# ./test.sh

使用Ctrl+C快捷键可以停止显示图片。

获取样例源码请访问:Ascend/EdgeAndRobotics - Gitee.com,本样例调用AscendCL的媒体数据处理接口接收MIPI接口数据,并在显示器上显示yuv420SP格式、800*400分辨率的图片。详细接口介绍请移步文末访问昇腾社区文档中心。

更多学习资源

[1]昇腾文档中心:昇腾社区-官网丨昇腾万里 让智能无所不及

[2]香橙派AIpro学习资源一站式导航:https://www.hiascend.com/forum/thread-0285140173361311056-1-1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1499651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频水印怎么轻松去除?这三款神器让您直呼过瘾!

在现代社会,视频内容日益丰富多样,但有时我们更希望获得视频中的文字文稿,以便于搜索、编辑或传播。下面我将为您介绍三款优秀的视频转文字工具,它们能够帮助您快速、准确地将视频内容转换为可编辑的文字格式。让我们一起来看看这…

【开源】SpringBoot框架开发快乐贩卖馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视频收藏模块2.4 视频评分模块2.5 视频交易模块2.6 视频好友模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 搞笑视频表3.2.2 视频收藏表3.2.3 视频评分表3.2.4 视频交易表 四、系…

广播

1.什么是广播 2.标准广播 BroadStandardActivity.java package com.tiger.chapter09;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View;…

Vue 使用@别名

1. 安装 types/node types/node 包允许您在TypeScript项目中使用Node.js的核心模块和API,并提供了对它们的类型检查和智能提示的支持。 npm install types/node --save-dev 比如安装之后,就可以导入nodejs的 path模块,在下面代码 import pat…

数据要素“摸家底”:是什么?为什么?怎么做?

继经济数据“摸家底”之后,全国数据资源也迎来一次“大摸底”。2月19日,国家数据局等四部门发布《关于开展全国数据资源调查的通知》,提出“摸清数据资源底数”,为相关政策制定、试点示范等工作提供数据支持。如此大规模数据资源调…

centos7保姆级安装jdk8教程

文章目录 1、下载jdk安装包2、在centos7 创建文件夹3、解压jdk文件4、配置环境变量a、打开环境变量文件b、将配置信息复制进去。c、重新加载环境变量 5、测试是否成功 1、下载jdk安装包 jdk下载地址:https://www.oracle.com/java/technologies/downloads/ Oracle…

深入了解Python的eval函数:基础用法与潜在危险【第118篇—eval函数】

深入了解Python的eval函数:基础用法与潜在危险 在Python中,eval函数是一个强大而灵活的工具,它允许将字符串作为代码来执行。然而,虽然eval在某些情况下非常方便,但它也潜藏着一些潜在的危险,如果不小心使…

MySQL 学习笔记(基础篇 Day3)

「写在前面」 本文为黑马程序员 MySQL 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. MySQL 学习笔记(基础篇 Day1) 2. MySQL 学习笔记&#xff08…

【论文阅读笔记】Activating More Pixels in Image Super-Resolution Transformer

论文地址:https://arxiv.org/abs/2205.04437 代码位置:https://github.com/XPixelGroup/HAT 论文小结 本文方法是基于Transformer的方法,探索了Transformer在低级视觉任务(如SR)中的应用潜力。本文提升有效利用像素范…

机器学习的魔法(一)从零开始理解吴恩达的精炼笔记

一、机器学习是什么? 1、机器学习的概念 机器学习是一种人工智能领域的技术和方法,旨在使计算机系统能够从经验数据中自动学习和改进,而无需显式地进行编程。它涉及开发算法和模型,使计算机能够自动分析和理解数据,并…

HIngress 的定位和基本运行原理

HIngress介绍 Higress是基于阿里内部的Envoy Gateway实践沉淀、以开源Istio Envoy为核心构建的下一代云原生网关,实现了流量网关 微服务网关 安全网关三合一的高集成能力,深度集成Dubbo、Nacos、Sentinel等微服务技术栈,能够帮助用户极大的…

IMU在下肢姿态估计中的应用

随着人口老龄化,如何改善老人运动健康成为了我们这个时代的一大挑战。近期,一项研究探索了将工业机器人调整以辅助运动治疗的可能性。实验重点关注运用惯性测量单元(IMU)来分析下肢动作,从而评估治疗效果实施效果。 实…

HttpRequest请求模块设计与实现(http模块二)

目录 类功能 类定义 类实现 编译测试 类功能 类定义 // HttpRequest请求模块 class HttpRequest { public:std::string _method; // 请求方法std::string _path; // 资源路径std::string _version…

论文阅读之Multimodal Chain-of-Thought Reasoning in Language Models

文章目录 简介摘要引言多模态思维链推理的挑战多模态CoT框架多模态CoT模型架构细节编码模块融合模块解码模块 实验结果总结 简介 本文主要对2023一篇论文《Multimodal Chain-of-Thought Reasoning in Language Models》主要内容进行介绍。 摘要 大型语言模型(LLM…

hexo butterfly博客搭建美化集合+问题记录

文章目录 一、美化1. cs 和js引入2. 图标使用 三、问题总结1. vscode终端输入hexo命令报错 一、美化 1. cs 和js引入 hexo博客添加自定义css和js文件 如果想魔改和美化,添加自定义文件是不可避免的。下面来详细说一下css和js文件的创建和引入,其他文件同…

AI预测福彩3D第5弹【2024年3月8日预测--新算法重新开始计算日期】

今天是三八妇女节,首先祝各位女性朋友节日快乐! 写代码真是容不得一点马虎,前面连续搞了4期的预测,其中昨晚个位开出了一个异常的号码5,我用AI预测的结果是5百分百不会出,5的出现让我非常的震惊&#xff0c…

mysql数据库入门到精通-Windows版本mysql安装(1)

文章目录 一、数据库介绍1.1、数据库概念1.2、为什么要使用数据库1.3、关系型数据库与非关系型数据库1.4、数据库术语1.5、mysql下载及地址 二、安装mysql数据库三、mysql的管理工具3.1、mysql command line client使用 四、SQL结构化查询语言4.1、SQL概述4.2、SQL发展4.3、SQL…

Transformer中Self-Attention的详细解读

Transformer最早是在论文《Attention is All You Need》中提出的,目前已广泛应用于NLP领域,如语言翻译、文本分类、问答系统等。由于在产品规划中需要使用这样的模型结构,因此花了一些时间对其进行了一些学习理解。 除了阅读论文及配套的代码…

(黑马出品_05)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

(黑马出品_05)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术分布式搜索 今日目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2.ELK技术栈1.1.3.elasticsearch和lucene1.1.4.为什么不是其他搜索技…

Mysql按照月份分组统计数据,当月无数据则填充0

目录 起因实现结论 起因 最近有个需求需要在sql中实现获取近半年的统计数据,本来以为挺简单的,不过这个项目数据基本没有,在此情况下还要实现获取近半年的数据就没办法简单group by了 实现 #如果每个月都有数据的话是比较简单的 SELECT DA…