毕业论文——基于单片机的舵机控制装置.doc

上传人:滴答 文档编号:1272288 上传时间:2019-01-25 格式:DOC 页数:20 大小:970.50KB
下载 相关 举报
毕业论文——基于单片机的舵机控制装置.doc_第1页
第1页 / 共20页
毕业论文——基于单片机的舵机控制装置.doc_第2页
第2页 / 共20页
毕业论文——基于单片机的舵机控制装置.doc_第3页
第3页 / 共20页
毕业论文——基于单片机的舵机控制装置.doc_第4页
第4页 / 共20页
毕业论文——基于单片机的舵机控制装置.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、 课 题: 基于单片机的舵机控制装置 的设计 软件设计部分 姓 名: 班 级: XXXXXXXXXXX 学 号: XXXXXXXXXX 指导老师: 年 月 浙江经济职业技术学院毕业论文设计 2 目 录 引言 一、 舵机概述 二、 舵机的结构和控制 三、 单片机控制原理 四、 系统软件设计 1、 位置环设计 2、速度反馈 3、 电流反馈 4 、试验结果 五、 结语 参考文献 浙江经济职业技术学院毕业论文设计 3 引 言 舵机作为无人机制导系统的主要组成部分,是 操纵机动飞行的重要执行机构。舵机的作用是根据飞行器制导控制电路输出的一定大小和极性的信号,操纵无人机的舵面或副翼或改变发动机的推力矢量,

2、控制舵面按要求快速、精确的偏转,实现舵机控制的各项指标,以达到对无人机的飞行稳定控制。飞行器经过近半个多世纪的发展,关键技术渐已成熟,但输出力巨大,响应速度快,控制精度高,体积小,重量轻,高可靠性始终是无人机舵机发展的目标。 PLC 单片机的突出特点是体积小,功耗低,、指令集精简,抗干扰性好,有较强的模拟接口,代码保密性好,其兼容的 Flash 程序储存器,支持低电压快速擦写,程 序修改方便。在一些小型的应用中比传统的 51 单片机更灵活,外围电路更少,因而得到了广泛应用。在无人机舵机控制系统的设计中, PLC 单片机很好的满足了其小体积限制,抗干扰高,功耗低等要求。 本文介绍以 PLC 单片

3、机为控制核心的无人机舵机控制系统的设计与实现,并给出了调试结果。 浙江经济职业技术学院毕业论文设计 4 一、 舵机概述 舵机最早出现在航模运动中。在航空模型中,飞行机的飞行姿态是通过调节发动机和各个控制舵面来实现的。举个简单的四通飞机来说,飞机上有以下几个地方需要控制: 1.发动机进气量,来控制发动机的拉力(或推力); 2.副翼舵面 (安装在飞机机翼后缘),用来控制飞机的横滚运动; 3.水平尾舵面,用来控制飞机的俯仰角; 4.垂直尾舵面,用来控制飞机的偏航角; 遥控器有四个通道,分别对应四个舵机,而舵机又通过连杆等传动元件带动舵面的转动,从而改变飞机的运动状态。舵机因此得名:控制舵面的伺服电机

4、。 不仅在航模飞机中,在其他的模型运动中都可以看到它的应用:船模上用来控制尾舵,车模中用来转向等等。由此可见,凡是需要操作性动作时都可以用舵机来实现。 二、结构和控制 一般来讲,舵机主要由以下几个部分组成, 舵盘、减速齿轮组、位置反 馈电位计 5k、直流电机、控制电路板等。 工作原理: 控制电路板接受来自信号线的控制信号(具体信号待会再讲),控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,浙江经济职业技术学院毕业

5、论文设计 5 从而达到目标停止。 舵机的基本结构是这样,但实现起来有很多种。例如电机就有有刷和无刷之分,齿轮有塑料和金属之分,输出轴有滑动和滚动之分,壳体有塑料和铝合金 之分,速度有快速和慢速之分,体积有大中小三种之分等等,组合不同,价格也千差万别。例如,其中小舵机一般称作微舵,同种材料的条件下是中型的一倍多,金属齿轮是塑料齿轮的一倍多。需要根据需要选用不同类型。 舵机的输入线共有三条,红色中间,是电源线,一边黑色的是地线,这辆根线给舵机提供最基本的能源保证,主要是电机的转动消耗。电源有两种规格,一是 4.8V,一是 6.0V,分别对应不同的转矩标准,即输出力矩不同, 6.0V 对应的要大一些

6、,具体看应用条件;另外一根线是控制信号线, Futaba 的一般为白色, JR 的一 般为桔黄色。另外要注意一点, SANWA 的某些型号的舵机引线电源线在边上而不是中间,需要辨认。但记住红色为电源,黑色为地线,一般不会搞错。 舵机的控制信号为周期是 20ms 的脉宽调制( PWM)信号,其中脉冲宽度从 0.5ms-2.5ms,相对应舵盘的位置为 0 180 度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。舵机内部有一个基准电路,产生周期 20ms,宽度 1.5

