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

 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

备忘 clang diagnostic 类的应用示例 ubuntu 22.04

系统的ncurses环境有些问题 通过源码安装了ncurses6.3后,才可以在 llvmort-18.1.rc4中编译通过示例: 1,折腾环境 ncurses-6.3$ ./configure ncurses-6.3$ make -j ncurses-6.3$ sudo make install sudo apt install libtinfo5 sudo…

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

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

MES组件车间解决方案:提高生产管理效率和质量的关键

市场环境的变化得越来越恶劣,现代生产管理理念不断更新,制造型企业是否进入管理的良性循环,关键在于“计划”与“执行”的密切配合,企业和车间管理人员必须在最短的时间内掌握生产现场的变化,并做出准确的判断和应对措…

龙芯第四代3A6000主板与龙芯3A500龙架构兼容,具备丰富的接口和扩展性

龙芯 3A6000 处理器完全自主设计、性能优异,代表了我国自主桌面 CPU 设计领域的最新里程碑成果。龙芯 3A6000 处理器的推出,说明国产 CPU 在自主可控程度和产品性能上已双双达到新高度,也证明了国内有能力在自研 CPU 架构上做出一流的产品。 …

洗车行业小程序源码系统 带完整的安装代码包以及搭建教程

大家好!今天来给大家分享一款洗车行业小程序源码系统,通过小程序,用户可以方便地预约洗车服务、查看服务进度,洗车店也可以实时管理订单、安排人员,从而提高服务效率。同时,小程序界面简洁明了,…

蓝牙耳机什么牌子好?全价位段盘点,真人实测带你避开雷区!

​无线耳机已经成为现代生活中的必备数码产品,尤其在感受到无线带来的自由后,很难再适应有线耳机的束缚。因此,耳机市场竞争激烈,各种类型和外观的耳机层出不穷。在此,我为大家总结了五款使用体验很不错的蓝牙耳机&…

VsCode搭建Spring Boot项目环境

VsCode搭建Spring Boot项目环境 1、前提条件:配置Java环境 下载安装JDK配置环境变量 2、VsCode配置SpringBoot环境 安装扩展 配置Maven 找到Maven配置文件,进行打开settings.json,添加如下代码: "workbench.iconThem…

工具 | 解决IDEA每次git拉取远程代码 default changelist 都会出现 .idea文件修改记录

问题描述: 每次我在拉取远程代码的时候,git都会默认将 .idea当中的文件(例如:compiler.xml or workspace.xml)都会莫名其妙的自动修改。 这里吐槽一下很离谱的一个现象,仔细看下修改的内容,最离…

邮件营销新手必读指南?怎样做好邮件营销?

邮件营销的全流程及步骤?做好邮件营销有哪些注意点? 邮件营销作为一种传统却依然高效的推广手段,被众多企业所青睐。对于新手来说,如何开展邮件营销,却是一个值得探讨的话题。AokSend将为你提供一份邮件营销新手必读指…

盘点热门的5个AI视频工具(上):附保姆级教程,居然还有免费的?(建议收藏)

一条完全使用 AI 做出的短视频,点赞上万,转发上万! 你敢信,这是我在前几天刷视频的时候,看到的一个 AI 视频案例。 这种 AI 视频为什么会火? AI 虽然不是什么新的领域,但 2023 年&#xff0c…

mini-spring|把AOP动态代理,融入到Bean的生命周期

本文完成 AOP 核心功能与 Spring 框架的整合,最终能通过在 Spring 配置的方式完成切面的操作。 解决问题: 怎么借着 BeanPostProcessor 把动态代理融入到 Bean 的生命周期中,以及如何组装各项切点、拦截、前置的功能和适配对应的代理器。 …

c++ 中const

对于基础类型直接赋值 void test01(){const int data10;cout<<"data"<<data<<endl;int * p (int*)&data;*p 1000;cout<<"*p"<<*p<<endl;cout<<"after data"<<data; } c中&#xff0c;对于…

Github 2024-03-02 开源项目日报Top9

根据Github Trendings的统计&#xff0c;今日(2024-03-02统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量非开发语言项目2Rust项目1JavaScript项目1Shell项目1C项目1TypeScript项目1C#项目1Python项目1 任天堂Switch模…

47. 【Linux教程】逻辑卷的简单使用

本小节介绍创建 LVM 的步骤&#xff0c;并介绍如何简单的使用 LVM&#xff0c;主要分为&#xff1a;定义物理卷、创建卷组、创建逻辑卷、创建文件系统、修改 LVM。 1.LVM 中的几个概念 PV(physical volume)&#xff0c;物理卷在逻辑卷管理系统最底层&#xff0c;可为整个物理硬…

那些像白牌的品牌正在霸榜TikTok美区!国货之光闪耀海外!

北京时间 3 月 6 日&#xff0c;据路透社报道&#xff0c;美国两党国会议员在周二提出了一项法案&#xff0c;要求字节跳动公司剥离对旗下短视频应用 TikTok 的控制权&#xff0c;否则就禁止应用商店上架分发 TikTok。 TikTok 对此回应称&#xff1a;“无论提案人如何掩饰&…

在线免费预览查看 Axure rp 原型

Axure RP 不仅可以绘制详细的产品概念&#xff0c;还可以在浏览器中生成 html 页面进行参考&#xff0c;但需要安装插件才能打开。安装 Axure rpchrome 插件之后&#xff0c;还需要在扩展程序中选择 “允许访问文件网站”&#xff0c;否则无法在 Axure 中成功。 在线查看原型。…

基于深度学习的驾驶员分心驾驶行为(疲劳+危险行为)预警系统使用YOLOv5+Deepsort实现驾驶员的危险驾驶行为的预警监测

人物专注性检测 项目快速预览 主要不同地方为&#xff1a; 1、疲劳检测中去掉了点头行为的检测&#xff0c;仅保留闭眼检测和打哈欠检测。 2、Yolov5的权重进行了重新训练&#xff0c;增加了训练轮次。 3、前端UI进行了修改&#xff0c;精简了部分功能。 项目介绍 该项目…

0基础学习VR全景平台篇第143篇:限定访问功能

大家好&#xff0c;欢迎观看蛙色VR官方——后台使用系列课程&#xff01;这期&#xff0c;我们将为大家介绍如何使用限定访问功能。 一.什么是限定访问功能&#xff1f; 限定访问&#xff0c;就是可以在编辑后台设置可以访问作品的用户的类型&#xff0c;还有可以访问作品的IP…

某准网招聘接口逆向之WebPack扣取

​​​​​逆向网址 aHR0cHM6Ly93d3cua2Fuemh1bi5jb20v 逆向链接 aHR0cHM6Ly93d3cua2Fuemh1bi5jb20vc2VhcmNoP3BhZ2VOdW09MSZxdWVyeT1weXRob24mdHlwZT01 逆向接口 aHR0cHM6Ly93d3cua2Fuemh1bi5jb20vYXBpX3RvL3NlYXJjaC9qb2IuanNvbg 逆向过程 请求方式&#xff1a;GET 参数构成…

434G数据失窃!亚信安全发布《勒索家族和勒索事件监控报告》

最新态势快速感知 最新一周全球共监测到勒索事件90起&#xff0c;与上周相比数量有所增加。 lockbit3.0仍然是影响最严重的勒索家族&#xff1b;alphv和cactus恶意家族也是两个活动频繁的恶意家族&#xff0c;需要注意防范。 Change Healthcare - Optum - UnitedHealth遭受了…