单片机控制舵机思想_精品文档.doc

上传人:b****2 文档编号:1200337 上传时间:2022-10-18 格式:DOC 页数:15 大小:128KB
下载 相关 举报
单片机控制舵机思想_精品文档.doc_第1页
第1页 / 共15页
单片机控制舵机思想_精品文档.doc_第2页
第2页 / 共15页
单片机控制舵机思想_精品文档.doc_第3页
第3页 / 共15页
单片机控制舵机思想_精品文档.doc_第4页
第4页 / 共15页
单片机控制舵机思想_精品文档.doc_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机控制舵机思想_精品文档.doc

《单片机控制舵机思想_精品文档.doc》由会员分享,可在线阅读,更多相关《单片机控制舵机思想_精品文档.doc(15页珍藏版)》请在冰豆网上搜索。

单片机控制舵机思想_精品文档.doc

 在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

  舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

其工作原理是:

控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

  图1 舵机的控制要求

  舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。

一般舵机的控制要求如图1所示。

  单片机实现舵机转角控制

  可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。

对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。

5mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。

  也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。

单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。

 单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:

首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。

  当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断。

这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。

  具体的设计过程:

例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。

用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。

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

软件流程如图2所示。

  如图2产生PWM信号的软件流程

  如果系统中需要控制几个舵机的准确转动,可以用单片机和计数器进行脉冲计数产生PWM信号。

  脉冲计数可以利用51单片机的内部计数器来实现,但是从软件系统的稳定性和程序结构的合理性看,宜使用外部的计数器,还可以提高CPU的工作效率。

这个比较简单吧,驱动普通舵机只要一个口线直接接舵机信号线就行了。

软件上可以用“分时复用比较法(我自己想的名字)”来做。

简单来说就是:

设置一个定时器让它按舵机最小分辨率的周期来溢出,

溢出后让某个寄存器从1开始到最大值不断重复,这个最大值不一定是0FFH,

可以根据自己的需要设。

每次定时器溢出的时候进入中断,

寄存器加1后和每个舵机的预设值进行比较,判断是否改变高电平的宽度。

这个比较一般只能处理不多的几路(要保证在下个定时器中断前完成比较)。

因为舵机信号的脉宽最大只有2.5MS,

在处理这几路舵机的时候把其它的舵机信号都拉低。

当处理完这几路的时候,

也就是定时器从1到最大值完成一次后,

(这时候前面处理过的几路应该都是低电平了)

把下次需要处理的几路都拉高。

然后再比较这几路该什么时候拉低,

依次循环,直到总时间达到20MS,再回过头来处理刚开始处理的几路。

本文下载地址:

在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。

舵机是一种俗称,其实是一种伺服马达。

其工作原理是:

控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。

就象我们使用晶体管一样,知道可以拿它来做开关管或放大管就行了,至于管内的电子具体怎么流动是可以完全不用去考虑的。

3.     舵机的控制:

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。

以180度角度伺服为例,那么对应的控制关系是这样的:

   0.5ms--------------0度;

   1.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。

如果你拿了个舵机,连控制精度为1度都达不到的话,而且还看到舵机在发抖。

在这种情况下,只要舵机的电压没有抖动,那抖动的就是你的控制脉冲了。

而这个脉冲为什么会抖动呢?

当然和你选用的脉冲发生器有关了。

一些前辈喜欢用555来调舵机的驱动脉冲,如果只是控制几个点位置伺服好像是可以这么做的,可以多用几个开关引些电阻出来调占空比,这么做简单吗,应该不会啦,调试应该是非常麻烦而且运行也不一定可靠的。

其实主要还是他那个年代,单片机这东西不流行呀,哪里会哟!

使用传统单片机控制舵机的方案也有很多,多是利用定时器和中断的方式来完成控制的,这样的方式控制1个舵机还是相当有效的,但是随着舵机数量的增加,也许控制起来就没有那么方便而且可以达到约2微秒的脉宽控制精度了。

听说AVR也有控制32个舵机的试验板,不过精度能不能达到2微秒可能还是要泰克才知道了。

其实测试起来很简单,你只需要将其控制信号与示波器连接,然后让试验板输出的舵机控制信号以2微秒的宽度递增。

为什么FPPA就可以很方便地将脉宽的精度精确地控制在2微秒甚至2微秒一下呢。