7、ms 的基 准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生浙江经济职业技术学院毕业论文设计 6 电机的转动信号。由此可见,舵机是一种位置伺服的驱动器,转动范围不能超过 180 度,适用于那些需要角度不断变化并可以保持的驱动当中。比方说机器人的关节、飞机的舵面等。 常见的舵机厂家有: 日本的 Futaba、 JR、 SANWA 等,国产的有北京的新幻想、吉林的振华等。现举 Futaba S3003 来介绍相关参数,以供大家设计时选用。之所以用 3003 是因为这个型号是市场上最常见的,也是价格相对较便宜的一种(以下数据摘自 Futaba 产品手 册)。 尺 寸 (D

8、imensions): 40.4 19.8 36.0 mm 重 量 (Weight): 37.2 g 工作速度 (Operating speed): 0.23 sec/60 (4.8V) 0.19 sec/60 (6.0V) 输出力矩 (Output torque): 3.2 kg.cm (4.8V) 4.1 kg.cm (6.0V) 由此可见,舵机具有以下一些特点: 体积紧凑,便于安装; 输出力矩大,稳定性好; 控制简单,便于和数字系统接口; 正是因为舵机有很多优 点,所以,现在不仅仅应用在航模运动中,已经扩展到各种机电产品中来,在机器人控制中应用也越来越广泛。 三、单片机控制原理 正是舵机

9、的控制信号是一个脉宽调制信号,所以很方便和数字系浙江经济职业技术学院毕业论文设计 7 统进行接口。只要能产生标准的控制信号的数字设备都可以用来控制舵机,比方 PLC、单片机等。这里介绍利用 51 系列单片机产生舵机的控制信号来进行控制的方法,编程语言为 C51。之所以介绍这种方法只是因为笔者用 2051 实现过,本着负责的态度,所以敢在这里写出来。程序用的是我的四足步行机器人,有删改。单片机并不是控制舵机的最好的方法,希 望在此能起到抛砖引玉的作用。 2051 有两个 16 位的内部计数器,我们就用它来产生周期 20 ms的脉冲信号,根据需要,改变输出脉宽。基本思路如下(请对照下面的程序):

10、我用的晶振频率为 12M, 2051 一个时钟周期为 12 个晶振周期,正好是 1/1000 ms,计数器每隔 1/1000 ms 计一次数。以计数器 1 为例,先设定脉宽的初始值,程序中初始为 1.5ms,在 for 循环中可以随时通过改变 a 值来改变,然后设定计数器计数初始值为 a,并置输出 p12为高位。当计数结束时,触发计数器溢出中断函数,就是 void timer0(void) interrupt 1 using1 ,在子函数中,改变输出 p12 为反相(此时跳为低位),在用 20000(代表 20ms 周期)减去高位用的时间 a,就是本周期中低位的时间, c=20000-a,并设

11、定此时的计数器初值为 c,直到定时器再次产生溢出中断,重复上一过程。 # include #define uchar unsigned char #define uint unsigned int uint a,b,c,d; 浙江经济职业技术学院毕业论文设计 8 /*a 为舵机 1 的脉冲宽度, b 为舵机 2 的脉冲宽度 ,单位 1/1000 ms */ /*c、 d 为中间变量 */ /*以下定义输出管脚 */ sbit p12=P12; sbit p13=p13; sbit p37=P37; /*以下两个函数为定时器中断函数 */ /*定时器 1,控制舵机 1,输出引脚为 P12,可自定

12、义 */ void timer0(void) interrupt 1 using 1 p12=!p12; /*输出取反 */ c=20000-c; /*20000 代表 20 ms,为一个周期的时间 */ TH0=-(c/256); TL0=-(c%256); /*重新定义计数初值 */ if(c=500 else d=“20000-b“; /*主程序 */ void main(void) TMOD=0x11; /*设初值 */ p12=1; p13=1; a=1500; b=1500; /*数值 1500 即对应 1.5ms,为舵机的中间 90 度的位置 */ c=a;d=b; TH0=-(

13、a/256); TL0=-(a%256); TH1=-(b/256); TL1=-(b%256); /*设定定时器初始计数值 */ EA=1; ET0=1; TR0=1;EX0=1;EX1=1; ET1=1; TR1=1; PX0=0;PX1=0;PT1=1;PT0=1;/*设定中断优先级 */ for(;) 浙江经济职业技术学院毕业论文设计 10 /*在这个 for 循环中,可以根据程序需要 在任何时间改变 a、 b 值来改变脉宽的输 出时间,从而控制舵机 */ 因为在脉冲信号的输出是靠定时器的溢出中断函数来处理,时间很短,因此在精度要求不高的场合可以忽略。因此如果忽略中断时间,从另一个角度

14、来讲就是主程序和脉冲输出是并行的,因此,只需要在主程序中按你的要求改变 a 值,例如让 a 从 500 变化到 2500,就可以让舵机从 0 度变化到 180 度。另外要记住一点,舵机的 转动需要时间的,因此,程序中 a 值的变化不能太快,不然舵机跟不上程序。根据需要,选择合适的延时,用一个 a 递增循环,可以让舵机很流畅的转动,而不会产生像步进电机一样的脉动。这些还需要实践中具体体会。 舵机的速度决定于你给它的信号脉宽的变化速度。举个例子, t 0 试,脉宽为 0.5ms, t 1s 时,脉宽为 1.0ms,那么,舵机就会从0.5ms 对应的位置转到 1.0ms 对应的位置,那么转动速度如何呢?一般来讲, 3003 的最大转动速度在 4.8V 时为 0.23s/60 度,也就是说,如果你要求的速度比这个快的话,舵机就 反应不过来了;如果要求速度比这个慢,可以将脉宽变化值线性到你要求的时间内,做一个循环,一点一点的增加脉宽值,就可以控制舵机的速度了。当然,具体这一点一点到底是多少,就需要做试验了,不然的话,不合适的话,舵机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。