ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

机器人竞赛硬件设计实战:从供电到PCB的避坑指南

2026/9/16 8:06:29 拓冰建站 浏览量
机器人竞赛硬件设计实战:从供电到PCB的避坑指南 每年赛季结束做总结的时候都会有队伍把问题归到一句“硬件拉胯”上。我也见过太多类似的场景原理图画了一个月板子打样回来第一天上电就烧了主控或者电调死活没有反馈查了两天最后发现CAN_H和CAN_L接反了。2019年我开始带队伍之后把这些真实踩过的坑整理成了一份给新队员的入门材料迭代到现在就是这份Robomaster硬件基础讲义V0.2.1。它不是元器件选型手册也不是仿真工程的说明书而是把备赛过程中实测过的电路方案、返工过的PCB、烧过的板子汇总成的一套硬件设计基础专门服务RoMaster电控和硬件两个方向的新人。这份讲义里的每一个结论基本都能对应到一次真实的故障或者一次被验证过的设计。1. 从V0.1到V0.2.1先讲清楚这份讲义为什么值得读1.1 新队员翻车的三个共同原因每年新队员进组我大概能预判出他们会在哪几个地方翻车。第一个是照搬Demo电路但不理解约束条件。很多同学拿到一块开发板的原理图觉得“既然官方这么画那我照抄就行”。这话对了一半。官方Demo电路是为了在理想环境下验证芯片功能而比赛机器人的板子工作在24V电池供电、电机频繁启停、功率瞬时波动、长期振动的环境里照抄的结果往往是上电正常、一动电机就复位或者CAN总线在实验室没问题、上赛场就丢帧。第二个是不区分功率地和信号地。新队员画板子时习惯把所有GND铺成一大片看起来干净实际上电机大电流回路的压降会直接抬高传感器和单片机的参考地表现出来就是陀螺仪数据漂移、串口乱码、ADC采出来的电压偏大。V0.2.1里有一整节在讲地平面怎么分割、单点连接点放在哪这个内容在官方手册里基本找不到但几乎所有稳定车的主控板上都是这么做的。第三个是不重视接插件的力学和电气余量。比赛场的振动和碰撞比实验室恶劣得多杜邦线插在电机舵机上导致脱落、XT60接头虚焊导致大电流发热、串口线在走线槽里被磨破导致短路这些故障占整个赛季硬件问题的三成以上。硬件基础不仅是电路设计还包括连接器选型、线束固定、防反插设计这些“脏活累活”。1.2 V0.2.1比V0.1多了什么、删了什么V0.1我当时是在赛季中期仓促写的当时主要把电源、电机驱动、单片机最小系统这几块硬凑在一起更多像是一个目录大纲细节经不起推敲。V0.2.1这版做了比较大的调整按我的说法是“从知识点清单变成了工程决策记录”。这一版新增的内容主要有三块能量机关节点的硬件要求包括瞬时大电流对电源的影响、发射机构的电容蓄能方案、功率检测的采样电路设计。上一版这块几乎没写但能量机关打不打得下来硬件上的供电冗余和信号稳定性起了决定性作用。故障排查方法不是那种“用万用表测一下”的空话而是具体到某个现象对应哪个模块、怎么一层层往下定位比如“电调没反应是CAN问题还是使能问题”的判断链路。PCB可制造性细节比如载流宽度估算、过孔数量、测试点布置、丝印规范这些是制板回来能不能一次调通的关键。删掉的内容也很重要。V0.1里花了大篇幅介绍L298N、TB6612这类模块化电机驱动芯片实际上比赛用的电调基本都是CAN总线控制的C620/C610或者大功率直流电机驱动板那些模块化芯片根本用不上。删掉这些内容后讲义的篇幅精简了将近三分之一新队员也不会再把精力浪费在错误的方向上。V0.2.1的整体结构很清晰先讲供电域再讲信号域然后讲PCB物理设计最后是调试方法。每个章节之间是有逻辑关系的——供电是基础信号是上层PCB承载二者调试则是贯穿始终的能力。2. 供电域所有硬件故障里有一半出在这里2.1 从24V电池到3.3V逻辑稳压方案选型逻辑RoboMaster比赛统一使用24V电池但板子上的器件并不都需要24V。主控单片机需要3.3V部分传感器需要5V风扇和部分执行器需要12V裁判系统需要24V直供。所以供电设计本质上是一个多级降压网络每一级选什么方案核心就两条电流多大、压差多大。第一级从24V降到12V或者5V压差大、电流可能到1A以上这个场景要用DC-DC开关降压芯片。V0.2.1里推荐的是TPS54303A、MP15843A、TPS54505A这几款。以TPS5430为例输入范围5.5V到36V输出电流3A开关频率500kHz效率能到90%左右。计算反馈电阻时输出电压公式是Vout Vref × (1 R1/R2)其中Vref是1.221V。比如要输出5V可以选择R110kΩ、R23.24kΩ算出来约5.0V。关键提醒DC-DC的电感要选饱和电流大于峰值电流的型号V0.1里有个案例就是电感饱和电流不够输出端纹波大得陀螺仪都读不出稳定数据。第二级从5V降到3.3V给单片机电流不大但纹波要求高这里可以用LDO比如AMS1117-3.3。计算一下功耗输入5V、输出3.3V、负载0.2A时压差带来的功耗是(5-3.3)×0.20.34W对于SOT-223封装来说还在可接受范围。但如果直接从12V降到3.3V同样0.2A功耗就到了1.74W芯片会烫得没法摸。所以V0.2.1里反复强调一个原则LDO只做低压差末级稳压不要让它扛大压差。选择DC-DC还是LDO不能只看静态参数还要看负载的动态响应。电机启动瞬间、云台拨弹瞬间电流会突然增大如果DC-DC的反馈环响应不够快输出电压会跌落。跌落幅度跟输出电容容量直接相关一般建议在DC-DC输出端并联两个100μF电解电容加若干个0.1μF陶瓷电容前者扛大纹波后者滤高频。实测中这样的组合能把动态跌落控制在0.2V以内。2.2 上电保护与保险丝级联用一次烧板换来的教训讲义的2.2节几乎是用一块烧掉的主控板换来的。那次故障的原因很简单——队员接线时把电池正负极接反了板子上一片AMS1117直接炸开STM32也废了。从那以后我在所有自研板子的电源入口强制加了两级保护防反接电路和保险丝。防反接我用的是PMOS方案而不是串联肖特基二极管。二极管的优势是简单但压降和功耗很大。给个具体数字系统总电流5A时一个0.5V压降的二极管会白白消耗2.5W热量在密封的车壳里很难散掉。PMOS的导通压降等于电流乘以导通电阻选一个Rds_on在20mΩ以内的管子5A电流时压降只有0.1V发热小得多。电路接法是PMOS的源极接电池正极漏极接负载正极栅极接地同时在栅源之间并一个100kΩ电阻保证默认关断。电池正接时源极电压高于栅极PMOS导通接反时体二极管反向截止电路不工作。注意栅极对地要加一个RC延时比如10kΩ电阻加0.1μF电容用来抑制上电瞬间的冲击电流。保险丝我建议用一次性贴片保险丝加自恢复保险丝的组合。自恢复PPTC用在电机或舵机的支路上短路后它会自己断开排除故障后断电即可恢复适合调试期间频繁试错一次性保险丝放在总电源入口防止真正的灾难性短路把整个线束烧着。以24V系统为例总保险丝选10A或15A支路保险丝按实际负载的1.2到1.5倍选。一个小技巧保险丝上最好标注额定电流不然排查短路时还得一个一个拆下来看丝印。2.3 能量机关节点的电源特殊性能量机关是RoboMaster比赛里很特殊的场景弹丸发射机构在击打能量机关时需要频繁快速充放电瞬时电流波动非常大。硬件上如果没有提前考虑主控板可能在比赛最关键的几秒内反复复位。我的处理思路是在发射机构电源入口处增加蓄能电容组。具体方案是在发射机构的24V供电入口并联一个100μF电解电容再并几个1μF的陶瓷电容。100μF电解电容承担大部分瞬态电流的补充陶瓷电容负责吸收高频噪声。为什么不用更大的电容因为电容太大上电瞬间的充电电流会很夸张可能触发前级保险丝误动作所以要权衡。另一个办法是加缓启动电路用一个MOS管和RC延时控制发射机构电源的爬升斜率但这样会增加复杂度V0.2.1里只要求至少加蓄能电容。功率限制是能量机关的另一个硬件关键点。电控需要知道当前整车的功率消耗才能做功率闭环。硬件上要在电池入口串联一个小阻值采样电阻比如5mΩ的合金电阻配合INA226电流检测芯片实时采集电流数据通过I2C传给主控。采样电阻不能选太大否则压降会影响电源质量也不能太小否则灵敏度不够。计算一下5mΩ电阻、20A电流压降只有0.1VINA226的ADC分辨率可以做到1mA级别这个组合够用。采样电阻的引脚走线要用开尔文接法即电压采样线直接从电阻两端引出不要经过其他大电流通路不然采样值会带进接触电阻的误差。这一节在V0.2.1里配了一张实物接线图新队员照着接基本不会出错。3. 信号域电机、传感器和通信总线的硬件接口设计3.1 CAN总线的常见陷阱与节点设计RM赛场上电机控制基本是通过CAN总线完成的M3508、M2006、GM6020这些电机都是走CAN协议。用CAN总线时硬件设计上有几个非常典型的问题值得单独讲。**终端电阻是最容易被忽视的一个。**CAN总线要求在物理线路的两端各并联一个120Ω终端电阻用来匹配阻抗、避免信号反射。很多队伍的调试流程是把主控板和电调用线一连加上代码一跑发现通信不稳定时好时坏。用万用表量CAN_H和CAN_L之间的电阻如果测出来大约120Ω说明只有一端有终端电阻正常应该测到约60Ω两端各120Ω并联。V0.2.1里的建议是主控板的CAN接口处放一个120Ω电阻通过0Ω跳线决定是否接入电调那边有些也带终端电阻配置尽量只在一头启用避免电阻总值过低导致总线负载过大。**CAN_H和CAN_L接反不会烧东西但会让你怀疑人生。**因为CAN协议是差分信号接反后总线仍然有波形但接收端解析不到正确的电平表现出来就是“明明报文在发电调就是不动”。排查方法很简单测CAN_H对地电压约2.5V、CAN_L对地电压约2.5V正常通信时显性位CAN_H会拉到3.5V左右、CAN_L会拉到1.5V左右。如果看到两个波形反过来了那就是接反了。**节点数量与线缆长度也影响稳定性。**车上的CAN线一般不会太长但架不住走线绕来绕去而且电机电源线和CAN线经常捆在一起电机电流突变时会对CAN产生共模干扰。建议CAN线用双绞线避开大电流线束如果实在避不开就套磁环或者用带屏蔽层的双绞线屏蔽层单端接地。3.2 IMU、视觉、裁判系统的接口要点硬件基础讲义如果只讲电源和电机那覆盖率是不够的。V0.2.1把传感器和通信接口单独拿出来讲因为这一块是电控同学最容易在硬件上踩坑的地方。IMU的接口选择与布局IMU通常用BMI088或MPU6500推荐用SPI接口而不是I2C。理由是SPI的时钟由主机控制没有I2C那种多设备地址冲突的问题而且SPI的速率更高有利于高频姿态解算。硬件上需要注意IMU的供电要单独加一个LC滤波串磁珠加电容因为IMU对电源纹波非常敏感纹波过大会导致陀螺仪零漂严重。布局上IMU要尽量远离电机和功率线特别是云台电机的磁场干扰会让磁力计数据完全不能用。视觉模块与主控的共地问题视觉模块比如OpenMV、K210、工控机和主控通信常用的接口是串口或者USB。如果两个模块各自用独立的电源适配器供电那就必须把GND连在一起否则串口信号没有参考地轻则乱码重则烧毁IO口。很多新队员在实验室用USB供电一切正常上了车用电池供电就出问题十有八九是共地没有处理好。解决方案是所有通信模块的GND统一回到主控板的同一个地网络不要靠信号线本身来“顺便”共地。裁判系统的硬件细节裁判系统的选手串口是3.3V TTL电平很多同学图省事直接把串口线插到一个USB转TTL模块上连电脑调试这个操作本身没问题问题出在USB转TTL模块若是5V供电那TX引脚可能就是5V电平直接把3.3V的单片机串口引脚烧掉。建议在单片机串口引脚前加一个电平转换芯片如TXS0108或简单电阻分压或者选择支持3.3V电平的USB转TTL模块。另外裁判系统连接器里同时有24V电源和TTL信号线接线顺序很容易弄混必须在原理图阶段就标注清楚最好用不同间距的连接器做防呆避免“电源怼到信号线上”这种毁灭性错误。3.3 信号线布线与接插件选择的工程经验设备之间的连接第一原则是电流和信号分开。动力线、电源线走粗线径信号线走细线径两者不要捆在一起长距离并行。如果必须并行尽量让信号线垂直穿过动力线减少耦合面积。第二原则是每个信号连接器都要有机械锁定。具体来说排针和杜邦线只适合调试台使用装到机器人上之后振动会让杜邦线几十秒内就松脱。车上的接插件建议至少用GH1.25、SH1.0或者JST-PH这类带锁扣的。下表是V0.2.1里的一个选型速查方便新队员直接抄接插件类型额定电流适合场景XT6030A以上电池主回路、电源总入口XT3015A分电板到电调GH1.251A到2A串口信号、I2C、CAN、舵机信号XH2.543A风扇、小功率传感器排针杜邦1A左右仅限调试台JST-SM3A电机霍尔线等中等电流信号接下来说线束保护。V0.2.1里建议所有机身上的线束都要套波纹管或者编制网套尤其是在轮子附近容易磨损的位置。电源线和信号线从板子出口要有线卡固定不能直接拽着线拔连接器否则迟早会把焊盘拽掉。另外一个容易忽略的是线束长度要预留余量因为机器人在运动过程中关节位置会变化线如果绷得太紧转弯时会被拉断。4. 印制板返工率最高的六个物理细节4.1 载流能力铺铜宽度、过孔数量与温升的关系PCB的载流能力是一个在设计阶段必须估算的问题很多返工就是载流不够导致的发热烧板。工程上常用IPC-2221的经验公式I K × ΔT^0.44 × A^0.725其中I是电流AΔT是温升℃A是走线截面积平方密耳K是常数外层走线取0.048内层取0.024。这个算起来比较麻烦V0.2.1里给了一个更实用的简化估算1oz铜厚、1mm宽的外层走线温升10℃时大约能走1A电流。比如电机相线持续20A那就需要20mm宽的1oz铜皮这显然不现实所以要加大铜厚到2oz或者3oz同时大面积铺铜辅助散热。2oz铜厚下1mm宽走线大约能走2A20A就需要10mm宽依然紧张所以大电流路径一般直接铺铜皮而不是走线配合过孔阵列换层。过孔的载流能力很容易被忽略。一个0.3mm孔径、0.6mm焊盘的过孔载流大约在0.5A到1A之间大电流换层时只打一两个过孔必烧。经验做法每2A电流至少打一个0.5mm过孔并且过孔要放在电流路径中间不要放在焊盘边缘。更稳妥的方案是用多个过孔并联比如20A电流打10到12个0.5mm过孔均匀分布在铺铜区域。还有个大电流设计细节值得单独提醒电线到板端子的压接位置。大电流连接器的焊盘和引出线要尽量短粗不要在焊盘上拐好几个弯才到端子否则局部电阻高热量集中。V0.2.1里专门配了一个“错误的走线示例”一个XT60焊盘输入走线只有2mm宽上18A电流后2分钟内表面温度就到80℃。实测数据写出来之后后面几届队员都没再犯过同样的错。4.2 防反接、防打火、防振动连接器的力学设计连接器的选择不仅要看额定电流还要看它在你这个机械环境下的实际可靠性。V0.2.1里讲了三个“防”字诀这三条基本覆盖了赛场上常见的物理故障。防反接电源连接器、串口连接器、CAN连接器只要存在“接错顺序”的可能就要用防呆设计。最简单的方法是选不同PIN数的连接器比如电源用XT60有方向性串口用4pin的GH1.25CAN用5pin的GH1.25这样物理上就无法把串口线插到CAN口上。这个方法比分色线实用得多因为机器人装完之后谁也看不清线的颜色。防打火24V电池系统在带电插拔时连接器针脚之间会产生电弧放电瞬间可能把连接器烧黑。解决办法是分级连接主回路上用XT60它本身就有一定的防打火能力如果需要频繁带电插拔的测试接口加一个预充电路用一个电阻串联一个开关先给电容充电再闭合主开关。虽然比赛时不会带电拆电池但调试阶段这个习惯能省不少连接器。防振动车上所有接插件的固定方式都要考虑振动。常见的做法是把连接器本体用热熔胶或硅胶固定在板子上或者在连接器旁边加线夹让线束在振动时受力点不在连接器上。V0.2.1里有一个实操洞见主控板上的JST-GH连接器很容易因为线束的反复弯曲而松脱后来我们在板子边缘加了一个线槽所有线束先过线槽再进连接器松动率直接降了90%。4.3 原理图评审阶段就该圈出来的问题清单V0.2.1最后一节是“投板前自检清单”内容不多但每一条都是从返工案例里提炼出来的。我在这里分享最核心的几条。第一输入电源是不是每一路都有合适的旁路电容。很多新队员给单片机加了0.1μF电容就完事了实际上每个电源引脚最好都加一个0.1μF陶瓷电容靠近引脚放置整个电源域再加一个10μF钽电容或电解电容。电源路径上的电容缺失轻则纹波超标重则芯片复位不稳定。第二所有外部接口是不是都有ESD保护。CAN总线、串口、USB这些暴露在外的接口在插拔过程中容易积累静电损坏主控引脚。哪怕只加一个ESD二极管阵列成本不高但对稳定性的提升非常明显。尤其是CAN接口接上电调线之后线束在车上的摩擦会产生静电多次累积下来就可能把CAN收发器打坏。第三未使用的MCU引脚是否做了默认电平处理。新队员画板子时经常把用不到的IO悬空这在电气上是允许的但在实际调试中会造成干扰。比如某个悬空引脚紧挨着CAN_TX走线它可能被耦合出随机电平导致该引脚被误配置成外设功能时行为不可预期。建议所有未使用引脚通过10kΩ电阻上拉或下拉在代码里也对应配置。第四丝印是否标全了关键信息。板子正反面的丝印至少要包含板名、版本号、日期、设计者、每个接口的标识、电源正负极标识。缺少这些信息调试时一切正常但过两个星期再回来修板子你会对着一个光板发愣很久。V0.2.1里有一条硬性规矩没有版本丝印的板子不允许投板。5. 一次完整故障排查主控板能亮、电机却不动5.1 从现象拆解供电、使能、控制、反馈四层排查排查问题最忌讳的就是“觉得哪里有问题就焊哪里”。V0.2.1传递的核心方法很简单把现象拆到不能再拆然后从底层开始逐层验证。这里用一个实际案例来演示。某次调试队员反馈“主控板上电正常电机完全不动”。我让他们按下面的顺序查第一层供电是否真的到位。用万用表直流档量电调的电源输入看是不是24V左右。这里的关键是量“电调端”不是量“电池端”——连接线本身有压降尤其大电流时更明显。如果电调端只有12V问题就在电池到电调的线路上可能是插头接触不良或者线径太细。第二层CAN通信是否正常。在断电状态下万用表量CAN_H与CAN_L之间电阻应该约60Ω。实测如果量到120Ω说明有一端的终端电阻没接好如果量到几kΩ甚至无穷大说明线路中断。接下来上电让主控发控制指令用示波器看CAN差分波形确认有没有正常的显性隐性位变化。第三层电调使能是否被正确触发。RM官方电调需要先收到使能指令比如0x1FF然后才能通过0x200系列指令控制电机。很多初次接触的队员只发了控制指令但没发使能电机当然不动。这一层查代码逻辑硬件上基本不用动。第四层电机本体和连接。如果走到这一步还没发现问题就检查电机三相线有没有断相、是否接触不良。用万用表测电调三根输出线到电机的每一相电阻正常应该是平衡的几十到几百毫欧。如果有一相开路电机会抖动但不转动。这个案例最终查到的问题其实就是CAN终端电阻只有一端接入导致信号反射在低速长线缆上偶尔能通信、高速时丢帧严重。加上终端电阻后问题彻底解决整个过程用了不到20分钟但如果一上来就动烙铁可能一晚上都搞不定。5.2 示波器、万用表在这个场景下的正确用法排查硬件故障工具用对了效率翻倍用错了会得到一堆干扰信息。先说示波器。测CAN波形时探头地线一定要用接地弹簧而不是长地线夹。长地线夹会形成一个巨大的环路天线把开关电源的噪声耦合进测量结果你看到的波形满是毛刺还以为CAN线受干扰严重其实是探头自己带来的。换上接地弹簧之后波形立刻干净。测电源纹波也是同样道理探头地线过长测量结果里会混入大量高频噪声让你误判电源质量。再说万用表。测电压时要注意参考点。比如量一个3.3V电源最好把黑表笔放在该电源域的滤波电容负极脚上而不是随便接一个机壳地。因为大电流流经地线时不同位置的地电位并不完全相等可能出现“某处量出来3.5V另一处量出来3.2V”的现象。参考点不对数据就失真。还有一个小技巧判断可疑元器件是否损坏不一定要拆下来可以在板子断电的情况下量它的对地阻抗和同型号正常板上的数值对比。比如怀疑CAN收发器坏了量VCAN对地阻抗正常板应该有个几百kΩ的读数坏板可能只有几欧姆。这个方法在缺少原理图的情况下尤其好用。5.3 把结论写回讲义V0.2.2修订计划这次排查的收获不应该只停留在“问题解决了”层面。我把整个排查过程复盘之后给V0.2.2列了一个待办清单其中已经明确要加的内容有两块。一块是“CAN通信快速排查表”把“测量终端电阻→观察波形→检查使能→检查电机相线”这个顺序做成一个可以打印的流程单贴在调试台旁边。这个排查表的价值在于它让新人面对“电机不动”这个问题时不再感到无从下手而是有了一条可以照做的最短路径。另一块是“供电跌落排查”这次案例里虽然没有出现电压跌落但很多次的电机不动或者主控复位根因是动态电压跌落而不是通信问题。V0.2.2会在电源章节里增加一个“怎么区分是供电问题还是信号问题”的小节教新队员通过观察主控指示灯在电机瞬间启动时的明暗变化来判断电源裕量是否充足。这也是V0.2.1这份讲义能持续迭代的原因——每次doc里的记录都会对应一次真实故障或设计验证而不是从别人文档里抄来的结论。每个章节后面都有一个“修订日志”表格记录哪一次比赛、哪个问题、如何解决、谁负责修订。这些在调试时的时间成本投入换回来的是后面几届队员的捷径。把每一次故障都沉淀成讲义的一部分是我个人在这几年带队过程中最推荐的团队知识管理方式。硬件的错误本身不可避免但如果同一个错误被不同的人反复犯那就是文档和管理的问题。V0.2.1是一个阶段但它不是终点下一版可能叫V0.2.2也可能是V0.3这不重要重要的是每一版都比上一版更贴近实战。