我大一那年稀里糊涂报了电赛,纯属被室友拉去凑人头。现在回头看,那是整个大学阶段让我成长最快的一件事,没有之一。很多新生一听“电子设计竞赛”就觉得那是大三学长才配碰的东西,其实真不是这样。大一参赛有劣势,但优势也特别明显,关键是你怎么规划这几个月。这篇我把自己的完整过程、踩过的坑、总结出来的方法全部写下来,给准备冲电赛的学弟学妹们做个参考。
1. 为什么大一就参加电赛
1.1 电赛到底是什么,大一参加是不是送人头
全国大学生电子设计竞赛,简称电赛,是电子信息类最有分量的学科竞赛之一。基本赛制是几个人组队,在规定时间内(一般是四天三夜)完成一个电子系统的设计、制作和调试。题目范围很广,覆盖电源、控制、信号处理、通信、仪器仪表等方向。评奖比例不算特别高,但也不是神仙打架到完全够不着。每年都有不少大一队伍拿省奖甚至国奖,关键在于准备得够不够聪明。
大一参加电赛,很多人第一反应是“我连单片机都不会,去干嘛”。我想说的是,你不需要会,你需要愿意学。大一最大的资本就是时间多、杂念少、心态好。学长们忙着考研保研,压力大得很;你没什么可输的,本来就是去攒经验的,心态上反而容易出成绩。
还有一个很现实的因素:电赛是一个实战型学习场景。大一课程基本在教高数、大物、C语言基础,这些东西单独学很容易觉得“学了不知道干嘛”。电赛正好给你一个目标,逼着你把知识串起来用。你会在一个具体项目里理解什么是定时器、什么是中断、什么是PID、什么是信号调理。这种“以赛促学”的效率,比上课刷题高太多了。
1.2 心态先摆正:你是去学东西的,不是去拿奖的
这点我一定要放在最前面说。很多大一新生参赛,目标定位就是“我要拿奖”,这会导致准备过程中很痛苦,因为你开始的时候确实啥都不会,一做对比就觉得自己不行。我当时的想法很简单:这个学期我就认真学一遍嵌入式开发、电路设计、焊接调试,拿不拿奖都算赢。
事实也证明,这种心态反而是良性循环。我不急着做出什么“高大上”的成品,而是老老实实把每个模块玩熟。结果到了真正比赛的时候,很多知识已经内化成自己的了,做东西反而比一些临时抱佛脚的高年级队伍更顺手。
如果你对自己的要求太高,遇到不会的东西就容易慌,一慌就容易抄,一抄就失去了参赛的意义。所以给自己定位成“学习者”而不是“竞争者”,整个备赛过程会快乐很多,学到的也更多。
2. 赛前准备:代码、电路、团队一个都不能少
2.1 知识储备:从点亮一颗LED到跑通完整的系统
大一参赛最核心的准备就是补技能点。我梳理一下我认为优先级最高的几个板块,你看看自己缺哪块。
单片机是绝对的核心。电赛的大部分题目都离不开微控制器,最常见的平台是STM32,部分简单题目也可以用Arduino快速验证。我建议大一选手直接学STM32,不要绕弯子。虽然上手门槛比Arduino高,但电赛题目对性能和外设要求经常超出Arduino的能力范围。你用Arduino做了半天,最后还要换平台,等于白折腾。学的时候也不需要啃完整个参考手册,照着几个基础工程练熟GPIO、定时器、中断、串口、ADC、PWM这六大件,基本就覆盖电赛八成的使用场景了。
电路基础也是绕不开的。你不需要把模电数电全部吃透,但至少要知道电阻分压、电容滤波、三极管开关、运放跟随器这些基础单元电路是怎么回事。比赛时经常需要自己搭一些外围电路,比如传感器信号调理、电机驱动、电平匹配。哪怕最后功能没完全实现,你能说清楚方案原理,在论文和评测环节也能加分。
C语言必须扎实。比赛现场写代码是常态,如果基础不牢,平时还能慢慢调,现场一紧张基本就是灾难。指针不一定要精通,但结构体、数组、函数封装、状态机这些一定要熟练。还有一个被很多人忽略的点:代码规范。工程上讲究模块化,一个模块一个文件,接口清晰,注释写清楚。四天三夜熬到最后一天,你已经很累了,如果代码是一坨意大利面,改一个bug可能引发三个新bug,那种绝望我不想你体验第二次。
2.2 硬件准备:模块清单与实际速成路线
大一选手通常没时间也没必要从零画PCB做板子,核心策略就是买模块、搭系统、先把功能跑通。我列一个实用的采购清单,都是电赛常客,价格也不贵。
- 主控板:STM32F407核心板或最小系统板,算力够、资源多,至少准备两块,防止现场烧坏。
- 传感器模块:灰度传感器/摄像头模块(循迹)、超声波/红外测距、MPU6050陀螺仪、温湿度传感器、电流电压检测模块。按题目方向选,不用全买。
- 电机驱动:TB6612或DRV8833模块,比L298N效率高、体积小,控制小车项目比较常用。
- 电源模块:LM2596降压模块、AMS1117稳压模块、锂电池组,电源是电赛的“地基”,煮饭先有米。
- 执行机构:直流减速电机、舵机,部分题目可能需要电磁铁、气泵之类,按需购买。
- 辅助工具:数字万用表、电烙铁、热风枪、杜邦线、镊子、剥线钳、面包板。工具预算别省,质量好的工具能救你很多次。
焊接这个基本功,大一一定要练熟。比赛现场时间紧张,你不可能每次都用面包板插来插去,很多连接需要直接焊在洞洞板上。焊接不难,关键是多练,手稳、温度合适、时间短,焊点就漂亮。我建议赛前花一到两周,每天焊一块小板子,练到闭眼能焊排针的程度。
2.3 团队搭子:水平不重要,脾气和节奏才重要
电赛是三人组队,队友一定要选对。这可能是比技术更重要的决策。我见过太多队伍技术都强但内耗严重,四天吵了三天半,最后草草交卷了事。
找队友的标准,首先是耐受度。比赛期间压力极大,每个人都会有情绪崩溃的时刻。如果队友是那种一着急就甩锅、一熬夜就暴躁的类型,再强的技术都白搭。其次是节奏匹配。有些人喜欢快速试错,有些人喜欢先把方案想明白再动手,这两种风格没有优劣,但如果三个人全搞成了两个不同风格就很痛苦。最后是角色分工,我建议三个人有明确侧重:一个偏软件(主控代码、算法)、一个偏硬件(电路搭建、传感器调试)、一个偏文档和测试(论文撰写、数据记录、现场协助)。当然分工不等于各干各的,比赛时经常需要互相帮忙,但主责明确能减少混乱。
组队还有一个容易忽略的点:尽量找时间能充分配合的人。大一课程相对没那么满,但有的人社团活动多,有的人周末要出去玩,如果你选队友时只看“关系好”不看“有空闲”,后面备赛频率会大受影响。
2.4 提前实战:完整做过2到3个小项目再上场
纯看教程永远学不会做东西。我在正式比赛前跟着几个开源项目做了几个小玩意儿:一个红外循迹小车,一个基于STM32的温湿度采集显示系统,一个用PID调速的风扇。难度都不高,但完整跑通一遍后,你对整个流程会有一个整体认识。
这里我特别说一下为什么“完整跑通”这么重要。很多新手学习时,做一半卡住了,就换一个项目重来,结果永远在“项目进度50%”的水平打转。真正比赛和真实项目一样,难点不在于“新”,而在于“串”。你单独写个传感器读取很顺,单独写个PWM输出也很顺,但把两个模块放在一个系统里协调工作,就会出现各种互相干扰的奇怪问题。只有完整做完几个项目,你才能积累这种“系统联调”的感觉。备赛期间宁可做两个完整的项目,也不要做十个半拉子工程。
3. 比赛过程实录:四天三夜的真实体感
3.1 选题:第一天的决定能毁掉整个比赛
比赛正式开始的第一天上午是选题时间。很多人会纠结选哪个题目,其实这个环节是有策略的。首先要看你手头的硬件积累。提前买好的模块、传感器决定了你能做什么类型的题目,现场临时买模块非常被动,快递等不起,本地电子市场又未必找得到型号。其次是看你的技术栈。如果你备赛期玩的是小车,就尽量选控制类的题目,不要突发奇想去碰信号处理类题目,除非团队里有人真的精通。最后是看队友的共识。三个人对选题理解不一致,勉强选了一个,后面协作效率会大打折扣。
我还想提醒一点:有些题看起来简单,实则暗藏玄机。表面功能很简单,但评测指标卡得很死,比如精度、线性度、极端条件下的稳定性,这些都是初看题目时容易忽略的。建议选题时冒出一个想法,就先问自己三个问题:实现这个功能我需要哪些模块?模块我有或者能快速搞到吗?最坏情况下整套系统的性能能达到评测要求的百分之几?三个问题都能给出答案再定。
3.2 系统设计:把大问题拆成可以并行推进的小块
确定题目后,不要急着敲代码。用半天到一天的时间做整体设计,把系统拆分成若干个子模块,明确每个模块的输入输出接口、供电需求、逻辑关系,然后三个人并行推进。这个规划看起来浪费了几个小时,实际上能帮你省下后面几十个小时的返工时间。
拆分的时候要注意模块之间的“接口约定”。比如传感器和主控之间用什么协议通信(I2C、SPI、串口)、数据格式是什么(几位有效数字、是否带符号)、电平是否兼容、功耗是否在电源承受范围内。这些约定最好写在纸上或者共享文档里,后面联调的时候能少吵好多架。
电源设计是我一定要强调的环节,也是很多新手翻车的地方。电赛系统往往不止一块板子,电机、传感器、主控、显示模块对电压和电流的要求各不相同。如果你的电源管理混乱,很容易出现“设备时好时坏”这种最难排查的幽灵故障。建议思路是:主电源→一级降压→二级稳压→各个负载,每一级都在关键节点预留测试点,方便万用表测量。我这四天里遇到的最多问题,一半以上都是电源纹波或压降引起的。
3.3 硬件的坑:焊接、接线的隐蔽细节
比赛期间,硬件调试会消耗你非常多的时间。很多新手以为焊接就是把元器件往板子上焊好就行,实际上电赛的临时系统有大量的飞线和模块拼接,这些连接的可靠性直接影响系统稳定性。杜邦线插接虽然方便,但接触不良的问题非常普遍。我的建议是,凡是需要长时间固定运行的信号线和电源线,直接焊接或用扎带固定并热缩管保护;只有需要频繁改动的调试线才用杜邦线。
接下来是接地问题。数字电路和模拟电路共地时,地线处理不好会引入很多噪声。我大一第一次做项目的时候,传感器数据总是跳动,折腾了一下午,最后发现是数字地和模拟地没分开导致的。电赛虽说是竞赛环境,但基本的设计规范还是要遵守的,信号调理部分的参考地要尽量靠近电源地,避免大电流走线经过敏感信号区域。
还有一个我反复踩的坑:接线端子没固定,系统一震动就接触不良。评测的时候你的作品需要搬运,从调试台搬到演示区,一路颠簸,如果接头没有做固定处理,很可能在评委面前突然失灵。所以封箱之前,所有关键连接点都要用热熔胶或者扎带再做一次加固。
3.4 软件调试:打印、分段、备份,一个都不能少
软件调试是另一个大头。我的习惯是“先点亮再完善”。先把最小系统跑起来,例如让LED亮、让串口输出一段测试字符,确认主控、电源、下载器都正常,再去写具体的功能代码。别嫌这一步傻,它能帮你区分问题出在硬件还是软件。有一次我写了半天代码,发现下载进去没反应,排查半天才发现是下载器的接口松了,如果一开始先跑个点亮程序,两分钟就能发现问题。
调试过程中,多用串口打印。printf是全世界最好的调试工具,没有之一。在关键位置打印变量值、模块状态、执行路径,比用逻辑分析仪慢慢抓波形方便得多。我现在写程序还习惯在每个函数入口打印一条调试信息,模式一开就知道程序跑到哪了、哪个分支被执行了、哪个模块卡死了。比赛现场强烈建议你在代码里留一个全局的调试开关,平时开着,评测前关掉,两全其美。
工程备份是个容易被忽视的保命习惯。四天三夜的高强度开发,代码会经历无数次修改,如果你只有一个main.c,某次改坏了找不回之前的稳定版本,就非常难受。我的方法是每次实现一个相对稳定的功能点就手动复制一份带日期的备份,或者用Git做版本管理。大一不会Git也没关系,用复制粘贴打包压缩文件也能起到同样的作用,重点是有意识地保留每一个可用的中间版本。
3.5 测试与文档:决定奖项上限的最后一个环节
电赛的评分并不只看功能实现情况。测试环节的规范程度、论文文档的完整度,对最终成绩的影响往往超出很多人的预期。功能都实现了但测试马虎、文档潦草,跟功能稍弱但测试规范、文档漂亮的队伍比,分数排名经常是后者更高。
测试环节建议提前设计测试方案。每个功能模块对应什么样的测试步骤、预期数值是多少、测试环境是什么、需要记录哪些数据,这些都要有一个清单。现场测试时按照清单逐项进行,每测一项记录一项,用表格整理。评委来参观时你能够清晰展示“我的系统在什么条件下测出来的数据是什么”,比空口介绍“我的系统很稳”有说服力得多。
论文文档不要等到最后一天再写。从第一天开始就可以搭好框架,每天花一小时把当天的工作内容记录下来:方案论证、关键参数计算、调试过程截图、遇到问题和解决办法。到了最后一天,把这些内容整理润色,一篇规范的技术报告就有了。很多队伍最后一天发现文档完全来不及写,只能交个空壳上去,在论文分上吃了大亏。
4. 电赛教会我的那些事
4.1 搜商是第一生产力
参加电赛之前,我遇到问题习惯问别人。参加电赛后我发现,所有的问题几乎都能在网上找到答案。大到整体方案,小到一个传感器型号的驱动代码,开源社区里都有大量现成资源。关键是你会不会搜。同样是搜“STM32 ADC”,有人直接复制代码踩坑,有人会加上芯片型号、库函数版本、年份等限定词精准命中。
我的搜索技巧就三条:一是优先看官方文档和数据手册,很多时候最可靠的答案就在那里;二是搜索时用关键词组合,中文搜不到就换英文,几百条结果里前十条不行就翻到第二页去;三是找到参考代码后不要直接抄,先理解再改写,弄清楚每行代码为什么这么写,不然遇到问题连怎么改都不知道。电赛四天时间很紧,你不可能等别人救你,自己会搜、会查、会解决问题,这是最核心的生存技能。
4.2 休息、情绪和节奏:不被看到的软实力
四天三夜的强度真的不是开玩笑的。平时熬夜玩游戏是一回事,连续高强度脑力劳动是另一回事。我第一天晚上还挺兴奋,第二天下午就开始犯困,到第三天基本是机械操作了。这里我总结出一个有效的节奏:每天保证至少四到六小时的连续睡眠,一人负责盯进度,其他两人轮流去睡,比三个人一起硬扛效率高太多了。你脑子不清醒的时候写出来的代码,第二天大概率要推翻重写,得不偿失。
情绪管理也同样重要。比赛过程中一定会遇到反复调试不通过的绝望时刻,这时候千万不要三个人一起陷入负面情绪。我的经验是,谁的情绪先崩,谁就暂时离开工位去外面走一圈,喝口水、透口气,另外两个人继续想办法,等情绪恢复再回来投入。这听起来像鸡汤,但在高压环境下实际维护的,是团队的持续战斗力。
4.3 电赛证书之外的收获,才是最值钱的部分
大一参加电赛后,很多学长问我拿了什么奖。说实话,我们当时的成绩并不算特别突出。但我个人觉得,参赛那几个月学到的东西,远远超过一纸证书的价值。首先是自学能力,我学会了怎么快速掌握一个新模块、一个新平台;然后是工程思维,我明白了做项目不是写作业,系统设计、进度管理、风险控制都决定了项目成败;再然后是团队协作,我学会了如何与人高效配合、如何处理分歧、如何在压力下保持冷静。这些能力在后面的学习和找实习中帮了我很大的忙。
如果你大一还在犹豫要不要报名,我的建议是,去。别管最终能不能拿奖,参加电赛这件事本身,就是一个投入产出比极高的成长机会。它给你的不是一个结果,而是一整套应对复杂问题的能力和心态。
4.4 给大一新手的几条实用建议
最后整理几条我觉得对大一首战电赛最实用的建议,算是给后来者的一点干货:
- 提前三个月开始准备,不要等赛前一个月才慌慌张张找队友、买模块。
- 至少完整跑通两个小项目再去赛场,半吊子状态上场真的会被虐。
- 队友很重要,但要找能扛压力、能沟通的人,不一定非要找技术最强的。
- 硬件模块多备一份,尤其是主控板和传感器,现场坏一个没得换很痛苦。
- 学会用搜索引擎解决一切问题,这是电赛最重要的元技能。
- 每天记录工作日志,比赛最后一天你会感谢这个习惯。
- 身体是革命的本钱,备赛期间也要适当运动,别把自己搞垮了。
电赛这个舞台对大一学生是很友好的。它不会因为你年级低就给你降低难度,但也正因为如此,你能在最真实、最硬核的竞争环境里迅速成长。我始终觉得,大学期间最让人印象深刻的经历,往往不是那些轻松拿到的成绩,而是那些一开始让你想放弃、后来让你热泪盈眶的时光。希望你能在电赛里找到属于自己的那份成长。