多自由度人形双足舞蹈机器人
——疯壳·机器人开发系列
多个舵机不同速率转动
1相关简介
本章将介绍两个舵机的不同速率转动原理以及代码实现,多个舵机不同速率的转动跟两个舵机的不同速率转动的原理基本一致。
首先要知道的一点就是我们的舵机速率是一定的,不可控制。我们要完成两个舵机不同速率的转动,是采用了一个积分算法。其实就是延时,从而降低一个或者多个舵机的转动速率。
我们先举个例子。假设 1 号舵机要从 0°转到 180°,同时 2 号舵机要从 0° 转到 90°。如果不做任何处理,那么当 1 号、2 号舵机同时转到 90°时,2 号舵机不转,1 号舵机继续转动到 180°。这样就会导致机器人难以完成许多动作。假设舵机直接从 0°转到 180°的时间是 t,那么 2 号舵机实际转动时间就是t/2,暂停时间是 t/2。如果我们将整个时间 t 分成 n 份,每次先让舵机转动 t/2n,然后再暂停 t/2n。当 n 足够大时,我们的舵机就可以按照以原来二分之一的角速度匀速转动,从而达到控制舵机的转速。
2硬件设计
本次将要控制机器人的两条腿,也就是 2、16 号舵机,对应的 IAP15W4K61S4 单片机管脚是 P15 和 P44,通过这两个 IO 口连接 74HC244 间接控制两个腿部舵机。
图 1
3软件设计