1.香橙派OrangePi_AIpro开发板简介
可以把它理解为一台卡片电脑,类似于树莓派,有操作系统。从名字可以看出来,它具备了人工智能、深度学习开发相关的特性。官方对它的描述如下:Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛用于教育、机器人、无人机等场景。
2.开发板外观
我拿到手的板子是8GB的版本,注意它的天线不可以贴在板子上,可能是容易短路。
去掉风扇之后,细节图如下所示:
3.开发板的接口详情图
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屏等。
4.开发板开机
可以看到板子上有两个按键和开机有关,一个是“PWR_OFF”,一个是“RESET”,查阅手册可知,“PWR_OFF”只能关机,但不能开机,开机的时候要按下“RESET”键。刚开机的时候可以听到风扇全速运行时很大的声音,当开机完成后便会变小。进入到linux系统后,对风扇运行的状态进行了PWM风速控制。关机的时候可以在桌面上点击“log out”。注意不要直接断开电源,以免文件损坏或丢失。
开机的时候需要输入密码,官方手册中给出的初始密码是”Mind@123”,root用户的密码也是如此。
它默认采用的是Xfce桌面,Xfce是一个自由软件,运行在类Unix操作系统 (如LinuxFreeBSD 和 Solaris)上,提供轻量级桌面环境。Xfce快速、轻量,界面美观和对用户友好。Xfce由独立的软件组件构成,可根据需要单独使用或者组合在一起提供计算机图形桌面环境的全面功能。Xfce由C语言写成,依赖GTK+。
我到手的板子上已经插有烧录好了ubuntu22.04系统。如果没有的话,可以自行烧录,烧录之前需要准备一些工具和软件,首先准备一张32GB 或更大容量的TF 卡,然后把TF 卡插入读卡器,再把读卡器插入电脑,然后下载用于烧录Linux 镜像的软件——balenaEtcher:
当然还需要有操作系统的镜像,注意在烧录之前需要首先对内存卡进行格式化。
以上所有的软件工具以及可使用的操作系统可以从官网下载:
https://pan.baidu.com/share/init?surl=Jho73pw91r5GJD2KijY45Q&pwd=3xuz
进入Ubuntu 镜像的下载链接后可以看到下图所示的两个ubuntu 镜像,他们的
区别是:
- minimal 镜像是一个只有最基础功能的镜像,像Linux 桌面、CANN 和AI 示例代码等都没有预装。此镜像只建议想自己从头定制安装Linux 桌面和AI 相关软件的开发者使用。
- desktop 镜像预装了Linux 桌面、CANN、AI 示例代码和一系列测试程序。如果想正常使用开发板的功能,请使用这个镜像。本章的内容都是基于desktop 镜像编写的。
当然desktop镜像版所占用的空间也大于最小基础版。
5.初体验
开机之后,大概浏览一下系统应用,可以看到基本的文件管理、系统设置、浏览器等一应俱全。打开内装的火狐浏览器,它可以正常的访问一些网站,但是速度有点慢,可以理解。
显示器接口要插在HDMI0上,开发板有两个HDMI接口,目前只有HDMI0支持显示Linux系统的桌面,HDMI1还需等软件更新。
6.GPIO口测试
香橙派OrangePi_AIpro的板子上配置有40个引脚。
就像操作单片机一样,这些IO口有些可以随便用,而有些是有特殊用途的,比如串口通信。40 pin 接口使用注意事项如下所示:40 pin 接口中总共有26 个GPIO 口,但8 号和10 号引脚默认是用于调试串口功能的,并且这两个引脚和Micro USB 调试串口是连接在一起的,所以这两个引脚请不要设置为GPIO 等功能。所有的GPIO 口的电压都是3.3v。40 pin 接口中27 号和28 号引脚只有I2C 的功能,没有GPIO 等其他复用功能,另外这两个引脚的电压默认都为1.8v。
Linux 镜像中预装了gpio_operate 工具用于设置GPIO 管脚的输入与输出方向,也可将每个GPIO 管脚独立的设为0 或1。gpio_operate 工具的详细使用方法如下所示,gpio_operate 工具必须使用root 帐号执行。gpio_operate -h 命令可以获取gpio_operate 工具的帮助信息:
(base) root@orangepiaipro:~# gpio_operate -h
Usage: gpio_operate <Command|-h> [Options...]
gpio_operate Command:
-h : This command's help information.
set_value : Set gpio pin value.
get_value : Get gpio pin value.
set_direction : Set gpio pin direction value.
get_direction : Get gpio pin direction value.
我们可以通过gpio_operate get_direction gpio_group gpio_pin 用于查询GPIO 管脚方向。gpio_operate set_direction gpio_group gpio_pin direction 用于设置GPIO 管脚方向。gpio_operate get_value gpio_group gpio_pin 命令用于查询GPIO 管脚值。gpio_operate set_value gpio_group gpio_pin value 命令用于设置GPIO 管脚值为高电平或者低电平,注意设置管脚值前,请确保已将GPIO 管脚的方向设置为输出了。这些操作和使用单片机大同小异。
7.深度学习样例测试
系统内已经存储了调试好的样例,我们只需进入到该目录下就可以运行。首先在终端窗口,采用cd指令进入到目录下:
可以看到,当前目录下的文件夹和sheel文件,这9个文件夹便是9个应用样例,有目标检测、文字识别、目标分类、图像曝光处理等。
下面我们执行目录下的start_notebool.sh脚本启动JupyterLab,介绍一下jupyter notebook,它是一种Web应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。它可以直接在代码旁写出叙述性文档,而不是另外编写单独的文档。也就是它可以能将代码、文档等这一切集中到一处,让用户一目了然。
Jupyter这个名字是它要服务的三种语言的缩写:Julia,PYThon和R,这个名字与“木星(jupiter)”谐音。它可以让数据分析师集中精力向用户解释整个分析过程。我们可以通过Jupyter notebook写出了我们的学习笔记。
输入以下指令,运行.sh文件。
./start_notebook.sh
执行完该命令后,可以在终端看到很多打印信息,我们从其中找到登录JupyterLab的网址链接(高亮的部分)。系统内自带了火狐浏览器,打开该网址即可登录。打开第一个样例,“01-yolov5”文件夹下的主文件“main.ipynb”,在样例中已经包含转换后的om 模型和测试视频,最后一段代码,infer_mode 的值可赋值为image、video 和camera三种变量,不同变量对应网络不同的输入,由于我手头没有摄像头,因此只能测试前两个。先测试图像,将“infer_mode”的值赋值为“image”。
单击这个三角符号“Restart”按钮就可以运行:
等待几秒钟,就可以看到一下照片:
可以看到,它对运动员和足球进行了标注,这是深度神经网络推理的结果。
下面我们测试对视频的推理。
我们将“infer_mode”的值修改为“video”,测试它对视频流的目标检测,点击“Restart”按钮后等待几秒,可以看到一段赛车视频,YOLOv5s网络对视频中的赛车进行了实时的目标检测
总结
总体而言,除此体验香橙派 AIpro开发板还是很不错的,容易上手,做工也很精致,各种配套资源也很丰富,相关的论坛上也很活跃,由于我是刚刚拿到手,只测试了有关GPIO口和目标检测AI样例的操作,后续会更深入把玩的,也可以结合实际项目,例如物联网管家或者智能小车,充分发挥它的强大作用。
最后提几点建议,开发的sd卡槽设计成带自锁机构的,这样插进去之后比较稳固,卡槽位置往板子中心延伸几毫米,这样使得插进去之后sd卡不会露出来,不然板子移动的时候不小心磕碰到sd卡容易造成系统损坏。HDMI口无法输出音频,希望后续的操作系统能够完善一下。