2025年8月13日

记一次电赛比赛经历 – 2025 TI杯重庆赛区

入学已经两年。第一年便想着参加电赛,在学校一个软件社团的名下报名了2024 TI杯. 但是 2024 的电赛是省赛,所以也没怎么放在心上。今年,我又重新在这个社团名下报名了 2025 年的比赛。

在去学校路上,发布赛题的前一天,我本来还无比轻松,想着没有什么事能难出我的预料… 那一天阳光明媚,

去学校路上

直到赛题发布的前一个小时,我从学校借宿的硬木板床上起来,睡眼朦胧的关掉了闹钟,爬下了床,在阳台进行简单的洗漱。本来正在阳台上洗漱的我,突然听见了里面另外两位队友的声音。这两位队友平时睡觉都可以睡到十点钟,更多时候甚至可以在下午一两点才醒来,过来工作室。今天,反常的,我在去阳台前还睡着的两位居然突然叫了起来。

瞥了一眼手机,看见手机屏幕上面的 QQ 推送信息,是指导老师发来的一个,文件不大,但是关系着我们未来几天所有精力、心血的压缩包。我迅速洗漱完毕,回到寝室中,翻开电脑,在和另外两名队友的注视下解压缩了文件。全部迅速浏览一遍过后,一下子就相中了 I 题。

一个很唬人的标题,但是题目却是我平日做得最多的控制类. 简单来说,就是一个通过手势来控制风扇转速的小装置

其中题目中要求用的手势识别,早在初中我就做过类似的东西,所以手势应该完全不是问题。(见B站:幸运的转转人偶)

题目非常简单,我们当即下单了提到的漫反射光电开关和一些其他所要用到的零部件。第一天,不知道脑子怎么发抽,定下了我现在都不敢相信是我干的方向——购买成品电压调整模块,并使用电子电位器调压。

第二天,快递到了。先是使用可调电源直接接上了调压模块。让电源恒定输出12.3v,再拧动调压模块上面的电位器。在接入负载的情况下,很成功的,电机转了起来。通过万用表测量电压,也丝毫不差,完全符合题目中间要求的 0.1V 误差的标准。

问题来了。下午,电子电位器也到了。拿来后,我很快就写出来了一个控制电子电位器,进行电阻调整的测试程序,接上了单片机,上传了程序。用万用表打到欧姆档,测试,一气呵成。阻值确实可以成功变化。但是当我们把板子上原有的电位器拆了下来,把电子电位器换上去时,却没有任何事情发生。上面显示的电压在电子电位器的扫荡下没有一点变化。我仍然不死心,以为是上面自带数显出故障了,于是拿出了自己的万用表来测试。没问题啊?电阻确实在变,但是电压怎么一点动静没有啊…

又折腾了来来回回一个小时,还是没有取得任何进展。


在这一天要结束的时候,我忽然发现自己的思路可能行不通,于是换了一个方向。在淘宝上询问了10多家购买 PWM 直接转电压的输出模块,给到的答复都是仓库已经下班,无法再发货。功夫不负有心人,在最后时刻,找到了一个还能发顺丰的商家。联系商家加急寄出后,我们简单的调试了一下已经差不多的红外和屏幕,便睡去了。

第二天,新的难题又来了。现在单片机确实是可以控制电压了,但是这样的模块输出功率确实不够,手边也没有任何材料可以手搓放大器(这是个软件社团)。一接上负载,就开始掉电压。陷入绝望的我,脑子无轮如何飞速转动也没办法想到其他解决办法。(其实在经历过2天的睡眠缺乏后,连平时信手拈来的代码,也不太能写出来了)

晚上,我们拿出来了横跨中国电子教育界的一块史诗级装备——L298N。虽然这个类比起来,也只能勉强算是新手村的小木剑,但是所幸,软件社团也有少儿编程涉及,加上指导老师最开始以为我们会选择小车,于是借了很多配件来,其中就有很大一筐 L298N. 说干就干,此时我们的斗志又燃烧了起来,仿佛拿着这把新手村的木剑就要去屠龙。题目中要求只能控制电压,之前就是被这一点束缚了思路,后来发现用这玩意,输出的电压居然也会改变。(基本功确实不够扎实)

