机器人中舵机应用原理毕业论文 下载本文

北京联合大学 毕业设计

C语言程序设计流程图如图15所示:

图15 C语言程序设计流程图

如果需要让舵机转动多个角度,就需要定义多个角度标识,修改定时时间并修改定时器高低位的初值。

当单片机系统控制多个舵机工作时,所使用的舵机工作周期均为20ms,那么用单片机定时器产生的多路PWM波的周期也相同,使用单片机的内部定时器产生脉冲计数,一般来说,舵机的正脉冲宽度小于周期的1/8,这样能够在一个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20ms的基准时间。第一次定时器中断T0按20ms的1/8配置初值,并配置输出I/O口,第一次T0定时中断响应后,将当前输出I/O口对应的引脚输出置高电平,配置该路输出正脉冲宽度,并启动第二次定时中断,输出I/O口指向下一个输出口。第二次定时器定时时间结束后,将当前输出引脚置低电平,配置此中断周期为20ms的1/8减去正脉冲时间,此路PWM信号在该周期中输出完毕,往复输出,在每次循环的第16次(2?8)中断实行关定时中断T0的操作,最后就可以实现八路舵机控制信号的输出。

本次设计只对单个舵机进行控制,多舵机的控制不涉及。 具体的程序设计见附件。

-21-

北京联合大学 毕业设计

5、舵机电路及控制方式的改进

5.1单片机开环控制舵机存在的问题

通过对舵机电路的检测研究可知,舵机内部电路中已经包含两个反馈环节,以满足控制转角的精度。但对于由单片机控制的对舵机系统来说,它只是一种开环控制,单片机给舵机控制信号,但舵机的输出并没有反馈到单片机,这种开环控制无法避免舵机实际转角与指令转角之间的偏差。

这种偏差会给机器人的工作精度带来一定的影响。比如机械手焊接机器人,这样的误差,就会使产品的可靠性降低,对人形机器人来说,这种误差可能导致机器人无法正常运动。

5.2单片机控制舵机的闭环设计

想要提高控制转角的精度,就需要加入检测装置实时检测舵机输出轴的转角位置情况,根据需要反馈给控制系统,与设定信息进行比较后,对舵机的输入脉宽进行调整,以保证舵机的转角精度符合预定的要求。

因此本次设计希望设计出一种舵机的闭环控制方式,用来实现其输出转角的精确控制。

通过对舵机电路的研究可知,舵机的转角是由直流电机带动齿轮组使输出轴转动到旋转角度的,也就是说直流电机的转动决定了舵机输出轴的转角位置,直流电机的转速与舵机输出轴存在特定的关系。

那么就可以考虑一种直流电机的闭环控制方式,用传感器检测直流电机速度的实际值并将其反馈给单片机。通过实际值与设定值的比较,得到转速误差值,如果误差为0,那么驱动电压恒定,如果存在误差,那么通过单片机调整驱动电路的驱动电压,直到实际值达到设定值为止。可以说一但电机速度到达了设定值,那么在各种不利因素的干扰下,也应该保持这个速度值不变。 控制系统如图16所示:

图16 直流电机速度反馈系统

-22-

北京联合大学 毕业设计

如果想用同样的方法实现舵机的闭环控制就存在一定的困难,因为在舵机电路中,直流电机的转速并没有直接作为舵机轴的输出。而是由直流电机通过减速齿轮,带动舵机轴输出,这就给舵机的闭环控制带来了一定的难度。因为最终的输出是舵机轴,但舵机轴的速度检测是很困难的,因为它只转动了一个很小的角度后就立即停止。

因此只能把检测对象放在舵机内部的直流电机上,把检测装置直接安装在直流电机的输出轴上,在检测出舵机内部电机速度的同时,还要把检测到的速度通过齿轮组的减速比换算成舵机输出轴的转动角度。把这个角度信号转换为脉宽信号返回给单片机,与输入脉宽信号进行比较。

具体的控制系统如图17所示:

图17 单片机控制舵机的闭环方案

5.2.1传感器测速装置的设计

设计系统中用轴编码器测量直流电机输出轴的速度,因为轴编码器可以产生直接对应于轴转速的脉冲序列。对应于轴的每一个微小转动,轴编码器都将改变其输出的电压(从低电平到高电平,或从高电平到低电平)。通过累计一秒内产生脉冲的数目便可得知轴的转速,编码器还可以根据速度的检测获知机器人行进的距离,本次设计只用来测速。

本设计用反射式光学编码器,因为其很容易制作。把一个黑白条纹相同的圆盘安装在电机轴上即可,将红外线发射二极管发射的光线照在码盘上,当码盘旋转时白色条纹将发出的红外光反射到光电三极管使其导通,而黑色则将发出的红外光吸收,使光电三极管截止,如此使光电三极管产生相应的输出脉冲序列。

码盘上的条纹越多,它旋转时在单位时间内产生的脉冲就越多。对速度反馈来说,高分辨率可以改善精度。适宜的分辨率对于实现电机反馈的快速响应是很重要的,这是因为一般的电机控制总是在固定的时间间隔内采集码盘的脉冲序列,电机每转输出的脉冲越多就越容易精确的确定电机转速。在低速时,高分辨率的码盘尤为重要。需要注意的是码盘表面务必平整。由于光电开关对码盘距离的远近很敏感,所以不平整

-23-

北京联合大学 毕业设计

的码盘将使光电开关产生异常的输出。

反射式光电开关做为测量电机转速的传感器,反射式光电开关由上面提到的两部分组成一个红外线发射二极管,一个光电三极管。这种发射式光电开关有四个脚,其中一对引脚用于二极管的供电,另外一对分别与光电三极管的集电极和发射极相连。

光电开关的外围驱动电路设计如图18:

图18 光电开关的外围驱动电路

R1采用较低阻值电阻,这使得电路的输出响应效果较好,但是也使电路的功耗有所增加,光电三极管的外围电路中,R3为10kΩ到2MΩ,采用较高阻值会获得较高的灵敏度,具体的取值应由所选的传感器来决定。

上述反射式光电开关的检测输出信号并不理想。随着码盘黑白条纹的切换,输出电压并非从0V快速的变化到5V(即从逻辑0到逻辑1),那么得到的脉冲就不容易识别。

因此需要改善光电开关的信号输出,本设计用施密特触发器来处理原始的输出。 施密特触发器是一种双阈值的特殊电压比较器,当输入电压超过上阈值时,触发器输出高电平,当输入电压低于下阈值时,输出低电平。当输入电压处于上下阈值之间时,触发器的状态不改变,这种触发器有一定的抗干扰能力。

-24-