科创科普:机器人是怎么「走」起来的?——直流电机、舵机、齿轮减速与轮式底盘
一、先认清:让机器人动起来靠「三件套」
很多同学第一次搭好小车,按下开关发现轮子不转,第一反应是"零件坏了"。其实绝大多数情况不是坏了,而是三件套里有一环没接上:电源(电池供电)、控制器(主板、单片机,负责下命令)、执行器(电机,负责动作)。电源提供能量,控制器决定"什么时候动、动多快、动多久",执行器把电信号变成真实的转动。
理解了分工,排故就有顺序:先量电池电压是否够;再看控制器的指示灯亮不亮、程序是不是真的在运行;接着检查电机线插头有没有插反、插松;最后才怀疑电机本体。按这个顺序排查,绝大多数"不转"的问题在两分钟内就能定位。
二、直流电机与舵机:一个比「速度」,一个比「角度」
直流电机(DC motor)便宜、常用、力气中等。给它通电它就转;把两根电源线对调,它就反着转;电压越高转得越快(在允许范围内)。它的特点是"转速好控、角度难控"——你没办法用普通直流电机精确地说"转90度然后停住"。
舵机(servo)内部自带减速齿轮、位置反馈电位器和控制电路,专门解决"转到指定角度"的问题。它有三根线:电源正、地、信号线。信号线上跑的是一串脉冲,脉冲的高电平持续时间决定目标角度:控制周期一般20毫秒,脉宽约0.5毫秒对应一端极限、1.5毫秒对应中位、2.5毫秒对应另一端极限。舵机扭矩比同体积直流电机大,但转动范围通常只有180度(也有可以连续旋转的版本)。
一句话记法:要"一直转、能调速",用直流电机;要"停在某个角度",用舵机。机械臂的关节、小车的转向轮用舵机;小车的驱动轮、传送带、风扇用直流电机。
三、齿轮减速:为什么小小电机能拖动笨重的机器人
电机转速很高,常见每分钟几千转甚至上万转,但力气小。齿轮组可以"用转速换力气":小齿轮带动大齿轮,转速按齿数比下降,扭矩按同样的比例上升。比如减速比1:50,转速降到原来的五十分之一,扭矩理论上升到50倍(实际会有摩擦损耗,略低一些)。所以小车的减速箱很关键:减速比越大,爬坡越有劲,但跑得越慢。
反过来,大齿轮带小齿轮是"加速",转速升、扭矩降,一般用不上。记住齿轮传动的两条规律:相邻齿轮转向相反;齿数比决定转速比和扭矩比。如果在两轮之间加一个"惰轮",它只改变转向,不改变传动比——这一点常考也常错。
四、让小车的两个轮子「一样快」:编码器与比例控制
两个电机总有一点差异,电池电压也会随电量变化,所以小车常常走偏。第一层解决靠硬件:用同批次的电机、同批次的轮子,把轮距调正,尽量把重心放低放中间。第二层解决靠软件:用编码器(装在电机轴上的"计步器")读两侧轮子各转了多少,比较差了多少,然后给落后的一侧多给一点占空比。这就是最朴素的比例控制:调节量=比例系数×(目标值-实际值)。系数太小纠正不过来,太大就会左右摇摆,需要反复试验找到平衡点。
案例:一辆总往右偏的小车
有位同学的小车直线跑两米会偏向右方约30厘米。第一步,他发现右侧轮子磨损更严重、直径偏小,换上一对同批新轮,偏差缩小到10厘米左右。第二步,他在程序里每20毫秒读一次两侧编码器里程,把差值乘0.8后叠加到左侧电机的速度上,偏差缩小到3厘米以内。第三步,把整体速度从60%降到45%,偏差进一步缩小。他的结论很值得记住:机械问题优先用机械解决,软件补偿只是锦上添花,不能拿算法去补硬件的漏。
练习
- 用一句话分别说出直流电机和舵机各自适合什么任务。
- 某齿轮组输入齿轮20齿、输出齿轮100齿,电机转速每分钟3000转,忽略损耗,输出转速大约是多少?减速比是多少?
- 你的小车总是往一边偏,请写出你的排查顺序(至少四步),并说明每一步想排除什么原因。