Robomaster硬件基础讲义:供电架构与电机驱动实战指南
1. 这套讲义到底在解决什么问题如果你正在准备机器人竞赛或者刚加入学校的机器人战队大概率会遇到一个很尴尬的局面软件组的同学代码写得飞起硬件组的同学却还在对着电源板上的焊盘发愣。Robomaster这类对抗性机器人竞赛硬件是整台车的骨架和血管供电、信号、驱动、保护任何一个环节出问题车在赛场上就是一堆昂贵的金属。这套《Robomaster硬件基础讲义V0.2.1》就是冲着这个痛点来的——它把从零开始搭建一台竞赛机器人所需的硬件知识拆成了可以按图索骥的模块让没有电子工程背景的人也能一步步把车跑起来。讲义的核心关键词是供电架构、电机驱动、信号完整性、保护电路、PCB布局。它适合三类人刚进战队的大一新生、从纯软件转过来补硬件短板的开发者、以及需要统筹整车电气方案的技术负责人。V0.2.1这个版本号本身就说明它还在迭代内容偏向基础框架和常见坑位的梳理而不是那种堆满公式的教科书。我拿到这份讲义之后结合自己带过几届队伍的经验把里面的关键点重新拆了一遍补充了一些讲义里没展开但实际调试中一定会遇到的细节。2. 供电架构整台车的命脉怎么设计2.1 电池选型与放电倍率计算竞赛机器人常用的动力电池是锂聚合物电池标称电压一般在22.2V到25.2V之间。选电池的时候很多人只看容量比如“买个5000mAh的”但真正决定你能不能跑满全场的是放电倍率。放电倍率的单位是C1C代表以电池标称容量大小的电流持续放电。一块5000mAh的电池如果标称20C意味着它理论上能持续输出100A的电流。实际计算是这样的假设你的底盘有四个电机每个电机堵转电流峰值是10A四个加起来就是40A。再加上云台、发射机构、工控机、裁判系统整车的峰值电流可能冲到60A到80A。这时候你选一块5000mAh、20C的电池理论最大放电100A看起来够用但要注意电池的实际放电能力会随电量下降而衰减而且持续大电流放电会让电池发热、内阻增大。我的经验是电池的持续放电倍率至少要覆盖整车峰值电流的1.5倍也就是说峰值80A的话电池持续放电能力最好在120A以上。5000mAh的电池对应24C以上或者你直接上6000mAh、20C的组合。注意电池的C数标注有时候是虚的尤其是低价电池。买回来之后最好用电子负载或者大功率放电仪实测一下看看在标称持续电流下电压掉得快不快。掉压太快说明内阻大这种电池在赛场上会让你在最后两分钟直接趴窝。2.2 分电板的设计逻辑分电板是整台车的配电枢纽电池出来的线先接到分电板再由分电板分给底盘电机、云台电机、发射机构、工控机、裁判系统等。讲义里给了一个基础的分电板原理图核心思路是星型拓扑也就是所有负载的电源线都从分电板的一个中心点辐射出去而不是像串糖葫芦一样一个接一个。为什么强调星型拓扑因为串联供电的话前级负载的电流波动会直接影响后级负载的电压。比如底盘电机突然加速电流猛增线路上产生压降后面的工控机可能就因为电压瞬间跌落而重启。星型拓扑让每个负载的供电路径相对独立互相干扰小很多。分电板上一般会放几个关键器件大容量电解电容用于吸收电机启停时的电压尖峰TVS二极管用于钳位瞬态高压保险丝或电子熔断器用于过流保护。讲义里建议总输入电容不低于1000μF我实际用下来觉得如果电机功率大2200μF甚至4700μF都不算多。电容要选低ESR的普通电解电容在高频大电流下效果打折。2.3 线径与接插件的选择线径选不对轻则发热重则起火。讲义里给了一个简单的对照表我把它扩展了一下持续电流推荐线径常见接插件10A以下18AWGXT3010-20A16AWGXT30/XT6020-40A14AWGXT6040-60A12AWGXT60/XT9060A以上10AWGXT90这里有个容易被忽略的点接插件的额定电流通常比线径低。比如XT30标称30A但那是理想条件下的峰值持续跑20A以上就会明显发热。所以选接插件的时候要留足余量XT60跑40A以下比较稳妥再高就上XT90。焊接接插件的时候很多人焊完看着挺亮一拉就掉。关键是先给焊杯和线头上锡再把线头插进焊杯加热融合而不是把线头放在焊杯里直接怼焊锡丝。焊之前线头要剥得刚好不能有散丝散丝会导致短路。焊完之后套热缩管热缩管要完全覆盖焊点不能露出铜丝。3. 电机驱动从PWM信号到轮子转起来3.1 有刷与无刷的取舍Robomaster竞赛里底盘和云台电机现在主流是无刷电机配FOC驱动器但讲义里还是保留了有刷电机的章节因为有些入门队伍或者特定机构比如拨弹盘还在用有刷。有刷电机的优点是驱动简单一个H桥就能转缺点是碳刷磨损、效率低、发热大。无刷电机效率高、扭矩大但驱动器复杂参数调不好会啸叫、抖动甚至烧管。讲义里给了一个判断标准如果对位置控制精度要求高、需要大力矩、且预算允许选无刷FOC如果只是简单转动、对成本敏感、或者作为备用方案有刷也能凑合。我个人的经验是底盘和云台千万别省无刷的钱拨弹盘和摩擦轮可以用有刷但要做好散热。3.2 FOC驱动器的关键参数FOC磁场定向控制驱动器的核心参数包括极对数、相电阻、相电感、KV值。极对数决定了电角度和机械角度的换算关系填错了电机会转但不顺畅。相电阻和相电感影响电流环的PID整定填得不准会导致电流响应慢或者震荡。KV值是每伏电压对应的空载转速选电机的时候要根据你的减速比和轮径反推。举个例子假设你希望底盘最高速度是3m/s轮子直径是0.15m那么轮子转速是3/(π×0.15)≈6.37转/秒也就是382RPM。如果减速比是1:19电机转速需要382×19≈7258RPM。电池电压24V那么电机KV值应该在7258/24≈302左右。实际选型要留余量KV值可以稍高一点通过控制降速。提示FOC驱动器第一次上电之前一定要做电机参数辨识。很多驱动器有自动辨识功能会测出相电阻和相电感。如果手动填误差大了轻则效率低重则烧驱动器。辨识的时候电机要空载不要连着轮子。3.3 CAN总线通信的实操要点Robomaster的电机驱动器大多走CAN总线好处是抗干扰强、支持多设备挂载。但CAN总线有几个坑终端电阻、波特率、ID冲突。终端电阻一般是120Ω接在总线两端中间节点不接。如果总线短于1米有时候不接也能跑但长距离或者高波特率下不接终端电阻会丢包。波特率要所有设备一致常见的是1Mbps。ID冲突是最容易犯的错误两个驱动器设了同一个ID总线上就会打架表现是电机随机抽搐或者完全不动。调试的时候先用CAN分析仪扫一遍确认每个ID只出现一次。CAN_H和CAN_L的接线不能反反了通信不上但不会烧只是浪费时间排查。线材最好用双绞线屏蔽层单端接地。如果总线上设备多可以在中间加CAN中继器或者集线器但要注意中继器会引入延迟。4. 信号完整性与保护电路4.1 编码器信号的抗干扰处理编码器反馈是闭环控制的基础信号被干扰了电机就会抖或者飞车。讲义里提到了差分信号和屏蔽线这是最基本的。AB相编码器如果走单端信号线长了很容易受电机PWM的干扰。换成差分编码器比如RS422或者加一个差分收发器芯片抗干扰能力会强很多。布线的时候编码器线要远离电机动力线至少保持5cm以上的距离不要平行走线。如果实在避不开交叉走交叉角度尽量接近90度。屏蔽层要单端接地接在控制器一侧不要两端都接否则会形成地环路。4.2 过流与过压保护电机堵转的时候电流会飙升到额定值的几倍甚至十几倍没有保护的话驱动器或者电机线圈直接冒烟。讲义里建议在电源输入端加电子熔断器或者自恢复保险丝在驱动器输出端靠驱动器自身的过流保护。但驱动器的过流保护有时候反应不够快尤其是瞬间短路。我的做法是在分电板到驱动器的线上串一个霍尔电流传感器输出接到主控的ADC主控检测到电流超过阈值就立刻切断驱动器的使能信号。这个响应速度比驱动器内部的保护还要快因为它是软件层面的可以做到微秒级。当然前提是你的主控循环够快而且ADC采样要准。过压保护主要是防止电机减速时反向电动势把电压抬上去。电机减速时相当于发电机能量回灌到电源母线电压会升高。如果电池充满电的时候跑母线电压可能超过30V烧掉工控机或者裁判系统。解决办法是在分电板上并一个制动电阻或者TVS管把多余的能量泄放掉。制动电阻的阻值和功率要算一下阻值太小会一直耗电太大泄放不够快。4.3 地线处理与共模干扰地线处理是硬件设计里最玄学但也最重要的部分。讲义里强调了单点接地和模拟地数字地分开。实际做的时候大电流的地和小信号的地要在分电板上分开走最后在电池负极处汇合。如果混在一起大电流在地线上产生的压降会叠加到小信号上导致ADC采样不准、通信误码。共模干扰是电机PWM开关时产生的会通过电机线辐射或者传导到整个系统。抑制共模干扰的办法包括电机线用屏蔽线、加共模扼流圈、驱动器输出端加磁环。磁环要选合适的材质镍锌磁环适合高频锰锌磁环适合低频。套在电机线上靠近驱动器的位置绕两三圈效果更好。5. 实操过程从零搭建一台基础车5.1 物料准备与工具清单在动手之前先把东西备齐。讲义里列了一个基础清单我按自己的经验补充了一些容易漏的动力电池及XT90插头分电板自制或成品底盘电机及FOC驱动器四套云台电机及驱动器两套主控板STM32或类似CAN收发器模块降压模块24V转19V给工控机24V转5V给裁判系统急停开关各种线材、热缩管、焊锡、扎带万用表、示波器有条件的话、CAN分析仪大功率电子负载测电池用工具方面恒温焊台比普通烙铁好用太多焊大线径的时候功率要够。压线钳用于压接端子比纯焊接可靠。热风枪用于热缩管比打火机均匀。5.2 分电板焊接与测试分电板拿到手或者自己画完打样之后先别急着上电池。第一步是目视检查看有没有短路、虚焊、锡渣。然后用万用表的蜂鸣档测输入正负极之间的电阻应该是无穷大或者很大如果接近0就是短路了。第二步是限流上电。用可调电源设一个低电压比如5V和低限流比如0.5A接到分电板输入端看电流是否正常。如果电流直接冲到限流值说明有短路赶紧断电排查。正常的话分电板上的指示灯应该亮各路输出电压用万用表量一遍确认降压模块输出正确。第三步是逐步加负载。先接主控和裁判系统这种小功率的确认没问题再接云台电机最后接底盘电机。每接一路都观察电流和电压有异常立刻断。5.3 电机参数辨识与闭环调试电机接上驱动器之后先不装轮子空载测试。用驱动器配套的上位机软件连接做参数辨识。辨识完成后先给一个很小的电流或者速度指令看电机是否平滑转动。如果有异响或者抖动检查极对数是否填对、相线是否接错。闭环调试的顺序是电流环→速度环→位置环。电流环的带宽最高先调电流环的PID让电流响应快且无超调。然后调速度环速度环的输入是电流环的输出。最后调位置环。每一环调的时候先给阶跃响应看上升时间和超调量慢慢加P和I直到响应快且稳。注意调PID的时候一定要把车架空轮子悬空。落地调的话车会突然冲出去非常危险。急停开关要放在手边随时能拍。5.4 整车联调与赛场检查所有子系统单独调好之后开始整车联调。先上电但不使能电机检查主控能否正常读取所有传感器、裁判系统是否正常通信、图传是否有画面。然后使能电机低速跑一下看底盘是否走直线、云台是否跟手。赛场检查清单我一般会过一遍电池电压是否充足、螺丝是否拧紧、线缆是否固定好、急停是否有效、裁判系统灯是否正常、图传延迟是否可接受。比赛前一定要跑一次完整流程包括自检、启动、移动、发射看看有没有偶发问题。6. 常见问题与排查技巧实录6.1 电机不转或抽搐这是最常见的问题排查顺序如下现象可能原因排查方法电机完全不转使能信号没给、电源没到、CAN通信失败量驱动器电源、看CAN指示灯、检查使能引脚电机抖动但不连续转相线接错、极对数填错、编码器方向反检查相线顺序、重新辨识参数、交换编码器AB相电机转一下就停过流保护触发、温度保护、CAN丢包看驱动器报错码、摸驱动器温度、用CAN分析仪看丢包率电机啸叫PID参数太激进、PWM频率不合适降低P和I、调整PWM频率到16kHz以上6.2 通信丢包与延迟CAN总线丢包的表现是电机响应迟钝、偶尔不动、或者主控收不到反馈。先用CAN分析仪抓包看错误帧多不多。错误帧多的话检查终端电阻、线材屏蔽、波特率。如果硬件没问题可能是总线负载太高减少不必要的报文或者提高波特率。图传延迟大一般是信道拥堵或者功率不够。赛场环境2.4G和5.8G都很拥挤尽量用5.8G信道选空闲的。天线要垂直极化不要被碳纤维板挡住。6.3 电池发热与续航缩水电池用久了内阻增大放电时发热严重续航明显缩短。用电子负载测一下电池的实际容量和内阻如果内阻比标称值大很多就该换了。平时存放电池要保持在3.8V到3.9V每片不要满电存放也不要放到3.0V以下。赛场上一旦发现电池电压掉得比平时快或者电池表面温度明显偏高立刻换电池。不要赌赌输了就是整车断电。6.4 独家避坑技巧第一个技巧所有接插件都做防呆标记。用不同颜色的热缩管或者标签纸标清楚哪根线接哪里。赛场上光线暗、时间紧插错一根线可能烧一片板子。第二个技巧关键信号线留测试点。在PCB上给CAN_H、CAN_L、电源、地线留出焊盘或者排针调试的时候直接夹探头不用到处找线。第三个技巧固件和参数备份。调好的PID参数、电机辨识结果、主控配置全部备份到U盘和云端。赛场上一旦主控重置或者驱动器换新直接恢复不用重新调。第四个技巧准备一套最小系统备用。一套主控加一个驱动器加一个电机单独供电能在主车出问题的时候快速替换排查。这套最小系统平时就调好放着不要拆。7. 讲义后续可以扩展的方向V0.2.1这个版本把基础框架搭起来了但还有一些地方可以继续深挖。比如电源完整性仿真用软件模拟大电流下的压降和噪声提前发现布局问题。再比如热设计电机和驱动器的散热计算、散热片选型、风道设计这些在高强度对抗中很关键。还有EMC整改如果车在赛场上有莫名其妙的复位或者通信中断可能需要加磁环、改布线、换屏蔽线。我个人在实际带队伍的过程中发现硬件问题往往不是单一原因而是多个小问题叠加。比如地线没处理好导致ADC采样偏ADC偏导致电流环震荡电流环震荡导致电机发热电机发热导致效率下降最后表现为车跑不快。排查的时候要有耐心一个一个变量隔离不要同时改好几个地方。另外讲义里的电路图和参数是基于常见方案给的实际用的时候要根据自己的电机、电池、负载重新算一遍。不要直接抄抄了大概率要返工。硬件这东西算清楚了再动手比焊完了再改省时间得多。