绪论:7月份才拿到省赛资格的学生,没有免费获取TI板的资格😭😭
背景:一个属于转专业学生的悲剧
七月的成功太过顺利,以至于两个月前的暗淡离场显得云淡风轻。不过,历数整个学期的筚路蓝缕,5月校赛却显得尤为重要。3月初,校赛安腾杯结束,相比于拿了无关紧要的校级奖项而言,那次比赛中意义更大的事情是:加入了心仪的俱乐部,结识了自己未来的学院的比赛高手,以及知道了不是一等奖的校级奖项没有一丁点综测分的残酷事实。初有成就的我转向了更高级别的比赛,而不是拘泥于学校组织的那些小卡拉米,在此之中我慢慢发现很多比赛含金量就那样,而由于不知道哪里的传闻我被告知“失去”了打电赛的资格。于是我报了嵌赛打算养老式学习:反正7月才线上初赛,对于刚打完圈钱杯蓝桥杯的我而言,早着呢。
然后我从未想到我这个想法和我日后发生的所有事情都背道而驰。因学期缩短,期中早早开始,眼看期中就要结束,一个炸裂的消息传来:我可以报名电赛。得到这个消息的我只能在期中结束后厚着脸皮和林HZ讨要别人拿剩的硬件,至于日程和这个比赛高度重叠的转专业的事情,不是我能怎么办啊。等到我正式把车拼好,不再改变机械结构的时候,我在新工楼的空地上找到了昔日的同好兼对手,然而我们看到的是:精美的车轮,高级的传感器,酷炫的外壳,和我们那如同路边乞丐一样的外设形成了鲜明对比。
此后的所有事情都失去了我的控制:作为转专业的学生,我的队伍全都是转专业的,当我还在为借到一个大小合适的面包板而感到成就感满满时,新工楼内已有超过一半的人完成了半圆巡线。而后面依次发生的噩耗是:两个电机转速不一致,没有合适的螺丝,电控板堆积过度导致重心不一致,轮子高度不一导致车体倾斜,甚至发生过传感器当场报废的事情。最后的展示,以“车停不下来”而失败告终。

这个比赛让我开始有了莫大的心理阴影,我曾经说过我下辈子都不会再搞小车,日后无论是推进缓慢的嵌赛,还是没有符合裁判口味而止步省二的中美创客赛,我都在搞静态项目,六月匆匆过去,嵌赛已经事实上没有了深度打磨的机会,为了不想浪费token随便打的软件杯最多是杯水车薪。一切似乎就这么尘埃落定,大一的履历好像就到此为止了,直到7月2日,我再次有了校赛选拔的机会。而这次,一切都出乎意料的顺利:昔日望着拿满分而脸上暗淡无关的失落者,终究成了别人眼中满分的样子。
正题:比赛内容
本次比赛我们选了电控类(F题),主要的目标就是:
用PID实现电机转速的精确调节与角度/圈数的精确控制
我们的整体思路大体就是:
- 测试最基本的开环测速功能,即给一个数值,转到对应的转速,LCD上显示值
- 写最基本的PID,留待后续调试;
- LCD画转速曲线并和按键联动完善各个功能;
- 完成外围功能,如EEPROM存储和串口显示等。
出现的问题和解决流程
1.不能用ST-LINK
应该算是我遇到过有史以来最离谱的事情,派发的板子板载DAP,然后…不支持st-link,好巧不巧CubeIDE对DAP的支持几乎为0,队友Y重置电脑还不能马上用keil,最后的解决办法是:队友L用agent烧录,我用Clion😅……
2.互通问题
理论上而言各个编译stm32的软件,其编译文件可以通过CubeMX这个“桥”来互通,但问题是:AI容易在重写代码的时候把user code的注释全部打掉,而不会同时把配置写入到.ioc上。我曾经试过修复所有的user code注释然后让AI一点一点把失去的cfg修复回来,最后发现队友发的不是最新代码……然后我彻底放弃了让CubeMX互通的想法,直接让AI写Cmakelist,某种意义上还比改cfg文件更省token,反正都是vibe coding……
3.异常跳动问题
第二版本的pid烧录到硬件时,会有相当难绷的霍尔转子反复跳动的问题。在我们一筹莫展时agent灵机一动,换了个引脚就无事发生了,草台班子的厕所杯蓝桥杯特供板子再显权威:把已经被占用的引脚露出当接口。
4.电池问题和转速乌龙
当时,我们为了转速只能到可怜的四五百而一筹莫展,因为当时的要求是非常离谱的:
200–2000 r/min 全范围可稳定闭环运行满分;范围不足按比例
啥玩意?2000?在茫然之中我借来了一套大小堪称皇宫的12.6V 航模电池模块,接上去之后,效果立竿见影,但最高的转速就900,不能再多了。后面问了主导老师,它含含糊糊说了句:转速值没有要求。现在我们得以确认他写的所有东西都是垃圾AI拍脑袋想出来的。
5.交付测试时出的问题汇总
交付测试时也不顺利:首先是我差点没从队友发出的图片看出来那边实验室用的居然是示波器电流源两用仪器,然后修改了串口设置时波特率和接收方式不对劲的小问题。更大的问题到交付结束后都没有解决:探头连上对应的针脚后,本应出现的正常的方波居然出现了先前从未见到的瞬时振荡,好在队友L口才相当好,把这个现象解释成pid的动态调参。


结果
!满分通过 !我们终于体会了一次当满分选手的感觉,几天后,也就是7月28日,我们队伍将和5月份一起晋级的队伍,连同全福建的大学生同台竞技。
附录
1.源码
源码放在仓库上:源代码在这,欢迎讨论🙂。