单片机控制舵机思想

上传人:豆浆 文档编号:92188406 上传时间:2019-07-07 格式:DOC 页数:15 大小:110.52KB
返回 下载 相关 举报
单片机控制舵机思想_第1页
第1页 / 共15页
单片机控制舵机思想_第2页
第2页 / 共15页
单片机控制舵机思想_第3页
第3页 / 共15页
单片机控制舵机思想_第4页
第4页 / 共15页
单片机控制舵机思想_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机控制舵机思想》由会员分享,可在线阅读,更多相关《单片机控制舵机思想(15页珍藏版)》请在金锄头文库上搜索。

1、在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。图1舵机的控制要求舵机的控制信

2、号是PWM信号,利用占空比的变化改变舵机的位置。一般舵机的控制要求如图1所示。单片机实现舵机转角控制可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。5mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,

3、从而提高舵机的转角精度。单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。具体的设计

4、过程:例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。为保证软件在定时中断里采集其他信号,并且使发生PWM信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来

5、的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20ms。软件流程如图2所示。如图2 产生PWM信号的软件流程如果系统中需要控制几个舵机的准确转动,可以用单片机和计数器进行脉冲计数产生PWM信号。脉冲计数可以利用51单片机的内部计数器来实现,但是从软件系统的稳定性和程序结构的合理性看,宜使用外部的计数器,还可以提高CPU的工作效率。这个比较简单吧,驱动普通舵机只要一个口线直接接舵机信号线就行了。软件上可以用“分时复用比较法(我自己想的名字)”来做。简单来说就是:设置一个定时器让它按舵机最小分辨率的周期来溢出,溢出后让某个寄存器从

6、1开始到最大值不断重复,这个最大值不一定是0FFH,可以根据自己的需要设。每次定时器溢出的时候进入中断,寄存器加1后和每个舵机的预设值进行比较,判断是否改变高电平的宽度。这个比较一般只能处理不多的几路(要保证在下个定时器中断前完成比较)。因为舵机信号的脉宽最大只有2.5MS,在处理这几路舵机的时候把其它的舵机信号都拉低。当处理完这几路的时候,也就是定时器从1到最大值完成一次后,(这时候前面处理过的几路应该都是低电平了)把下次需要处理的几路都拉高。然后再比较这几路该什么时候拉低,依次循环,直到总时间达到20MS,再回过头来处理刚开始处理的几路。 本文下载地址:http:/ 0.5ms-0度; 1

7、.0ms-45度; 1.5ms-90度; 2.0ms-135度; 2.5ms-180度;请看下形象描述吧:这只是一种参考数值,具体的参数,请参见舵机的技术参数。小型舵机的工作电压一般为4.8V或6V,转速也不是很快,一般为0.22/60度或0.18/60度,所以假如你更改角度控制脉冲的宽度太快时,舵机可能反应不过来。如果需要更快速的反应,就需要更高的转速了。要精确的控制舵机,其实没有那么容易,很多舵机的位置等级有1024个,那么,如果舵机的有效角度范围为180度的话,其控制的角度精度是可以达到180/1024度约0.18度了,从时间上看其实要求的脉宽控制精度为2000/1024us约2us。如

8、果你拿了个舵机,连控制精度为1度都达不到的话,而且还看到舵机在发抖。在这种情况下,只要舵机的电压没有抖动,那抖动的就是你的控制脉冲了。而这个脉冲为什么会抖动呢?当然和你选用的脉冲发生器有关了。一些前辈喜欢用555来调舵机的驱动脉冲,如果只是控制几个点位置伺服好像是可以这么做的,可以多用几个开关引些电阻出来调占空比,这么做简单吗,应该不会啦,调试应该是非常麻烦而且运行也不一定可靠的。其实主要还是他那个年代,单片机这东西不流行呀,哪里会哟!使用传统单片机控制舵机的方案也有很多,多是利用定时器和中断的方式来完成控制的,这样的方式控制1个舵机还是相当有效的,但是随着舵机数量的增加,也许控制起来就没有那

