Avnet ZUBoard 1CG 开发板上手—深度学习新选择
摘要
本文主要介绍了 Avnet ZUBoard 1CG 开发板的特性、架构、硬件单元等概念,并对如何使用以太网接口和串口连接开发板进行基本介绍,同时辅以两个应用例程演示其功能。
原文链接:
FreakStudio的博客
往期推荐:
学嵌入式的你,还不会面向对象??!
全网最适合入门的面向对象编程教程:00 面向对象设计方法导论
全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念
全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类
全网最适合入门的面向对象编程教程:03 类和对象的 Python 实现-为自定义类添加属性
全网最适合入门的面向对象编程教程:04 类和对象的Python实现-为自定义类添加方法
全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签
全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装
全网最适合入门的面向对象编程教程:07 类和对象的Python实现-类型注解
全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器
全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系
全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继承和里氏替换原则
全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法
全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志
全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用
全网最适合入门的面向对象编程教程:全网最适合入门的面向对象编程教程:14 类和对象的Python实现-类的静态方法和类方法
全网最适合入门的面向对象编程教程:15 类和对象的 Python 实现-__slots__魔法方法
全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则
全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与“file-like object“
全网最适合入门的面向对象编程教程:18 类和对象的Python实现-多重继承与PyQtGraph串口数据绘制曲线图
全网最适合入门的面向对象编程教程:19 类和对象的 Python 实现-使用 PyCharm 自动生成文件注释和函数注释
全网最适合入门的面向对象编程教程:20 类和对象的Python实现-组合关系的实现与CSV文件保存
全网最适合入门的面向对象编程教程:21 类和对象的Python实现-多文件的组织:模块module和包package
全网最适合入门的面向对象编程教程:22 类和对象的Python实现-异常和语法错误
全网最适合入门的面向对象编程教程:23 类和对象的Python实现-抛出异常
全网最适合入门的面向对象编程教程:24 类和对象的Python实现-异常的捕获与处理
全网最适合入门的面向对象编程教程:25 类和对象的Python实现-Python判断输入数据类型
全网最适合入门的面向对象编程教程:26 类和对象的Python实现-上下文管理器和with语句
全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现
全网最适合入门的面向对象编程教程:28 类和对象的Python实现-Python编程原则、哲学和规范大汇总
全网最适合入门的面向对象编程教程:29 类和对象的Python实现-断言与防御性编程和help函数的使用
全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类
全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
全网最适合入门的面向对象编程教程:32 Python的内置数据类型-类Class和实例Instance
全网最适合入门的面向对象编程教程:33 Python的内置数据类型-对象Object和类型Type的关系
全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命名元组
更多精彩内容可看:
给你的 Python 加加速:一文速通 Python 并行计算
一文搞懂 CM3 单片机调试原理
肝了半个月,嵌入式技术栈大汇总出炉
电子计算机类比赛的“武林秘籍”
一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库
正文
Avnet ZUBoard 1CG 是一种基于 RISC-V 架构的 FPGA 开发板:
其主要特性包括:
总的来说,ZUBoard 是一款基于开放 RISC-V 架构的开发板,具有灵活性、可扩展性和丰富的外围设备支持,广泛应用于嵌入式和物联网领域。它为开发者提供了一个强大的硬件平台和丰富的开发支持。
1.应用领域
在市场中,ZUBoard 1CG 定位于高性能嵌入式应用领域,特别适合于机器学习、图像处理、边缘计算和物联网等需要强大处理能力和灵活性的应用场景。
2.开发板硬件单元
2.1 处理器
Zynq UltraScale+ MPSoC,集成了双核 A53 APU 和双核 R5 RPU 它负责处理大部分的计算任务。
2.2 内存和存储
旁边的芯片包括 DDR4 内存和 QSPI 闪存,用于存储数据和操作系统。
2.3 外设接口
- JTAG/UART (J11) : 用于调试和串口通信
- USB 2.0 Type A 端口 (J13) : 可以连接外设,比如鼠标、键盘或存储设备
- 15V USB-C 电源输入 (J15) : 为板子供电
- 以太网接口 (J11) : 支持千兆以太网
2.4 用户按钮和开关
- 用户按键 (SW1, SW3) : 供用户自定义的按键,可以用来控制程序的行为
- 用户滑动开关 (SW4) : 4 位 MIO 用户开关,用户可以根据需要设置开关状态
- 复位按钮 (SW6) : 用于复位系统
- 电源开关 (SW7) : 控制板子的开关机
3.demo 演示部分
接下来教大家 2 分钟快速上手 ZUBoard,在这里为大家准备了 2 个 demo,第一个是关于图像处理的手势数字识别,第二个是手势控制软件机器人 (俩个示例均来源于 hackster) 在运行 demo 之前,我们先完成环境的部署和通过以太网连接到开发板。
3.1 环境部署
首先,将 SD 卡用读卡器连接到电脑前:
格式化 SD 卡:
写入镜像文件(镜像文件可在参考资料部分的百度网盘链接中进行下载):
3.2 通过以太网连接到开发板
接线,连接到电脑,主要电源输入为 15V:
上电之后,板载 LED 灯会亮起:
按下 SW7 开机按键,白灯亮开始开机:
蓝灯亮起,说明开机成功:
下载 MobaXterm 软件(下载网址在文中最后可获取):
选择 USB 连接的串口:
设置波特率为 115200:
关掉流控:
使用 ifconfig 查看网络 IP 地址:
配置 SSH 服务,自动进入内部系统,登录后,我们将进入系统的内部,可以开始进行编程和配置工作。将网络 IP 地址复制到远程主机的框中:
选中 Sprcify username,输入 root:
接下来会自动弹出下面这个页面,现在我们就成功通过以太网连接到开发板了:
3.3 ASL 手势数字识别 Demo
-
切换到项目目录****:
通过
cd asl_classification_vitis_ai
指令切换到项目目录 -
运行实时手势数字识别脚本****:
执行
python3 asl_classify_live.py --model=./model_mobilenetv2/B{#}/asl_classifier.xmodel
指令去运行实时手势数字识别脚本
接下来,我们就可以实现手势数字的识别啦!
3.4 手势控制软件机器人 Demo
进行如下步骤:
4.使用体验
ZUBoard 1CG 的设计使得它成为探索裸机程序、Linux 或 Vitis AI 加速器的理想平台。其强大的处理能力和丰富的接口资源,使得开发者能够轻松实现复杂的嵌入式应用。开发板上集成的温度和压力传感器,为系统增加了环境数据采集的能力,从而扩展了其应用范围。此外,通过丰富的扩展接口,ZUBoard 1CG 可以方便地与各种外设进行连接,进一步提高了其灵活性和可扩展性。
参考资料
- 美国手语识别(ASL): https://www.hackster.io/AlbertaBeef/asl-classification-with-vitis-ai-025765#toc-executing-the-demo-with-remote-display--mobaxterm-5
- 手势控制软件机器人: https://www.hackster.io/AlbertaBeef/controlling-robots-with-zuboard-b6d13b
- MobaXterm 软件下载网址: https://mobaxterm.mobatek.net/download-home-edition.html
- 需要下载软件及 img 文件网盘链接: https://pan.baidu.com/s/1fMm9uYWYPWTFoMahdneFlg?pwd=1234