尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

大一参加电赛值不值?四天三夜的实战成长与避坑全记录

大一参加电赛值不值?四天三夜的实战成长与避坑全记录 说个稍微有点反直觉的事情我大一那年打电赛最终连个省三都没拿到但这篇心得我依然想写。因为在备赛和比赛的四天三夜里我学到的东西比大一下学期任何一门专业课都更让我清楚工科生到底在干什么。电赛全称是大学生电子设计竞赛三人一组四天三夜封闭式做一套电子系统从电源、控制、信号到仪器仪表题目覆盖面很广。很多大一同学会觉得自己刚学完高数、C语言还没写利索去参赛就是当炮灰但我的真实感受恰恰相反——大一参加电赛不是为了拿奖而是为了用一场高强度的实战把电路编程调试文档这些抽象概念一次性串起来。这篇文章不灌鸡汤只讲我当时的动因、备赛路线、赛场上的真实状态以及踩过之后才知道的坑适合正在犹豫要不要报名的大一同学也适合已经报名但不知道从哪下手的队伍。1. 我为什么大一就敢报名电赛到底能带来什么1.1 从社团实验室里的一架四轴说起事情得从大一的社团招新说起。我在电子创新协会的摊位上看到学长正在调一架四轴飞行器遥控器一推油门四个电机转速声音都变了飞机晃晃悠悠地离地半米。当时我连万用表读数都不太利索但那架小飞机让我第一次直观感受到课本里抽象的PWM、传感器、闭环控制原来可以组合出一个能飞的东西。我问学长大一能参加电赛吗学长很委婉地说先学好C语言吧。现在回想起来他不是在劝退而是见过太多大一新生三分钟热度报名后两周就消失。但那天我回去就把C语言的指针、结构体重新刷了一遍第二周买了块STM32最小系统板。1.2 四天三夜的赛制逼人成长的节奏电赛的基本赛制是这样的全国赛在单数年举办双数年一般有省级赛比如TI杯每次比赛都是上午八点公布题目接下来的四天三夜完成设计、制作、调试最后一天提交作品并封闭测试。题目通常分几类电源类、控制类、信号类、仪器仪表类和测控类。三人一组可以带资料、带元器件、带电脑但一切设计、焊接、代码都要在赛场内完成。这种赛制对大一学生最残酷也最有价值的地方在于它不会因为你刚上大一就降低题目难度所有人都必须在四天里把一个能跑的实物拿出来。这意味着你必须快速学会查手册、快速试错、快速放弃不切实际的想法——这些能力在平时的课程里很难学到。1.3 大一参赛到底亏不亏网上经常有人说大一就是去当分母去了也是帮忙焊板子我不完全反对但我觉得这取决于你抱着什么预期。如果预期是我大一想拿全国一等奖那确实不现实除非你高中就有科创底子。但如果预期是我想在三个月内系统接触嵌入式开发、电路设计和团队协作那大一参赛堪称性价比最高的选择。因为大一的课业压力相对是可控的没有考研和实习的压力你有整块的时间泡在实验室。等到大二大三你再想拿出连续三个月来学这些反而不容易。而且电赛的训练量和方向基本就是电子行业入门工作的缩影哪怕最后没拿奖这段经历在后续的课程设计、毕业设计、找实习的过程中都会反复给你回报。2. 赛前三个月的入门路线从点亮一颗LED到搭通一套系统2.1 阶段一补C语言和单片机基础前三周我当时的起点是C语言刚刚学到指针单片机完全没接触过。第一件事是买了一块STM32F103C8T6最小系统板三十块钱左右再买了一个ST-Link下载器、一块面包板、一盒杜邦线、几个LED、按键和电阻。为什么选STM32而不是更简单的51因为电赛绝大多数队伍都在用STM32网上教程浩如烟海遇到问题搜得到答案而且从STM32入手之后的生态FreeRTOS、各种库、HAL库你都能接得上。学习资料方面我主要看正点原子和野火的入门视频跟着写点灯例程理解GPIO输入输出、时钟树配置、中断、定时器这几个最基础的概念。当时我连复用功能是什么都搞不清楚但没关系先照着做做到后面自然就通了。2.2 阶段二一个模块一个模块地攻破第四周到第八周有了点灯基础之后我开始按传感器-执行器-显示交互这条线逐个模块去学。每个模块的套路其实是一样的看原理图确认怎么接线找数据手册或现成例程看寄存器/库函数怎么配置写个单独的小程序验证能不能读到数据或输出波形。我当时排的模块清单是这样的OLED屏幕SSD1306显示字符和波形、ADC采集电位器电压、PWM控制LED亮度、按键中断、编码器测速、超声波测距、MPU6050姿态传感器读取加速度和角速度、电机驱动模块TB6612驱动直流减速电机。每个模块大概花三到五天全部过完需要一个月到一个半月。这一步的核心不是背代码而是建立我可以控制这个硬件的信心——这种信心在赛场上能让你冷静很多。2.3 阶段三把模块拼成系统做一次模拟训练第九周到第十二周模块都点亮之后我开始尝试做一个小系统。最简单的选择是做一个循迹小车两个直流减速电机加驱动、红外循迹模块或者摄像头、STM32负责读传感器数据并计算左右轮速。我当时套了一副前辈留下的车模底盘但电机驱动和代码都是自己写的。第一步先让小车能直线跑——这听起来容易实际上因为左右电机转速不可能完全一致必须用编码器测速再写一个简单的PID闭环。PID从零调试的过程极其痛苦P调大了车抖I调大了车冲过头D稍微给多一点就噪声放大。但正是这个过程让我在比赛前就体会到了理论控制算法和实际机械结构之间的差距。做完小车之后我又用剩余时间练了练往年的电赛题比如做一个简易数字示波器用ADC采样然后OLED显示波形、做一个恒流源用运放加MOS管。虽然做得都很简陋但流程完全走了一遍读题-拆指标-画框图-分工-实现-测试。2.4 备赛时的器件与工具清单这一块我踩过最大的坑就是器件临时买。比赛前一定要提前囤货因为比赛中快递不一定能及时到同城的电子市场也不一定有你要的型号。我按当时的经验整理了一份基础清单仅供参考类别具体型号/说明数量建议主控板STM32F103C8T6最小系统板2块备用下载调试器ST-Link V21个传感器MPU6050、HC-SR04、红外循迹、灰度传感器、编码器各1-2个执行器直流减速电机带编码器、TB6612驱动模块2-4个显示0.96寸OLEDI2C、1.44寸TFT各1-2个电源18650电池组、稳压模块AMS1117/MP1584、充电模块若干无源器件电阻、电容、二极管、三极管、MOS管、运放按常用值备工具焊台、吸锡带、尖嘴钳、剥线钳、万用表每人一套耗材杜邦线、洞洞板、排针、铜柱、螺柱、热缩管大量另一个容易被忽略的是电源模块。很多大一新手只给主控板供电不考虑电机、传感器的供电结果电机一转主控就复位。我建议至少备两路独立的电源方案电机一路、逻辑和传感器一路然后用共地的方式接在一起。3. 四天三夜的实战全记录从选题到封箱的心跳时刻3.1 选题和拆题先做保底再冲发挥比赛第一天上午八点题目出来我们第一时间做的不是动手而是把每道题都快速过了一遍。我们当时的判断标准很简单一是看能不能在四天内做出来二是发挥部分的指标我们有没有把握够到。我们组三个人里面一个硬件相对擅长我和另一个人软件方向所以排除了电源题——电源题的指标通常比较狠比如效率要到90%以上、纹波要小于多少毫伏对模拟电路功底要求很高短时间内做不出来的概率太大。我们最终选了控制类的题目因为传感器和电机这块我们练得多具备基本的闭环调试能力。拆题这一步值得单说。电赛题目通常有基本要求和发挥部分两部分基本要求拿满分差不多够省奖发挥部分才是区分度所在。我们的策略是第一天先按基本要求全部完成发挥部分至少碰一项来安排任务绝对不把宝押在发挥部分的高指标上。因为实际做出来的东西往往比理论指标要差一截给自己留出冗余时间比什么都重要。3.2 硬件搭建从面包板到洞洞板的一次性迁移我们选的题目需要运动控制所以硬件搭建的核心是底盘、电机驱动、主控和姿态/位置传感器。第一天下午我们就把机械结构装好用面包板和杜邦线把模块先搭起来。这里有个教训面包板适合验证逻辑但绝对不适合比赛现场长时间运行。杜邦线稍微碰到一点就会接触不良特别是电机转起来之后底盘振动会让松动的线直接掉出来。我们第一天晚上就发生过一次OLED突然花屏、小车中途停转的情况最后查出来是一根杜邦线松了。所以第二天上午我们就找了一块大洞洞板用排针把STM32最小系统板、TB6612驱动、降压模块全部焊在洞洞板上模块之间用短杜邦线连接再打热熔胶固定。这个过程花了大概三个小时但之后稳定性显著提升再也没有因为接触不良而重启。3.3 软件框架状态机加日志输出别一上来就写复杂算法软件方面我们没有用什么花哨的架构就是一个简单的状态机加一个调试串口输出。整个程序分成几个大块初始化、状态判断比如按键设置模式、传感器采集、控制计算、电机输出其中控制循环固定跑在定时器中断里周期根据题目需要设在5ms到20ms之间。这里我要强调一个对大一组来说特别重要的习惯每个关键节点都往串口打日志。我们当时串口接了一个USB转TTL模块连着电脑实时看数据。比如PID调节的时候串口打印目标速度、实际速度、PWM输出这三项你才能知道是P给大了还是I积累过头了。不要觉得打日志麻烦赛场上看不见里面发生了什么才是最大的麻烦。3.4 熬夜的分配和心态管理四天三夜不算很长但人的精力和判断力会大幅下降。我们的大致节奏是第一天正常作息晚上十一点回酒店睡觉第二天开始加班到凌晨两点第三天基本通宵第四天上午整体联调、下午封箱晚上测试。这个节奏不是我们特意安排的是被进度推着走的。但我回头看真正值得改进的是谁熬夜、谁休息的分配。我们一度三个人同时盯着一块OLED找Bug浪费了人力。正确做法应该是任何时候安排一个人去睡觉保证有人清醒做决策、有人休整备勤。毕竟最后一天下午提交作品之后还有一个现场测评环节需要有人脑子清楚去答辩。4. 赛场上才暴露的问题清单每一个都是血的教训4.1 第一坑电机PWM一加传感器数据就开始乱飘这是我们遇到的最诡异的问题。小车速度一快MPU6050读出来的角度值就跳变OLED也开始花屏。起初我们以为是代码问题花了大半天反复查看时序、检查中断优先级改了好几个版本都没解决。后来我用万用表量了一下驱动模块供电电压才发现电机启动瞬间整条电源线上的电压会被拉低到逻辑芯片工作电压以下。根本原因是电机和主控共用了同一块稳压模块直流电机的启动电流非常大瞬间压降直接拖垮了逻辑电源。解决方法很土但很有效把电机电源和主控电源分成两路电池直接给TB6612的VM供电另用一个AMS1117降压到5V和3.3V给主控和传感器然后在电机电源两端并一个470uF电解电容吸收浪涌。改完之后问题立刻消失数据恢复干净。4.2 第二坑编码器读数一个轮子时好时坏我们的小车用了带编码器的直流减速电机来做速度闭环但比赛第二天右侧编码器读数突然变得很奇怪数值忽大忽小甚至偶尔归零。排查过程是这样的先看接线没问题再用示波器量编码器输出引脚发现波形幅值正常但偶尔有一根线上完全没有脉冲。后来把电机和编码器之间的连接线拆开重新插发现编码器线在电机外壳附近走线电机转动时线束抖动刚好碰到电机供电的焊点产生了短路抖动。处理方式是把编码器线套上热缩管再用扎带固定在远离电机供电线的地方。这是一个典型的看起来像软件问题实际上是物理干扰的例子。我专门记它是因为这种问题如果不在赛前遇到过赛场上真的会慌。4.3 第三坑PID参数调得人崩溃最后发现是机械问题小车直线走不直我们一开始疯狂调PID参数Kp从0.5一路加到5结果小车要么还是偏要么开始来回摆动。后来一个学长过来看了一眼说你们的轮子是不是装歪了。我们一检查发现底盘一侧的电机固定螺丝松了两颗车轮在轻微歪斜的状态下转动怎么可能走直拧紧螺丝之后原来的PID参数甚至不用大改直线度就恢复到了一个能接受的水平。这件事对我的启发很大控制算法只能修正系统本身的缺陷但系统缺陷过大时算法做得再好也没有意义。赛场上遇到性能问题时先检查机械、再检查供电、再检查接线最后才去调算法——这应该是大家默认的排查顺序。4.4 第四坑文档和演示准备被严重低估电赛评分不只看作品能不能跑还要看设计报告的完整度以及现场问辩的表现。我们当时时间安排不合理第四天上午还在改代码导致设计报告是熬夜赶出来的内容粗疏有些框图甚至和实际方案对不上。现场测评时评委问了一个你这里为什么选这个传感器而不是另一个的问题我们支支吾吾没有答好。事后分析评委问的问题往往不深——他们主要想确认这个设计是不是你们自己做的你只要说清楚为什么选它它有什么优缺点如果换一种方案会怎样就基本能应付过去。但前提是你的报告要写清楚设计过程的思考痕迹而不是只贴代码和数据。这个教训希望大家不要重蹈覆辙最后一天下午两点之前不管代码是否完美必须留出至少三个小时整理报告和答辩话术。5. 给下一届大一队伍的组队建议与备赛日历5.1 三人组队的分工怎么排电赛队伍标准是三个人但具体分工可以灵活。我见过比较高效的组合有两种一种是硬件软件硬件/软件通吃也就是两个人做电路和机械一个人专注于代码和算法同时每个人在比赛时都要能帮忙焊板子和查线另一种是算法嵌入式电路适合做控制类和信号类的题目各管一块但对沟通成本要求很高。我个人的建议是大一队伍尽量按第一种分。因为大一阶段还没有谁有特别深入的技术专长通吃型分工更灵活谁的时间空下来谁就补位。另外组队要特别注意三人的浓度是否匹配。如果一个人非常想拿奖另一个人只是想混经历这队伍基本走不远。开赛前最好用一次模拟赛检验一下连续两天做一个往年题看三个人配合是否顺畅。5.2 备赛日历十周版冲刺计划根据我当时的经验给一个十周备赛计划适合从学期初就开始准备的队伍周次任务重点里程碑第1-2周单片机基础C语言复习环境搭建能点亮LED、会烧录程序第3-4周常用外设模块逐个过OLED、ADC、PWM、中断每人都能独立调通两个模块以上第5-6周电机驱动、编码器测速、PID闭环小车能直线跑通第7-8周传感器融合超声波、MPU6050、循迹模块能完成一个避障/循迹的整合任务第9周模拟赛用往年赛题做一次两天版演习走完读题-分工-制作-报告全流程第10周查漏补缺整理器件复盘模拟赛问题器件清单确认明确备赛短板这个计划不需要每一条都严格卡死但第9周必须模拟一次这个节点我是强烈建议保留的。模拟赛能暴露出的问题远比你看十篇经验帖都多。5.3 大一备赛的资源焦虑看不懂手册怎么办很多大一同学面对英文数据手册时会产生我还不行的挫败感这是最常见的放弃点。我的经验是不要从手册开始要从例程开始。先找到别人写好的驱动代码让传感器先跑起来看到数据了再回头去手册里查你关心的那一两个参数比如量程、通信地址、寄存器定义。这个过程相当于先会开车再学发动机原理对新手友好得多。另外遇到问题搜索时有几个固定思路先搜芯片型号加模块名比如MPU6050 STM32例程再搜报错信息最后再翻手册确认细节。B站上的电赛训练视频、CSDN上各种模块的移植笔记、立创开源广场上的原理图和PCB这三个资源加起来足够覆盖大一阶段90%的疑问。5.4 如果没拿奖这段经历还值不值这个问题我在比赛结束当天晚上就问过自己。当时作品在测评现场发挥失常最终测评连基本功能都没跑完回来之后一度挺沮丧。但过了几周再回头看我发现这段经历已经留下了很多实实在在的东西我第一次完整走完了一个需求-方案-实现-测试-答辩的工程流程我真正理解了C语言里指针和结构体有什么用而不是在题库里刷出来的我在实验室认识了一群能一起熬夜调板子的朋友这些人后来成了我大学四年最好的学习伙伴在课程设计课上当别的组还在为STM32怎么点灯发愁时我能直接帮他们把整个框架搭起来。这些东西都不是一张奖状能衡量的。当然如果你运气好能拿个奖那自然是锦上添花但千万不要把拿奖当作唯一目标。写在后面大一打电赛最大的收获不是技能而是见过最后再分享一点我个人很深的体会。比赛结束后的那个月我们三个组员还经常在实验室碰面把比赛时没做完的发挥部分继续做完了。回头想想大一打电赛最珍贵的东西其实是见过——你见过一个复杂系统是怎么从零被搭起来的见过自己凌晨三点还能为了一个奇怪Bug保持清醒见过团队里每个人性格里最真实的一面。这些东西会让你在后续的专业课里有一种说不清的底气别人觉得难的东西你觉得不过是又一个小系统而已。如果你现在是大一正在犹豫要不要报电赛我的建议很简单报。哪怕最后什么奖都没有你也一定不会后悔这四天三夜。
返回列表