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

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

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

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

图片1.png

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

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

 1 通过MIPI接口播放音频

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

    图片2.png

  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

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

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

 

图片3.png

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

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

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

    图片4.png

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

    图片5.png

  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样例目录下会生成音频文件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

    图片6.png

获取样例源码请访问:

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

3 通过MIPI接口获取Camera图像

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

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

    图片7.png

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

    图片8.png

  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拍摄一张照片。
    (base) root@orangepiaipro:/opt/opi_test/camera# ./vi_l1_sample 1 1 1
  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 

    图片9.png

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

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

4 通过USB接口获取Camera图像

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

    图片10.png

    图片11.png

  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

    图片12.png

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

5 通过HDMI接口显示图像

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

    图片13.png

  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测试程序所在路径,然后运行sh脚本就会播放一张图片到HDMI 显示器(默认显示 10 秒),并且同时会播放一段音频到HDMI显示器,如果HDMI显示器支持播放音频的话,还能听到声音。
    (base) root@orangepiaipro:/opt/opi_test/hdmi0_pic# ./test.sh
  5. HDMI显示的图片如下所示:

    图片14.png

    测试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接口显示图像

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

    图片15.png

    图片16.png

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

    图片17.png

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

    图片18.png

    使用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测试程序所在的路径,然后运行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分辨率的图片。详细接口介绍请移步文末访问昇腾社区文档中心。

更多学习资源

[1]昇腾文档中心:https://www.hiascend.com/zh/document

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。