首页 理论教育舵机驱动正脉冲宽度与输出角度关系优化

舵机驱动正脉冲宽度与输出角度关系优化

【摘要】:表6-4特定周期下正脉冲宽度与输出角度关系舵机的瞬时运动速度是由其内部的直流电动机和变速齿轮组的配合决定的,在恒定的电压驱动下,其数值唯一。

舵机是一种俗称,其实是一种脉宽控制角度或速度的直流伺服电动机。舵机最早出现在航模运动中。在航空模型中,飞行器的飞行姿态是通过调节发动机和各个控制舵面来实现的,舵机因此得名。控制舵面的伺服电动机,不仅在航模飞机中,在其他的模型运动中都可以看到它的应用,船模上用来控制尾舵、车模中用来转向等。伺服电动机是自动装置中的执行元件,它的最大特点是可控。在有控制信号时,舵机就转动且转速大小正比于控制电压的大小,除去控制信号电压后,舵机就立即停止转动。小型舵机目前在各种航模(飞机模型、潜艇模型、汽车模型机器人模型等)中已经使用得比较普遍,也有工业应用的大型舵机。

1.舵机的工作原理

一般来说,舵机主要由以下几个部分组成:舵盘、减速齿轮组、位置反馈电位计、直流电动机、控制电路板等。舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机是一个典型闭环反馈系统,其工作原理如图6-69所示。

图6-69 舵机工作原理

减速齿轮组由电动机驱动,其输出端带动一个线性的比例电位器做位置检测,该电位器把转角坐标转换为一比例电压反馈给控制线路板,控制线路板将其与输入的控制脉冲信号比较,产生纠正脉冲并驱动电动机正向或反向转动,使齿轮组的输出位置与期望值相符,令纠正脉冲最终趋于零,从而达到使舵机精确定位的目的。

标准的舵机有三条控制线,分别为电源线、地线及控制线。舵机电源引线三条线中橙色(白线)的线是控制线,连在控制芯片上。红色的线是电源正极线,工作电压是5 V。黑色的是地线。电源线与地线用于提供内部的直流电动机及控制电路所需的能源,电压通常介于4~6 V,该电源应尽可能与处理系统的电源隔离(因为伺服电动机会产生噪声)。小舵机在重负载时也会拉低放大器的电压,所以整个系统电源供应的比例必须合理。

舵机的控制端需输入周期性的正向脉冲信号,这个周期性脉冲信号的高电平时间通常在1~2 ms,而低电平时间应在5~20 ms,并不是很严格。表6-4所示为一个典型的20 ms周期性脉冲的正脉冲宽度与微型伺服电动机输出臂在180°范围内转动时与输入脉冲的对应关系。

表6-4 特定周期下正脉冲宽度与输出角度关系

舵机的瞬时运动速度是由其内部的直流电动机和变速齿轮组的配合决定的,在恒定的电压驱动下,其数值唯一。但其平均运动速度可通过分段停顿的控制方式来改变,如我们可把动作幅度为90°的转动细分为128个停顿点,通过控制每个停顿点的时间长短来实现0°~90°变化的平均速度。对于多数舵机来说,速度的单位为“°/s”。

2.舵机的结构

舵机实物如图6-70所示。实际的舵机又有许多区别,如直流电动机就有有刷和无刷之分,齿轮有塑料和金属之分,输出轴有滑动和滚动之分,速度有快速和慢速之分,等等,组合不同,价格也千差万别。例如,其中小型舵机一般称作微舵,同种材料的条件下价格是中型舵机的一倍多,金属齿轮价格是塑料齿轮的一倍多,需要根据需要选用不同类型。常见的舵机厂家有日本的Futala、JR、SANWA等公司,国产的有北京的新幻想、吉林的振华等公司。

图6-70 舵机实物

1—直流电动机;2—变速齿轮组;3—反馈电位器;4—控制电路板

3.使用舵机时的注意事项

普通的模拟舵机不是一个精确的定位器件,即使是使用同一品牌型号的舵机产品,它们之间的差别也是非常大的,在同一脉冲宽度驱动时,不同的舵机输出位置存在±10°的偏差也是正常的。

特别注意,绝不可加载让舵机输出位置超过±90°的脉冲信号,否则会损坏舵机的输出限位机构或齿轮组等机械部件。

