☰
电赛备赛黄金窗口:十余场赛前培训如何打通控制类实战路线
2026/9/30 23:56:52 网站建设 项目流程

每到备赛节点,备赛群里就会被同一类问题刷屏:电赛到底怎么准备、控制类题目有没有捷径、赛前培训到底听哪几场才有用。今年我们一口气排了十余场电赛赛前培训,准备在接下来三周内密集上线,从规则拆解、控制类传感器调试、信号链路分析到四天三夜的全真模拟,基本把队伍最容易踩的坑都铺了一遍。这篇文章不是课表推销,而是想把我组织这些培训时看到的高频问题、课程设计逻辑和真正的备赛路线一并讲清楚,方便你直接照着做。需要先说明的是,密集不代表水,每场都会有现场演示和答疑;但如果你只带着耳朵来,效果会大打折扣。

1. 备赛黄金窗口:为什么十余场电赛赛前培训要排在这个节点

1.1 别把报名后的缓冲期当摆设

从报名到题目发布,通常有一到两周的缓冲;加上题目发布后的四天三夜,真正能用来做准备的周期看起来挺长,实际一拆就没了。大多数队伍的节奏是:报名时很兴奋,前三天在等器件,中间几天对着教程发呆,等题目发布才慌了神。这一步浪费掉的恰好是整个备赛周期里的黄金窗口。

我在带赛过程中反复强调一个判断:题目发布之前,应该解决掉80%的可复用工作。比如电源稳不稳、传感器读数可不可信、电机驱动顺不顺畅、显示和按键能不能用。这些问题和具体题目无关,但往往会占掉比赛第一天的一半工作量。把这些问题提前变成肌肉记忆,题目发布之后你才有精力去读题、拆任务、做算法,而不是把四天三夜的第一天用来焊板子、查引脚定义。

密集上线培训,就是要在黄金窗口里把共性东西打透。十余场听起来多,分摊到三周其实也就是隔天一场的节奏。如果每场只讲一个模块,配合当天晚上的小练习,正好能在遗忘曲线之前完成闭环。这比周末一口气办两天集训营有效得多,因为知识密度太大当场会消化不良,隔天再来听一场又能带着问题复训,等于给同一个知识点做了第二遍强化。

1.2 培训矩阵怎么排,才算“密集”而不是“堆课”

有同学问我:这么多场,是不是每场都要听?答案是看你的赛道。我们不能把培训当综艺节目一期不落,而要按矩阵去选。下面这张表是这次安排的简化版,按“先环境、再模块、再算法、再仿真”的顺序展开,具体时间点大家以通知为准:

阶段主干场次主题方向适合人群
准备阶段第1-2场赛事规则、往届赛题拆解、开发环境搭建全体队伍
基础模块第3-6场灰度传感器调试、电源设计、信号采集、显示与按键控制类/仪器仪表类为主
进阶算法第7-9场PID与姿态解算、FFT与滤波、闭环调试有单片机基础的同学
全真模拟第10-11场四天三夜模拟、作品答辩与复盘临近比赛全员

如果你是控制类队伍,优先盯第3、7、8场;如果走信号类或电源类,第4、9场一定要跟。考虑到不是每个学校都有实验室条件,每场培训都会提供工程模板和器件清单,而且课堂上会现场连板子演示,不是对着PPT念。我自己的原则是,每场培训必须留至少20分钟现场答疑,问题不隔夜。很多同学害羞不敢问,我就让助教把匿名问题条收上来,念出来大家讨论。你以为是“菜鸟问题”,其实往往是全场的共性盲区。

2. 从近几届真题看,培训重点为什么押在控制类

2.1 控制类题目永远是参卷大户,H题F题轮流坐庄

从2024到2025再到大家正在备战的2026,热词榜上反复出现的24电赛H题、25电赛G题、26电赛F题和H题,已经说明问题。控制类题目几乎是每届大赛的常客,只不过编号在变:今年可能叫H题,明年可能叫F题,任务可能是循迹小车、自动搬运、姿态控制、视觉跟随。题目外壳千变万化,但评委核心看的是稳定性、鲁棒性,不是谁用的传感器更多、更花哨。

控制题的结构可以拆成三块:感知层、决策层、执行层。感知层解决“我看见什么”,常见有灰度传感器、红外、编码器、摄像头;决策层解决“我要怎么做”,常见有PID、逻辑状态机、路径规划;执行层解决“我怎么动”,常见有电机驱动、舵机、步进电机。三层里最容易出问题的其实是感知层,传感器数据不准,后面算法全部白搭。所以培训里我们会花最多时间在传感器标定和调试上,而不是一上来就教怎么写PID。