屠龙少年为了防止自己在半夜睡着,便先出发,东市买茶姬。我的好兄弟兼室友还贴心的帮我点了一份外卖加油助威。。。

外卖

唯一的问题是这个哥们的备注… 要是我自己拿也还好,问题是帮我取外卖的是我的指导老师。也是体验了一把社死的感觉…

回来之后,我们三个便开始使用不同的单片机进行调试,霎时间,整个工作室出现了三大流派——守护传统的STM32标准库使用者、维新的STM32硬件抽象库使用者和享乐主义ESP32使用者。

突然转向这个思路,让我们几个的眼里又看见了胜利的曙光。

这时候,我们的指导老师也带来了一些补蓝必备的东西.

不加文字可能看不出来,这是猪蹄… 虽然卖相不好,但是相当好吃!

补满了状态后,我们满怀信心的继续朝着山里进发。很快就有了结果:

所有题目中提到的手势操作,都已经被我们支持了,风扇转速调整也制作完成!我们还做了比较出众的UI界面(第一天晚上什么材料也没有,太无聊了,在作品上直接上了 LVGL…)

但是我们手上并没有能够动态测量电压,并且传给主控的芯片。至于为什么不用 ADC 通道加上分压电阻直接采集——前面提到了,这是软件社团,物资匮乏。我们最终提交的只有这一块单片机,一个冗余也没有。你也不想在封箱之前给自己MCU烧了吧…

于是我们干了一个比较邪道的操作

我们测量了很多个速度档位,从PWM占空比来看,也就是测量了 10~100% 所有占空比和电压的对应关系。测量完成后,用四参数方程,拟合了一个曲线。这样,我们就可以通过占空比算出来电压。再求一个反函数,就可以通过电压算出占空比。这样,设置到指定电压的功能也制作完成。

满怀信心(并不)的调整参数后,我们便提着这把木剑,迈向了山中巨龙的巢穴。

提交完了赛题,深知无论做什么也无法改变结果的我们,直接在大学城放松了一天。

翌日,我们又回到了这个地方,开始讨伐

会场人很多,过来路上也热得让我们每一个人都打湿了衣服。在测试区域外焦急无奈的等候,像极了待宰的羔羊,之前那一份自信在看见其他组的作品后荡然无存。甚至有两个组,提着一模一样的传说级屠龙宝刀进入了测试区(嗯。字面意思上的一样,很难不怀疑是作弊。可惜里面不能带手机,不然一定拍下来举报)我们也只能眼巴巴看着其他人,互相说一些打气的话。

在等待了接近两个小时后,终于轮到了我们测试。很顺利的通过了所有基础题后,来到了要求电压精度的拓展题。由于我们通过拟合来进行电压的计算,在特定环境下,确实能获得较高的精准度,但是受环境因素影响也特别之大。电机驱动扇叶所需要的扭矩一改变,我们就得重新适配。。。所以,这个不是办法的办法,在遇到真正的问题后,也败了。电压误差从要求的 0.1V 以内跑到了 1V 以内。

而且在最后一题,我们明明完成了其中一个指标,但是评委拒绝给我们打分。。。也是遇到神人了,感觉这几个评委可以去组乐队了。

在双重 BUFF 的叠加下,我们成功落选国赛,落在了国赛表之后的那一页表上。回宿舍收拾东西时,大家连一顿散伙饭也没吃,就互相告别了。那一天和第一天一样,也是一个大晴天

在一个陌生的宿舍,和另外两个人,奋斗三天的故事,结束的来不及有一点征兆,如同七月份那般。收拾完了行李,站在宿舍楼里,看着旁边洒下的太阳,我也知道国赛无望了。一位家住在四川的,在回到寝室的一个小时内,便打包好了行李,坐上了回家的巴车;另一位也在他之后,干净利落的走了。我一个人坐在宿舍楼内,脑子疲惫得无法回忆这几天所发生的事情,机械的用手指在屏幕上滑动。在无数次滑动后,我也从宿舍楼离开了,锁上了那一扇我再也不会打开的门。