文档详情

舵机设计资料简介

re****.1
实名认证
店铺
DOC
538KB
约8页
文档ID:444814059
舵机设计资料简介_第1页
1/8

·      舵机是一种位置伺服的驱动器它接受一定的控制信号,输出一定的角度,合用于那些需要角度不断变化并可以保持的控制系统在微机电系统和航模中,它是一种基本的输出执行机构   1 舵机的工作原理      以日本FUTABA-S3003型舵机为例,图1是FUFABA-S3003型舵机的内部电路     舵机的工作原理是:PWM信号由接受通道进入信号解调电路BA66881的12脚进行解调,获得一种直流偏置电压该直流偏置电压与电位器的电压比较,获得电压差由BA6688的3脚输出该输出送人电机驱动集成电路BA6686,以驱动电机正反转当电机转速一定期,通过级联减速齿轮带动电位器R旋转,直到电压差为O,电机停止转动舵机的控制信号是PWM信号,运用占空比的变化变化舵机的位置   2 舵机的控制措施      原则的舵机有3条导线,分别是:电源线、地线、控制线,如图2所示     电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源.电压一般介于4~6V,一般取5V注意,给舵机供电电源应能提供足够的功率控制线的输入是一种宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20 ms(即频率为50 Hz)。

当方波的脉冲宽度变化时,舵机转轴的角度发生变化,角度变化与脉冲宽度的变化成正比某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用围3来表达  3 舵机控制器的设计  (1)舵机控制器硬件电路设计      从上述舵机转角的控制措施可看出,舵机的控制信号实质是一种可嗣宽度的方波信号(PWM)该方波信号可由FPGA、模拟电路或单片机来产生采用FPGA成本较高,用模拟电路来实现则电路较复杂,不适合伙多路输出一般采用单片机作舵机的控制器   目前采用单片机做舵机控制器的方案比较多,可以运用单片机的定期器中断实现PWM该方案将20ms的周期信号分为两次定期中断来完毕:一次定期实现高电平定期Th;一次定期实现低电平定期T1Th、T1的时间值随脉冲宽度的变换而变化,但,Th+T1=20ms该措施的长处是,PWM信号完全由单片机内部定期器的中断来实现,不需要添加外围硬件缺陷是一种周期中的PWM信号要分两次中断来完毕,两次中断的定期值计算较麻烦;为了满足20ms的周期,单片机晶振的频率要减少;不能实现多路输出也可以采用单片机+8253计数器的实现方案   该方案由单片机产生计数脉冲(或外部电路产生计数脉冲)提供应8253进行计数,由单片机给出8253的计数比较值来变化输出脉宽。

该方案的长处是可以实现多路输出,软件设计较简朴;缺陷是要添加l片8253计数器,增长了硬件成本本文在综合上述两个单片机舵机控制方案基本上,提出了一种新的设计方案,如图4所示     该方案的舵机控制器以AT89C2051单片机为核心,555构成的振荡器作为定期基准,单片机通过对555振荡器产生的脉冲信号进行计数来产生PWM信号该控制器中单片机可以产生8个通道的PWM信号,分别由AT89C2051的P1.0~Pl.7(12~19引脚)端口输出输出的8路PWM信号通过光耦隔离传送到下一级电路中由于信号通过光耦传送过程中进行了反相,因此从光耦出来的信号必须再通过反相器进行反相   方波信号通过光耦传播后,前沿和后沿会发生畸变,因此反相器采用CD40106施密特反相器对光耦传播过来的信号进行整形,产生原则的PWM方波信号笔者在实验过程中发现,舵机在运营过程中要从电源吸纳较大的电流,若舵机与单片机控制器共用一种电源,则舵机会对单片机产生较大的干扰因此,舵机与单片机控制器采用两个电源供电,两者不共地,通过光耦来隔离,并且给舵机供电的电源最佳采用输出功率较大的开关电源该舵机控制器占用单片机的个SCI串口。

