舵机测试报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

舵机测试报告

经过这段时间对舵机的测试,我现在将测试舵机的一些成果和心得记录下来。以下未必是舵机可能出现的所有问题,但已经可以对实验室现有的舵机进行充分利用。

一、舵机的原理

控制信号由接受通道进入调制芯片,获得直流偏置电压。它内部含有一个基准电路,产生周期为20ms,宽度为1.5ms的基准电压,将获得的直流偏置电压与电位器的电压比较,获得电压输出。最后电压差的正负输出到电机驱动芯片,决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压为0,电机停止转动。

以180°角度舵机为例,舵机的控制需要制作20ms周期的时基脉冲,用以和舵机内部基准电压作比较,该脉冲的高电平部分一般为0.5ms到2.5ms范围内的角度控制脉冲部分。以1.5ms为0°标定,即0.5ms为-90°,1.0ms为-45°,1.5ms为0°,2ms为45°,2.5ms 为90°。但实际舵机大部分并非180°范围,这里使用180°范围是为了方便举例,建议实际使用时角度控制为0°范围正负60°内,即120°范围内使用舵机。

很多舵机的位置等级有1024个,如果舵机的有效角度范围为180°,其控制的角度精度可以达到180°/1024约为0.18°,即要求的脉宽控制精度为2000/1024us约2us。由于单片机采用定时器中断模拟PWM信号输出,单片机无法达到2us的控制精度,本报告采用

两种单片机,控制角度精度为别达到9°和0.9°,稍后会有介绍二、舵机控制PWM脉宽调制值的设定

设所选单片机的晶振频率为fosc,AT89S52单片机机的T=12/fosc,定时器中断采用方式2,8位自动重装定时器,定位100us 中断一次,初值等于100/T。在定时器中断服务程序中使用两个全局变量,一个变量控制高电平时间,一个变量控制低电平时间,两个变量的和为20*1000/100=200,控制PWM脉宽即控制这两个变量的值。

三、使用单片机控制舵机

选用AT89S52单片机,因为此款单片机应用较为广泛。当接好电路后,舵机可以正常工作,但是转动时存在一定的抖动问题,转动后舵机的旋叶总是产生轻微的晃动。预想可能是由于舵机控制的角度精度仅为9°,对于舵机内部参数的计算有很大影响。而且舵机也达不到预想的程度,转动控制范围很不理想。所以弃用此款单片机,改用工作频率更高的STC12C5A56S2单片机。

STC12C5A56S2单片机时钟周期=机器周期,比传统8051系列单片机快12倍,可以满足要求。但需要注意的是,STC12C5A56S2单片机由于全面兼容传统8051系列单片机,要使之工作在时钟周期=机器周期的工作状态下,需设置其中的特殊功能寄存器AUXR,其字节地址为8EH,详细说明参见此款单片机的使用手册。

根据此款单片机调整程序后,舵机控制的角度精度达到了0.9°,满足了使用要求,并留有一定裕度,根据具体需要,可使精度达到0.45°以内。

四、关于舵机抖动问题的分析及解决方法

①控制信号的驱动电流太小

分析:舵机空载时,其电流需求为20mA左右,带负载转动时,电流需求可达到上百mA,所以尽量不要使用单片机的IO口线直接驱动。解决方法:使用时,将IO口线接上拉电阻驱动,或采用三极管驱动,具体电路不在此做详细介绍。

②电源电压或容量不够

分析:当独立电源带多个舵机或电机时,容易使舵机产生抖动,工作状态不正常。

解决方法:尽量选用大容量电源,或使用多个电源分别对不同负载供电,这种问题发生时时常伴有第一种情况,所以采用三极管放大电流信号也是可取的,但需要注意,如采用多电源分别供电时,电源与单片机之间要共地。

③舵机脉宽变化太大太快,导致舵机跟不上脉宽变化

分析:一般舵机的速度大约在60°每200ms左右,所以要注意脉宽不要变化太快。

解决方法:在程序中,应使角度逐步变化,最好在启动后和停止前加入加减速程序,这样可以时舵机转动更加平稳,同时要在脉宽变化后采用必要且合理的延时。

五、做舵机测试后的一些心得

做整个舵机的测试做的很长时间,其中也发现了我自己身上的很多问题。主要是表现在两个方面,一是在执行力上有所欠缺,任务布

置下来很长时间才完成,即是在做东西时缺乏一步到底的精神,也是由于第一次独立完成问题,很多事情不是想想就可以做到,需要一步一步的去做,有的时候自己认为剩下的东西已经很简单很轻松了,三下两下就可以完成却没有继续将之完成,当过后在做的时候不但要重新理头绪接上前面的问题,还要在后面的任务中耽误很多时间,这样产生了接到任务却花费了很长时间才完成情况。二是以前学习的C 语言基础还需要继续深化,很多时候程序的整体逻辑明明没有问题,可是实际效果却完全没有显示出来。问题就是出在对于C语言的基本功掌握的还不扎实。对于这些问题,在今后的学习实践中我会认真改正,任务绝对不能拖拉,而且做东西不可以盲目,但一定要坚持,今天多做一点代表着会有更多的时间做下面的任务,代表着可以早点将整个任务完成。同时还要继续深化所学到的知识,所谓学无止境,永远不要以为得到点皮毛就是真正掌握了其中的精髓,无论在写程序还是在平时的生活中要时刻保持着严谨的态度,达到我所会我使用时就不会有问题的自信。

对于以后进入实验室的同学,我留下一些我对实验室测试与设计时出现问题的理解,问题分为硬件和软件两个方面。硬件方面要保证硬件连接的准确无误,在连接硬件时要小心谨慎,连接好电路后要详细检查后方可通电。软件方面要深化基本功,保证语句语法没有毛病,有时一些没注意到的小细节可能影响全局,可能要找很长时间才能找到问题所在,不必要的浪费了很多时间,对于C语言的基本定义必须做到万无一失。

以上这些就是我在做舵机测试时所得到的东西,希望对实验室的同学们能够有所帮助。

徐白璐

2011.3.23

相关文档
最新文档