通识课程优秀作业|李俊锟:AI遇到单片机
– 编者按 –
为进一步推动通识教育课程教学改革,加强学生思辨能力、表达能力和创新精神的培养,学校组织开展了2025年核心通识课程和“专业写作基础”课程学生优秀作业评选活动。最终评选出33篇核心通识课程优秀作业,10篇“专业写作基础”课程优秀作业,31位优秀作业指导教师。
本期刊登核心通识课程优秀作业二等奖获得者李俊锟同学的作业。
李俊锟
自动化学院本科生
作业题目
AI遇到单片机
指导教师
汪玲
课程名称
人工智能
开课单位
信息与通信工程学院
【教师推荐语】将课程内容与嵌入式应用开发深度融合理解与展望,体现了学生独立思考、扩展思维的能力。写作生动。
佳作欣赏
这学期,我完成了“人工智能”课程,学习了如何调整SVM参数,还学习了机器学习和深度学习原理。但是说实话,我总是觉得这种魔法算法与我专业的自动化有点相去甚远。我的世界里有单片计算机、电路图、C语言。所以,我有疑虑:AI在我的单片机上运行,能更智能地运行吗?为了找到答案,我做了调查:我确认了很多信息,看了很长时间的研究室外,又和老师聊了聊。这份报告书是我的研究和愿景。
一、灵感
在AI的实验过程中,我在电脑屏幕前不断调整SVM的“核函数”和“惩罚系数”,看着分类精度一点一点地提高,终于止步于0.973。那一刻,我感觉像神一样。我修改了几个参数,教了电脑分类数据的方法。后来深度学习变得更加强大了。多层次的网络结构可以识别各种奇怪的手写数字。
但是,下课后按下科技协会的门后,这种感觉消失了。在科学技术协会的实验室里,我只看到了完成电子设计所需的几个传统组件——STM32开发板、一些LED灯和直流电机。为了精确地旋转到我想要的角度,我必须和编码器竞争。为了消除按键的晃动,我必须看示波器的波形,并使用12行以上来更改代码。一方面,AI在计算机程序中是全能的,另一方面,我的单片机在物理世界中因为稍微精确一点的时机是“不合理的”。这种感觉特别分裂。
有一次,当我突然看到学长学姐们制作的追踪车时,我想他们总是面临各种各样的问题:为什么他们拉上实验室的窗帘,当光线有点暗时找不到方向?为什么像笔帽这样的小障碍物掉到前面,没有绕过它直接撞到了呢?这些问题可以通过AI来解决吗?
从那以后,我有想法了。在人工智能课上,如果能稍微修改一下机器学习/深度学习代码并放入这个STM32芯片中,追踪车就能学会看路的方法,学会自己躲藏吗?这个想法让我心潮澎湃,我很兴奋,我必须直接确认这是不是可行的道路。
二、探索
我的“研究”主要依赖于谷歌搜索、技术论坛,以及我们学校的论坛。开始搜索“单片机人工智能”和“STM32用AI执行”等关键词。首先,我找到了所有无法理解的文件和芯片手册。我完全无法理解他们。但是,慢慢地,我发现那里的人称它为“Edge AI”或“TinyML”。很明显,许多工程师团体正在真正思考如何将AI模型应用于微芯片。
我把这些资料看成是故事,发现了非常可行的东西:
1.模型可以简化,而且有很多手段。我原本以为AI模型是巨大的,模型参数量如果超过GB,就完全无法用单片机处理。结果发现,工程师有几种方法可以简化模型。最常用的被称为“量化”。这个模型原本是特别精细的彩笔画,所有细节都是用32位颜料绘制的,现在变成了8位的像素画。那幅画还是一样。虽然没有丢失重要信息,但文件大小(即模型的体积)一次可以减少到原来的四分之一。这样可以方便地放入单片机的小内存中。此外,还有修剪树枝和叶子的技术,从模型中剪去不重要的细节连接,使网络更简洁。现在,我确信AI模型可以在更多的领域进行转换和压缩。
2.有现成产品工具包。我原本认为,要在单片机上运行AI模型,需要自己创建许多基本的驱动程序和数学库。实际上,软件开发者们提前为了我们考虑了很多。他们发明了TensorFlow Lite Micro这个东西,一个非常好用的“翻译器”和“包装工具”。这个工具可以让我们的工作流程变得更便捷。在我们自己的电脑上用Python语言编写程序并训练模型,将训练好的模型提供给这个Micro工具,可以将Python程序转换为标准C++代码。在这个代码中,将模型被瘦身,执行它所需的逻辑也被打包了。我们把这个代码放入我们自己的Keil或IAR项目中,同时放入控制LED读取传感器的代码,点击编译即可。
3.单片机本身也在进化。我印象中的单片机仍然是51单片机那种低速和小内存的。查询后,我发现现在的单片机早就更新了。例如,STM32F4系列或更强大的H7系列直接集成了指令集和数字信号处理专用的硬件浮点计算设备。在单片机的CPU上安装一个特殊的“数学加速卡”,使AI模型能够快速计算出自己喜欢的乘法和加法。事实上,有专为 AI 应用设计的单片机,直接插入更专业的“AI 加速器”(如NPU)。
如果了解了这些,我心中的想法就能实现。
三、想象
伴随着“模型可以变小”、“工具是现成产品”以及“芯片可以运行”这几点,我的思维突然打开了。关于虚拟项目的想法浮现在我的脑海里:设计一个可以检测自身健康状况的智能马达。
传统惯例:我以前知道的电机保护方式是在电机外壳上安装振动传感器,当振动超过一定阈值时发出警报。通常,工程师根据经验设置振动振幅的阈值。但问题是,当振动实际达到这个值时,电机的轴承或线圈可能已经受到严重损坏,这不仅需要维修费用,而且可能会延迟正常的生产操作。
我的AI升级愿景:
第一步:调查“健康状况”是什么。当电机处于新品最佳状态时,我会安装高精度的振动传感器,在正常运转时持续收集振动数据。
步骤2:设置“健康标准文件”。这时,我在AI课上听到的SVM算法应该有用吧。这个算法的特点是只学习“一般”样本就可以了。我用所有这些健全的振动数据来训练它,它学会了当电机健康时应该有什么样的振动模式。这个训练有素的模型是电机的“健康标准文件”。
步骤3:分发“安全设备”。我通过工具将这个“健康文件”模型转换为C++代码,并分发给连接到传感器的STM32单片机。这款单片机是随时可以在线访问的保修设备。
步骤4:实时检测异常。用这个保证装置持续监控振动。如果发现马达的振动模式与“健康文件”中记录的不同而出现的一些异常时,即使振动振幅离警报线很远,探测器也会立即亮起黄色指示灯发出警告。
四、可能的问题
我知道在“想法”和“实现”之间有被称为“工程实习”的广阔海洋。如果你真的想那样做,你可能会面临许多难以预料的困难,例如:
很难获得数据。理想情况下,在各种照明、角度甚至轻微的油污下,需要数千张不同电机的照片。但是实际上,我拿不到那么多照片。这只是最简单的数据。如果它是智能电机,收集足够多的健康振动数据来应对各种负载条件,需要花费更多时间。
电力不足。长时间用相机收集图像、单片机的CPU在高负载下持续运行AI模型,都是高功耗的。我想象中的智能汽车行驶10分钟后动力就可能会下降。为了使设备智能和长期运行,平衡智能和功耗的方法是嵌入式AI产品化应该面临的问题。
如果了解这些困难在哪里,就能感觉到目标会更加明确。
五、下一步计划
虽然这一切只是迄今为止我笔记本上的想法和研究,但我觉得自己得到了什么。最大的好处是,它完全打破了“AI在天空中,嵌入在地面上”的刻板印象。我理解AI不是只存在于云服务器上的巨大的东西。它完全可以和“实时”、“小”,我熟悉的电路和代码整合,可以成为赋予物理世界智慧的“灵魂”。我们自动化专业的学生,未来的方向就在这里 – 连接虚拟智能和现实世界,创建能够很好地识别、思考和执行的智能系统的“桥梁工程师”。
我今后的道路也通过这次探险变得清晰了。我为自己大致计划了下一个阶段的任务:
1.认真学习自动化的基础:我清楚地知道,单片机、C语言、电路设计等,无论发生什么,都是我都不会失去的技术和基础。如果默认驱动程序不稳定,硬件电路设计得不好,那么无论AI模型多么智能,它仍然没有根基。因此,我必须更加努力学习下一个专业课程和实验,打下更坚实的基础。
2. 自学的新知识:我计划在下学期利用空闲时间,正式开始自学Python基础和TensorFlow Lite Micro框架。我不需要一开始就理解所有的原则和原理。从简单目标出发,在STM32开发板上按照在线教程,可以正常执行官方提供的AI示例(例如,可以执行人脸检测模型,可以识别“开”和“关”的两个语音命令)。即使只是通过AI识别的成功打开LED灯,也是从0到1的突破口。这样会给我很大的信心。
3.寻找同伴:我想联系科技协会,寻找对这方面具有相同兴趣的学伴。我们可以一起组队参加像“嵌入式AI挑战”这样的大学生比赛,也可以申请校级大学生创新教育项目。我相信,只要你这样做,你以前认为的所有困难都会从模糊的想象变成具体问题,总有解决具体问题的方法。
这个思考过程结束后,从研究开始的过程变成了充满惊喜的探险之旅。我不仅没有迷路,而且对自动化专业充满了前所未有的期待。AI和单片机再也离不开我的心了。它们成了我的知识工具箱中等待结合的两种魔法武器。
推荐阅读




– END –
本期主编 | 蒋天琪 张宇航
责任编辑|刘庭廷
审核|刘宇
尽情分享朋友圈 | 转载联系小编授权 | 诚挚欢迎留言投稿
成电微教务 | 用心服务

学习 | 分享 | 阅读 | 交流
夜雨聆风