ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:64.38KB ,
资源ID:8868407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8868407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(详细的舵机控制原理资料.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

详细的舵机控制原理资料.docx

1、详细的舵机控制原理资料目录一舵机PWM信号介绍 11PWM信号的定义 12PWM信号控制精度制定 2二单舵机拖动及调速算法 31舵机为随动机构 3(1)HG14-M舵机的位置控制方法 3(2)HG14-M舵机的运动协议 42目标规划系统的特征 5(1)舵机的追随特性 5(2)舵机值测定 6(3)舵机值计算 6(4)采用双摆试验验证 63DAV的定义 74DIV的定义 75单舵机调速算法 8(1)舵机转动时的极限下降沿PWM脉宽 8三8舵机联动单周期PWM指令算法 101控制要求 102注意事项 1038路PWM信号发生算法解析 114N排序子程序RAM的制定 125N差子程序解析 136关于扫

2、尾问题 14(1)提出扫尾的概念 14(2)扫尾值的计算 14一舵机PWM信号介绍1PWM信号的定义PWM信号为脉宽调制信号,其特点在于他的上升沿与下降沿之间的时间宽度。具体的时间宽窄协议参考下列讲述。我们目前使用的舵机主要依赖于模型行业的标准协议,随着机器人行业的渐渐独立,有些厂商已经推出全新的舵机协议,这些舵机只能应用于机器人行业,已经不能够应用于传统的模型上面了。目前,北京汉库的HG14-M舵机可能是这个过渡时期的产物,它采用传统的PWM协议,优缺点一目了然。优点是已经产业化,成本低,旋转角度大(目前所生产的都可达到185度);缺点是控制比较复杂,毕竟采用PWM格式。但是它是一款数字型的

3、舵机,其对PWM信号的要求较低:(1) 不用随时接收指令,减少CPU的疲劳程度;(2) 可以位置自锁、位置跟踪,这方面超越了普通的步进电机;图1-1其PWM格式注意的几个要点:(1) 上升沿最少为0.5mS,为0.5mS-2.5mS之间;(2) HG14-M数字舵机下降沿时间没要求,目前采用0.5Ms就行;也就是说PWM波形可以是一个周期1mS的标准方波;(3) HG0680为塑料齿轮模拟舵机,其要求连续供给PWM信号;它也可以输入一个周期为1mS的标准方波,这时表现出来的跟随性能很好、很紧密。2PWM信号控制精度制定我们采用的是8位AT89C52CPU,其数据分辨率为256,那么经过舵机极限

4、参数实验,得到应该将其划分为250份。那么0.5mS-2.5Ms的宽度为2mS = 2000uS。2000uS250=8uS则:PWM的控制精度为8us我们可以以8uS为单位递增控制舵机转动与定位。舵机可以转动185度,那么185度250=0.74度,则:舵机的控制精度为0.74度图1-21 DIV = 8uS ; 250DIV=2mS时基寄存器内的数值为:(#01H)01 -(#0FAH)250。共185度,分为250个位置,每个位置叫1DIV。则:185250 = 0.74度 / DIVPWM上升沿函数: 0.5mS + NDIV 0uS NDIV 2mS 0.5mS 0.5Ms+NDIV

5、 2.5mS二单舵机拖动及调速算法1舵机为随动机构(1)当其未转到目标位置时,将全速向目标位置转动。(2)当其到达目标位置时,将自动保持该位置。所以对于数字舵机而言,PWM信号提供的是目标位置,跟踪运动要靠舵机本身。(3)像HG0680这样的模拟舵机需要时刻供给PWM信号,舵机自己不能锁定目标位置。所以我们的控制系统是一个目标规划系统。(1)HG14-M舵机的位置控制方法舵机的转角达到185度,由于采用8为CPU控制,所以控制精度最大为256份。目前经过实际测试和规划,分了250份。具体划分参见250份划分原理。将0185分为250份,每份0.74度。控制所需的PWM宽度为0.5ms2.5ms

6、,宽度2ms。2ms250=8us;所以得出:PWM信号 = 1度/8us;0.5ms-2.5ms0.5ms-30ms舵机角度= 0.74NPWM = 0.5 + NDIV;(DIV=8us)角度04590135180N03E7DBBFAPWM0.5ms1ms1.5ms2ms2.5ms(2)HG14-M舵机的运动协议舵机的转动方向为:逆时针为正转对应N值N=#00H,=0度N=#F5H,=180度1 N 245运动时可以外接较大的转动负载,舵机输出扭矩较大,而且抗抖动性很好,电位器的线性度较高,达到极限位置时也不会偏离目标。2目标规划系统的特征(1)舵机的追随特性角度BA舵机的转速为T时间 舵

7、机稳定在A点不动; CPU发出B点位置坐标的PWM信号; 舵机全速由A点转向B点; T = = B - A CPU发出B点PWM信号后,应该等待一段时间,利用此时间舵机才能转动至B点。那么,具体的保持(等待)时间如何来计算,如下讲解:令:保持时间为T 当TT时,舵机能够到达目标,并有剩余时间;当TT时,舵机不能到达目标;理论上:当T=T时,系统最连贯,而且舵机运动的最快。实际过程中由于2个因素: 1个机器人身上有多个舵机,负载个不相同,所以不同; 某个舵机在不同时刻的外界环境负载也不同,所以不同;则连贯运动时的极限T难以计算出来。目前采取的方法是经验选取值。(2)舵机值测定舵机的值随时变化,所

8、以只能测定一个平均值,或称出现概率最高的点。依据 厂商的经验值; 采用HG14-M具体进行测试;测试实验: 将CPU开通,并开始延时T; 当延时T到达后,观察舵机是否到达目标;测定时采用一段双摆程序,伴随示波器用肉眼观察T与T的关系。(3)舵机值计算一般舵机定为0.16-0.22秒/60度;取0.2秒/60度 1.2秒/360度 0.617秒/185度则为360度/1.2秒,2/1.2秒=300度/秒那么185度转动的时间为185度360度/1.2秒 = 0.6167秒。(4)采用双摆试验验证观察实验过程中的T与T的关系发现:当T定在0.618秒时,利用示波器观察到舵机能够运动至2个目标点。则

9、:T=T= 0.618秒实验过程中,设定舵机运转的目标角度查为185度。最终:=0.2秒/60度3DAV的定义将185度的转角分为250个平均小份。则:每小份为0.74度。定义如下:DAV = 0.74度由于: = 0.2秒/60度则:运行1 DAV所需时间为:0.72度0.2秒/60度 = 2.4 mS;4DIV的定义舵机电路支持的PWM信号为0.5mS2.5mS,总间隔为2mS。若分为250小份,则2mS250 = 0.008 mS = 8uS定义如下:DIV = 8uS角度BAT时间 T = = B - A那么1 DAV(0.74度)对应的T为:0.74度60度/0.2秒 =2.4 67

10、mS.。5单舵机调速算法0.5ms-30ms测试内容:将后部下降沿的时间拉至30ms没有问题,舵机照样工作。将后部下降沿的时间拉至10ms没有问题,舵机照样工作。 将后部下降沿的时间拉至2.6ms没有问题,舵机照样工作。 将后部下降沿的时间拉至500us没有问题,舵机照样工作。实践检验出:下降沿时间参数可以做的很小。目前实验降至500uS,依然工作正常。原因是:(1)舵机电路自动检测上升沿,遇上升沿就触发,以此监测PWM脉宽“头”。 (2)舵机电路自动检测下降沿,遇下降沿就触发,以此监测PWM脉宽“尾”。(1)舵机转动时的极限下降沿PWM脉宽T20msT:舵机运转1DAV(7.4度)所需要的最

11、小时间,目前计算出的数值为2.467mS;T前面的20 mS等待时间可以省略,舵机依然工作;而且得出舵机跟随的最快驱动方式。T极限转动方式实验得出 1.1ms T 50ms;具体实验数据参照下表跟随算法舵机T数据实验表格T值舵机运转特性T与T关系该程序可行度备注500us不能跟随T T不可行800us不能跟随T T不可行1ms不能跟随T T可行最快、平滑1.6ms跟随T T可行最快、平滑2ms跟随T T可行最快、平滑2.6ms跟随T T可行最快、平滑10ms跟随T T可行较慢、平滑20ms跟随T T可行较慢、平滑30ms跟随T T可行较慢、平滑40ms跟随T T可以较慢、微抖50ms跟随T T

12、可以很慢、微抖70ms跟随T T不可以很慢、较抖100ms跟随T T不可以很慢、较抖令人质疑的地方为1.1ms时的表现,得出的T T;也就是说1.1ms = 2.467ms,显然存在问题。经过考虑重新观察PWM波形图发现,电机真正的启动点如下图:B点的PWM启动点B启动点AT极限转动方式实际上由A到B的运动时间为:T = T +(B点的)PWM三8舵机联动单周期PWM指令算法1控制要求要求同时发给8个舵机位置目标值,该指令的执行周期尽量短,目的有2个:其一,是为了将来扩充至24舵机;其二,目标越快,舵机的转动速度越快;我们以8路为1组或称1个单位,连续发出目标位置,形成连续的目标规划曲线,电机

13、在跟随过程中自然形成了位置与速度的双指标曲线,实现8路舵机联动。2注意事项从24个端口,P0.0、P1.0到P2.0,单DIV循环的最小时间只有8us,所以串行运算是不行的,那么就采用并行运算。目前采用的并行算法是P0.0P0.7为一个基本单位,8位一并。实际案例:P1口的8个位置个不相同;端口P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0N寄存器37H36H35H34H33H32H31H30H目标位置(度)180135906050450.740N数值(整数)250187512581167662510PWM宽度ms2.5002.0001.5001.1481.0411.0000

14、.5080.500注意:N为整数,依照上表看出,由于整数原因,定位不能实现的有45度、60度等。时间TT为一个周期,分为2部分1 PWM宽2 延时等待TwPWM38路PWM信号发生算法解析我们预计将整个周期控制在3.5-5ms内;由上图得知:P1口的8个端在不同时间产生下降沿。那么由上例如:我们的P1.5口,他的N为125那么就需要它在125个DIV后产生下降沿,时间为(125*8us=1000us)。我们在其中发现2个关键参数:时间参数N=125逻辑参数 P1.5=#0DFH逻辑参数的定义:如下,采用ANL指令,操作P1口。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0备注

15、P1.0= # FEH11111110P1.1= # FDH11111101P1.2= # FBH11111011P1.3= # F7H11110111P1.4= # EFH11101111P1.5= # DFH11011111P1.6= # BFH10111111P1.7= # 7FH01111111ANL端口逻辑参数表例如:将P1.5口产生下降沿,就将# 0DFH 去“ANL” P1口。逻辑“ANL”指令,冯“0”得“0”,不影响其他位。具体的程序操作如下: 开3.5ms定时中断 取出8个端(P1.0-P1.7)的位置值,也就是8个N值;并赋予相应的端逻辑参数;M5=N5-N4M6=N6-

16、N5M7=N7-N6M8=N8-N7M1=N1M2=N2-N1M3=N3-N2M4=N4-N3 将这8个值由大到小排列,相应端的逻辑参数值也随着N的顺序排列,一一对应; 将N值做减法,求得: 取出 M1,延时M1*DIV,ANL相应的逻辑参数;取出 M2,延时M2*DIV,ANL相应的逻辑参数;取出 M3,延时M3*DIV,ANL相应的逻辑参数;取出 M4,延时M4*DIV,ANL相应的逻辑参数;取出 M5,延时M5*DIV,ANL相应的逻辑参数;取出 M6,延时M6*DIV,ANL相应的逻辑参数;取出 M7,延时M7*DIV,ANL相应的逻辑参数;取出 M8,延时M8*DIV,ANL相应的逻

17、辑参数; 8个端的下降沿全部产生完毕,等待一定的Tw值,或等待3.5ms中断的到来; 中断到来后,清理中断标志,然后结束该程序。RET注意事项:当进行逐个排序延时的过程中,CPU要取出M1、M2、M3.M8,那么会有1个取数指令周期,当CPU采用12MHz时为1us。最终应该在第8个延时,即M8时扣除掉,具体指令参见指令集。4N排序子程序RAM的制定入口处P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0N值寄存器地址37H36H35H34H33H32H31H30HANL逻辑数寄存器地址3FH3EH3DH3CH3BH3AH39H38HANL逻辑数值#7FH#BFH#DFH#EFH

18、#F7H#FBH#FDH#FEH备注:37寄存器内存放的是P1.7端口的N值;3F寄存器内存放的是P1.7端口的ANL逻辑参数值;出口处从左到右为N值从大到小排列 (大 N值 小)N值寄存器地址30H31H32H33H34H35H36H37HANL逻辑数寄存器地址38H39H3AH3BH3CH3DH3EH3FHANL逻辑数值未知未知未知未知未知未知未知未知所谓的“未知”:由于排列按照大到小顺序,“未知”内存放的为端口信息要根据排序做相应的调整。备注:30H内存放的是某位的N值,其值最大;37H内存放的是某位的N值,其值最小;38H3FH内存放ANL数,可以根据其数值判断出是具体那个端口的下降沿

19、。例如:其值为“#FBH”那么它就是P1.2;5N差子程序解析所谓N差子程序,要观察PWM口的逻辑时序特性。要求连续将8位端口分别产生下降沿。所以有个先后问题,解决的方法有2种:打开8个时间中断;按先后顺序排列,先后触发;由于CPU不能开启8个中断,所以采用后者方法,那么,就可以得出以下结论:第1个 触发位所用的时间为 N1- 0 =M1;第2个 触发位所用的时间为 N2-N1=M2;第3个 触发位所用的时间为 N3-N2=M3;第4个 触发位所用的时间为 N4-N3=M4;第5个 触发位所用的时间为 N5-N4=M5;第6个 触发位所用的时间为 N6-N5=M6;第7个 触发位所用的时间为

20、N7-N6=M7;第8个 触发位所用的时间为 N8-N7=M8; 大 小入口:30H 31H 32H 33H 34H 35H 36H 37H由于上接排序字程序,所以已经按照从大到小排列,做减法后差所以全为正数。大 - 小30H - 31H 30H31H - 32H 31H32H - 33H 32H33H - 34H 33H34H - 35H 34H35H - 36H 35H36H - 37H 36H37H 37H出口30H31H32H33H34H35H36H37H差差差差差差差原数 调用延时程序时,37H最先出,30H最后出。6关于扫尾问题(1)提出扫尾的概念我们提出了1个扫尾的新概念:当CP

21、U执行完8个位的下降沿操作后(最多为2.5ms),会有向下1个周期过渡的时间间隔,其主要为2个功能:保证下降沿的准确性;为舵机的跟踪留出足够的时间;当PWM信号以最小变化量即(1DIV=8us)依次变化时,舵机的分辨率最高,但是速度会减慢。例如:先发一个PWM信号N=125,相隔20ms后再发1个PWM信号N=126。那么舵机在20ms内转动了0.74度,计算得出:=0.74度/20ms = 37度/秒; HG14-M舵机空载时:=300度/秒发现与最快速度相差8倍之多!(2)扫尾值的计算中断延时2.8ms图中有A点、B点,B点A点舵机从PWM_A发出后开始转动,经过T时间后接收完毕PWM_B信号后,又重新开始新的转动。PWM_ BPWM_ATTT=T - PWM_ BlimtT=2.467ms-0.5ms= 1.967msPWM处在最小极限长度时:PWM_A = 0.5msPWM_B = 0.5ms必要条件:T2.467msT=T - PWM_ BlimtT=2.467ms-2.5ms= -0.033msPWM处在最长极限长度时:PWM_A = 2.5msPWM_B = 2.5ms必要条件:T2.467ms为了保证在2种极限情况下舵机都能正常工作,我们取个较长的延时,其经验值为2.8ms;这样舵机都能正常跟随而且速度接近最大值,采用中断法延时2.8ms。

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

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