我也见过一些队伍,题目还没看明白就先想着用OpenCV做视觉识别,结果摄像头没调通,车都动不了。做控制类项目,先保证“能跑”,再谈“跑得好”。一个用灰度传感器稳稳绕一圈的小车,得分通常比一个识别了半天还把车开出场地的方案高得多。

2.2 STM32加灰度传感器:一个绕不开的实战组合

提到控制类,很多队伍的第一反应就是STM32加灰度传感器。为什么是它们?STM32资源够用、资料多、例程全,遇到问题搜索引擎上能找到前人踩坑记录;灰度传感器结构简单、成本低、响应够快,特别适合循迹和边界检测,这也是24年H题讨论度高的原因之一。所谓灰度传感器,本质是一组红外发射管加接收管,发射管发出红外光,照射到不同颜色或反射率的表面,接收管收到的光强不同,输出模拟电压或数字电平就跟着变。

接线并不复杂:模块的VCC接3.3V或5V,GND共地,AO输出接STM32的ADC引脚,DO输出接普通GPIO,板上自带的电位器用来调比较器阈值。实际使用中,我建议优先读AO的模拟值,而不是只依赖DO的数字电平。原因很简单:模拟值能看出地面颜色的相对变化,方便做自适应标定;数字电平一旦阈值调错,整个逻辑就失效,而且你在程序里根本看不出来是传感器问题还是代码问题。

下面给一段最朴素的阈值标定伪代码,控制类第一节课我会现场带跑的就是这个:

// 灰度传感器模拟量读取与阈值标定(伪代码) uint16_t read_grayscale(void) { HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 100); uint16_t value = HAL_ADC_GetValue(&hadc); return value; } int main(void) { uint16_t v_white, v_black, threshold; while (Key_Scan() == 0); // 传感器放在白色地面,按键 v_white = read_grayscale(); HAL_Delay(200); while (Key_Scan() == 0); // 传感器放在黑色引导线,按键 v_black = read_grayscale(); threshold = (v_white + v_black) / 2; while (1) { if (read_grayscale() < threshold) { // 认定为黑线区域,执行相应转向动作 steer_left(); } else { go_straight(); } } }

标定的逻辑很简单:白底采样一个值,黑线采样一个值,取中间值作为阈值。这里有两个细节很多人不知道。第一,传感器距地高度尽量保持在1到2厘米,太高红外光发散,分辨率会明显下降,太低容易撞到障碍物;第二,一定要在比赛现场重新标定,不要直接使用教室或宿舍测出来的阈值,因为环境光和地面材质变了,数据会整体漂移。

另外,模拟量采样建议做滑动平均,比如连续采5次,去掉极值再取平均,能滤掉大部分抖动。有些同学问为什么不直接用电位器调DO阈值的方案,因为电位器旋钮一旦被误碰,整套判断逻辑就会静默失效,用软件阈值至少可以通过串口随时观察当前值,排查起来方便得多。

2.3 信号类、仪器仪表类同样要被重视

如果你们的队伍打算走E题、G题这类方向,培训里也会覆盖。信号类题目的核心往往不是单片机本身,而是前端调理电路和算法。比如采样率怎么选、要不要加抗混叠滤波、FFT点数和窗函数怎么定、测量结果怎么校准。很多同学平时只会点灯和读按键,遇到正弦波就懵,所以密训里专门排了“信号的采集与频谱分析”这场,现场用信号发生器输出一个确定波形,带大家从时域看到频域。

这里我想多说一句:别觉得信号处理与控制类无关。哪怕你做的是小车,编码器计数、电机电流采样、电压监测,本质上都是信号采集与处理。基础模块的普适性比题目分类重要得多,这也是为什么培训的前几场没有严格区分赛道。很多拿奖队伍并不是某一项特别强,而是基本功扎实,该会的模块都能快速调通。

3. 培训怎么听才能不白听:听课前、中、后的三步走

3.1 听课前先把这几件事准备好

培训现场最怕遇到连开发板都没点过亮的同学。不用你全都学会,但至少要完成基础环境准备。我建议的清单是:一块STM32核心板,F103C8T6就够用;一根ST-Link或USB转串口线;一个灰度传感器模块;一个电机驱动模块,TB6612或L298N均可;一对带编码器的直流电机;一块面包板或洞洞板;若干杜邦线。软件方面装好Keil或STM32CubeIDE,再装一个STM32CubeMX用来生成初始化代码。如果你连CubeMX都没打开过,第一场培训前请务必花两个小时,照着官方例程点一盏灯。

