MAX78000智能边缘应用设计
中期审核提交材料,主要完成了以下工作:对硬件层面的简单理解、开发环境的搭建、简单基本外设代码的测试、CNN等AI算法的测试、对自己模型的训练。
标签
嵌入式系统
MAX78000
iron2222
更新2022-12-01
上海工程技术大学
825

中期审核报告

1、设备硬件的简单理解

外形与引脚的简单配置

MAX78000FTHR是基于MAX78000的小型板微控制器单元(MCU)。

该 MCU 面向在边缘运行的人工智能 (AI) 应用程序。在这种情况下,“边缘”并不意味着技术的前沿(尽管这就是芯片);这意味着靠近需要它的地方,甚至靠近传感器,而不是在数据中心附近的某个地方。例如,边缘是在您的家中或汽车中,甚至是您穿的东西。在边缘运行的 AI 应用程序完全可以自行完成工作,而无需将复杂的计算分包给云服务。为此,它需要大量的处理能力,这就是为什么 MAX78000 将 ARM Cortex-M4 处理器与浮点单元 (FPU)、卷积神经网络 (CNN) 加速器和 RISC-V 内核组合成一个单个设备。

Fj7fayb9243O4QtTychWZ6Tf3O25

 

2、环境的搭建

window10下配置Maxim SDK

这一步比较无脑,直接下载安装包,安装就好:

https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A

Fmbh4RqGIBoX3u_E4ms5Kr-LtZHq

安装完成之后,你会在自己的电脑上发现这样两个软件:

FrDz9T_c2gtxYxkaKH8Vy9QmSvC_

恭喜你开发环境都搭建好了!!!

3、新建项目与已有项目导入

新建一个项目Hello World

打开Eclipse MaximSDK,并新建一个Pro:

FnzM3vMLtnN2H6Emi2ZVkEWQh1Ka

输入你的项目名称:

Fg-7Jq21r-i1GYs0MDeL8UM4S3yD

“选择示例类型”可以是您感兴趣的任何固件示例。请注意,此处未列出特定于 CNN 的示例。CNN 示例必须通过下面介绍的不同机制导入。

FhA-1oGTVto9pK1kHHQpfBSTBMYP

如果您使用的是 PICO 调试器,请将适配器类型设置为MAX32625_PICO。如果您使用的是 Olimax 调试器,请将适配器类型设置为 CMSIS-DAP。咱们好像提供的是CMSIS-DAP,可以打开自己的设备管理器看一下。

 

FjoRfdg6HNUK_Sg24Qf-YJ8KrawT

选择好之后,点击完成,你就可以打开你的helloworld例程了。

FuXRRdm3xn316Imqxu14S86GlIZ4

导入配置CNN例程

File->Import

Existing Projects into Workspace

FpRFCd5KeDDF4Xc0zFq1WyZbQTld

 

然后NEXT,需要在 SDK 树中提供 CNN 示例的路径,如下图所示。路径将取决于 SDK 的安装位置:

FpzKpvrFgUQUynmMKwpn7vH3EaSv

选择项目所在文件夹,IDE会自动找到项目工程:

FrAAYFPfJjQUckhdTvwFV3O4TTba

Maxim SDK附带了许多卷积神经网络演示,可以导入到Eclipse中。这些固件示例可在SDK中的示例\MAX78000\CNN中找到。选择“文件”->“导入”,然后选择“常规>将现有项目放入工作区”。使用后续对话框,导航至示例\MAX78000\CNN并导入您感兴趣的所有固件项目。您可以在“实施例\MAX78000”目录中找到MAX78000的外设应用示例。

所有CNN示例都可以在MAX78000EVKIT上运行,但MAX78000FTHR目前并不支持所有CNN示例。以下是MAX78000 FTHR支持的示例列表:

  • cifar-10
  • cifar-100
  • mnist
  • mnist-riscv
  • mnist-streaming
  • kws20_v3
  • kws20_demo
  • faceid
  • faceid_demo
  • faceid_evkit
  • cats-dogs_demo
  • rps
  • snake_game_demo

我这里选择了kws20_demo,别问为什么,问就是我准备训练语音模型,看大神们都是这个名字的框架。

FuyhoIw5TBX7xUVw5e_0RdrgBGYt

 

看到没,这就是你打开的一个CNN项目,等你训练好模型之后,应用层面的逻辑开发就在这里进行。

而且生怕咱们不会玩,人家直接给了一个readme,教你怎么配置。

FgXG-3WmSRvPFusQ9cFIcZ4Db40g

除此之外,还是有很多细节需要注意的,很多的坑,这里就不细说了,需要的可以参考我这个云笔记:

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/dmrgc5?singleDoc# 《window10下配置Maxim SDK》

其实以上这些都是关于IDE的一些配置,而我们实际应用中其实有两条路:

  • 第一条:就是在我们上面配置好的IDE中,编辑自己的代码,编译,烧录,测试……
  • 第二条:还可以在MINGW命令行里进行代码的编译与烧录操作,具体的命令仍然可以参考我上面那个云笔记
4、基本外设的测试

对于一个未来的嵌入式工程师来说,拿到一个新的开发板,最迫不及待想做的就是测试它各种外设的功能。

这里只展示一些最后的效果图,具体过程可参考我这个云笔记:

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/xpeuut?singleDoc# 《基础外设代码测试》

ADC采样

FmcXrG3OExTT5K7tYEGHk2Wcm5DK

CRC校验位

Fiug26CGs1YhuYvYUaxGhb8_OJkw

DMA

Fr-Ngx0FywUNRqL229NPWjYT4nLV

GPIO

FjLNQymg9Btt2al1fvDTKxuY51sc

除了这些基本外设之外,每一个CNN的网络模型我也都进行了测试,这里就不多说了,具体可以去下面这个云笔记参考:

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/gaepuq?singleDoc# 《烧录kws20_demo等官方例程》

5、训练自己的模型

这个项目的核心还是在于能训练出自己的CNN网络模型。

FmDvGBeZPp97gyoO8Hse8JmdrD47

这个过程就更复杂了……

从准备工作:

安装WSL2、安装显卡驱动、确保CUDA可用于wondow、安装系统包、拉取工程代码、虚拟环境搭建……

到开始训练:

硬件加速检查、训练脚本……

更细节的东西还是参考我的云笔记吧,

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/ie2v7v?singleDoc# 《训练自己的模型》

还有一个关于CUDA的大家也可以看看:

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/bk48eg?singleDoc# 《CUDA是什么?》

6、一些上层的应用测试与开发

比如在语音识别这个领域中,实现一些小功能:

识别到某一个关键字,实现LED2-Green 的闪烁

FjoPi1no0lNipSTa3snOdrlgL59n

识别到某一个关键字,实现高电平的输出

FveIdofPttA6IsXt8tCwKgmGZ95F

与BY8301语音模块的配合

FurUHUEjh8jbnZnNIVHXg9xqDz1W

具体效果就像我视频里展示的那样,很有意思,可能这就是做嵌入式的乐趣(手动狗头)

当然还有TFT彩屏的测试,细节的东西同样放到云笔记里,需要的可以参考:

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/hwblllxs05shyv1d?singleDoc# 《一些代码修改小测试》

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/ugfrck7ia1edhvk3?singleDoc# 《2.4寸TFT显示屏购买与测试》

https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/aycwd1wa0aycci4a?singleDoc# 《TFT相关修改与配置》

7、下一步计划

下一步正在准备租一个带GPU的云服务器,因为训练模型可太麻烦了!!!

训练两个月,上层开发半小时,这谁受不了。

 

 

 

团队介绍
一个在校研究生
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号