速存,详细罗列香橙派 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 耳机接口中。

然后进入音频测试程序所在的目录中。
使用以下命令就可以播放测试音频到耳机了。
获取样例源码请访问:https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Audio/MIPIAudio
本样例调用 AscendCL 的媒体数据处理接口实现音频的播放,最终在程序运行时播放*.pcm 音频文件的内容,主要接口调用流程如下:

详细接口介绍请移步文末访问昇腾社区文档中心。
2 通过 USB 接口录制和播放音频
首先需要准备一个带录音功能的 USB 接口的耳机。

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

使用 arecord -l 命令查看下录音设备的编号,如下面的输出所示,其中 card0 中的 0 表示录音设备编号为 0。
进入 USB 音频测试代码路径中。
使用下面的命令可以使用 USB 音频设备录制一段音频。其中 0 表示录音设备编号,需根据实际情况填写。
录制结束后,在终端界面输入 over 即可退出录制。
录音成功后,在 USBAudio 样例目录下会生成音频文件 pcm。
确保使用 aplay -l 命令能看到 USB 的播音设备。
在 Linux 系统桌面中,使用下面命令可以将录制的音频播放到 USB 耳机。

获取样例源码请访问:
https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Audio/USBAudio
3 通过 MIPI 接口获取 Camera 图像
目前 MIPI 摄像头测试只能用样例程序拍一张图片,步骤如下所示:
首先需要准备一个树莓派 IMX219 摄像头。

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

登录 Linux 系统桌面,打开一个终端,再进入测试程序所在路径。
运行下面的命令就会使用 CAMERA0 拍摄一张照片。
拍摄好的图片如下所示:
在 Linux 桌面中使用 ffplay 命令可以查看下拍摄的图片。

获取样例源码请访问: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。
注意:v4l2 中的 l 是小写字母 l,不是数字 1。另外 video 的序号不一定都是 video0,请以实际看到的为准。
下面使用内置的 USBCamera 样例代码测试 USB 摄像头。
首先进入 USBCamera 样例代码的路径。
运行下面的命令就可以使用 USB 摄像头拍一张照片:
运行成功后,在 USBCamera 样例目录下会生成一个 yuyv422 格式、1280*720 分辨率的 out.yuv 文件。
在 Linux 桌面中使用下面的命令可以查看 out.yuv 文件的内容。

获取样例源码请访问:https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Camera/USBCamera
5 通过 HDMI 接口显示图像
首先连接 HDMI0 接口到 HDMI 显示器。

然后切换到 root 用户,并进入 HDMI0 测试程序所在路径。
运行 update_dt.sh 脚本更新 dt.img(关闭 drm 的配置,打开 vdp 的配置)
update_dt.sh 脚本运行完后会自动重启 Linux 系统。
重启后再次进入 HDMI0 测试程序所在路径,然后运行 sh 脚本就会播放一张图片到 HDMI 显示器(默认显示 10 秒),并且同时会播放一段音频到 HDMI 显示器,如果 HDMI 显示器支持播放音频的话,还能听到声音。
HDMI 显示的图片如下所示:

测试 HDMI1 输出一张图片的方法和 HDMI0 一样,只是测试程序的路径为:
获取样例源码请访问: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 屏幕只能用样例程序显示一张图片。
进入测试程序所在的路径。
运行 update_dt.sh 脚本更新 dt.img(关闭 drm 的配置,打开 vdp 的配置)。
update_dt.sh 脚本运行完后会自动重启 Linux 系统。
重启后再次进入 LCD 测试程序所在的路径,然后运行 sh 脚本就会播放一张图片到 LCD 屏幕。
获取样例源码请访问:https://gitee.com/ascend/EdgeAndRobotics/tree/master/Peripherals/Display/MIPIDisplay,本样例调用 AscendCL 的媒体数据处理接口接收 MIPI 接口数据,并在显示器上显示 yuv420SP 格式、800*400 分辨率的图片。详细接口介绍请移步文末访问昇腾社区文档中心。
7 更多学习资源
[1]昇腾文档中心:https://www.hiascend.com/zh/document
[2]香橙派 AIpro 学习资源一站式导航:https://www.hiascend.com/forum/thread-0285140173361311056-1-1.html
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/6e9ddc658d775145a3f595a51】。文章转载请联系作者。
评论