文章编号:167l一4598(2011)02—0332一03中圈分类号:TP368.2 文献标识码:A
基于AVR单片机的
多舵机控制系统设计及仿真
韩庆瑶,洪草根,朱晓光,徐 瑾
(华北电力大学机械
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
系,河北保定071003)
摘要:舵机是机器人、机电系统和航模的重要执行机构;文章介绍了一种以ATmegal6为核心的多舵机控制系统.利用单片机内部
定时器,采用分时控制
思想
教师资格思想品德鉴定表下载浅论红楼梦的主题思想员工思想动态调查问卷论语教育思想学生思想教育讲话稿
,用单片机实现多路PwM输出;系统的设计主要分为总体
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
设计,硬件设计和软件设计部分,其中每一
部分均采用模块化设计原则;系统总体设计遵循了可靠、简单、实用的原则,实验结果验证了方法的可行性和有效性,所提出的方法已
经应用于多舵机的系统中。
关键词:舵机IPwM,分时控制思想;ATmegal6
DesignAndSimulationOfMulti—ServoMotorControl
SystemBasedOnAVRSingleChipMicrocomputer
HanQingyao,HongCaogen,ZhuXiaoguang,XuJin
(DepartmentofMechanicalEngineering,NorthChinaElectricPowerUniversity,Baoding071003,China)
Abstnct:Servomotorisanimportantexecutivestructureinrobots,mechanismandelectronicsandaeromodellings.Thispaperintro—
ducesamultisenrocontrolsystemwhichisconstitutedbyahigh3peed8inglechipmicrocomputerATmegal6. 1tcangeneratesmultiplex
PWMwaveformsbymeansofthecombininghardwaretimerandtime—sharingmultiplextechnique.ThedesignofthesystemcanbediVided
intothreeparts;910balschemedesign,hardwaredesignandsoftwaredesign.Eachpartcomplieswiththemodulardesignprinciples.Theo—
veralldesignfolIowsareliable,simple,practicalprinciples.TheexperimentalresultsverifythefeasibilityandeffectiVenseoftheproposed
approachwhichhasbeensuccessfullyappliedtomulti—steeringsystem.
Keyw卵出:sen,omotor#PWM;time—sharingmultiplextechnique;ATmegal6
O 引言
舵机(servomotor),又名伺服电机,是一种位置伺服的
驱动器,它接收一定的控制信号,输出一定的角度,适用于那
些需要角度不断变化并可以保持的控制系统。舵机主要适用于
那些需要角度不断变化并可以保持的控制系统,比如人形机器
人的手臂和腿,车模和航模的方向控制。舵机的控制信号实际
上是一个脉冲宽度调制信号(PwM信号),该信号可由FP—
GA器件、模拟电路或单片机产生。采用FPGA成本较高,用
模拟电路来实现则电路较复杂,不便于实现多路输出,目前采
用单片机实现舵机控制的方法比较普遍[1]。
1舵机构造及工作原理
舵机主要是由外壳、一个小型直流电动机、一组减速齿
轮、一个用于转角位置检测的电位器和一块控制电路板所构
成[2]。图1是FUTABA—S3003型舵机的内部电路。
舵机的工作原理是:PWM信号由接收通道进入信号解调
电路BA6688L的12脚进行解调,获得一个直流偏置电压。它
内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基
准信号,将获得的直流偏置电压与电位器的电压比较,获得电
收稿日期:2010一10一12;修回日期:2010一11—15。
基金项目:国家自然科学基金项目(60974125)。
作者简介:韩庆瑶(1953一),男,河北保定人,博士,教授,主要从
事机电控制及自动化方向的研究。
中华测控网
chinamca.com
图1 FUTABA—S3003型舵机的内部电路
压差由BA6688的3脚输出。该输出送入电机驱动集成电路
BAI。6686,以驱动电机正反转。当电机转速一定时,通过级联
减速齿轮带动电位器R∞1旋转,直到电压差为O,电机停止
转动。舵机的控制信号是PwM信号,利用占空比的变化改变
舵机的位置。
通常的舵机有3条导线,分别是:电源线、地线、控制
线。电源线和地线用于提供舵机内部的直流电机和控制线路所
需的能源,电压通常介于4~6V之间;控制线的输入是一个
宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20
ms(即频率为50Hz)。舵机转动角度范围O~180。,通过周期
为20ms的PWM信号控制。PwM信号高电平延时时间在o.5
~2.5ms之间,高电平的持续时间决定了舵机的角度¨]。舵机
转角随输入信号的脉冲宽度变化成正比,两者之间的关系可用
万方数据
第2期 韩庆瑶.等:基于AVR单片机的多舵机控制系统设计及仿真 ·333·
图2来表示。
2.5
差1.5
¨O.5
角度/(。)
图2舵机转角与输入信号的脉冲宽度的关系
2控制系统整体方案及框图
单片机系统实现对舵机输出转角的控制,必须首先完成两
个任务:首先是产生基本的PwM周期信号,本设计是产生
20ms的周期信号;其次是脉宽的调整,即单片机模拟PwM
信号的输出,并且调整占空比。本设计结合AVR系列高档8
位单片机的优势和特点设计出一种使用uSB接口作为机器人
控制器与上位机通讯,引入了分时操作系统的思想,利用单片
机内部位定时器结合中断功能产生多路输出的通用机器人控制
器。机器人控制器的硬件采用功能化和模块化的结构设计方
法,系统整体功能框图如图3所示。
图3控制系统整体框图
3控制系统电路设计
3.1 MCU及其外围电路
本舵机控制器采用ATMEL公司的AVR系列高档8位单
片机ATmegal6作为主控芯片,该款单片机是一款基于增强
的AVRRIsc结构的低功耗8位CMoS微控制器[4]。由于其
先进的指令集以及单时钟周期指令执行时间,从而可以缓减系
统在功耗和处理速度之间的矛盾。它的芯片内部集成了较大容
量的存储器和丰富强大的硬件接口电路,最多具有32个可编
程I/0口,十分适合控制多自由度的机器人。ATmegal6作为
控制器的MCU,内部具有16位定时/计数器,用来作为舵机
脉宽的定时器,不用外接振荡计数器就可以满足舵机的最大精
度的转角调整。控制器采用外接的8MHz石英晶振来产生系
统时钟,使得系统定时更加精确,以便更加精确地控制舵机的
速度和转角。电路如图4所示。
3.2串口通讯电路
串口用于接收上位机传送过来的控制命令,以调节每一个
通道输出信号的脉冲宽度。ATmegal6集成了一个全双工通用
同步/异步接收/发送器(USART),有独立的波特率发生器而
不需要占用通用定时器,可方便地与PC机实现串行通讯。
ATmegal6L的USART使用的是CMoS电平,需要进行电平
转换才能实现RS232通信。本系统使用美信公司的MAX232
P即伪)∽【D)P^0C^Dc0)
PB“T1) P^l“Tcl)艘(^唰£N12)PAl(A1℃2)
㈣(^INI/0c0)P^1(^1℃1)
}憎(SS)PM(ADC4)
m5(M【JsI)P^5c^Tc5)
}哐峙咖ls0)P^6C^1℃6)
PB7(scIoP^1(ATcl)
PD0(舳) PcD(scL)
PD“T功) PcJ(SD^)
PD2(INTD)Pc2(T0()
m3(INTl)Pc3(1憾)
PD4∽m) Pc4(T鲫
}I巧(()【=lA)P【五(T01)
嘶(I口) 麟(1溉1)
P阱(0c2)pc7(TOS晓)
—— VCC
RESET ^Vcc
^REF
XT^L2 GND
XT^Ll GND
^
图4 MCU及其外围电路图
电平转换芯片进行电平与电平之间的电平转换,其电路如图5
所示。文中,RS232工作于38400bps,1位起始位、8位数据
位、1位停止位、无奇偶校验、无流量控制模式。
图5串口通讯电路
3.3 电源电路
在舵机控制器上一般有电池供电和外部供电两种方式,
ATmegal6的供电电压为4.5~5.5V,所以需要有相应的降压
电路,如图6所示。电路由滤波电容c9、防止自激电容C。。、
C。,和一只固定式三端稳压器(LM7805)极为简捷方便地搭
成的。
B^
彳 节 彳 草
图6电源电路
3.4舵机接口电路
控制器在连接舵机的接口电路部分使用了6N137芯片,
该芯片是光电藕合器件,用于增加整个系统在控制多个舵机过
程中的抗干扰能力。又因为通过MCU的I/0口输出的PwM
信号通过光藕传送过程中进行了反相,因此从光藕出来的信号
必须再经过反相器进行反相。方波信号经过光耦传输后,前沿
和后沿会发生畸变,因此反相器采用CD40106施密特反相器
中华测控网
chinamca.com
篷嘶rlI.
万方数据
·334· 计算机测量与控制 第19堂
对光耦传输过来的信号进行整形,产生
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的PWM方波 器选用了ATmegal6自带的16位定时器/计数器作为波的脉宽
信号。 调制器,该16位T/C可以实现精确的程序定时(事件管理)、
4多舵机分时控制方法
在人形机器人、车模、航模以及导弹控制系统中,都用到
了多个舵机,若每一个舵机都使用一个单片机控制,显然不是
一种经济的策略,也为整个系统带来了不必要的负担。对多个
舵机的控制比较复杂,实时性要求高,为了满足多舵机的这种
控制要求,根据舵机的驱动特性,提出了一种独立单片机控制
多个舵机的方法,也就是使用一片单片机直接从多个I/o端口
产生PwM信号控制舵机。使用这种方法的要求是,控制的舵
机越多,单片机的要求越高,但电路最简单,很适用于微小型
机器人的研制。
4.1 多舵机分时控制思想
单片机可以采用时间片分割的方式通过多个I/O口实现
对多个舵机的驱动,舵机的控制时基为20ms,而用于控制舵
机转角的可调脉宽为o.5ms~2.5ms[“。由于其工作正脉冲
宽度不大于周期的1/8,所以为利用软件定时器产生8路
PWM波提供了可能性。由于中断响应和执行中断服务程序会
占用一定的时间,为保证有一定的富余时间,本方法可以产生
稳定的7路舵机控制用PWM波。通过软件对7路PWM的循
环控制,实现相当于把每20ms的MCU时间作为一个控制周
期,而其中的每2.5ms作为一个时间片,这样就可以分别利
用每一个时间片来实现调整各组中需要的PwM波的脉冲宽度
的工作,从而实现了多舵机不同转角的同步同一周期控制。由
于AVR单片机具有非常高的指令执行速度,7路舵机能在较
短的时间内得到响应,且独立操作、互不干涉,具备了及时
性、独占性以及多路性。
第一
第二
第7
l
蕊
+带
●
衙
●
一
时同时同。时间。时同。时同。时同‘时同 时同。时同一
R、 R2饩3饩‘R5茂8饩1片1片2
●———一2岫s驱动周期————+
图7多路PwM信号产生原理图
时问
4.2利用Atme龋16单片机产生多路pwM波
本文以ATMEL公司生产的增强RISC高性能8位单片机
ATmegal6为主控芯片,晶振频率取值8MHz,每条指令执行
时间仅125ns。对于FUTABA舵机控制脉冲周期丁=20ms,
脉宽O.5~2.5ms,对应于O~180。的转角。首先说明一下,程
序中用到两个定时/计数器:一个是脉冲周期计数器,即分时
启动各路PwM的上升沿。这个用有独立预分频器和比较器功
能的8位定时器/计数器即可;另一个是各通道的脉冲宽度计
数器,即确定该路PwM波的输出宽度。一般舵机的位置等级
一般有1024个,那么要实现最大精度控制舵机的转角就必须
使用至少1024个计数值的定时计数器。因此,本文中的控制
中华测控网
chjnamca.com
波形产生和信号测量。
5 软件设计
多路PWM信号产生的过程如下:由于各路PWM波的周
期相同,工作正脉冲宽度小于周期的1/8,可以在1个周期的
时间里分时启动各路PwM波的上升沿,再利用1个软件定时
器确定该路PWM波的输出宽度。程序开始时进行初始化,包
括系统变量初始化、I/0初始化、中断系统初始化以及定时/
计数器装入初值等操作;第1个软件定时器按周期的1/7时间
定时,并设置输出通道号,输出号从。开始。第1个软件定时
器定时中断响应后,将当前输出通道号对应的引脚输出置高电
平。设置该路输出正脉冲宽度,并启动第2个软件定时器,输
出通道号指向下一路。第2个软件定时器定时时间到后,将当
前输出引脚置低电平,此路PwM在该周期中输出结束,系统
等待第1个软件定时器下一个1/7周期的中断到来,再利用第
2个软件定时器输出下一路PwM波。7路全部输出完毕之后,
PwMGen结束,等待新一轮输出。产生多路PWM信号的流
程图如图8所示。
图8多路PwM信号产生程序流程图
这种控制的方法的最大优点是保证每一路PWM信号的时
间误差最小,且不会产生脉冲宽度的抖动。
6仿真与实验
Pmteus是一款优秀的单片机仿真与开发软件,它可以以软件
的方式模拟整个系统的运行,这样大大节省了开发周期和开发成
本。它具有虚拟示波器、逻辑分析仪、信号发生器、虚拟终端等
各种虚拟仪器可供使用。图9为其中的一路刚波形图。
选用Futabas3003舵机作为实验对象,用本文的舵机控制
电路,采用分时控制思想,产生了多路PwM信号对多个舵机
进行控制,很好地控制舵机到达目标位置,而且产生了较大的
扭矩。经实验表明,该控制系统硬件成本低,工作可靠性高,
有较好的实用性。 (下转第349页)
万方数据
第2期 张自宾.等:某咧导弹红外测角仪信号模拟研究 ·349·
up
叭,裟剐赢。唧outl20[6..0r一。⋯l
—_呷na[6..03
countm D900u‘二娅瓜_?嚣盐:净rtou娅岫q{f柚t。i_cl尹“1Lina[15..o]r—
clklM.1) ’——j一,, 1—————一
|~ Q一:
o“t“p r1|.:mo?‘do"
l/7。
outleft一一:x,outright
L,,,,’‘4
图6基准信号产生模块的FPGA设计顶层原理图
导弹在光轴左方时的基准信号
导弹在光轴下方时的基准信号
l
导弹在光轴右方时的基准信号
——_]广—一
I-●
陟 d上
睁 D
移 伽吨
图7 导弹在不同方位时的基准信号
图8相位计数器清零信号波形仿真
模块“d90”的功能是根据相位计数器值算出延时90。所需要
的时钟周期,进而将上基准信号延时90。,形成左基准信号。
由于左基准信号与右基准信号相位相差180。,所以将d90
模块输出经反向器反向后即为右基准信号。
2.4系统仿真
系统整体仿真波形如图9所示,out代表调频信号输出,
s1~s4分别代表上、左、下、右基准信号。
3 结论
本文针对控制箱检测所需要的模拟红外测角仪信号,提出
了基于FPGA的设计方法,大大简化了以前利用平行光管和分
立元件来模拟红外测角仪信号的制作过程和操作程序;利用A卜
tera公司C”10neⅡ系列的FPGA—EP2C35F672C6N芯片对整个
系统进行了硬件实现。由于计算120个脉冲宽度时是近似计算,
所以存在一定误差,对ROM中所储存的脉宽值进行修正后用
示波器测试,结果表明本系统能够精确的模拟出调频信号及基
准信号.每个信号周期误差为1且s,所产生的信号经调理电路送
)pt 2,锋·# s2,舸 7畸¨ lo审·l 13V·- ts甲·t 堵t
n咄ti。⋯⋯⋯⋯1⋯。⋯⋯⋯ ⋯一”⋯——
j
JI||H上|lI|If||I”lIllIl|¨lfl||lIl}fIlf9”谮Hl糖Il哪嘲m堪H¨ll¨f【|f||lJ|¨JIflIl|{llUl|llllllflU
nnnnn彻日nnnnnnn明nnnIlnnIli}姗l期瑚『||1n肌nnnnnnnnnnnnnflnHn
l I
}
l
图9系统仿真波形图
上升沿到来的时候产生一个正脉冲,作为相位计数器“cou—
ntm”的清零信号,波形仿真如图8所示。
控制箱后能够被控制箱识别并输出相应的指令信号。
参考文献:
[1]某型导弹检测车组成和原理[z].石家庄;军械工程学院.
[2]某型反坦克导弹武器系统构造与使用[z].石家庄:军械工
程学院.
[3]张志刚.FPGA与sOPc设计教程[M].西安:西安电子科
技大学出版社,2007.
[4]Alteracorporation.DE2userManual[Z].2007.
[5]候小华,施杰,毛惠丰,等.基于H】GA的高精度数字化正
弦信号生成的新方法[J].计算机测量与控制,2007,15(6):
824—826.
掣挣水哆尊哆毒睁榉峨芦列邮博哆溥哆净韭净韭孛眵毋哆淳蜱谆蜱4哆淖哆水眵淖哆婷咀淖眵水哆诤韭尊哆尊蜱守哆水哆淖哆尊哆淳哆淳哆淖眵淖哆孚蜉净够萨蚌乎哆乎蛆淖哆净哆淖啦淖蛆淖哆淖啦4哆乎牡淖蚌净些净9≈Ii獬哆净哆
(上接第334页) 控制的方法输出多路PwM信号,实现了独立单片机的多舵机
控制。实验证明该方法是可行的,达到了预期的效果,下一步
寻求更稳定地控制舵机以及实现舵机的调速。
。一专罂芋。要慧翌金T黑!e鼍片礁实现的,.褒分型H3黧噤=盛:兰。1高产‘譬。=嚣三。=乏署M。
要三全∑。专芝。竺的!:毫旦苎宴登婆、堡捷鬯!:!w^:!翟堂:璧[。]姜⋯备j。三芸蔷:。嘉—苫:。≥”≥.舵赢i萄;;父薪磊支I葛应
冀具有模块化尊尊,不同的模块完成不同的功能。把分时操作 。。;[j;.磊孬;机磊息,。200;:五a:;):‘j42.二24;_~⋯⋯一
中华测控罔
chinamca.com万方数据
基于AVR单片机的多舵机控制系统设计及仿真
作者: 韩庆瑶, 洪草根, 朱晓光, 徐瑾, Han Qingyao, Hong Caogen, Zhu Xiaoguang,
Xu Jin
作者单位: 华北电力大学机械工程系,河北保定,071003
刊名: 计算机测量与控制
英文刊名: COMPUTER MEASUREMENT & CONTROL
年,卷(期): 2011,19(2)
参考文献(5条)
1.梁锋;王志良;解仑 多舵机控制在累人机器人上的应用[期刊论文]-微计算机信息 2008(1-2)
2.8-bit Microcontroller with 16K Bytes In-System Programmable Flash-ATmega16 Datasheet 2009
3.任志敏 基于AVR单片机的舵机驱动电路研究[期刊论文]-自动化技术与应用 2008(06)
4.詹毅仁 舵机电机驱动的类壁虎机器人的运动控制系统[学位论文] 2006
5.付丽;刘卫国;伊强 单片机控制的多路舵机用PWM波产生方法[期刊论文]-微特电机 2006(02)
本文读者也读过(4条)
1. 梁磊 多路PWM信号产生算法研究[会议论文]-2008
2. 冯晓伟.王雷阳.李正生.FENG Xiao-wei.WANG Lei-yang.LI Zheng-sheng 多路舵机控制PWM发生器的设计与
Proteus仿真[期刊论文]-现代电子技术2011,34(11)
3. 柴稳.徐娅萍.黄伟峰.支立纯.CHAI Wen.XU Ya-ping.HUANG Wei-feng.ZHI Li-chun 基于单片机的多路舵机平稳
驱动方法的设计和实现[期刊论文]-微特电机2008,36(12)
4. 吴华波.钱春来.Wu Huabo.Qian Chunlai 基于AT89C2051的多路舵机控制器设计[期刊论文]-单片机与嵌入式系
统应用2006(8)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_jsjzdclykz201102027.aspx