等了整整两年,这一届电子设计竞赛终于官宣了。2020年从年头到年尾,多少支队伍从寒假备到暑假、从暑假备到秋天,等的就是这份通知。对于2018年没赶上、2020年就要毕业的同学来说,这可能是大学阶段最后一次认真打比赛的机会;对于带队老师来说,这两年的人才梯队、模块积累、题目研究,终于到了验收的时候。
这篇文章我想认真聊一聊:电子设计竞赛究竟在比什么,拿到题目后的四天三夜应该怎么规划,硬件选型和系统设计有哪些值得提前准备的经验,以及我在实际比赛和带赛过程中踩过的坑、总结出的排障套路。不管你是第一次参赛的新手,还是已经打完一两届想冲击国奖的老手,这篇文章里应该都有你用得上的东西。
1. 为什么电赛值得认真对待:规则、含金量与出题逻辑
1.1 两年一届的舞台,含金量到底在哪
全国大学生电子设计竞赛两年一届,这是国内电子类学科竞赛里规模最大、认可度最高的赛事之一。本科组和高职高专组分开命题,全国统一题目、统一评测标准,四天三夜封闭式制作,最后提交作品和设计报告。这种“全国一套题、同一起跑线”的赛制,天然保证了公平性,也让奖项的含金量非常扎实。
从实际价值来看,电赛的成绩在保研、考研复试、求职简历里都是硬通货。企业做硬件、嵌入式相关的岗位,面试官几乎都知道电赛的分量,因为这比赛的题目不是那种“背诵知识点”的考试,而是真刀真枪地让你在有限时间里做一个能跑、能测、能复现指标的电子系统。能把电赛做好,至少说明你具备了硬件设计、软件调试、文档写作、团队协作和时间管理这五方面的基本素养,这比很多空泛的证书都更有说服力。
但我想说的是,如果你只冲着“加分”去,这比赛会打得很难受。电赛最折磨人的地方恰恰在于它的不可预测性——题目方向多、指标要求硬、评测时一切靠数据说话。真正能从这比赛里收获最多的人,往往是那些把它当成一次完整工程项目训练来做的人。赛后复盘时你会发现,四天三夜里学到的排查思路、模块选型经验和团队磨合方式,比奖状本身更值钱。
1.2 赛制与评测:你必须知道的游戏规则
电赛的典型流程是:赛前公布命题方向(不公布具体题目),比赛当天早上8点全国统一发题,四天三夜后提交作品与设计报告,之后进行作品评测。评测通常分区域进行,全国评奖会从各赛区推荐的作品里再筛一轮。
这里有个很关键的规则细节:评测当天,你的作品要当着评委的面现场演示计时指标。也就是说,你那套系统不能只在实验室条件下工作,不能依赖某个巧合,更不能“偶尔好使”。评委现场看的,是从上电到出指标的全过程。这就对系统的稳定性、启动速度、一致性提出了极高要求。很多队伍平时调试时指标挺漂亮,一上评测台就翻车,多半是因为没提前把“冷启动”和“连续运行稳定性”当正式指标来测试。
另外,设计报告在整个评分里占比不低,通常和作品演示各占一部分权重。报告不是赛后补的流水账,而是要在比赛过程中同步记录、整理出来的工程文档。这一点我后面会专门展开讲,这里先记住一个结论:写报告的时间必须提前预留,等到最后半天才动笔,基本写不出高分报告。
1.3 赛题方向的底层出题逻辑
历年电赛题目大致可以分成几个固定方向:电源类(直流稳压电源、UPS、充电管理)、信号类(信号发生器、放大器、滤波器、检测装置)、控制类(小车、四轴、机械臂、倒立摆)、仪器仪表类(测量仪器、参数检测装置)、通信类(无线收发、调制解调)以及近年新增的人工智能应用类(图像识别、语音处理等)。
这些方向不是随便出的,背后有两条逻辑。第一是“可评测性”——题目必须能用仪器在现场量化打分,比如输出电压精度、波形失真度、追踪速度、识别准确率,这些都能用示波器、万用表、秒表直接测定。第二是“工程映射”——每个题目都对应着工业界某个真实场景,比如B题单相不间断电源,其实就是UPS的简化版;四天三夜做得好的作品,本质上就是一个可以落地的产品原型。
所以备赛时不要只刷题,更要理解每个题目背后的物理模型和工程约束。把DC-DC的环路补偿调明白了,测控系统的传感器误差模型搞清楚了,比背十个开源代码都管用。题目年年变,但这些底层原理是稳定不变的。
2. 备赛平台与硬件选型:提前把“地基”搭好
2.1 主控怎么选:STM32为主,FPGA为辅
主控芯片是整个系统的核心,这块的选型决策直接影响后续所有开发效率。根据我这些年的观察,绝大多数题目用STM32系列就足够了。比如STM32F103C8T6,性价比高、资料多、库函数和HAL库都成熟,适合做控制类、仪器仪表类的信号采集和控制逻辑。如果你的目标是信号类或者需要更高性能的应用,可以考虑STM32F407,主频高、有FPU,做浮点运算和FFT时明显比F103从容得多。
FPGA的主控在电赛里一般用在高频信号处理、高速数据采集、需要并行处理的场景,比如做高速ADC接口、数字滤波、时序产生。但FPGA的开发周期比单片机长,调试工具也更复杂,如果题目没有明确要求,不建议把FPGA当默认首选。我见过不少队伍一上来就上ZYNQ,结果四天三夜有一半时间在跟Vivado的时序约束较劲,最后连基础功能都跑不通,非常可惜。
我的建议是:以STM32F4系列作为主力平台,提前把工程模板、外设驱动、通信协议栈、PID控制库这些基础代码写好封装好。比赛时主控部分不要从零开始,而是像一个工具箱一样直接调用。如果有余力,再备一块FPGA开发板,平时练几个典型用例,关键时刻能用上就行。
2.2 常用模块清单:按赛题方向囤东西
电赛备赛效率高低,很大程度上看你手头现成的模块够不够。比赛期间临时买模块、找芯片、画转接板,都是极度浪费时间的事情。建议按以下方向提前储备:
| 方向 | 必备模块与器件 |
|---|---|
| 电源类 | 工频变压器、整流桥、DC-DC模块(升降压)、LDO、采样电阻、继电器、驱动芯片(如IR2104)、MOSFET |
| 信号采集与处理 | 高精度ADC模块、运放(OP07、AD620)、DAC模块、程控放大器(VCA810、AD603)、有源滤波套件 |
| 控制类 | 直流减速电机、编码器、电机驱动(TB6612、DRV8833)、陀螺仪(MPU6050)、灰度传感器、电磁传感器、超声波/激光测距 |
| 人机交互 | OLED屏、矩阵键盘、按键、编码器旋钮、蜂鸣器、SD卡模块 |
| 通信类 | 蓝牙模块、NRF24L01、LoRa模块、串口转WiFi模块(ESP8266)等 |
| 通用辅助 | 万能板、排针排母、杜邦线、精密电位器、各种阻容感元件盒 |
这里有个容易被忽略的点:备模块不只是“有”,而是要提前验证过“能用”。很多队伍囤了一堆模块,但没提前写驱动、没测量过模块实际精度,比赛时才发现某个模块跟主控的通信时序对不上,或者传感器的噪声比信号还大。正确的做法是每个模块到手就写一个最小测试程序,记录它的启动时间、通信接口、实测精度,并把这些信息整理成一本自己的“模块手册”。
2.3 仪器与工具:示波器、电源、烙铁之外的一些细节
仪器这块,示波器、直流稳压电源、万用表是标配,有条件再备一台信号发生器和逻辑分析仪。但真正拉开备赛体验差距的往往不是大仪器,而是那些容易被忽视的小工具。
比如,多准备几种规格的测试线、BNC转接头、鳄鱼夹线,比比赛时到处借线省时间得多。再比如,一台好用的热风枪和一套精密焊接工具,对于更换贴片芯片、飞线维修来说至关重要。还有一个我自己印象很深的经验:稳压电源的输出线一定要用粗一点的硅胶线,细线在大电流下压降很感人,会让你的电源指标凭空变差。
另一个建议是提前做一个“便携工具箱”。电赛评测现场通常不在你熟悉的实验室,你需要把所有可能用到的线材、转接头、备用芯片、螺丝刀、扎带、绝缘胶带都收进一个箱子,做到“拎箱就走”。我见过有队伍评测现场因为缺一根杜邦线导致模块没法供电,最后只能用镊子短路凑合,这种低级失误完全可以通过提前准备规避。
3. 从题目到方案:四天三夜的顶层设计
3.1 拿到题目的第一小时别急着写代码
发题后的第一个小时是决定整场比赛走向的关键节点。很多队伍拿到题就开始兴奋地焊接、写代码,这是大忌。正确做法是:三个人立刻把题目逐字读三遍,圈出所有硬性指标,然后做两件事——算可行性,做减法。
先算可行性:题目里的每个指标,对应到你的现有模块和方案储备,有没有实现路径。比如2020年C题坡道行驶电动小车,要求在坡道上定点停车,误差要控制在厘米级。这个题目如果你平时练过编码器测速和PID闭环,那方案基本清晰;如果完全没接触过电机闭环,那就果断考虑换题。
再做减法:题目通常会给多个发挥项,这些都是锦上添花的分数,不是拿奖的命脉。先把基本部分的功能完整做出来、指标稳定跑过,再考虑发挥部分。我见过太多队伍花了一整天去搞一个加分很少的高级功能,结果基础部分出了低级问题,最后分数反而难看。正确的资源分配是:第一天确定方案、搭好硬件框架,第二天把基本功能跑通,第三天优化指标并开始写报告,第四天集中做稳定性测试和报告完善。
3.2 硬件架构:模块化、双电源、独立地线
硬件设计上有几个原则,是我反复跟队员强调的。
第一,模块化设计。主控板、驱动板、传感器板、电源板尽量分开,板间用排针、排母或连接器连接。模块化的最大好处是便于排查故障——哪个部分出了问题,直接替换独立的板卡就能定位。如果所有功能挤在一块大板上,一处短路可能就得全部重做。
第二,电源要分路、地线要讲究。数字电路、模拟电路、电机驱动要分开供电或者至少分开走线,避免电机启动时的大电流拉低模拟部分的参考电压,导致ADC读数漂移。对精度要求高的信号链,模拟地和数字地在ADC芯片附近单点连接,这是信号完整性的基本功。2020年B题单相不间断电源,电源类题目对纹波、效率、切换时间都有严格要求,如果电源和测控部分共地共路,评测量出来的纹波数据会让你怀疑人生。
第三,关键信号要留测试点。把PWM输出、ADC输入、串口TX/RX、基准电压这些信号引到方便的排针或测试环上,调试时示波器探头一夹就能看波形。很多队员嫌麻烦不做测试点,结果信号异常时只能把探头往芯片引脚上怼,既危险又低效。
3.3 软件架构:状态机、任务调度与控制闭环
软件方面,我强烈建议在比赛前就写好一套“通用工程骨架”,而不是到了赛场再从main函数开始写。这套骨架通常包括:系统时钟和延时初始化、串口打印和日志模块、按键与OLED菜单框架、ADC多通道采集、PWM输出、定时器中断调度,以及一个简易状态机框架。
状态机是多数电赛题目的最佳软件结构。比如一个温度控制装置,它的状态可以划分成“待机、加热中、恒温中、超温保护、测试完成”,每个状态对应一组行为,状态之间通过事件条件切换。使用状态机的好处是逻辑清晰,不会出现因为if嵌套太深导致的行为混乱,调参和排查问题都方便很多。
控制闭环是控制类题目的核心。以坡道行驶小车为例,典型控制流程是:编码器采集转速和里程→惯性测量单元(或者光电传感器)采集姿态与位置→算法解算误差→PID控制器计算出PWM输出→电机驱动执行。这里PID参数整定需要提前练熟临界比例度法等整定方法,并准备一版“跑起来不振荡但动态稍差”的保守参数,比赛现场再根据实测微调。现场调PID最忌大改大动,一次只调一个参数,记录每次调整前后的响应,这样才能快速收敛。
3.4 测试方案要写在写代码之前
这一点很少被人提到,但我觉得是区分专业队伍和业余队伍的重要标志:测试方案应该和设计方案同时完成,而不是等代码写完了才想“怎么测”。
测试方案要回答三个问题:这个指标用什么仪器测、在什么条件下测、记录什么数据。比如信号源题目要求输出频率精度,那你的测试方法就是用频率计/示波器数波形周期,在多个频率点各测10次,记录最大值、最小值、平均值。比如小车定点停车,那就划定起跑线、测量点,用卷尺或者标定纸记录实际停车位置与目标点的偏差,多跑几组看一致性。
还有一点,正式评测前一定要做“模拟评测”演练。找一位没参与过你项目的同学,让他按照评委的流程操作你的作品:从上电开始计时,按指定步骤演示,记录所有测试数据。这个过程会暴露很多你“灯下黑”的问题——比如操作顺序不清楚导致启动失败、某个按键要按两下才有响应、指示灯状态含义不明确等。我们队在2020年比赛前做了三轮模拟评测,每次都能发现新的问题,这在正式评测现场帮了大忙。
4. 实测调试与排障:那些翻车现场教我的事
4.1 先查电源再谈别的
调试中遇到的系统级故障,十有七八根源在电源。我总结了一个排查顺序:先量电源电压对不对,再看纹波大不大,然后查复位电路、时钟电路,最后才怀疑程序和逻辑。
有一次比赛现场,我们的小车电机一启动,单片机就重启。排查了很久,最后发现是电机电源和逻辑电源共用了同一个稳压模块,电机瞬态电流一大,逻辑电压就被拉低到复位阈值以下。解决办法很简单:电机单独用一路电源或者加一个大电容缓冲,逻辑电源前再串一个LDO。这个教训让我养成了一个习惯:任何新板子上电之前,先用示波器看两件事——电源上升沿是不是干净,纹波是不是在可接受范围内。
电源设计上另一个高频坑是压降估算错误。比如用一个5V稳压模块给一片需要5V供电的传感器供电,忽略了模块自身压差要求,实际输出只有4.2V,传感器工作就不正常。选型和布线时要留足裕量,尤其注意大电流路径上的线阻和接触电阻。
4.2 信号处理三兄弟:噪声、地环路、采样率
ADC采集类的题目,比如电流信号检测、温度测量、非接触测量等,最常翻车的就是信号质量问题。典型症状是:数据跳变厉害、测量结果呈周期性波动、或者无输入时也有读数。
噪声的来源通常有三类。第一类是电源耦合噪声,解决办法是加RC滤波、使用低噪声LDO、采样点远离开关电源的开关节点。第二类是地环路,多个模块之间通过不同的地路径相连形成环路,会感应出工频噪声;解决办法是单点接地、星型接地或者使用隔离器件。第三类是采样率与信号带宽不匹配,导致混叠效应;这时需要用示波器看信号频谱,选对采样率并加抗混叠滤波。
实测中我常用的排查工具是“示波器看原始信号+FFT看频谱”。先把ADC原始值直接通过串口打印出来,同时用示波器探头量传感器输出引脚,对照两者波形。如果示波器上信号很干净但ADC数据乱跳,问题大概率在采样电路;如果示波器上本身就有一堆毛刺,那就要先处理硬件信号。这个“硬件信号为准,软件读数对照”的思路,帮我快速排查过大量疑难杂症。
4.3 常见问题速查表
以下是我在历年备赛和比赛过程中整理的一部分高频问题,直接做成速查表方便你排查:
| 现象 | 可能原因 | 排查与处理 |
|---|---|---|
| 单片机反复重启 | 电源被拉低、看门狗误触发、复位电路不良 | 示波器测电压跌落,单独供电,检查复位引脚电容电阻 |
| 电机转但速度不受控 | PWM频率不对、驱动芯片死区问题、编码器接线错误 | 先开环给固定PWM确认转速,再查编码器AB相时序 |
| 传感器数值周期漂移 | 电源纹波导致参考电压波动、或存在工频地环路 | 加滤波电容,改用精密参考电压芯片,检查接地方式 |
| 无线通信偶尔丢包 | 电源不干净、天线区域被金属遮挡、初始化时序不规范 | 通信模块独立供电,重新布局天线位置,调整收发时序 |
| OLED显示花屏 | I2C/SPI速率过快、电平不匹配、电源纹波大 | 降低通信速率,检查逻辑电平,电源端加100nF+10uF电容 |
| 测量结果整体偏大/偏小 | 分压电阻精度不够、传感器校准系数不对、参考电压不准 | 用高精度万用表实测分压网络,重新标定系数 |
| 系统上电后无任何反应 | 电源没通、晶振没起振、BOOT0配置错误 | 先测电源,再测晶振波形,检查BOOT引脚电平 |
这个表格里的内容,每一条背后都是真金白银的教训。团队里建议安排一个“专职排障员”,遇到问题先对表排查,而不是三个人同时上手乱改,那样只会把问题越弄越复杂。
5. 备赛与团队协作的实用建议
5.1 四天三夜的节奏怎么控
四天三夜听起来很长,实际上真正高效的时间窗口只有前两天。我的建议节奏是:
第一天上午:读题、选方案、定硬件架构,下午焊接主控板、电源板和驱动板,晚上开始调基本外设(屏幕、按键、传感器)。目标是第一天结束时,硬件能通电、串口能打印、模块能响应。
第二天:基本功能跑通。比如题目要求测一个电压,今天就要能在OLED上显示出来;题目要求小车动起来,今天就要能直线行驶。同时,设计报告的框架要在今晚搭好,把已确定的系统框图、方案思路先写进去。
第三天:全面优化指标。把精度、速度、稳定性的余量做大,并把发挥部分的加分项尽量做出来。晚上开始整理测试数据,填充报告主体。
第四天:上午继续强测稳定性,做模拟评测,中午开始封存作品,下午集中精力完善设计报告和图表。第四天不建议再大改硬件或改核心算法,风险极高,这个阶段任何“大聪明”改动都可能毁掉前三天的成果。
5.2 三个人怎么分工才不吵架
电赛是三人一队,常见的分工是硬件、软件、文档,但这种“一人一块”的分法有个问题:接口不清晰,出了问题容易互相甩锅。我更推荐按“系统集成”的思路分工——硬件负责人管所有电路和模块,软件负责人管所有代码和算法,第三个人做“系统集成与测试”,负责把硬件软件对接起来、记录测试数据、填写报告。这个角色前三天看起来像打杂,但到了第四天会发现,他是唯一一个对系统整体状态有完整认知的人。
三个人的沟通机制也很重要。每天早中晚三次固定碰头,每次十分钟,各自说三件事:我做了什么、我卡在哪、我需要谁配合什么。不要等到问题滚大了才开口,那是团队协作里最忌讳的事。
另外,设计文档从第一天就要开始管。每一版代码、每一张接线图、每一次测试数据,都要有记录。尤其是“什么时候改了什么导致指标变好/变坏”这种因果记录,第四天写报告和复盘时价值极大。
5.3 赛前一个月我建议做的事
如果还有一个月时间,最有效的训练方式不是漫无目的地做小项目,而是严格按照比赛节奏做两轮“模拟赛”。找往年真题(比如2018年或2016年的题目),掐着时间和队友一起做。第一轮模拟可以放宽到两天完成,第二轮模拟必须严格控制在四天三夜以内。
模拟赛的价值不只是练技术,更是练“取舍”的决断力。你会真实体验到:时间不够时,什么功能该放弃;某个模块坏了,是修还是换方案;三个人意见不一致时,如何快速达成共识。这些能力在真正比赛时才是最宝贵的。
赛前还要把设计报告的模板提前写好,包括封面、目录、摘要、系统框图、硬件设计说明、软件流程、测试数据表格、误差分析这些章节的格式和框架。模板做好之后,比赛期间只需要填内容,能节省大量时间。我记得很多队伍在交报告前两小时还在调Word的图表编号,那种慌乱完全可以通过提前准备规避掉。
最后再分享一个实战小技巧。比赛前用半天时间,把队伍里所有的模块、芯片、线材全部列个清单,标记好每种东西的数量、位置和状态。比赛期间做一个“物资表”,每拿一样东西就划掉一项。这个方法听起来很笨,但能有效防止“以为有备用实际上没带”的惨剧,也能在收工清点时快速发现遗漏。
电赛两年一届,2020年这一届尤其特殊,备赛周期被拉长,但这也意味着你有更多时间把基础打扎实。等真正站上评测台的那一刻,你会发现,四天三夜里每一块焊好的板子、每一行调通的代码、每一次排查过的故障,都会在恰当的时候回报你。