速存,详细罗列香橙派AIpro外设接口样例大全(附源码)

本文分享自华为云社区《香橙派AIpro外设接口样例大全(附源码)》,作者:昇腾CANN。

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屏等,预留电池接口。

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

  • 通过MIPI接口播放音频
  • USB接口录制和播放音频
  • 通过MIPI接口获取Camera图像
  • 通过USB接口获取Camera图像
  • 通过HDMI接口显示图像
  • 通过MIPI接口显示图像

1 通过MIPI接口播放音频

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


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

复制代码
(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

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

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

获取样例源码请访问:https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Audio/MIPIAudio

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

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

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

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


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

使用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

进入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

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

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

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

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

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

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

确保使用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 

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

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

获取样例源码请访问:

https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Audio/USBAudio

3 通过MIPI接口获取Camera图像

目前MIPI摄像头测试只能用样例程序拍一张图片,步骤如下所示:
首先需要准备一个树莓派IMX219摄像头。

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

登录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

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

复制代码
(base) root@orangepiaipro:/opt/opi_test/camera# ./vi_l1_sample 1 1 1

拍摄好的图片如下所示:

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

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

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

获取样例源码请访问:https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Camera/MIPICamera

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

4 通过USB接口获取Camera图像

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

然后通过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,请以实际看到的为准。

下面使用内置的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

获取样例源码请访问:https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Camera/USBCamera

5 通过HDMI接口显示图像

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


然后切换到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

运行update_dt.sh脚本更新dt.img(关闭drm的配置,打开vdp的配置)

update_dt.sh脚本运行完后会自动重启Linux系统。

复制代码
(base) root@orangepiaipro:/opt/opi_test/hdmi0_pic# ./update_dt.sh

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

复制代码
(base) root@orangepiaipro:/opt/opi_test/hdmi0_pic# ./test.sh

HDMI显示的图片如下所示:

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

复制代码
/opt/opi_test/hdmi1_pic

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

6 通过MIPI接口显示图像

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

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


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

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

复制代码
(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

运行update_dt.sh脚本更新dt.img(关闭drm的配置,打开vdp的配置)。

update_dt.sh脚本运行完后会自动重启Linux系统。

复制代码
(base) root@orangepiaipro:/opt/opi_test/lcd# ./update_dt.sh

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

复制代码
(base) root@orangepiaipro:/opt/opi_test/lcd# ./test.sh

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

7 更多学习资源

1\]昇腾文档中心: \[2\]香橙派AIpro学习资源一站式导航: [点击关注,第一时间了解华为云新鲜技术\~](https://bbs.huaweicloud.com/blogs?utm_source=cnblog&utm_medium=bbs-ex&utm_campaign=other&utm_content=content)

相关推荐
Deepoch14 小时前
Deepoc 具身模型开发板:让农业除草机器人实现更稳定的自主作业
人工智能·机器人·开发板·具身模型·deepoc·除草
Deepoch1 天前
Deepoc 具身智能开发板:让机械臂清扫机器人更智能更安全
人工智能·机器人·开发板·具身模型·deepoc·机械臂扫地机
Deepoch12 天前
Deepoc 边缘智能计算单元强化无人机群组野外场景自适应技术研究
人工智能·无人机·开发板·具身模型·deepoc
Deepoch15 天前
Deepoc 具身模型开发板在果蔬采摘机器人自主作业中的技术研究
机器人·开发板·采摘机器人·具身模型·deepoc
Deepoch16 天前
Deepoc 具身模型开发板赋能智能轮椅自主随行与安全控制技术研究
人工智能·科技·安全·开发板·deepoc·智能轮椅
Deepoch18 天前
Deepoc 具身模型开发板在农田植保机器人自主作业中的应用研究
人工智能·科技·机器人·开发板·农业机器人·deepoc·采摘
Tronlong创龙18 天前
RK3576 单板机嵌入式 Qt 界面与多屏异显开发手册(一)
开发板·嵌入式开发·硬件开发·工业控制
Tronlong创龙19 天前
RK3576 单板机嵌入式 Qt 界面与多屏异显开发手册(二)
开发板·嵌入式开发·硬件开发·工业控制
key_3_feng20 天前
开发板入门技术方案:从零构建物联网开发基础
开发板
合众恒跃21 天前
边缘计算终端,前路何方?小型化,或是破局之选。
边缘计算·开发板·嵌入式开发·工业物联网·瑞芯微