大一结束的那个夏天,我拖着三块焊废的板子和一抽屉杜邦线回到宿舍,电脑里还留着改了十七版的代码。回头看这一年,电赛带给我的,远不只是那张奖状。这篇心得写给所有准备参赛的大一学生——无论你是刚学会C语言、第一次碰单片机,还是连示波器都没摸过,这篇内容都能帮你少走不少弯路。我会把我们从寒假备赛到四天三夜现场的真实经历、踩过的坑、复盘出的经验,全部摊开来讲。
1. 为什么说大一参赛“不亏”:我的参赛动机与真实收获
1.1 从只会烧录例程到敢自己画板子
我大一上学期结束时的水平,说实话很一般:C语言能写三层循环,指针用得磕磕绊绊,单片机只会烧录官方例程,连按键消抖都要上网抄。报名电赛,纯粹是被学长一句“大一不去试试,大二更不敢去”给刺激了。
但打完比赛回头看,这半年逼出来的成长是惊人的。电赛不会管你大几,题目难度一视同仁。为了把题做出来,你只能疯狂补课。我用了两周学会用立创EDA画双层板,又用一周把STM32从标准库切到了HAL库——放在平时,这些我可能拖到暑假都学不完。
更重要的是,电赛逼着我把“知道”变成了“会做”。知道I2C协议和真正用代码把MPU6050的数据读出来并显示在OLED上,中间隔着无数个坑;知道PID公式和让小车稳稳地走直线,中间隔着成百上千次调参。这种从理论到落地的跨越,是大一课堂上很难给你的。
1.2 报名前的认知差距:电赛到底在考什么
没参赛之前,我以为电赛考的是“谁的方案最牛”。打完之后才明白,电赛真正考的是在有限时间和有限资源下,谁能把系统做得稳定、可靠、可复现。
评委打分看的不是你的方案有多花哨,而是实测指标。功能能不能稳定跑通、关键参数能不能达到题目要求、测试数据是否完整,这些才是拿分关键。很多大二大三的队伍最后翻车,不是不会做,而是系统不稳定——上一次测还行,下一次测就飘了。
所以对大一学生来说,目标不是拿国一,而是把完整流程跑通一遍:从读题、方案设计、搭电路、写代码、联调,到写设计报告、现场测试。这套流程本身的价值,比奖项更值得。
1.3 大一参赛的真实“时间账”
有人说大一参赛会耽误学业。我的体会是:只要安排得当,兼顾并不难,甚至在很多方面是相互促进的。
我的时间分配大致是这样:寒假每天投入2-3小时打基础,开学后每周周末抽一天做模块,期末考试前两周暂停备赛,暑假全力冲刺。高数里的微积分、复变函数,在分析滤波器、计算PID参数时都有了实感;C语言的指针、结构体,在写状态机、管理数据缓冲时彻底开窍。
当然也有代价,比如那学期我少打了很多游戏、少刷了很多剧,但换来的是一套能拿得出手的工程能力和一群并肩作战的队友。这笔账,我觉得很划算。
2. 入坑前必须想清楚的几个问题:选题方向与技能准备
2.1 控制类还是信号类:大一应该怎么选
电赛的题目大致分几个方向:电源类、控制类、信号类、仪器仪表类、测量类。大一新手最纠结的通常是选控制类还是信号类。这两个方向对技能栈的要求差别很大,我直接列出对比:
| 对比项 | 控制类(小车、飞行器、机械臂) | 信号类(波形发生器、频谱分析、滤波器) |
|---|---|---|
| 入门门槛 | 相对低,模块化程度高 | 相对高,需要模拟电路功底 |
| 核心技能 | 单片机、传感器、PID算法 | 运算放大器、ADC/DAC、信号处理 |
| 常见痛点 | 结构不稳、机械误差、调参耗时 | 噪声干扰、波形失真、阻抗匹配 |
| 适合人群 | 软件能力强、动手快的同学 | 模电基础扎实、有仪器使用经验的同学 |
| 验收直观性 | 高,车跑起来就是成果 | 中,需要仪器测量判断好坏 |
我的建议是:如果模电学得一般,优先选控制类。控制类的前期准备套路比较固定,资料多、模块便宜、反馈直观,犯错之后容易定位。信号类对运放选型、噪声抑制、高频布线要求高,大一如果没系统学过模电,容易陷进去出不来。
2.2 波形发生器这道老题:信号类到底在考什么
2015年电赛的多种波形发生器是一道很有代表性的老题,直到现在还有人在复盘。这道题让我第一次意识到,课本上的“信号与系统”知识,到了实际电路里有多大的距离。
波形发生器听起来简单,就是输出方波、三角波、正弦波,但实际考核点非常狠:
- 频率稳定度:题目会要求频率可调且稳定,直接用RC振荡器很难满足,必须用DDS(直接数字频率合成)或者锁相环方案。
- 幅度一致性:不同波形、不同频率下,输出幅度要保持不变。这就要求后端加自动增益控制(AGC)或者数字电位器补偿。
- 波形质量:正弦波的谐波失真、方波的上升沿、三角波的线性度,每一项都会成为评分点。
以我们当时的复盘来看,这道题最友好的切入方案是:用STM32的DAC配合DDS算法生成波形基础数据,再通过运放搭建调理电路完成幅度调整和功率放大。对大一学生来说,能先把DAC输出、运放跟随、示波器读数这套链路跑通,已经能拿到不少基本分了。
2.3 从近几届H题、G题看技术趋势
每年赛题公布后,大家都会讨论H题、G题。我复盘了几届之后发现,出题趋势其实很清晰:H题偏信号测量与处理,G题偏运动控制与智能小车方向。
信号测量类的典型架构是:传感器 → 信号调理 → ADC采样 → 单片机处理 → 显示/通信。核心夺分点在于采样精度、处理速度和抗干扰能力。
运动控制类的典型架构是:传感器感知 → 控制算法决策 → 驱动执行 → 闭环反馈。核心夺分点在于响应速度、稳态精度和鲁棒性。
所以不管题目怎么变,底层能力是固定的:你对单片机外设的熟悉程度、对传感器数据的处理能力、对系统闭环的调参经验。与其猜题,不如把这些底层能力打扎实。
2.4 小车项目为什么是大一入门的“最佳练习册”
热词里不止一次出现“电赛小车设计报告”,这绝不是偶然。小车几乎是控制类入门最合适的载体。
它的好处在于完全模块化:底盘、电机驱动、主控板、传感器、电源,每个模块都可以单独调试。先让它动起来,再让它走直线,然后让它循迹,最后玩转PID——每一步的成功都能带来正反馈,这对新手保持动力非常重要。
我建议的入门路线是:
- 循迹/避障:用红外或超声波传感器,让车能感知环境并做出简单反应,熟悉GPIO、定时器中断。
- 编码器测速:学习用定时器捕获模式读取编码器脉冲,计算速度。这一步能帮你彻底搞懂“中断”和“计时”。
- PID调速:让电机转速稳定在目标值,体会P、I、D三个参数分别对系统的影响。
- 姿态解算:换一个带陀螺仪和加速度计的模块,学习滤波和姿态估计,这是飞行器类项目的基础。
每一步都要做记录,因为赛后要写设计报告,而设计报告需要大量真实测试数据。边做边记录,后面会轻松很多。
3. 我的备赛时间线:从寒假到比赛周的完整安排
3.1 寒假打基础:C语言、单片机、常用模块三线并行
寒假是整个备赛的奠基期,最忌讳漫无目的地刷视频。我采用的策略是“三线并行,以做带学”。
- C语言线:重点攻克指针、结构体、链表,因为后续写多传感器数据管理时会用到。
- 单片机线:学习定时器、PWM、ADC、DAC、串口、I2C、SPI这七大件,每学一个外设就写一个独立的测试例程,不追求一次吃透,但求能上手跑通。
- 模块线:玩转OLED显示屏、按键、编码器、超声波、MPU6050等常见模块,把这些模块的驱动程序整理成自己的“代码仓库”。
这里有个教训:不要直接抄现成的代码,一定要手敲一遍。抄代码会让你觉得“我会了”,但到了比赛现场,代码只要换一个芯片型号、改一个引脚,你就傻眼。手敲一遍才能真正理解寄存器配置和数据手册的读法。
3.2 开学后:模块实战与合作分工
开学后时间碎片化,不适合做大系统,最适合做的就是模块级验证和团队磨合。
我们的做法是三个人明确分工:一个人主攻控制算法和代码框架,一个人负责电路设计和焊接,一个人负责传感器数据融合和上位机调试。每周对一次进度,把遇到的问题和解决方案记录下来。
这个阶段还有一个重要任务:搭建测试环境。示波器、稳压电源、万用表、信号发生器,这些仪器要提前学会使用。尤其是示波器,很多人到了比赛现场才第一次用,浪费了大量时间在“看波形、猜问题”上。我强烈建议大一学生备赛期间就把示波器的所有常用按键摸熟。
3.3 赛前两周:联调优先、模板先行
赛前两周是整个备赛最紧张的时期,原则只有一条:优先联调,不做新功能。
我们当时犯过一个错误,赛前一周突然想给系统加一个蓝牙通信功能,结果不仅新功能没调通,还引入了中断冲突,把原本稳定的主程序搞崩了。最后花了两天一夜才定位到问题。这个教训太深刻了。
赛前两周应该做的三件事:
- 完整跑通主流程:从开机、初始化、运行到结果输出,每条路径都要反复测试。
- 准备好报告模板:设计报告的框架在赛前就要搭好,包括封面、目录、系统方案框图、指标测试表,比赛时只需要往里面填数据。
- 整理文档和代码备份:代码分版本保存,硬件连接图、引脚定义表打印一份放在桌上,避免现场翻聊天记录。
3.4 比赛四天三夜:真实节奏是怎样的
电赛四天三夜的节奏,和想象中完全不同。第一天上午你会在读题和方案讨论中度过,真正动手往往从第一天下午才开始。前36小时是巅峰状态,头脑清醒、效率极高;到第三天开始,疲劳会累积到峰值,这时候拼的不是灵感,而是赛前积累的“肌肉记忆”。
我们当时的时间分配是:第一天定方案、搭硬件框架;第二天写核心代码、调试主要功能;第三天做扩展功能、处理各种细节问题;第四天上午开始写报告、整理测试数据,预留至少4个小时做整体回归测试。
第四天下午提交作品前,千万要守住“不要大改”这条底线。很多队伍在最后时刻改了一个参数,结果导致全盘崩溃,连基本的分数都没保住。
4. 大一最容易踩的坑:问题排查的完整链路
4.1 电源问题:纹波、压降、极性反接
大一新生在电源上踩的坑,比在代码上踩的坑多得多。我第一次给单片机供电,直接用USB转TTL模块的3.3V输出,结果电机一转,单片机就重启。用示波器一看,电机的启动电流把电源电压瞬间拉到了2V以下。
排查链路是这样的:
- 先确认电压:用万用表量电源输出端,空载和带载电压是否一致。如果差得多,说明电源功率不足。
- 再量纹波:用示波器交流耦合档看纹波大小,纹波过大时要加大容量电解电容做滤波。
- 最后查共地:控制电路、驱动电路、传感器电路必须共地,不然信号参考电位不一致,数据就会乱飞。
电赛现场的供电环境往往比较差,比赛时强烈建议带一个隔离DC-DC模块和一个大电容阵,这是花钱买稳定的好方案。
4.2 波形异常:从示波器读数倒推原因
信号类项目最常见的问题就是波形不对。正弦波变成三角波、方波上升沿太缓、幅度忽大忽小,这些问题看起来玄学,其实排查思路是固定的。
我总结了一套排查顺序:
- 先查电源:波形毛刺多,先给运放供电端加0.1uF去耦电容。十个波形问题里,至少三个是电源引起的。
- 再查连接:信号线是不是太长了,地线回路是不是形成了环。杜邦线临时搭的电路,接触阻抗变化就会导致波形抖动。
- 查输出级:DAC输出有没有接缓冲运放,推动的负载阻抗是不是太小。如果直接用DAC输出驱动显示模块,波形畸变是必然的。
- 最后查代码:DAC的采样率够不够,波形数据表有没有拼错,相位累加器的位宽够不够。
每一步检查都要有记录。我们当时把每次调整后的波形截图保存,对比哪个参数对结果影响最大,这样比凭感觉乱试高效得多。
4.3 焊接与结构问题:那些让人崩溃的“低级错误”
大一新手的焊接水平,真的是灾难现场。虚焊、冷焊、焊桥短路,每一个都能让你怀疑人生。我印象最深的一次,是小车走着走着突然断电,排查了整整一个下午,最后发现是一根电源线的焊点虚焊,振动大了就会断开。
踩过这些坑之后,我总结了几条防呆操作:
- 焊完用万用表蜂鸣档测一遍相邻引脚:防止焊桥短路。
- 每根杜邦线都做标记:颜色不能代表一切,用标签纸写上信号名。
- 活动部件附近的线束用热缩管固定:防止反复弯折导致断路。
- 电路板四角加铜柱支撑:避免板子受力变形导致铜箔断裂。
这些细节看起来不起眼,但在比赛现场能帮你省下一整天的时间。
4.4 设计报告没写好导致扣分,这个亏很多人吃在明处
电赛的评分是由“现场实测+设计报告”两部分构成的。很多队伍功能做得很强,结果报告写得潦草,白白丢分。
大一学生写报告最容易犯的问题有三个:一是系统框图用Word里的形状随便拼,没有层级和信号流向说明;二是测试数据只有一两组,看不出系统性能的稳定性;三是没有误差分析,评委问起来答不上来。
我的建议是,比赛前就找一个往年获奖报告当模板,先把结构定下来:系统方案、理论分析与计算、电路与程序设计、测试方案与测试结果、总结。赛后写报告时,把每项测试至少跑五次,记录最大值、最小值和平均值,这样的数据才有说服力。
5. 比赛现场与综合测评:那几天才是真正的考试
5.1 现场调试的心态:稳住,别大改
现场调试和实验室调试完全是两个环境:时间紧迫、环境嘈杂、仪器可能和你熟悉的不一样。这种压力下,最重要不是“做更多”,而是“不犯错”。
我们现场遇到过一次很典型的情况:赛前测试正常的循迹功能,到了现场突然失灵。大多数人的第一反应是调P、调D、改阈值,但冷静下来用串口打印传感器数据后发现,是现场灯光里的红外干扰导致传感器读数漂移。改了一下传感器安装角度,问题瞬间解决。
所以现场遇到问题,先不要急着改代码,先确认“输入是否正常,再检查处理逻辑,最后看输出”。这个三步排查法,能帮你避开80%的慌乱操作。
5.2 测试环节的应对:按评分表逐项验证
测试环节是电赛的“临门一脚”,很多队伍进了测试房才发现某个功能没准备好。我们学到的经验是:测试前把题目评分表打印出来,一项一项核对,每项功能先跑一遍最低要求,再冲高级指标。
比如一道控制类的题,评分表上可能有“基础功能:完成直线行驶得10分”“提升功能:完成S弯得15分”,那就先把直线行驶的10分稳稳拿到,再去尝试S弯。很多队伍一上来就冲S弯,结果S弯没跑好,连直线行驶的分数也丢了。
测试时还要安排专人讲解。讲解的队友要能清晰地说出系统方案的亮点、参数的测试结果,这比功能本身更能给评委留好感。
5.3 综合测评的“手速题”:基本功决定上限
综合测评是电赛里比较特殊的一个环节:你在封闭场地内拿到规定的元器件清单,在有限时间内搭出一个指定的功能电路。这个环节对大一学生来说是巨大的考验,因为你平时可能习惯了用模块,很少用分立元件徒手搭电路。
2015年那届的综合测评里出现过多波形发生器的要求,我后来复盘时发现,这类题考的核心其实是:运放的基本放大电路、比较器、积分器、振荡器,你是不是能闭着眼搭出来。
给大一的实用建议是在备赛期间动手做一轮模拟电路“手工课”:用LM358搭加法器、积分器、比较器,用555芯片搭多谐振荡器,用二极管搭限幅电路。这些基础模块练到肌肉记忆,综合测评才不会手忙脚乱。
6. 给下一届大一选手的实战建议:组队、工具与心态
6.1 组队:互补比同质更重要
电赛是三人一队,组队原则是技能互补、性格合拍、目标一致。最理想的配置是:一个擅长软件架构和算法,一个擅长电路硬件和焊接,一个擅长文档写作和数据分析。
大一学生组队时容易扎堆找熟人,结果三个人都是半斤八两,或者三个人都想写代码没人愿意做硬件。我的建议是,组队前先开个会,明确各自的优势和短板,并把任务分工写下来。另外,队伍的“靠谱度”比“技术上限”更重要——宁可找一个肯查资料、能熬夜改bug的同学,也不要找一个技术厉害但是比赛前三天就失联的“大神”。
6.2 工具和资料清单:这些钱和精力不能省
备赛期间,有一份趁手的工具清单能省下大量时间。我觉得比较重要的是:
- 硬件工具:恒温烙铁(带刀头)、焊台、热风枪(吹热缩管、拆芯片)、吸锡带、防静电镊子。
- 仪器仪表:示波器(至少双通道100MHz)、稳压电源(双路可调)、万用表、逻辑分析仪(调试串口/I2C神器)。
- 常用模块:STM32F103C8T6最小系统板、各种传感器模块、电机驱动模块、OLED屏、按键、编码器。
- 软件资料:Keil/STM32CubeMX、立创EDA、串口调试助手、Python脚本处理数据。
资料方面,我强烈建议提前把官方芯片手册、模块数据手册下载到本地。比赛现场的网络并不总是靠谱,别人还在找资料的时候,你已经能对着数据手册查寄存器了,这就是实实在在的优势。
6.3 心态:允许自己菜,但要把闭环跑通
很多大一学生备赛到一半就开始自我怀疑,觉得同队的大二大三学长懂太多了,自己啥也不会,不好意思拖后腿。这是我们每个大一都经历过的阶段,我当时的解药是:专注于自己负责的那一小块,把它做到极致。
哪怕你只负责写OLED显示程序,也要写到只要传感器数据更新,屏幕立刻刷新、不掉帧、不闪烁。这种“小而专”的成就感,会帮你建立信心。每个人都是从菜鸟过来的,关键在于你是不是愿意把一件小事做到最好。
另外,电赛最迷人的地方不在于奖项本身,而在于它把课堂上学到的知识变成能跑的机器、能测的数据、能展示的实物。这种“从0到1”的完整体验,比任何一门课的分数都值得你付出一个夏天。
最后再分享一个压箱底的小技巧:每次联调大改之前,养成先保存当前可用版本、再动手修改的习惯。代码用Git建版本库,硬件连接改动前拍一张照片。电赛现场最容易出现的情况就是“改坏了想退回上一个版本”,有这个习惯的人,永远比没这个习惯的人多一条退路。大一打电赛,目标不是赢,而是完整地走一遍流程、积累一套方法、认识一群战友。能做到这三点,你已经赢麻了。