9、么方便而且可以达到约2微秒的脉宽控制精度了。听说AVR也有控制32个舵机的试验板,不过精度能不能达到2微秒可能还是要泰克才知道了。其实测试起来很简单,你只需要将其控制信号与示波器连接,然后让试验板输出的舵机控制信号以2微秒的宽度递增。为什么FPPA就可以很方便地将脉宽的精度精确地控制在2微秒甚至2微秒一下呢。主要还是 delay memory这样的具有创造性的指令发挥了功效。该指令的延时时间为数据单元中的立即数的值加1个指令周期(数据0出外,详情请参见delay指令使用注意事项)因为是8位的数据存储单元,所以memory中的数据为(0255),记得前面有提过,舵机的角度级数一般为1024级,所

10、以只用一个存储空间来存储延时参数好像还不够用的,所以我们可以采用2个内存单元来存放舵机的角度伺服参数了。所以这样一来,我们可以采用这样舵机驱动的应用场合: 1. 高档遥控仿真车,至少得包括左转和右转功能,高精度的角度控制,必然给你最真实的驾车体验. 2. 多自由度机器人设计,为什么日本人设计的机器人可以上万RMB的出售,而国内设计的一些两三千块也卖不出去呢,还是一个品质的问题. 3. 多路伺服航模控制,电动遥控飞机,油动遥控飞机,航海模型等传统舵机、数字舵机与纯数字舵机 传统舵机的控制方式以20ms 为一个周期,用一个1.5ms0.5ms 的脉冲来控制舵机的角度变化,随着以CPU 为主的数字革

11、命的兴起,现在的舵机已成为模拟舵机和数字舵机并存的局面,但即使是现在的数字舵机,其控制接口也还是传统的1.5ms0.5ms 的模拟控制接口,只是控制芯片不再是普通的模拟芯片而已;不能完全发挥现代数字化控制的优势,这在传统的遥控竞赛等领域,为了保持产品的兼容性,不得不保留模拟接口,而在一些新兴的领域完全可以采用新型的全数字接口的纯数字舵机。纯数字舵机采用全新的单线双工通讯协议,不仅能执行普通舵机的全部功能,还可以作为一个角度传感器,监测舵机的实际位置,而且可以多个舵机并联互不影响。在未来的自动化控制领域有着不可估量的优势。采用纯数字舵机构建的自动化控制系统,不仅可以大幅提升系统性能,而且可以降低

12、系统的生产维护成本,提高产品性价比,增强市场竞争力。简单认识数码舵机 一个数十元的伺服器与数百元的伺服器在外表上并没有多大的分别,但是数码化舵机比上一代传统的普通舵机有更快的反应、更精确以及更为紧凑的效率。为何数码是较佳的? 一个数码化的舵机内置了微型的处理器,这正是数码舵机优点所在。这个微型处理器可以因应所接收的讯号而作出指令,至於传统的舵机则经常只是检查自己的位置是否正确并作出更正。传统的舵机将指令的动作传至输出轴,指令是来自接收器的脉冲,每秒每秒中约有四十至五十次的调整。但是数码化舵机的输出轴每秒约有三百次的调整,足足较传统的伺服器,快了六倍之多这也表示了数码舵机调整输出轴的位置较传统的

13、达六倍之多,所以它肯定是较传统的舵机有更快的反应。这个快速的更正也可以让你感觉到舵机是较为“强”的、如果你尝试去扭动已启动的数码舵机输出臂离开指令位置的话的话,你会发觉它有更强的能力去保持原来的位置,这也是由於舵机非常迅速地为输出轴的位置作出更正调节。这正适合模型需要强大的回中能力。传统的舵机要在偏离原来指定的位置较远才能发挥较大的扭力,相反地,数码舵机的输出轴只要略略偏离指令的位置便能够发挥最大的扭力,所以它能够提供较大的动力以及更为精确。当你启动了数码舵机之後,它会发觉他不断发出齿轮的声音,这表示了它正在努力地去将输出轴维持在命令的位置。数码舵机不能与普通舵机混合使用 在更换舵机的时候请注意,如果你的直升机或飞机使用的是普通舵机,那么在更换其中某个舵机的时候,不能将普通舵机与数码舵机混合使用.要么全部使用普通舵机,要么全部使用数码舵机。数码舵机的简介一个数十元的伺服器与数百元的伺服器在外表上并没有多大的分别,但是数码化舵机比上一代传统的普通舵机有更快的反应、更精确以及更为紧凑的效率。为何数码是较佳的? 一个数码化的舵机内置了微型的处理器,这正是数码舵机优

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号