赞
踩
前言:很高兴受邀CSDN与OrangePi官方组织的测评活动,本次测评是一块基于AI边缘计算的香橙派开发板OrangePi AIpro。这是 香橙派 联合 华为昇腾 合作精心打造的新一代边缘AI计算产品,于2023年12月初发布,提供 8/20TOPS澎湃算力[1],能覆盖生态开发板者的主流应用场景,让用户实践各种创新场景,并为其提供配套的软硬件。价格方面也是颇具性价比,8TOPS、8GB内存的创客价/预售价仅为799元。
本篇博文就围绕OrangePi AIpro 开发板进行较为全面的测评,包括基础开箱及环境配置,同时会从 AI 和 IOT 两个部分进行较为深入的测评体验。
拿到产品,第一时间进行了拆箱。可以看到包装非常的专业、很严实,产品包括OrangePi AIpro开发板、65w pd充电器、充电线。瓷漆的设计高端大气,各细节考虑全面,很有质感。看了下充电器参数,兼容了5V/3A、9V/3A、12V/3A、15V/3A、20V/3.25A这几个常见的电压和电流输出,同时看到散热风扇和烧录系统镜像的32G内存卡都已经安装好了,一般AI CPU运行模型都需要散热,将芯片维持在一个正常的温度范围内是很有必要的。所以拿到板子不需要额外过多的安装步骤,开箱就能用起来,这一点还是非常友好的。
芯片方面,拆开风扇可以看到丝印上印制CN,表示中国制造的国产华为芯片,不过具体哪个厂商制作的目前还不清楚。可以说拿到这块香橙派开发板还是感觉很自豪的,即使国外限制芯片也不必担心,我们也拥有自己优秀的AI芯片,所以非常值得我们学习和使用OrangePi AIpro。
下面是官方的开发板正反面视图,更好地展示香橙派细节。
正面试图:
背面试图:
注意到MIPI摄像头和显示器的接口,三年前玩过树莓派3B,也有摄像头的接头,没记错的话接口应该是一样的。板载的蓝牙WIFI天线,这里还专门标出来2.4G频段。背面可以看到可以接M.2的固态硬盘,定位孔和传统的开发板设计是非常相似的,上手也是非常的友好 。
⚠香橙派提醒:使用板子时天线不能贴到板子上,同时天线上的导电布也不能挨着板子,否则可能会烧坏板子哦~
OrangePi AIpro的接线非常简单,因为板子上有个Micro-USB的调试串口,旁边正好有一根Micro-USB接口的接线。可是插入电脑没识别到串口,这根线好久没用可能坏掉了,现在更常见的是Type-C接口的,手头也没有其他Micro-USB的线了,不过没关系,还可以使用CH340串口调试工具。按照官方手册,UART0 的 TX 和 RX 引脚接到了40 Pin 扩展接口中的8号和10号引脚。
注意:查看手册,这里拨码开关BOOT1和BOOT2都拨到右边,否则无法正常启动内核。
刚上电风扇飕飕一顿转,吓我一跳,哈哈!看来是板子运行起来了,过一会风扇速度降下来了,风扇转速应该是软件控制的,后面再改一下吧。
打开MobaXterm软件,使用串口登录,这里波特率设置115200,RESET后打印启动信息和登录命令行,输入如下账号和密码即可完成串口登录:
除了串口,还有更为方便的WIFI方式连接到开发板,因为板子是带WIFI模块的。这里电脑和开发板连接同一个路由器,确保IP地址在同一个网段下,这样我们就能用SSH连接开发板,然后就可以把串口线拿掉,方便开发调试。
- #板子搜索连接周围WIFI热点的方法:
- nmcli dev wifi #WIFI扫描
- sudo nmcli dev wifi connect wifi_name password wifi_passwd
- wifi_name: 需要换成想连接的WIFI 热点的名字。
- wifi_passwd: 需要换成想连接的WIFI 热点的密码。
电脑和开发板连接同一个路由器并处在同一个网段后,就可以通过终端输入ssh HwHiAiUser@xxx.xxx.xx.xx远程登录开发板了,密码对应为Mind@123,当然也可以直接使用mobaxterm进行连接,这也是官方推荐的方式,
OrangePi AIpro接口很丰富,引脚也引出来了,一共40 Pin,非常的细致,如下图所示:
这里手册也介绍了40 Pin 接口使用的一些注意事项:
40 pin 接口中总共有26 个GPIO 口,但8 号和10 号引脚默认是用于调试串口功能的,并且这两个引脚和Micro USB 调试串口是连接在一起的,所以这两个引脚请不要设置为GPIO 等功能。
所有的GPIO 口的电压都是3.3v。
40 pin 接口中27 号和28 号引脚只有I2C 的功能,没有GPIO 等其他复用功能,另外这两个引脚的电压默认都为1.8v。
有了以上这些基本的环境搭建和板子初步了解后,就可以初步体验一下部分外设功能了。
作为一名嵌入式工程师,拿到一块新的板子,怎么能不点亮一盏灯呢?正好手里有一个HW-269灯珠模块,使用杜邦线飞线连接,这里选取了几个靠近的GPIO进行接线。
具体接线:香橙派两个提供5V电源分别接到灯珠引脚2和引脚3,GPIO2_15连接灯珠引脚3,输出低电平即可点亮灯。
手册里介绍 Linux 镜像中预装了 gpio_operate 工具用于设置 GPIO 管脚的输入与输出方向,也可将每个GPIO 管脚独立的设为 0 或 1。
- gpio_operate set_direction 2 15 1 //设置GPIO2_15为输出方向
- gpio_operate set_value 2 15 0 //设置GPIO2_15输出低电平,点亮
- gpio_operate set_value 2 15 0 //设置GPIO2_15输出高电平,熄灭
接好线,命令行分别键入设置GPIO方向以及输出电平,可以发现灯亮了,燃起来了!好像又回到了最初学习单片机的场景,一瞬间有点恍惚......
感受:
这里不得不说香橙派 AIpro的 40 Pin引脚确实丰富,提供了丰富的外设资源,包含:GPIO、I2C、UART、SPI 和 PWM等功能。Linux 镜像中给我们提前预装了 gpio_operate 工具用于设置 GPIO 管脚的输入与输出方向,也可将每个 GPIO 管脚独立的设为 0 或 1。很方便。后面自己又试用了 USART、SPI、IIC,手册上都有对应的例程,稍加改动就能应用到实际的项目中去。
官方手册给出的几个AI例程均在 Linux 系统桌面使用,这里如果你没有HDMI屏幕的话,可以在电脑上远程连接的,需要确保开发板和电脑在同一个频段,将板子IP跟在notebooks启动脚本后面即可。具体操作步骤如下:
首先进入这个目录:
cd ~/samples/notebooks
开启notebook服务器:
./start_notebook.sh 192.168.2.109 #IP是OrangePi AIpro开发板的地址
将上图中红框内容粘贴到Chrome浏览器,如下所示,即可运行官方预制的AI例程了,可以看到有9个AI样例,下面就挑选几个感受一下OrangePi AIpro的算力。
该样例中 infer_mode 的值可赋值为image、video 和camera,分别对应对图片、视频、USB 摄像头中的内容进行目标检测,默认值为video。这里使用的是video,实际运行启动时间大概20秒,检测效果不错,没有出现误标情况。
这里在运行此模型时我SSH另起一个连接,以此检测案例运行过程中芯片的数据信息,键入如下指令:
npu-smi info watch
在运行目标检测YOLOv5s例程时,通过监测发现芯片温度稳定在57°左右,正常待机时在52°左右,在风扇加持下温度没有明显上升;AI Core占用率不超过30%,内存占用率稳定在37%,可见YOLOv5轻量的网络在OrangePi AIpro运行还是挺流畅,适合在边缘设备部署,进行实时目标检测。
OCR一般指Scene Text Recognition (场景文字识别),主要面向自然场景。 OCR两阶段方法一般包含两个模型,检测模型负责找出图像或视频中的文字位置,识别模型负责将图像信息转换为文本信息。此样例中,我们使用的检测模型为CTPN,识别模型则是SVTR。
运行结果:两排字均能识别出来,包括标点符号,识别速度还是很快的。
运行结果:案例运行大概3秒后,我们可以看到模型对图片进的推理结果,一共展示了五种类别的置信度,最高的置信度类别是Standard Poodle,达到94%,效率很高。
IoT作为AIoT的重要组成部分,正好作者最近工作和这方面强相关,对IoT也比较熟悉,在这里顺带测试一下OrangePi AIpro 在IoT方面的使用效果,这里选取的是AWS亚马逊云。
AWS IoT Core 支持与 IoT 设备、无线网关、服务和应用程序的连接。设备可以连接到服务和其他设备,这样它们就可以向 AWS IoT 服务和其他设备发送数据和从中接收数据。应用程序和其他服务还可以连接 AWS IoT Core 以控制和管理物联网设备,并处理来自物联网解决方案的各种数据。
SDK 和工具
这些AWS 软件开发工具包为 API 和其他服务的 AWS IoT Core API 提供特定语言的支持。 AWS AWS 移动 SDK 为应用程序开发者提供针对特定平台的 AWS IoT Core API 支持,以及移动设备上的其他 AWS 服务。
AWS CLI提供对 AWS IoT 服务端点提供命令行访问权限,并提供在 PowerShell 脚本环境中管理 AWS 服务和资源的工具。
身份验证
服务终端节点使用 IAM 用户和 AWS 证书对用户进行身份验证。
连接前需要先创建一个产品,详细细节参考文档:创建AWS IoT资源,然后保存Download certificates and keys,下载根 CA 文件,入下图所示:
将证书私钥等文件保存到香橙派的root/certs路径下保持,使用SSL加密socket通信导入到AWS SDK即可,入下所示。
- static int32_t setCredentials( SSL_CTX * pSslContext,
- const OpensslCredentials_t * pOpensslCredentials )
- {
- int32_t sslStatus = 0;
-
- sslStatus = setRootCa( pSslContext, pOpensslCredentials->pRootCaPath );
- sslStatus = setClientCertificate( pSslContext, pOpensslCredentials->pClientCertPath );
- sslStatus = setPrivateKey( pSslContext, pOpensslCredentials->pPrivateKeyPath );
-
- return sslStatus;
- }
使用官方AWS IoT 嵌入式 C 示例的设备 SDK运行程序,由于是C语言,需要在香橙派安装CMake,编译后运行查看日志发现已经先后成功地建立TLS和MQTT连接。
Json格式的请求响应文档下格式如下所示:
{ "state": { "desired": { "attribute1": integer2, "attribute2": "string2", ... "attributeN": boolean2 }, "reported": { "attribute1": integer1, "attribute2": "string1", ... "attributeN": boolean1 } }, "clientToken": "token", "version": version }
state
— 更新仅影响指定字段。通常,您将使用 desired
或 reported
属性,但不能在同一请求中同时使用这两个属性。
desired
— 请求在设备中更新的状态属性和值。
reported
— 设备报告的状态属性和值。
clientToken
— 如果使用,您可以通过客户端令牌匹配请求和相应的响应。
version
如果使用,仅当指定的版本与 Device Shadow 服务拥有的最新版本相符时,该服务才会处理更新。
我们通过desired
和reported
这种AWS的格式,实现数据上报和下发控制。
作为一款AI功能开发板,当我们的模型经过不断迭代优化后,需要将新的程序更新到板子,这里就需要通过远程空中下载的方式给设备升级(OTA)。使用AWS JOB机制便可实现功能,同时考虑到Linux升级文件一般会比较大,为了加快升级速度这里引用差分逻辑。
下面是AWS 官方文档给出的整个JOB 流转过程,这里简单移植使用了一下。
我把OrangePi AIpro的初始版本号设置成0.0.0,云平台上传了两个基础包和一个差分包,这里升级检测的时候会下载这两个差分包和全包,然后还原成原始文件。在板载外置天线加持下,下载速度还是比较快的,这里我只是把包下载好了,然后直接上报升级成功。后面有时间会研究一下OrangePi AIpro bootloader相关内容,把完整的OTA链路打通。
本文通过开箱简单做了测评,从OrangePi AIpro的试图展示到外设资源,同时也点亮了一盏LED灯初步感受这块开发板的使用体验,然后从AI和IOT两个方面进行较为细致的测试。由于是第一次接触香橙派,以前一直使用的都是树莓派,经过对比发现OrangePi AIpro功能还是非常的强大,生态比想象的要完善,虽然网上相关资源比树莓派要少,但通过阅读官方手册就能上手,还是比较全面的。同时开发板的外观精致,包装专业,配件也齐全。可以发现OrangePi AIpro无论是在人工智能领域、工业自动化、还是智能家居等,都是一个不错的选择。
不过在使用过程中,个人感觉有以下两个点可以优化下:
1、相比较之前使用过的树莓派,Micro-USB的串口调试很方便,不过建议换成Type-C接口更好,毕竟更普遍;
2、两个BOOT拨码开关都在板子背面,如果开发板放入金属壳子,打开顶盖是看不到拨码开关的,需取下板子才能更改拨码开关位置,放置正面会更方便一点,或许官方觉得一般人不会频繁更改启动配置吧。
昇腾的不断发展在AIoT领域发挥着越来越重要的作用,但相比较树莓派成熟的生态体系来讲还有一段距离,毕竟进场晚,不过没关系,有这么多优秀的开发工程师不断使用、改进、分享合作,共同推动昇腾AI官方社区生态发展,所谓前人种树,后人乘凉。同时我们对国产品牌也要有信心,期待香橙派与华为昇腾团不断更新迭代,促进国产AIoT为各行业的智能化转型赋能。
以上是OrangePi AIpro到手一周的使用感受,后期有时间会继续探索输出更多有关OrangePi AIpro教程及技术博文,欢迎大家交流探讨。
[1]:TOPS,全称为Tera Operations Per Second,是处理器运算能力单位。TOPS是Tera Operations Per Second的缩写,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。昇腾论坛有博主专门对此做了对比测试。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。