
1. 硬件这门课为什么值得专门写一份讲义带过几届Robomaster我特别清楚地记得每年赛季初的场景机械组交车电控组写代码视觉组调算法然后一到联调就出问题。步兵车在调试台上自瞄打得不错一下地跑两圈云台就抖满电的时候弹道稳定电压一掉陀螺仪就开始漂甚至有的车头天晚上还好好的第二天一早哪儿都不亮了。这些问题最后查来查去十个里有七个出在硬件上。所以当你拿到这份《Robomaster硬件基础讲义V0.2.1》的时候别觉得它只是一份“电控入门资料”。它是整支队伍稳定性的地基。很多人以为硬件就是画个板子、焊个线、把模块插上但真正打比赛的人都知道硬件水平决定了你整套系统的下限。算法再强、代码再漂亮供电一抖、信号一乱全白搭。这个说法我在这几年里验证过无数次也无数次跟新队员强调过。这一版V0.2.1是在之前内容上继续迭代的结果。新增了供电设计的完整思路、CAN总线布线的实际踩坑记录以及围绕能量机关这类赛季目标展开的硬件准备方案。它不是一本“手册型”的参考资料更像是一份从一个老队员视角写下的实战笔记。适合刚进队的电控新人、想补硬件短板的软件同学以及所有被“车为什么又不动了”折磨过的人阅读。2. 硬件体系的整体设计与思路拆解2.1 从比赛倒推硬件到底在解决什么问题Robomaster的机器人在场地上要做的事本质上可以拆成稳定移动、精准射击、快速决策。算法负责“想”电控负责“执行”而硬件负责让这一切“有电可依、有路可走、有信号可传”。硬件解决的问题不是“功能实现”而是“功能实现的稳定性和可维护性”。你回想一下赛场上最容易翻车的时刻开局三分钟两辆步兵车正面对抗突然一辆车电机响了一下然后整机断电。机械没毛病电控代码也没改裁判系统显示电池电压还在合理范围但车就是不行了。这种问题多半出在硬件设计和装配的某个细节上——可能是电池端子的焊点虚接可能是主控板的某个电容位置不对也可能是电源走线太细导致瞬间压降过大。所以在讲义里我会反复用一个思路倒推设计先想清楚这场比赛里你的机器人要经历什么再去决定需要什么样的硬件。场地是平的还是带坡道的交战距离是多少有没有需要连续击打能量机关的场景需要跑多快发射机构会不会产生大电流冲击这些问题看似是“规则问题”“战术问题”但每一个都直接影响硬件的选型和使用方式。比如连续击打能量机关这个场景带给硬件的挑战就很明确云台需要快速响应、连续转动发射机构需要保持高射速视觉模块需要稳定供电。这三件事叠加在一起对电源的动态响应能力、云台电机的驱动稳定性、以及信号抗干扰能力都是实打实的考验。如果你在准备阶段没把这些场景纳入硬件设计考量上场之后就会被现实教育。2.2 把一辆车的硬件拆成四条线我习惯把一台比赛机器人的硬件体系分为四条“主干道”电源链路、控制链路、传感链路和执行链路。每条链路单独看都不复杂但它们交叉在一起的时候就会出现很多有意思的问题。电源链路是心脏。从电池出发经过主控板、驱动器、稳压模块最后到达每一个传感器和芯片。它的核心指标不是“能不能供电”而是“在动态负载下的电压波动有多大”。执行链路是肌肉电机、电调、发射机构都在这一层它的特点是瞬时电流大、开关频率高是电源链路上最大的干扰源。控制链路是大脑的神经主控板通过CAN总线、串口、PWM等方式把指令发给各个执行单元。传感链路则是眼睛和耳朵IMU、编码器、测距模块把机器人的状态不断反馈回主控。这三条线如果你在图纸上把它们分开画每条都很清爽。但它们一旦装进同一台车、共用同一个24V电池、在同一块主板上走线就开始互相影响。执行链路的电机一加速电源链路的电压立刻下降传感链路的IMU数据随之波动控制链路的CAN信号也可能出现误码——这就是硬件设计的难度所在也是这份讲义里最想讲清楚的部分。用一个通俗的比喻你听一场音乐会歌手是主控乐队是执行麦克风是传感而供电系统就像音响的电源。一个好的音响不会让鼓手一敲鼓就把歌手的声音带偏好的机器人硬件也不会让底盘一加速就把云台的精度带飞。这个“各干各的但互不干扰”的境界就是硬件设计追求的目标。2.3 硬件不只是“画板子”它是三个领域的交汇我见过不少新队员对硬件的理解是“画PCB”其实这只是其中一个环节。完整的硬件工作至少包含三块电路设计与制板、整机装配与线束管理、现场调试与故障排查。这三块缺一不可而且重要性不比“画板子”低。电路设计决定了一台车的“底子”但底子好不等于整机好。装配环节同样关键——线束怎么走、插头怎么固定、板子怎么安装、电机和电调的连接线够不够长这些都会影响实际运行。很多车在调试台上跑得好好的一到场地颠簸两下就出问题十有八九是装配环节埋下的坑。所以这份讲义在编排上特意兼顾了“设计”和“实现”两个层面。不单单讲原理图怎么画、PCB怎么布局也讲焊接和装配的注意事项、整机布线规范、上电调试的流程。我一直觉得硬件知识不应该以“画完板子”为终点而应该以“装完跑起来稳定工作”为终点。3. 核心硬件细节与实操要点3.1 主控电路的基本盘从最小系统到保护电路主控板是整台机器人的大脑不管是自己做板子还是用现成的开发板都要理解它周边电路的构成。最小系统这部分属于“看起来简单、实际容易翻车”的环节。STM32的最小系统一般包括晶振电路、复位电路、Boot配置和程序下载接口。晶振的选择有讲究如果用内部RC振荡器省成本、省PCB面积但精度一般、温漂也比较明显。Robomaster这种对控制时序有要求的场景我强烈建议用外部晶振而且越新出的主控芯片越要按手册推荐的负载电容去配。复位电路看起来只是接个电阻电容到NRST引脚但抗干扰能力和复位阈值都跟这两个元件的取值有关不能随手填。真正体现硬件水平的其实是主控板上的“保护电路”。进队第一课我一定会让新队员看一眼自己板子的电源入口有没有防反接电路有没有过流保护有没有TVS管做浪涌抑制很多队伍一开始画的板子电源入口就一个电容结果整机调试时一接反电池主控板直接冒烟。防反接的通常做法有两种一是串联一个二极管简单可靠但会有零点几伏的压降和持续功耗二是用PMOS管做理想二极管式防反接压降极小但电路稍复杂。对于比赛机器人这种供电电流大、电压平台固定的场景我一般更推荐后者。再往后就是输入端的滤波电容组这里也有讲究大容量的电解电容负责稳住低频波动小容量的陶瓷电容负责滤高频噪声两种电容配合使用才能真正起到宽频段的稳定作用。另外电源指示LED不要省。一个小灯珠成本不到一毛钱但在现场排查问题的时候能帮你快速判断“板子到底有没有通电”很多时候能省下半小时的排查时间。3.2 电源链路设计从24V到3.3V的取舍方案Robomaster赛场上常见的供电方案是24V电池。底盘的M3508电机、云台的GM6020电机、发射机构的摩擦轮大部分都直接从24V取电。但主控芯片要的是3.3V传感器和部分外围可能要5V或12V这就要做电压转换。电源链路就是从24V一路降压到各路低压的过程也是硬件上最容易出问题的部分。整机电源设计的第一步是先算总功耗。比如一辆步兵车底盘四个M3508电机峰值电流按每个10A算就是40A但这是极端堵转工况正常跑的时候平均电流小很多。云台两个GM6020电机加上发射机构的两个摩擦轮电机整个24V侧的峰值电流可能到五六十安培。选电源线、选插头、算线径都得按这个量级来不能按平均电流算否则线材发热会让你在赛后检查时发现问题已经晚了。从24V降下来常见的选择有DC-DC降压模块和LDO线性稳压。DC-DC的效率高适合从7V以上到5V、12V这种压差大的场景比如24V转12V、12V转5V。但DC-DC有开关噪声纹波比LDO大布局不好还会干扰到附近的模拟电路。LDO的优点是输出干净、纹波小、电路简单缺点是效率低输入输出电压差越大效率越低发热越严重。所以在比赛机器人上合理的做法是“分级降压”24V先用高效DC-DC降到12V给云台舵机、部分风扇等供电12V再降到5V给裁判系统、测距模块等传感器供电5V最后通过LDO降到3.3V给主控芯片和对外接口供电。这样每一级的压差都在合理范围效率和纹波也能兼顾。而给IMU这种对电源质量特别敏感的传感器建议单独走一路LDO从5V降下来并做好滤波避免被其他数字电路的噪声串扰。3.3 电机驱动与CAN总线接线、终端电阻、ID设置底盘电机和云台电机是执行链路的核心。Robomaster里常见的组合是M3508配C620电调或者M2006配C610电调云台则用GM6020。这些电调与主控之间走的是CAN总线。CAN是一种差分信号的工业总线协议抗干扰能力强、传输距离远非常适合车上这种电机频繁启停的电磁环境。但CAN总线在实际接线时有不少细节。第一CAN_H和CAN_L必须双绞不能拿两根平行线凑合。绞线的目的是让两根线上的共模干扰尽量等值这样接收端的差分信号还能保持正确。第二CAN总线两端要加120欧姆终端电阻。终端电阻的作用是消除信号在长线末端的反射不加终端电阻速度快起来之后容易出现偶发的通信错误。第三CAN总线的供电和地线要可靠很多通信不稳定是因为地没连好而不是信号线本身的问题。电调ID设置是另一个新队员容易栽跟头的地方。每台电调都有ID主控通过ID来区分电机。ID设置有硬件拨码和软件配置两种具体方式看电调型号。用C620的时候ID拨码位在小板上设好之后上电顺序也有讲究——通常是先给电调上电再初始化CAN总线。这个顺序反了会导致电调没被正确枚举表现就是电机没反应或者CAN报错。如果你把电调的供电和主控板放在同一个开关上一上电两边同时起有时候会因为电压爬升时序不一致导致枚举失败。稳妥的做法是电调单独供电上电后再初始化通信排查问题更方便。3.4 传感和裁判系统IMU抗干扰与接口布线IMU是机器人感知姿态的核心传感器它的数据直接影响云台稳定和底盘运动控制。硬件上对IMU的安装有两条硬性要求一是尽量靠近机器人的质心安装二是做好减震。靠近质心是为了让IMU测到的角速度和加速度更接近机器人整体的真实运动减震则是为了抑制电机和其他机械运动传导过来的高频震动这些震动会耦合进加速度计的测量造成姿态解算的漂移。IMU的接口一般有SPI和I2C两种。I2C接线少但速度慢、抗干扰能力弱SPI速度快、带宽高但需要更多信号线。在车上这种干扰源密集的环境里我优先推荐SPI接口的IMU数据更新率能跑得更高姿态解算的实时性也更好。连接IMU的信号线越短越好而且尽量不要和电机驱动线走同一个线束槽最好用屏蔽线或者与电源线保持一定距离。裁判系统的硬件接入也不能忽视。裁判系统和主控之间一般走串口或DBUS接线看似简单但裁判系统模块的供电如果和电机驱动共用一路且没有滤波输出电压波动较大时容易导致通信丢包。稳妥的做法是单独给裁判系统模块一路供电用DC-DC稳压到5V串口信号线尽量短并在主控端加RC滤波或者ESD保护器件。另外DBUS信号线注意别反插DBUS是单线半双工接反了不会有明显故障表现但就是收不到数据这个我调试时踩过不止一次坑。4. 实操过程一个步兵机器人硬件模块的落地4.1 从需求到原理图先把“要什么”写清楚画原理图之前先别急着开软件。把需求写清楚是硬件设计最容易被跳过但最重要的一步。比如你要设计一个步兵车的主控板先列出它需要哪些功能驱动几个CAN电机需要几路串口接裁判系统、视觉模块需要几个PWM通道控制发射机构要不要预留扩展接口这些需求列完你才知道选什么型号的主控、需要多大的板子、几层板能够布完。选型的基本思路是先定主控再定电源方案最后定外设接口。主控型号决定了你能用多少路CAN、串口、PWM、ADC。电源方案则取决于你的负载清单——把所有用电设备的电压和电流列一张表加起来就是电源设计的输入。外设接口要“宽备窄用”接口数量宁可多留几个也不要刚好够用。画原理图的时候有几件事特别容易踩坑。第一降压芯片的反馈电阻一定要按参考设计来取值偏差会导致输出电压不对。第二去耦电容要靠近芯片电源引脚放置原理图上虽然只是符号连接但布局时候远近的影响很大。第三STLINK/SWD下载接口的引脚别搞错RESET、SWDIO、SWCLK、GND、3.3V接错一个板子就识别不了。新队员照着别人的工程画板子最容易在这几个地方犯迷糊。涂上焊膏的焊盘回流焊后连锡你不会料到的。4.2 打板与焊接工艺细节决定调试体验原理图完成、PCB布局布线之后提交打板前一定要做一次完整的自检。物理尺寸要对着机械组的模型确认接插件方向要标注清楚固定孔位要和底盘匹配。我见过不少队伍板子打回来装不进底盘原因就是机械和电子的图纸没有同步。这个沟通成本看似是流程问题实际上是要靠硬件负责人主动去跨组确认的否则等你发现的时候赛季时间已经被消耗掉了。焊接是另一个“看着简单、实际决定成败”的环节。材料方面助焊剂、吸锡带、烙铁头清洁丝都要备好工具方面一个温度可调的烙铁是必须的有条件的话最好配一个小型热风枪。焊接贴片芯片时最关键的一点是控制好焊接时间和温度。部分芯片对静电和热量都比较敏感静电手环不是摆设。我第一次教新队员焊主控板就强调过电烙铁在焊盘上停留时间要短焊锡量要适中宁可分两次补焊也不要一次堆一大坨锡。焊完之后用放大镜检查相邻引脚之间有没有桥连这是保证一次上电成功的关键。线束装配也有规范。常见的做法是电源线用粗径硅胶线按载流能力算好线径信号线用排线或者双绞线功率线和信号线尽量避免平行走线无法避免时保持尽量远的距离。插头要加防呆电源的XT60插头本身就防呆信号类的GH1.25、SH1.0等连接器也有对应的防呆设计注意买对方向就行。每一根线最好贴上标签或者用不同颜色区分这会在后期排查问题时省下很多脑力。4.3 上电调试的正确顺序先看电压再动电机最后调算法整机装完之后上电调试的顺序很有讲究。我最推荐的方法是“先低压后高压先空载后带载先单板后整机”。第一步不接电机和外部模块主控板单独供电量关键测试点的电压3.3V是否正常5V是否正常有没有明显发热的芯片这一步能排除大部分焊接短路和电源设计问题。第二步接上电机和电调但要先把机器人的轮子悬空或拆掉让执行机构处在空载状态然后逐个电机测试转向和转速确认CAN通信正常。第三步释放到整机带载工况才能真正发现电源链路在动态负载下的问题。这时候要盯着电压和电流数据特别是电机加速瞬间电源是否出现明显跌落。如果出现跌落先检查电池连接线的线径再检查主控板电源入口的滤波电容是否足够。调试过程中万用表是必备工具电容电量释放和电源电压的测量都靠它。有条件的话借一台示波器观察CAN波形和电源纹波非常直观。上电之前还有一个容易被忽略的常规操作——目视检查所有电源极性正负有没有反地线是否连接可靠接插件是否插到位。这些小问题在调试阶段看起来不起眼真正上了赛场就是致命的隐患。5. 常见问题与排查技巧实录5.1 故障排查的思路先电源再信号最后程序硬件问题排查有一个通用的优先级顺序先检查电源再检查信号最后才怀疑程序。很多新队员一遇到电机不转第一反应是改代码结果改了半天电机动都不动检查电源之后发现是电调没通电。这个血泪教训太深刻了。具体到执行层面遇到“某个设备没反应”的情况我的排查路数是这样“一看、二量、三代换”。一看就是看有没有外观可见的问题——接插件松没松线有没有断板子上有没有烧毁或鼓包的器件。二量就是用万用表量电压——供电是否到达电压是否正常信号的电压逻辑是否对三代换就是拿另一个同型号正常的模块替换看故障是否消失。如果代换后恢复正常那问题多半在原来的模块上如果还是不行就要回头查线路和主控配置。这个排查方法效率非常高特别适合赛场这种时间紧张的环境。5.2 电源不稳的常见表现与处理电源不稳的症状很有趣经常伪装成“代码问题”或“传感器问题”。比如云台电机在某个角度抖动一下看起来是控制参数没调好实际上可能是电机加减速瞬间的电压跌落导致编码器读数异常。又比如弹道突然变散以为是机械结构松动实际上可能是摩擦轮电机供电不足导致转速波动。电源是整机的“血压”各处异常都可能由它引起。处理电源不稳问题先从最基础的查起电池是否充满电池插头和线材是否匹配线径够不够粗然后检查主控板电源入口的大电容。很多人忽略一个大电容的作用——它在电机瞬态大电流时充当“蓄水池”能有效缓冲电压跌落。合适的做法是在电池进来的总线上并联一个大容量的电解电容再在最靠近主控芯片的地方放一组高频陶瓷电容形成两级滤波。如果你测到24V在电机启动瞬间掉到20V以下先不要急着怀疑电池先检查线材、插头和总电容大多数情况都出在这几个地方。5.3 CAN通信异常的排查笔记CAN通信异常在比赛现场非常常见表现是电机偶发不动、数据更新卡顿、或者报错“CAN Error”。排查时先看终端电阻——两端120欧姆终端电阻是否接好这可能是最经常被忘记的。再查接线极性CAN_H和CAN_L如果接反没有硬件损坏但通信是完全不工作的。第三种情况是线束过长或者布线跟大电流线太近导致信号质量下降这种情况下优先缩短CAN线长度、绞合CAN线或者把它挪远一点。另外CAN总线上的设备ID或波特率配置错误也会导致通信异常。配置时确保主控的波特率和电调匹配ID不重复。如果你在调试时发现某台电机有时正常、有时没反应而且都是在底盘跑动或者云台转动剧烈的时候发生那大概率就是CAN线松动或者电源波动导致总线节点掉线。这时候在软件里加一个节点监控定期检查CAN上所有节点的在线状态一旦掉线就重新初始化是赛场环境下的一个务实兜底方案。5.4 紧扣“能量机关”场景的硬件实战准备能量机关是赛季里的一个重要比赛元素也是一个非常考验硬件综合能力的场景。从硬件角度讲能量机关对机器人的要求体现在几个方面第一视觉模块要在较远距离识别目标它的供电必须干净稳定否则图像会受干扰识别率下降。第二云台需要快速指向并连续击打云台电机的驱动能力要够如果出现供电不足云台动作会发“肉”跟不上节奏。第三发射机构的连续工作能力要过关摩擦轮和拨弹电机长时间工作散热和供电都要跟上。围绕这几个目标硬件准备可以提前这样规划视觉模块单独供电并在软件和电路层面做看门狗保护防止视觉模块偶尔死机影响整机云台的供电链路使用较粗线径确保动态响应时压降在可接受范围发射机构的电机使用独立电源支路避免和云台争抢电流。这些措施单个看起来都不起眼但组合在一起就是能量机关环节稳定发挥的硬件保障。我在讲义V0.2.1里特意把这个场景写进去就是想让大家明白硬件工作不是“把元件接上”而是“把每一个比赛场景都考虑进去”。5.5 避坑经验从接线颜色到防呆设计最后分享几个零碎的硬件工作习惯。接线颜色规范看起来是小事实际影响很大。我习惯规定“红色正极、黑色负极、信号线用黄色或者其它亮色”并全队统一执行。这会在调试和维修时帮你快速定位线束减少误操作。接插件的防呆设计也很重要。电源的XT60插头本身有防呆结构但信号类的接插件不一定都防呆。买连接器的时候可以选带键位或者带定位柱的型号如果已经买了不带防呆的型号就在线束上用热缩管或者标签纸做出不对称标记防止插反。对于容易松脱的插头用扎带或者热熔胶固定在结构件上赛场上因长时间颠簸导致的插头松脱是非常常见的故障来源。还有一条经验是关于“复用”。一台车的硬件方案如果经过了赛季检验不要轻易大改。新队员总想着推翻旧设计重新画一套更酷的板子但成熟方案的稳定性和踩坑经验是文档里找不到的。每届队伍有大量的试错成本不如在稳定框架内做小幅迭代优化。这个思路也包括硬件代码的版本管理——升级硬件的同时别忘了更新对应的接线文档和配置文件否则隔了一个月再回头看很容易忘记已经改过的设计和当时的想法。我自己踩过最深的一次坑就是赛季中段改了主控板的电源方案自以为所有文件都同步了结果在某次整机调试时发现和之前的接线图对不上。排查了大半天最后发现问题在文档没更新。从那以后每次硬件变更我都会要求同步更新原理图、接线表和配置说明三份文件缺一不可。硬件工作里的“文档习惯”表面上看是流程要求实际上是在为未来无数个小时的排查省时间。希望这份讲义的读者在将来的硬件调试过程中也能少走这些弯路。