电子设计竞赛两年实战经验总结:从备赛路线到赛场避坑全指南 纪念两年电赛生涯从焊坏第一块板到赛场按时交卷我把这二十个月的完整经验整理出来两年电赛生涯结束回头整理电脑里的工程文件、调试笔记和报销单据有一点感触特别深电赛真正比的不只是谁电路画得漂亮、谁代码写得快而是整个团队在有限时间、有限预算、有限睡眠里能不能把一套系统从方案推到稳定运行。这篇文章不写情怀把我这两年积累的备赛路线、常用工具、模块调试方法、团队协作和赛场避坑经验全部整理出来给准备入坑电子设计竞赛的同学一份能直接照着走的参考。如果你正在纠结要不要参加电赛或者已经报名但不知道从哪里开始准备这篇文章可以直接收藏。内容覆盖主控选型、电源与信号链调试、视觉与运动控制、Git 协作、赛场排错、资源规划和赛后复盘基本把两年里踩过的坑和验证过的有效做法都写进来了。1. 两年电赛核心收获速览能力项说明竞赛性质全国大学生电子设计竞赛以赛题形式限时完成系统设计、制作与调试参赛周期通常从校内选拔到全国测评跨度约 4 到 8 个月建议提前一年开始基础训练核心考核内容方案设计、硬件电路、嵌入式软件、算法实现、系统稳定性、文档撰写常见题型方向电源类、信号处理类、仪器仪表类、控制类、无人机/运动控制类、视觉识别类常用主控平台STM32 系列、MSP430、FPGA、树莓派、Jetson Nano、OpenMV 等必备软件Altium Designer /立创EDA、Keil、STM32CubeMX、MATLAB/Simulink、Visual Studio Code、Git团队配置建议3 人一组建议硬件、软件、算法/文档各有侧重场地与设备校内科创实验室或电赛基地需要示波器、信号源、电源、万用表、电烙铁等最容易翻车环节赛前工具链没备齐、电源纹波过大、接口定义不统一、代码没有版本管理最大收获完整的软硬件系统调试能力、高压下的工程决策能力、团队协作流程意识两年比赛下来我认为电赛最值钱的部分不是那张证书而是逼着你在真实约束下做工程的能力。下面按准备到上场的顺序把经验展开。2. 电赛到底适合谁以及它的能力边界2.1 适合什么人参加电赛适合这几类同学电子、自动化、通信、计算机、机械等相关专业想在大赛里验证自己工程能力的学生。已经学过 C 语言、模电、数电但缺少完整软硬件系统经验想通过竞赛集中训练的人。想在校招简历里有一项拿得出手的硬件/嵌入式项目经历的同学。能接受高强度备赛、愿意在实验室连续调试几个通宵的人。2.2 不适合什么人只想混学分、不打算投入大量时间的人。电赛至少需要提前一个学期准备纯靠赛期突击基本不可能拿到好成绩。团队内部没有明确分工、遇到问题互相推诿的组基本走不到测评环节。单纯追逐热门题、不结合自身技术积累选方向的人容易在赛场上被复杂系统拖垮。2.3 使用边界与合规提醒电赛涉及硬件设计、图像采集、无线通信、运动控制等方向备赛和参赛时有几点要格外注意使用开源代码、第三方库、参考设计时注意保留来源和许可证信息比赛规则通常会对借鉴与原创做约束。涉及摄像头采集人物图像、无人机飞行、无线模块发射功率时要遵守学校规定和当地法律法规禁止在未经允许的场合采集他人影像或进行违规飞行测试。实验室用电安全第一电源接线、锂电池充放电、高压模块测试都必须有指导老师在场。赛后作品如果涉及商业化或开源发布注意处理其中的第三方知识产权。3. 备赛前的环境准备与前置条件3.1 实验室硬件环境如果学校有电赛基地或者开放实验室优先去那里。需要确认的工具和仪器如下设备用途建议数字示波器测量信号波形、时序、通信协议100MHz 带宽以上够用函数信号发生器产生正弦波、方波、扫频信号信号类赛题必备直流稳压电源给系统供电观察电流至少双路输出万用表电压、电阻、通断检测人手一个电烙铁/热风枪焊接调试准备刀头烙铁和低温焊锡逻辑分析仪调试 UART、SPI、I2C、CAN便宜好用USB 转串口模块调试日志输出多备几个如果没有实验室条件个人用桌面级示波器和常用仪器也基本能覆盖大部分赛题训练需求。3.2 软件工具链软件环境建议在备赛前一次性装好并保留一份安装包或配置备份。以下是常用工具清单原理图与 PCB立创EDA 或 Altium Designer。国内备赛用立创EDA 的很多因为元件库方便、打板流程快。嵌入式开发STM32CubeMX Keil MDK或者 STM32CubeIDE。如果你用树莓派或者 Jetson还需要对应系统镜像和 Python 环境。上位机与算法验证MATLAB/Simulink、Python NumPy/SciPy/OpenCV。代码管理Git加上 Gitee/GitHub 私有仓库。文档协作飞书、语雀、Notion 都可以关键是组内统一不要每个人各记各的。串口调试助手Windows 下可以用 SSCOM也可以自己用 Python 写一个小工具。把软件环境提前准备好能节省大量时间。比赛第一天再装驱动、下载编译器、解决在线安装失败的问题非常亏。3.3 从零开始的储备知识赛前建议掌握以下几类基础能力不需要精通但至少知道怎么查资料和抄参考设计C 语言基础指针、结构体、中断、定时器。单片机外设GPIO、UART、SPI、I2C、PWM、ADC、DAC、定时器输入捕获这些是电赛最常用的接口资源。基本模拟电路运放、比较器、滤波、稳压、恒流源、功率放大。数据手册查阅能力一个芯片拿到手知道去哪里找它的 datasheet、参考电路和寄存器配置。调试习惯用串口打印状态、用示波器看波形、用万用表量通断先看电源再看信号。4. 从入门到参赛的路线规划4.1 建议时间线阶段时间目标基础训练期赛前 6 到 12 个月掌握主控开发、常用电路、工具链专项提升期赛前 3 到 6 个月按感兴趣题型做 2 到 3 个完整小项目模拟赛期赛前 1 到 3 个月按历年真题限时训练完成整套系统休整备赛期赛前 1 到 2 周准备常用模块、元器件、代码库、自查清单比赛期4 天 3 夜按计划推进并留出足够联调时间基础训练期最容易犯的错是贪多看到哪个模块觉得有用就学哪个结果什么都没吃透。建议先跟一个完整的入门项目走一遍比如做一个带显示、按键、测温和串口通信的小系统。4.2 方向选择策略电赛题目方向大致分成几类每个方向需要的技能栈差别很大题型方向核心技能推荐切入方式电源类开关电源、DC-DC、运放、反馈环路设计先做线性稳压再做 Buck 和 Boost信号类信号产生、采集、调理、FFT 分析学习 DDS、ADC 采样、滤波算法仪器仪表类阻抗测量、频率计、电压电流测量用 STM32 高精度 ADC 搭建测量链路控制类PID、电机驱动、编码器、IMU从平衡小车开始逐步加自由度无人机/运动控制类飞控、光流、激光雷达、视觉定位成本高建议学校有设备再选视觉识别类OpenCV、深度学习、OpenMV、Jetson先跑通目标检测再做端侧部署选方向的时候要看团队现有的积累不要因为某一年某个题拿奖多就临时转方向。控制类适合有机械和嵌入式基础的小队信号类适合模拟电路功底好的人视觉类适合软件能力强的队伍。4.3 模块选型与备货平时备赛可以把常用模块各准备几块比赛时省去大量找资料和调驱动的时间主控板STM32F103/F407 核心板各两块如果预算充足准备一块带硬件 FPU 的 F407 会轻松不少。电机驱动TB6612、DRV8833、A4950 这类小电流驱动适合比赛小车大功率场景用 BTN7971 或者专用驱动模组。传感器编码器、MPU6050、灰度传感器、超声波、红外测距、OpenMV、摄像头模组。无线模块NRF24L01、ESP8266/ESP32、蓝牙模块比赛现场有无线通信需求时备用。显示与交互OLED、LCD 屏、矩阵键盘、编码器旋钮用于系统状态显示。电源模块18650 电池盒、锂电池充电板、稳压模块、降压模块、升压模块。元器件储备建议提前统计一个清单按阻容感、二极管、三极管、MOS管、运放、逻辑芯片、接插件、排针排母分类收纳。比赛当天缺一个 0.1uF 电容跑出去找很浪费时间。5. 核心模块调试与效果验证5.1 电源模块调试电源是所有系统的地基。电源不稳后级电路全都不正常。调试步骤空载上电先量输出电压是否在设计范围内。接入额定负载观察电压跌落和纹波。用示波器 AC 耦合测量输出纹波纹波过大时检查滤波电容容量和 ESR。测试输入电压缓慢升高和突然断电的情况确认系统不掉电复位。判断标准输出电压误差在允许范围内通常 1% 到 3%。纹波符合后级芯片要求例如给运放供电时纹波要尽量控制在几十毫伏以内。带载时系统不会自动复位。电源类赛题经常考 DC-DC 变换效率这时候需要用到电子负载和功率计赛前要熟悉这些仪器的操作。5.2 电机与运动控制调试运动控制最容易出问题的环节是 PID 参数整定和机械结构装配。调试顺序先确认电机方向和编码器读数方向一致。开环给定 PWM观察电机是否转动转速是否正常。接入编码器读取实际转速打印到串口确认数值合理。速度环整定先加 P观察是否震荡再加 I消除稳态误差最后加 D抑制超调。位置环或者角度环整定时先让内环稳定再调外环。预期结果电机转速能跟随目标值稳定时不明显抖动。小车走直线时偏航可控原地旋转角度准确。常见失败原因电机电源和逻辑电源共地没做好导致干扰。PID 输出没有做限幅电机堵转。编码器线序接反速度闭环变成正反馈越调越抖。5.3 信号采集与处理调试信号类赛题通常需要采集模拟信号做处理比如测量频率、幅值、相位或者做滤波和 FFT。调试要点先用信号发生器输出已知波形检查 ADC 采集值是否准确。用示波器同时观察输入信号和采样触发信号确认采样时刻没有偏移。在代码里打印原始采样序列和计算后的频率/幅值做对比。加滤波算法时先在 MATLAB 里仿真确认参数再移植到单片机。判断标准测量结果与信号发生器读数在允许误差范围内。改变输入频率和幅值时测量结果能稳定跟随。采样过程中没有偶发的丢数或跳变。常见问题是采样率不够导致高频信号测量偏差。根据奈奎斯特采样定理采样率至少是被测信号最高频率的两倍实际工程建议留 5 到 10 倍余量。5.4 视觉识别与算法验证视觉类题目的难点在于环境变化。实验室里的识别效果到赛场很可能因为光线、角度、背景变化而失效。建议验证路径固定摄像头采集不同光照下的图片做简单的亮度归一化和颜色空间转换。先跑通 OpenCV 的基础流程读取图像、预处理、轮廓提取、目标定位。如果是深度学习方案优先选择轻量模型如 MobileNet、YOLO 系列的小模型在 Jetson 或者树莓派上测试推理延迟。把视觉输出和运动控制联调通过串口或网络把目标坐标传给下位机。判断标准识别准确率在测试集上达到赛题要求。单帧处理时间满足系统实时性要求通常至少要在 10 到 30 FPS具体取决于赛题。在逆光、暗光、反光场景下有备用方案。视觉调试最容易忽略的是摄像头安装位置。镜头俯仰角、高度和焦点都要固定好避免比赛时因为画面偏移导致识别失败。6. 团队协作与工程效率6.1 三种角色的分工电赛三人制的最优搭配不是所有人做所有事而是各有侧重角色负责内容需要掌握的工具硬件原理图、PCB、电源与接口电路、焊接立创EDA/Altium Designer、示波器、万用表软件/嵌入式主控程序、通信协议、算法实现、系统联调STM32CubeMX、Keil、Git、Python算法/文档算法仿真、测试记录、自测报告、说明文档MATLAB、Python、Word/LaTeX赛场上三个人的实时沟通非常重要。硬件改了一个引脚要马上同步给软件软件接口改了文档也要随时更新。口头沟通很容易漏最后用文字记录在群里。6.2 让 Git 成为团队的默认工作流很多队伍备赛时没有版本管理代码靠压缩包复制一旦改错想回退就非常痛苦。建议从备赛第一天开始用 Git仓库里统一管理代码和文档。# 初始化仓库 git init # 关联远程仓库以 Gitee 为例 git remote add origin https://gitee.com/your_name/contest-project.git # 每次改动前先拉取最新代码 git pull origin main # 添加并提交 git add . git commit -m feat: add motor speed closed-loop control # 推送 git push origin main代码提交建议遵循简单的命名规范例如feat表示新功能fix表示修复问题docs表示文档更新。每人的提交信息写清楚改动内容赛后复盘时能省很多时间。6.3 接口定义先行软硬件联调最怕的是引脚接错了、协议没商量好、字节序不一致。建议比赛第一天先确定接口定义表放在公共文档里例如# 硬件接口定义 ## STM32F407 与电机驱动板连接 | 信号 | STM32 引脚 | 电机驱动板引脚 | | --- | --- | --- | | PWM1 | PA8 | IN1 | | PWM2 | PA9 | IN2 | | 编码器A | PE9 | ENC_A | | 编码器B | PE11 | ENC_B | ## 通信协议 ### 下位机 - 上位机UART 115200 8N1 帧格式: A5 5A CMD LEN DATA... CHECK提前定义好接口能避免联调阶段到处飞线、反复改代码。7. 赛场最容易翻车的环节与排查方法7.1 常见问题排查表问题现象可能原因排查方式解决方案上电后系统不工作电源没接好、电压不对万用表量各关键点电压检查电源接线和稳压模块单片机烧不进程序BOOT 引脚配置错误、驱动没装好确认下载器连接和 BOOT0 电平重新设置 BOOT 引脚检查驱动串口没有输出波特率不一致、TX/RX 接反用示波器看 TX 引脚是否有波形调换 TX/RX核对波特率电机不转电源限流、PWM 没输出、驱动芯片烧毁量电机电压和控制信号检查使能引脚和 PWM 配置ADC 采集值跳变参考电压不稳、采样引脚悬空示波器观察引脚波形加滤波电容配置正确 GPIO 模式视觉识别不稳定光照变化、摄像头参数不一致保存一段现场视频回放分析统一摄像头曝光和增益设置无线通信丢包频道冲突、天线位置不对用串口打印丢包率切换频道调整天线方向代码改了没生效没有重新编译、编译后没烧录检查编译时间和日志统一使用一键构建脚本电量消耗过快电机堵转、DCDC 效率低用电流表测整机电流检查负载优化电源方案7.2 比赛现场的调试纪律电赛现场最宝贵的是时间。以下几点帮助团队稳定推进第一天上午先搭好最小系统让 LED 和串口跑起来再做功能叠加。每天固定时间做一次全系统联调不要等最后一天才拼起来。准备一个“回滚点”每次大改之前备份一份当前能跑的固件。打印日志要多输出状态机信息方便定位卡在哪一步。任何改动都要同步到接口文档和群公告防止信息失真。7.3 文档和自测报告的重要性测评不仅看实物效果还要看设计报告。建议从比赛第一天就开始写报告不要最后两小时赶工方案论证为什么选这个主控、为什么用这个算法。硬件设计关键电路截图、设计依据。软件设计系统架构、流程图、核心代码片段。测试数据不同条件下的测试结果、误差分析。总结与改进目前方案的不足后续优化方向。注意报告中不要写任何虚假测试数据测评专家会现场验证数据对不上很影响评分。8. 资源占用与性能观察电赛虽然不是互联网服务但“资源占用”同样重要主要指硬件资源和时间资源。8.1 单片机资源规划选型阶段就要预估资源需求Flash/ROM主控代码和算法是否能放下。RAM缓冲区、图像数据、FFT 运算内存是否充足。定时器和 DMA多个电机、多个传感器需要多少外设资源。ADC 通道数是否需要外扩。以机械控制类赛题为例如果要用两个编码器电机 几个传感器 OLED 显示STM32F103 系列基本够用如果要做 FFT 或者更复杂的算法建议直接上 F407 或者更高性能主控。8.2 时间资源分配比赛只有四天三夜时间规划建议如下时间阶段主要任务第一天方案定型和基础搭建分配题目确定方案搭建最小系统第二天功能模块开发各模块独立调试输出接口文档第三天系统联调模块集成解决交互问题第四天优化与测评准备性能优化、环境适应、文档整理一个常见误区是前三天过度追求方案完美结果没有留时间联调。建议第一天晚上确定能跑通一个简化版本的完整流程哪怕性能很差也要先让系统闭环再逐步优化。8.3 如何定位系统瓶颈系统表现不正常时要快速判断瓶颈在硬件、软件还是机械先看电源是否稳定排除供电问题。再看传感器读数是否准确排除采集问题。然后看控制逻辑是否正确排除软件逻辑问题。最后看机械结构是否卡滞、松动。这条链路在两年里帮我解决了不少疑难问题。电赛调试最忌讳“感觉是哪里问题”就乱改一定要用仪器和数据说话。9. 最佳实践与工程化建议9.1 建立个人与团队的模块库每次备赛和比赛都会积累一些可以复用的代码与电路统一一个common文件夹放常用驱动代码OLED、编码器、MPU6050、串口 printf 重定向等。LCD 和 OLED 的驱动代码统一好接口换屏时只改一层适配。常用电路如稳压、电机驱动、运放放大电路画成参考模块下次直接复用。// 示例串口重定向方便使用 printf 打印调试信息 #include stdio.h int fputc(int ch, FILE *f) { // 假设使用 USART1需要按实际工程修改 while (!(USART1-SR USART_SR_TXE)); USART1-DR (uint8_t)ch; return ch; }代码存放路径建议project/ ├── common/ │ ├── bsp_uart.c │ ├── bsp_i2c.c │ ├── bsp_oled.c │ └── bsp_motor.c ├── module/ │ ├── pid.c │ ├── filter.c │ └── fft.c ├── app/ │ ├── main.c │ └── task_state_machine.c ├── docs/ │ └── interface.md └── build/9.2 小步验证快速反馈每写一段代码尽量在半小时内做一次验证。不要一次写几百行再编译否则错误定位很困难。推荐流程写一个最小函数。编译解决语法错误。下载到板子观察现象。确认无误后再写下一个功能。这种小步验证的方法在比赛压力下特别好用能大幅减少连续调试的挫败感。9.3 赛后复盘别偷懒比赛结束后写一份复盘文档记录方案选择时考虑过哪些选项做成什么样。最终方案有哪些妥协为什么妥协。联调过程中花了最多时间解决的问题是什么。哪些准备动作对比赛有帮助哪些是无效努力。如果重新来一次会在哪个环节调整策略。复盘文档对下次比赛或者找实习时的项目讲述都很有价值。面试官常问的不只是“你做了什么”更关注“你怎么解决问题”。10. 总结与下一步两年电赛生涯最值得做的事是把每一块电路、每一段代码、每一次现场翻车都当成系统调试的一部分。如果你准备开始建议按下面顺序推进先把 STM32 的最小系统点灯和串口打印跑通。再做一个带传感器读取和电机控制的小车平台让系统动起来。然后按历年真题做一次完整的限时模拟赛体验从方案到报告的整体流程。比赛时第一天就要让整个系统的最低可用版本转起来后面再优化细节。最容易踩的坑是过度设计方案、不重视电源、接口不统一、调试日志缺失、最后一天才写报告。避开这五个问题至少能保证你完赛。后续可以继续扩展的方向很多把赛中积累的代码整理成开源项目、把图像识别方案部署到更小的嵌入式设备、把电源设计做成低成本仪器、把控制算法写成仿真教程。电赛这两年更像是一个工程启蒙阶段它帮你建立起来的调试方法、文档习惯和协作方式会持续用到之后的工作和学习里。如果你正在备赛建议保存这篇作为工具清单照着准备环境和模块肯定能少走不少弯路。