由此可见,舵机具有以下一些特点:体积紧凑,便于安装;输出力矩大,稳定性好;控制简单,便于和数字系统接口

正是因为舵机有很多优点,所以现在不仅仅应用在航模运动中,而且已经扩展到各种机电产品中来,在机器人控制中应用也越来越广泛。

4.舵机的单片机控制

单片机系统实现对舵机输出转角的控制,首先必须完成两个任务:一是产生基本的PWM周期信号,二是脉宽的调整。用FPGA、模拟电路、单片机来产生舵机的控制信号,成本高且电路复杂。对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50 Hz(周期是20 ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。5 mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源盒其他器件的信号噪声都远大于5 mV,所以滤波电路的精度难以达到舵机的控制精度要求。

也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。当系统中只需要实现一个舵机的控制时,采用的控制方式是改变单片机的一个定时器中断的初值,将20 ms分为两次中断执行,一次短定时中断和一次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。

下面介绍具体的设计过程。例如,想让舵机转向左极限的角度,它的正脉冲为2 ms,则负脉冲为20-2=18(ms),所以开始时在控制口发送高电平,然后设置定时器在2 ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18 ms,再过18 ms进入下一次定时中断,将控制口改为高电平,并将定时器初值改为2 ms,等待下次中断到来,如此往复实现PWM信号输出到舵饥。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使舵机灵活运动。

为保证软件在定时中断里采集其他信号,并且使发生PWM信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,则有可能会发生中断程序还未结束,下次中断又到来的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20 ms。产生PWM信号的软件流程如图6-71所示。

如果系统中需要控制几个舵机的准确转动,可以用单片机和计数器进行脉冲计数产生PWM信号。脉冲计数可以利用51单片机的内部计数器来实现,但是从软件系统的稳定性和程序结构的合理性看,宜使用外部计数器,还可以提高CPU的工作效率。实验后从精度上考虑,对于FUTABA系列的接收机,当采用1 MHz的外部晶振时,其控制电压幅值的变化为0.6 mV,而且不会出现误差积累,可以满足控制舵机的要求。最后考虑数字系统的离散误差,经估算误差的范围在±0.3%内,所以采用单片机和8253、8254这样的计数器芯片的PWM信号产生电路是可靠的。基于8253产生PWM信号的程序主要包括三方面内容:一是定义8253寄存器的地址,二是控制字的写入,三是数据的写入。基于8253产生PWM信号的软件流程如图6-72所示。

图6-71 产生PWM信号的软件流程

图6-72 基于8253产生PWM信号的软件流程

当系统的主要工作任务就是控制多舵机的工作,并且使用的舵机工作周期均为20 ms时,要求硬件产生的多路PWM波的周期也相同。使用51单片机的内部定时器产生脉冲计数,一般工作正脉冲宽度小于周期的1/8,这样可以在1个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20ms的基准时间。

第1次定时器中断T0按20 ms的1/8设置初值,并设置输出I/O接口,第1次T0定时中断响应后,将当前输出I/O接口对应的引脚输出置高电平,设置该路输出正脉冲宽度,并启动第2次定时器中断,输出I/O接口指向下一个输出口。第2次定时器定时时间结束后,将当前输出引脚置低电平,设置此中断周期为20 ms的1/8减去正脉冲的时间,此路PWM信号在该周期中输出完毕,往复输出。在每次循环的第16次(2×8=16)中断实行关定时中断T0的操作,最后就可以实现8路舵机控制信号的输出,也可以采用外部计数器进行多路舵机的控制,但是因为常见的8253、8254芯片都只有3个计数器,所以当系统需要产生多路PWM信号时,使用上述方法可以减少电路,降低成本,也可以达到较高的精度。调试时注意到由于程序中脉冲宽度的调整是靠调整定时器的初值来实现的,中断程序也被分成了8个状态周期,并且需要严格的周期循环,而且运行其他中断程序代码的时间需要严格把握。

在实际应用中,采用51单片机就能简单方便地实现舵机控制需要的PWM信号。对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM占空比(0.5~2.5 ms的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。图6-73所示为PWM信号的计数和输出电路。

图6 -73 PWM信号的计数和输出电路