主要还是delaymemory这样的具有创造性的指令发挥了功效。

该指令的延时时间为数据单元中的立即数的值加1个指令周期(数据0出外,详情请参见delay指令使用注意事项)因为是8位的数据存储单元,所以memory中的数据为(0~255),记得前面有提过,舵机的角度级数一般为1024级,所以只用一个存储空间来存储延时参数好像还不够用的,所以我们可以采用2个内存单元来存放舵机的角度伺服参数了。

所以这样一来,我们可以采用这样

舵机驱动的应用场合:

        1.   高档遥控仿真车,至少得包括左转和右转功能,高精度的角度控制,必然给你最真实的驾车体验.

        2.   多自由度机器人设计,为什么日本人设计的机器人可以上万RMB的出售,而国内设计的一些两三千块也卖不出去呢,还是一个品质的问题.

        3.   多路伺服航模控制,电动遥控飞机,油动遥控飞机,航海模型等

 

 

传统舵机、数字舵机与纯数字舵机

 

   传统舵机的控制方式以20ms为一个周期,用一个1.5ms±0.5ms的脉冲来控制舵机的角度变化,随着以CPU为主的数字革命的兴起,现在的舵机已成为模拟舵机和数字舵机并存的局面,但即使是现在的数字舵机,其控制接口也还是传统的1.5ms±0.5ms的模拟控制接口,只是控制芯片不再是普通的模拟芯片而已;不能完全发挥现代数字化控制的优势,这在传统的遥控竞赛等领域,为了保持产品的兼容性,不得不保留模拟接口,而在一些新兴的领域完全可以采用新型的全数字接口的纯数字舵机。

纯数字舵机采用全新的单线双工通讯协议,不仅能执行普通舵机的全部功能,还可以作为一个角度传感器,监测舵机的实际位置,而且可以多个舵机并联互不影响。

在未来的自动化控制领域有着不可估量的优势。

采用纯数字舵机构建的自动化控制系统,不仅可以大幅提升系统性能,而且可以降低系统的生产维护成本,提高产品性价比,增强市场竞争力。

 

简单认识数码舵机

 

       一个数十元的伺服器与数百元的伺服器在外表上并没有多大的分别,但是数码化舵机比上一代传统的普通舵机有更快的反应、更精确以及更为紧凑的效率。

  为何数码是较佳的?

   一个数码化的舵机内置了微型的处理器,这正是数码舵机优点所在。

这个微型处理器可以因应所接收的讯号而作出指令,至於传统的舵机则经常只是检查自己的位置是否正确并作出更正。

传统的舵机将指令的动作传至输出轴,指令是来自接收器的脉冲,每秒每秒中约有四十至五十次的调整。

但是数码化舵机的输出轴每秒约有三百次的调整,足足较传统的伺服器,快了六倍之多·这也表示了数码舵机调整输出轴的位置较传统的达六倍之多,所以它肯定是较传统的舵机有更快的反应。

这个快速的更正也可以让你感觉到舵机是较为“强”的、如果你尝试去扭动已启动的数码舵机输出臂离开指令位置的话的话,你会发觉它有更强的能力去保持原来的位置,这也是由於舵机非常迅速地为输出轴的位置作出更正调节。

这正适合模型需要强大的回中能力。

传统的舵机要在偏离原来指定的位置较远才能发挥较大的扭力,相反地,数码舵机的输出轴只要略略偏离指令的位置便能够发挥最大的扭力,所以它能够提供较大的动力以及更为精确。

当你启动了数码舵机之後,它会发觉他不断发出齿轮的声音,这表示了它正在努力地去将输出轴维持在命令的位置。

数码舵机不能与普通舵机混合使用

       在更换舵机的时候请注意,如果你的直升机或飞机使用的是普通舵机,那么在更换其中某个舵机的时候,不能将普通舵机与数码舵机混合使用.要么全部使用普通舵机,要么全部使用数码舵机。

数码舵机的简介

  一个数十元的伺服器与数百元的伺服器在外表上并没有多大的分别,但是数码化舵机比上一代传统的普通舵机有更快的反应、更精确以及更为紧凑的效率。

  为何数码是较佳的?

   一个数码化的舵机内置了微型的处理器,这正是数码舵机优

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1