1. 从零搭建一台步兵机器人:这份讲义到底想解决什么问题
如果你刚加入学校的机器人战队,被分到硬件组,大概率会经历这样一个阶段:学长丢给你一块开发板、一包杜邦线、几个电机和电调,然后说“先把这辆车跑起来”。你看着满桌子的元器件,脑子里全是问号——电源怎么分配?电机和电调怎么匹配?控制板怎么和遥控器通信?为什么别人的车跑得稳,我的车一加速就重启?
这份《Robomaster硬件基础讲义V0.2.1》就是为这个阶段准备的。它不是一本从模电数电讲起的教科书,也不是某个具体模块的数据手册翻译,而是一份面向实战的硬件入门指南。核心目标很明确:让一个没有太多硬件经验的队员,能够在最短时间内理解一台步兵机器人的硬件架构,知道每个模块的作用、选型逻辑、连接方式和常见故障的排查思路。
讲义覆盖的内容包括电源系统设计、电机与电调选型、主控与通信链路、传感器配置、线束与接口规范,以及调试阶段最容易踩的坑。适合的读者是战队硬件组的新成员、需要了解硬件底层的嵌入式开发者,以及想从软件转向软硬结合的队员。我写这份讲义的出发点很简单:当年我自己入门的时候,翻遍了论坛和文档,信息碎片化严重,很多关键细节没人讲,导致走了大量弯路。这份讲义试图把这些散落的知识点串成一条线,让你少走一些我走过的弯路。
2. 电源系统:整车最容易被低估的环节
2.1 为什么电源设计决定了整车的稳定性
很多人第一次装车的时候,会把注意力集中在电机和主控上,电源部分随便拿一块电池接上就完事。实际调试时才发现,电机一加速,主控就重启;云台一转,图传就掉线。这些问题的根源几乎都指向同一个地方——电源系统的设计不合理。
机器人上的电源系统本质上是一个多级分配网络。电池提供总能量,经过分电板分配到各个子系统:底盘电机、云台电机、主控、传感器、图传、裁判系统等。每个子系统对电压和电流的需求不同,对噪声的敏感度也不同。如果所有设备都直接从电池取电,大功率设备(比如底盘电机)在启动瞬间产生的电压跌落和电流冲击,会直接影响敏感设备(比如主控和传感器)的正常工作。
讲义的V0.2.1版本中,我把电源部分放在了最前面,原因就在于此。电源是整车的“地基”,地基不稳,上面盖什么都是白搭。
2.2 电池选型:容量、放电倍率与重量之间的三角博弈
机器人常用的动力电池是锂聚合物电池,标称电压通常为22.2V(6S)或25.2V(7S)。选电池的时候,三个参数最关键:容量(mAh)、放电倍率(C值)和重量。
容量决定了续航时间。理论上容量越大,跑得越久。但容量越大,电池体积和重量也越大,机器人的机动性会下降。对于一台标准步兵机器人,常用容量在4000mAh到6000mAh之间。我个人的经验是,如果比赛节奏紧凑、对续航要求高,选5000mAh左右比较均衡;如果更看重机动性,可以降到4000mAh,但要多备几块电池轮换。
放电倍率决定了电池能否在短时间内输出足够大的电流。底盘电机在急加速或堵转时,瞬时电流可能达到几十甚至上百安培。如果电池的放电倍率不够,电压会被拉低,导致主控重启或电机无力。计算方法是:电池最大持续放电电流 = 容量(Ah)× 放电倍率(C)。比如一块5000mAh、50C的电池,最大持续放电电流是5Ah × 50C = 250A。这个数值要覆盖整车所有大功率设备的最大瞬时功耗之和,并留出至少30%的余量。
重量方面,一块6S 5000mAh的电池大约在700g到800g之间。这个重量在整车中的占比不小,选型时要和底盘结构、悬挂设计一起考虑。我见过有队伍为了追求续航,塞了一块8000mAh的大电池,结果整车重心偏高,过弯时侧倾严重,反而影响了比赛表现。
注意:电池的C值标注有“持续放电”和“瞬时放电”之分。有些厂家标的是瞬时值,实际持续放电能力要打折扣。选型时以持续放电值为准,不要被瞬时值迷惑。
2.3 分电板的设计逻辑:为什么不能把所有设备并联在一起
分电板的作用是把电池的输出分配到各个子系统,同时提供过流保护和电压转换。很多新手会问:为什么不直接把所有设备的电源线拧在一起接到电池上?答案有两个:一是不同设备需要不同的电压,二是大功率设备产生的干扰会通过共用电源线传导到敏感设备。
一个典型的分电板设计包含以下几路输出:
| 输出路 | 目标设备 | 电压 | 最大电流 | 保护措施 |
|---|---|---|---|---|
| 主电源 | 底盘电机电调 | 22.2V直出 | 100A以上 | 大电流保险丝 |
| 云台电源 | 云台电机电调 | 22.2V直出 | 30A | 独立保险丝 |
| 控制电源 | 主控、传感器 | 5V/12V稳压 | 5A | 稳压模块+过流保护 |
| 图传电源 | 图传模块 | 12V稳压 | 3A | 独立稳压+滤波 |
| 裁判系统 | 裁判系统主控 | 12V稳压 | 2A | 独立稳压 |
从表中可以看出,底盘电机和云台电机走的是电池直出,因为它们需要大电流和宽电压范围。而主控、传感器、图传这些设备对电压精度要求高,必须经过稳压模块。更重要的是,每一路都有独立的保险丝或过流保护,这样即使某一路短路,也不会影响其他路的正常工作。
我在实际调试中遇到过这样一个案例:某次测试时,底盘电机的一根相线绝缘层磨损,对车架短路。由于底盘电机这一路有独立保险丝,保险丝瞬间熔断,底盘失去动力,但主控、云台和图传都正常工作,遥控器还能控制云台转动。如果当初把所有设备并联在一起,这次短路会直接导致整车断电,甚至可能烧毁电池。
2.4 稳压模块的选型与噪声抑制
稳压模块的选择是电源设计中另一个容易踩坑的地方。常见的稳压方案有两种:线性稳压器(LDO)和开关电源(DC-DC)。LDO的优点是输出噪声低、电路简单,缺点是效率低、发热大,适合给小电流的模拟传感器供电。DC-DC的效率高、发热小,但开关频率会产生高频噪声,需要额外的滤波措施。
对于主控和数字传感器,我通常推荐使用DC-DC降压模块,输出5V或12V。选型时要注意几个参数:输入电压范围要覆盖电池的满电电压(6S电池满电是25.2V),输出电流要留出至少50%的余量,开关频率最好在500kHz以上(频率越高,滤波电容可以越小)。
噪声抑制方面,每个稳压模块的输入端和输出端都要加滤波电容。输入端加一个100μF的电解电容和一个0.1μF的陶瓷电容,输出端同样配置。如果对噪声特别敏感(比如给陀螺仪供电),可以在稳压模块后面再加一级LC滤波。我试过在陀螺仪供电线上串一个磁珠,配合一个10μF的钽电容,效果很明显,陀螺仪的零漂从原来的±0.5°/s降到了±0.1°/s。
3. 电机与电调:动力系统的匹配与调校
3.1 底盘电机选型:转速、扭矩与减速比的权衡
底盘电机是机器人动力的来源,选型的核心是在转速、扭矩和响应速度之间找到平衡。Robomaster比赛中常用的底盘电机是直流无刷电机,配合减速箱使用。选型时主要看三个参数:额定电压、空载转速和减速比。
空载转速决定了机器人的理论最大速度。假设电机空载转速是5000rpm,减速比是19:1,轮子直径是80mm,那么轮子的最大转速是5000/19 ≈ 263rpm,对应的线速度是263 × π × 0.08 / 60 ≈ 1.1m/s。这个速度在赛场上属于中等水平,既不会太慢被对手压制,也不会太快导致控制困难。
减速比的选择需要权衡。减速比大,扭矩大,加速快,但最高速度低;减速比小,最高速度高,但扭矩小,加速慢。我个人的经验是,对于标准步兵机器人,减速比在15:1到20:1之间比较合适。如果底盘设计较重,可以选大一点的减速比;如果追求高速机动,可以选小一点的减速比,但要注意电机和电调的电流承受能力。
还有一个容易被忽略的参数是电机的KV值。KV值表示每伏特电压对应的空载转速(rpm/V)。比如一个KV值为100的电机,在22.2V电压下,空载转速是2220rpm。KV值越低,扭矩越大,适合直驱或小减速比;KV值越高,转速越快,适合大减速比。选型时要根据减速比和轮径反推需要的KV值,不要盲目追求高KV。
3.2 电调的作用与选型要点
电调(电子调速器)的作用是接收主控的PWM信号,控制电机的转速和方向。选型时主要看三个指标:持续电流、峰值电流和响应频率。
持续电流要覆盖电机的额定工作电流,峰值电流要覆盖电机堵转或急加速时的瞬时电流。一般来说,电调的持续电流至少要是电机额定电流的1.5倍,峰值电流至少是2倍。比如电机额定电流是10A,堵转电流是30A,那么电调至少要选持续15A、峰值30A以上的型号。
响应频率决定了电调对PWM信号变化的响应速度。Robomaster比赛中常用的PWM频率是50Hz到400Hz。频率越高,响应越快,但对电调的处理能力要求也越高。我通常建议用200Hz到300Hz,这个范围既能保证响应速度,又不会给电调带来太大负担。
还有一个细节是电调的固件。不同厂家的电调固件在启动方式、刹车行为和保护策略上有所不同。有些电调支持“双向”模式(正反转),有些只支持“单向”模式(只正转,反转靠换相)。底盘电机需要双向模式,云台电机通常也是双向模式。选型时要确认电调支持你需要的模式。
3.3 电机与电调的连接:相线、霍尔线与信号线
电机和电调的连接有三组线:相线、霍尔线和信号线。相线是三根粗线,负责传输驱动电流;霍尔线是五根细线,负责传输转子位置信息;信号线是电调与主控之间的通信线。
相线的连接顺序很重要。如果相线接错,电机会反转或者抖动。正确的做法是:先随便接上三根相线,给一个低速信号,观察电机转向。如果转向不对,交换任意两根相线即可。注意不要在通电状态下插拔相线,否则可能产生电弧,损坏接头。
霍尔线的连接顺序同样重要。霍尔线提供了转子的位置信息,如果接错,电调无法正确换相,电机会抖动或无法启动。霍尔线的标准顺序是VCC、GND、H1、H2、H3,但不同厂家的线序可能不同。连接前一定要看电调和电机的说明书,确认线序匹配。如果说明书丢了,可以用万用表测量霍尔线的电压:VCC和GND之间应该是5V,H1、H2、H3对GND的电压应该随转子转动在0V和5V之间跳变。
信号线通常是三根线:信号、正极、负极。信号线传输PWM信号,正极和负极给电调内部的逻辑电路供电。有些电调支持BEC输出,可以给主控供电,但我不建议这样做,因为电调的BEC输出电流有限,而且噪声较大,容易影响主控稳定性。
3.4 电机参数辨识:从理论到实测的校准
电机的理论参数(KV值、内阻、电感)和实际参数往往有偏差,尤其是批量生产的电机。为了让控制算法更精准,建议对电机进行参数辨识。
辨识KV值的方法很简单:给电机一个已知的PWM占空比,测量电机的空载转速,然后计算KV值。比如给50%占空比(对应11.1V),测得空载转速为1100rpm,那么KV值约为1100/11.1 ≈ 99。
辨识内阻的方法稍微复杂一些:给电机堵转,逐渐增加PWM占空比,测量电流和电压,绘制伏安特性曲线,斜率就是内阻。注意堵转时间不能太长,否则电机会过热。
辨识电感需要用到LCR表或者专门的电机参数测试仪。如果没有这些设备,可以根据电机的额定参数估算,或者直接使用厂家提供的参数。对于大多数应用场景,KV值和内阻的实测校准已经足够。
4. 主控与通信:机器人的神经中枢
4.1 主控选型的核心考量:算力、接口与生态
主控是机器人的大脑,负责运行控制算法、处理传感器数据、与遥控器和裁判系统通信。选型时主要看三个方面:算力、接口和生态。
算力决定了主控能跑多复杂的算法。对于Robomaster比赛,主控需要运行PID控制、姿态解算、通信协议解析等任务。常用的主控包括STM32系列、ESP32系列和树莓派等。STM32F4或F7系列是主流选择,算力足够,外设丰富,生态成熟。如果要做视觉处理,可能需要额外的计算单元,比如树莓派或Jetson Nano。
接口方面,主控需要至少4路PWM输出(控制底盘电机)、4路PWM输出(控制云台电机)、2路UART(连接遥控器和裁判系统)、1路SPI或I2C(连接陀螺仪)、若干GPIO(连接传感器和指示灯)。选型时要确认主控的引脚数量和复用功能是否满足需求。
生态方面,STM32的HAL库和LL库都很成熟,社区资源丰富,遇到问题容易找到解决方案。ESP32的WiFi和蓝牙功能强大,适合需要无线通信的场景。树莓派的Linux环境适合跑高级算法,但实时性不如单片机。我个人的建议是:底盘和云台控制用STM32,视觉处理用树莓派或Jetson,两者通过UART或SPI通信。
4.2 通信链路:遥控器、裁判系统与上位机
机器人需要与外界通信,主要包括三个链路:遥控器链路、裁判系统链路和上位机链路。
遥控器链路通常使用SBUS或DBUS协议,通过UART传输。SBUS的波特率是100000,数据格式是25字节一帧,包含16个通道的控制量。DBUS的波特率是115200,数据格式是18字节一帧,包含4个通道的控制量。主控需要解析这些数据,映射到电机的控制量上。
裁判系统链路使用UART或CAN,传输比赛状态、血量、弹药等信息。裁判系统的协议是公开的,但不同年份的规则可能有变化,需要根据当年的规则文档调整解析代码。
上位机链路用于调试和参数整定。常用的方式是通过UART转USB模块,连接到电脑上的调试软件。调试软件可以实时显示传感器数据、电机状态和控制量,方便定位问题。我通常会在主控代码里预留一个调试串口,输出关键变量的值,调试时用串口助手查看。
4.3 陀螺仪与姿态解算:从原始数据到欧拉角
陀螺仪是机器人感知自身姿态的核心传感器。常用的陀螺仪包括MPU6050、BMI088、ICM20602等。这些传感器输出三轴加速度和三轴角速度的原始数据,需要经过姿态解算才能得到欧拉角(俯仰角、横滚角、偏航角)。
姿态解算的常用算法有互补滤波、卡尔曼滤波和Mahony滤波。互补滤波简单易懂,适合入门;卡尔曼滤波精度高,但计算量大;Mahony滤波在两者之间,适合大多数应用场景。
我在实际调试中发现,陀螺仪的安装位置和减震处理对姿态解算的精度影响很大。陀螺仪应该尽量安装在机器人的重心附近,并且用减震胶垫隔离底盘的振动。如果陀螺仪直接固定在车架上,底盘电机的振动会传导到陀螺仪,导致姿态解算出现高频抖动。我试过用3M减震胶垫加配重块的方式,效果很明显,俯仰角的抖动幅度从±2°降到了±0.3°。
4.4 线束与接口规范:可靠性从细节开始
线束和接口是硬件系统中最容易被忽视的部分,但也是故障率最高的部分。比赛中因为线束松动或接触不良导致的故障,比因为代码bug导致的故障多得多。
线束设计有几个原则:第一,所有连接器都要有防呆设计,避免插反;第二,所有线束都要有固定点,避免振动导致松动;第三,电源线和信号线要分开走线,避免干扰;第四,关键信号线要加屏蔽层或双绞线。
接口方面,我推荐使用带锁扣的连接器,比如XT30、XT60、JST-SM等。这些连接器插拔方便,锁扣可靠,不容易因为振动而松脱。杜邦线虽然方便,但接触电阻大,振动环境下容易松动,不建议用于关键信号。
还有一个细节是线束的颜色编码。我习惯用红色表示电源正极,黑色表示电源负极,黄色表示信号线,绿色表示地线。这样在排查故障时,一眼就能看出每根线的作用,不用翻图纸。
5. 调试与排错:从“跑不起来”到“跑得稳”
5.1 上电前的静态检查:避免“一上电就冒烟”
很多新手拿到硬件后,第一件事就是上电看能不能跑。这个习惯很危险,尤其是第一次上电的时候。正确的做法是先做静态检查,确认没有短路和接反,再上电。
静态检查的步骤:第一,用万用表的蜂鸣档测量电源正负极之间的电阻,确认没有短路;第二,检查所有连接器的插接方向,确认没有插反;第三,检查所有线束的固定情况,确认没有松动;第四,检查电机的相线之间、相线与地之间没有短路。
我见过一个案例:某队员第一次上电时,电池的正负极接反了,结果分电板上的稳压模块瞬间烧毁,连带主控和陀螺仪也一起报废。如果上电前用万用表测一下,这个损失完全可以避免。
5.2 分步上电与逐级排查
静态检查通过后,也不要一次性给所有设备上电。正确的做法是分步上电,逐级排查。
第一步,只给主控和传感器上电,确认主控能正常启动,传感器能正常读取数据。第二步,给云台电机上电,确认云台能正常转动,方向正确。第三步,给底盘电机上电,确认底盘能正常转动,方向正确。第四步,给图传和裁判系统上电,确认通信正常。
每一步都要观察电流表的读数。如果某一步的电流明显偏大,说明这一路有问题,需要立即断电排查。我通常会在分电板的每一路输出上串一个电流表,这样上电时能直观地看到每一路的电流消耗。
5.3 常见故障与排查思路
调试过程中最常见的故障有以下几类:
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 主控频繁重启 | 电源电压跌落、稳压模块过流 | 用示波器观察主控供电电压,检查稳压模块的电流余量 |
| 电机抖动不转 | 相线接错、霍尔线接错、电调参数不对 | 检查相线和霍尔线的连接,重新校准电调 |
| 陀螺仪数据漂移 | 振动过大、供电噪声、安装位置不当 | 加减震措施,检查供电滤波,调整安装位置 |
| 遥控器信号丢失 | 接收机供电不足、天线遮挡、同频干扰 | 检查接收机供电,调整天线位置,更换频段 |
| 图传画面卡顿 | 电源噪声、信号干扰、带宽不足 | 给图传单独供电,加滤波电容,调整信道 |
排查故障的核心思路是“分段隔离”:把系统分成几个独立的模块,逐个测试,找到出问题的模块后再深入排查。不要一上来就怀疑代码,硬件故障的概率往往更高。
5.4 实战中的经验教训
最后分享几个我在实战中总结的经验教训。
第一个教训是关于接插件的。有一次比赛前,我们测试时一切正常,但正式比赛时机器人突然不动了。排查了半天,发现是底盘电机的一个XT30接头因为振动松脱了。从那以后,我要求所有接头都要用热熔胶或扎带固定,关键接头还要用螺丝锁紧。
第二个教训是关于备件的。比赛现场环境复杂,硬件故障难以完全避免。我建议至少准备一套完整的备件,包括主控、电调、电机、陀螺仪、稳压模块和常用线束。备件不要放在同一个箱子里,要分开放,避免一个箱子丢了全部备件都没了。
第三个教训是关于调试记录的。每次调试都要记录参数和现象,尤其是出现异常的时候。我习惯用一个笔记本记录每次调试的日期、参数、现象和解决方案。这样下次遇到类似问题时,可以快速查阅,不用从头排查。
第四个教训是关于团队协作的。硬件组的成员之间要保持沟通,尤其是接口定义和线束颜色编码要统一。我见过因为两个队员用了不同的线束颜色编码,导致调试时接错线,烧毁了一个电调。后来我们制定了一份接口规范文档,所有队员都按照文档执行,类似的问题再也没有发生过。
硬件调试是一个需要耐心和细心的过程,没有捷径可走。但只要你按照规范的流程操作,遇到问题不慌,分段隔离,逐级排查,大部分问题都能在几分钟内定位。希望这份讲义能帮你少走一些弯路,把更多时间花在优化算法和提升性能上。