这个动作不是为了学会点灯,而是为了确认工具链能跑通,否则现场演示你只能干看,完全跟不上下一步操作。听课前还要做另一个准备,这件事常常被忽略:把队伍里负责的方向分好。做硬件的带原理图来,写代码的把手头工程拷到笔记本上,做文档的准备好一个记录问题的小本子。这样能避免全队来听同一场课,结果回到实验室发现谁都不会改代码,也避免硬件和软件互相依赖到最后一天才对接。

3.2 课上记什么:记问题树,不抄PPT

很多同学听课喜欢逐页抄PPT,抄完一页翻下一页,结果笔记本上全是定义,没有一句话能指导实际操作。我的建议是,培训过程中记“问题树”:老师讲到某个模块,你用一句话写下它解决了什么问题、关键步骤是什么、如果出错最可能错在哪。比如讲电机驱动,不要抄TB6612的引脚表,要写一句“AIN1和AIN2决定正反转,PWM决定占空比,STBY必须拉高否则电机不动”,这句话比引脚表有用一百倍。

现场演示出现报错是一件好事,你立刻把报错信息和解决路径拍下来,这些现场翻车内容往往比官方文档更有参考价值。等答疑环节,不要上来就问“这个怎么做”,要问“我的现象是什么、我试过哪几步、你怀疑是什么原因”。带着实验证据问问题,得到的答案才有针对性。培训最怕遇到那种连自己板子供电都没确认就跑来问“为什么车不走”的队伍,这种问题往往回去用万用表量一下就能解决,其实不必消耗答疑时间。

3.3 课后24小时必须完成的复现实验

听完课,人对新知识的遗忘速度远比想象中快。24小时内不碰板子,下次再来又像听新课一样。所以培训安排上,每场课后都留下一道最小练习。比如听完灰度传感器,当晚就把阈值标定跑通,分别记录白纸、黑胶带、桌面、瓷砖地面的ADC值,画成一张表格;听完电机驱动,就试着把PWM频率从1kHz改到10kHz,听一下电机声音、看转速变化;听完PID,就在纯P的条件下观察小车是否来回振荡,把振荡周期记下来,第二天拿给老师看。

复现实验的原则只有一个:一次只改一个变量。很多人习惯同时把PID参数、传感器高度、电机PWM都改了,结果程序跑飞了,完全不知道是哪一步造成的。正确的做法是每次修改前做一个版本备份,改完记录效果,这样即使调不出来,也能退回到上一个能工作的状态。这是工程师解决问题和业余爱好者最大的区别,也是对四天三夜赛制最有效的防御手段。

4. 培训现场最容易翻车的几个问题,提前排查

4.1 传感器读数跳变,单独查ADC是不够的

第一堂实操课,我见过一半以上的队伍卡在灰度传感器数值不稳定上。环境光、地面积灰、供电波动都会让读数跳。常见的误判是只怀疑芯片和代码,其实电源才是最大嫌疑。电机一启动,大电流会把3.3V拉低,ADC参考电压跟着晃,读数自然跳。解决方式:传感器电源不要和电机共用一路,用单独的5V降压模块供电,所有模块再共地。如果板子支持外部ADC基准,尽量用外部基准;没有的话就在软件里做滑动平均。

还有一个容易忽略的问题:有些同学把模块的模拟输出和数字输出同时接到了STM32,板上比较器阈值又调得较低,导致数字口提前翻转,代码里ADC和GPIO状态互相干扰。接线上建议一个模块只用一种输出,别混着来。遇到传感器读数跳变,先用万用表量模块供电电压,电压稳了再动软件,这能省掉大量无效调试时间。

4.2 PID越调越乱,先回头检查这几个地方

PID是控制类绕不开的坎。我的经验是,调不出来时先检查符号方向。很多小车转向效果反了,P加得越大震荡越厉害,把P的符号反过来就好。第二步是输出限幅,如果PID输出直接给到电机PWM,而PWM范围是0到999,PID输出却是0到10000,小车会瞬间占空比拉满,看起来像失控。建议把PID输出做限幅,再换算到PWM范围,避免突然的跳变。

第三步是整定顺序。对小车而言,速度环和转向环不要一起调。先单独让电机转起来,给定目标转速,用纯P调到不发抖;再加入I消除静差;最后加D抑制超调。每加一个环节都要重新验证前面环节没有坏。很多队伍一上来就套网上现成的整定参数,结果方向反了还浑然不觉,调了一个通宵最后发现是期望转速写成了负数,这种低级错误真不该在赛场上出现。