串口用于接受上位机传送过来的控制命令,以调节每一种通道输出信号的脉冲宽度MAX232为电平转换器,将上位机的RS232电平转换成TTL电平   (2)实现多路PWM信号的原理      在模拟电路中,PWM脉冲信号可以通过直流电平与锯齿波信号比较来得到在单片机中,锯齿波可以通过对整型变量加1操作来实现,如图5所示假定单片机程序中设立一整型变量SawVal,其值变化范畴为O~N555振荡电路产生的外部计数时钟信号输入到AT89C2051的INTO脚每当在外部计数时钟脉冲的下降沿,单片机产生外部中断,执行外部中断INT0的中断服务程序每产生一次外部中断,对SawVal执行一次加1操作,若SawVal已达到最大值N,则对SawVal清OSawVal值的变化规律相称于锯齿波,如图5所示若在单片机程序中设立另一整型变量DutyVal,其值的变化范畴为O~N每当在SawVal清0时,DulyVal从上位机发送的控制命令中读入脉冲宽度系数值,例如为H(0≤H≤N)若DutyVal≥SawVal,则相应端口输出高电平;若DutyVal

     设外部计数时钟周期为TINT0,锯齿波周期(PWM脉冲周期)为TPWM,PWM脉冲宽度占空比为D,由图5可得出如下关系:         由式(3)可知,PWM波形的周期TPWM一旦拟定下来,只须选定计数最大值N,就可以拟定外部时钟脉冲所需周期(频率)外部时钟脉冲周期TINT0显然是PWM脉冲宽度变换的最小步距,即调节精度由式(4)可知,N越大,步距所占PWM周期的比例越小,精度越高例如,若采用8位整型变量,最大值N=28-1=255,则精度为1/(255+1)=1/255;若采用16位整型变量,最大值N=216-1=65535,则精度为1/65536文中计数变量SawVal采用8位整型变量,因此N=255对于一般应用,其精度已足够就舵机而言,规定TPWM=20ms,则可算得外部时钟周期为:        因此,设计555振荡电路时,其输出脉冲的频率应为:         当有多种变量与SawVal比较,将比较成果输出到多种端口时就形成了多路PWM波形各个变量的值可以独立变化,因此各路PWM波形的占空比也可以独立调节,互不相干多路PWM波形的产生如图6所示图中以3路PWM波形为例。

  4 舵机控制器软件的设计      舵机控制器的控制核心为单片机AT89C2051文中,程序用C5l编写,工作方式为前后台工作方式单片机程序涉及系统初始化程序、串口通信程序、上位机命令解释与PWM脉宽生成程序和多路PWM波形输出程序串行通信程序和多路PWM波形输出程序采用中断方式串口通信格式为渡特率9600bps、8位数据位、1位停止位、无校验、ASCII码字符通信串口通信程序用于接受上位机发送过来的控制命令控制命令采用自定义文本合同,即合同内容所有为ASCII码字符通信合同格式如图7所示     例如,要控制通道1的PWM脉宽,脉宽系数为25,则通信合同内容为“#”“1”“0”“2”“5”“!”这6个字符这时通道l的PWM占空比为25/256=O.098一种通道号相应一种PWM脉冲输出端口本设计为8个通道,号码为l~8,相应单片机的P1.o~P1.7起始符和终结符起到帧同步的作用串口通信程序流程如图8所示     图8中,CHNo寄存的是PWM通道号ASCII码,Dutyl00、DutylO、Duoyl分别寄存的是脉宽系数的百位数、十位数和个位数的ASCII码(注意,若高位数为O,则该位的字符应为“0”,不能省略。

如25,完整字符应为“O”“2”“5”CharNo为信号量,用于对串口接受的字符顺序以及串口中断与上位机命令解释程序之间进行同步  5 舵机控制器实验      图9为舵机控制板输出的其中一路PWM波形(带舵机负载)    从图9中可看出,舵机控制器输出的PWM波形稳定、干净,符合设计规定  6 结论      本文提出的多路舵机控制器设计措施,以单片机AT89C2051为核心,由外部振荡电路提供PWM脉冲的定期基准,控制部分与舵机驱动部分由两个电源供电,两者电气隔离这种设计方案的长处是:      ①PWM波形由外部振荡电路提供定期基准,与单片机内部振荡器的频率无关,不影响串口通信、定期器等参数的配备     ②PWM波形的调节精度可任意拟定     ③本没计思路可应用于任意多路的PWM输出,只要单片机能提供足够多的输出端口,例如将AT89C2051换成AT89S5l,就可以提供至少24路的PWM输出(P0、Pl、P2)     ④控制参数由SCI串口输入,适应面广,上位机可以是PC机、单片机或是PLC     ⑤本措施具有一般性,任何单片机只要能提供SCI中断、外部中断就可以应用本措施。

运用单片机PWM信号进行舵机控制 刊登于 -7-19 17:52:28 。

下载提示
相似文档
正为您匹配相似的精品文档