4.3 一个速查表解决大部分入门问题

培训过程中,我把最常见的入门问题整理成了一张速查表,适合放在手机里随时翻:

现象可能原因排查步骤
电机不转STBY没拉高检查使能脚;用万用表量PWM输出是否存在
只有一边轮子转方向引脚接反或PWM信号虚接对调IN1/IN2;检查杜邦线是否松动
灰度值一直最大AO没接对ADC通道重新检查CubeMX里的ADC引脚配置
代码下不进去BOOT0引脚被拉高把BOOT0接地再上电,重新连接
串口打印乱码波特率不匹配统一为115200,检查单片机时钟配置

这个表会出现在培训讲义里,但我不建议你死记硬背,而是在现场复现一遍错误,才能真正理解。比如你可以故意把STBY悬空,看电机是什么反应,再拉高,感受区别。出错不可怕,可怕的是出错后不知道怎么描述问题。能准确描述现象的同学,培训讲师和队友都能更快帮你定位。

5. 培训之外的备赛经验:器件、时间与团队

5.1 器件清单宁可冗余,不要侥幸

比赛现场最贵的东西不是板子,而是时间。一个电机烧了,如果只有一个备用,整个四天三夜就得等快递。常规做法是:传感器模块至少买两套,其中一套留作完全不用只做对比测量;电机至少两个正常使用加一个备用;主控芯片或最小系统板同样准备两块。电源部分更要小心,DC-DC模块多备两个,防反接保护的二极管也备上。总预算可能就多一两百块,但关键时候能救命。

培训的第二场会发一份整理过的标准物料清单,里面标注了哪些是必须冗余的,哪些可以等题目出来再买。比如按键、LED、电阻电容这类便宜又通用的东西,直接按多备的量买;而摄像头、激光雷达这类贵器件,则等题目明确再下单。很多队伍花了大量时间纠结器件选型,其实正确顺序是先确认主控和传感器型号,再根据它们选电源和驱动,最后才考虑外观和结构。

5.2 只剩一周时间,怎么保底

如果你们队伍现在还没动手,也不要慌,但要立刻做减法。我建议先放弃所有需要“研究”的内容,比如复杂的图像识别、双闭环自平衡,全部换成成熟方案:用STM32标准外设库或HAL库生成的工程,把灰度传感器和电机驱动先跑通,用最朴素的阈值判断做循迹。先完成一个能自动跑一圈的小车,哪怕它速度慢,至少作品是完整的;再考虑改进。电赛评分看的是功能完整性、稳定性和文档,创新加分一定是在基础分拿满之后。

如果目标是信号类和电源类,同理:先把一个信号发生器输出的方波测量准确,把电源的效率做到80%以上,比做一个花哨的界面重要。把这些保底动作做完,你们队伍已经超过现场一半队伍了。培训的最后一场全真模拟就是给大家加这种压的,模拟时哪怕做不完,也要逼自己交出一版完整的东西,哪怕简陋,也比空着强。

5.3 团队分工和文档,是隐藏的提分项

四天三夜最容易出现的情况是,硬件改了一个封装,软件不知道;软件改了一个引脚定义,硬件也不知道。每天晚上必须花15分钟同步一次:当前状态、今天改动、明天计划。建议用最简单的共享表格记录,改动一行代码就留一句注释。器件接法拍照存档,否则一个晚上过去,你真的会忘记哪根线是干什么的。

最后说答辩,评委不会因为你用了便宜单片机就低看你,但会因为你说不清设计思路而扣分。从做第一版开始就准备一份问题清单,比如“为什么选这个传感器”“功耗大概多少”“如果地面反光变化怎么处理”。每个问题背后要有实测数据支撑。这些都是培训中最容易被忽略的软实力,许多拿奖队伍靠的就是条理清楚。培训里答辩复盘那场,我会故意让一组队员轮流到台前接受提问,体验一下被追问到说不出话的感觉,这个体验越早经历越好。

最后再说一点我这些年组织培训的体会。每次开课我都会观察两类人:一类当场动手把阈值标定好再走,另一类只拍照、拷PPT、回实验室等队友动。比赛结果基本从这个时候就开始分化了。十余场赛前培训密集上线,它能做的是帮你把路标立清楚、把坑提前指出来,但真正能不能走到终点,取决于你回去之后有没有在板子上反复焊、在代码里反复调。带上你的开发板来,带着问题来,再带着改好的程序走,这才是赛前培训的正确打开方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询