[论文精品] 位置随动系统设计.doc

上传人:小小飞 文档编号:3904232 上传时间:2019-10-10 格式:DOC 页数:15 大小:134.93KB
返回 下载 相关 举报
[论文精品] 位置随动系统设计.doc_第1页
第1页 / 共15页
[论文精品] 位置随动系统设计.doc_第2页
第2页 / 共15页
[论文精品] 位置随动系统设计.doc_第3页
第3页 / 共15页
[论文精品] 位置随动系统设计.doc_第4页
第4页 / 共15页
[论文精品] 位置随动系统设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《[论文精品] 位置随动系统设计.doc》由会员分享,可在线阅读,更多相关《[论文精品] 位置随动系统设计.doc(15页珍藏版)》请在三一文库上搜索。

1、位置随动系统设计指导教师评定成绩: 审定成绩: 自 动 化 学 院计算机控制技术及应用课程设计报告 设计题目:位置随动系统设计单位(二级学院): 自 动 化 学 院 学 生 姓 名: 专 业: 自动化 班 级: 学 号: 指 导 教 师: 设计时间: 2010 年 6 月自动化学院制一、 设计题目设计一随动系统,通过传感器检测障碍物的方向,判断和现有方向的角度,通过控制步进电机调整转角,实现角度跟踪。设计目的:1) 掌握A/D转换与单片机的接口连线;2) 掌握步进电机控制原理;3) 掌握自动控制系统设计方法;设计要求:1) 画出控制系统结构框图;2) 选择合适元器件进行电路设计,画出电路原理图

2、;3) 画出系统功能实现流程图;4) 编写控制程序。二、 设计报告位置随动系统设计摘要:通过对位置随动系统的分析,传感器检测障碍物的方向,判断和现有方向的角度,编写程序实现串口控制步进电机的正传、反转、停止、速度控制,实现角度跟踪,然后采用激光传感器检测障碍物和它距本系统的距离,当激光传感器没有检测到障碍物时,两控制步进电机在规定水平和垂直的角度内不停的扫描。当激光传感器检测到障碍物时,控制步进电机对障碍物进行跟踪。画出了控制结构图,利用Keil软件编程并用Proteus仿真,最后在硬件电路上位置随动。本系统操作使用方便,测试可靠性和准确度较高,外部干扰小。关键字: 位置随动系统 步进电机 控

3、制系统结构及系统设计方法本系统的系统结构图如图一题所示:89C51激光传感器步进电机基本电路ULN2003驱动芯片超声波传感器液晶显示器显示到障碍物的距离图一 系统结构图随动控制系统又名伺服控制系统,是一种以机械位置或角度作为控制对象的自动控制系统,使用在伺服系统中的驱动电机要求具有响应速度快、定位准确、转动惯量较大等特点。其参考输入是变化规律未知的任意时间函数。随动系统的重要指标以跟随性能为主。l 硬件部分本系统用到的硬件如下:单片机:89C51单片机;激光传感器:采用有效量程为01.5米的发收一体激光传感器传感器;ULN2003步进电机驱动芯片:提供小于50V的电压步进电机:四相八拍电机,

4、电压为5V-12V,步距角5.625,衰减比为64;本系统的工作原理图如图二所示:l 软件部分程序流程图如图三所示:开始初始化顺时针方向扫描70度逆时针方向扫描70度左转返回停止转动右转是否检测到障碍物是否检测到障碍物是否否是障碍物是左边还是右边否右左中间激光对准障碍物否否是(一) 系统的工作原理步进电机工作原理:一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。每输入一个冲信号,该电动机就转过一定的角度。因此步进电动机是一种把脉冲变为角度位移的执行元件。我们采用的是28BYJ48步进电机,该步进电机为四相八拍电机,电压为DC5V-12V。当对步进电机施加一系列连续不断的控

5、制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一个步距角。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,通电方式有为八拍:A-AB-B-BC-C-CD-D-DA-A。其相序表如下步序:3 2 1 0 1 0 0 0 1 01H 2 0 0 1 1 03H 3 0 0 1 0 02H 4 0 1 1 0 06H 5 0 1 0 0 04H 6 1 1 0 0 0CH 7 1 0 0 0 08H8 1 0 0 1 09H主要技术参数:相数4、电流92mA电阻13、步钜角5.625、衰减比为

6、1/64、空载牵出频率800pps空载牵入频率500pps、牵入转矩78.4mN.m、接线指示A(橙)、B(黄)、C(蓝)、D(灰)、E(红,中点)。三、 设计总结通过对位置系统随动系统的设计,让我们加强了搜集资料和动手的能力,激光传感器的采用,89C51单片机的选取,还有28BYJ48步进电机的采用,都是经过详细分析和讨论选出来的。希望在接下来的学习当中能够更上一层楼。四、 参考文献1 王平,蒋建春.计算机控制技术及应用M.北京:机械工业出版社,2010.1.2 张毅刚.单片机原理及应用M.北京:高等教育出版社,2008.6.3 穆福顺.自动测量系统设计J.火控雷达技术,2009,9(3).

7、4 陈勇,陈亚爱.电机与拖动基础M.北京:电子工业出版社,2007.5.五、 附录程序:#include#include intrins.h#define N 64 /减速比unsigned char code table1=detecting object;unsigned char code table2=distace = . cm; /10 12unsigned char data dist_temp3;sbit left_light = P00;sbit right_light = P01;sbit mid_light = P02;sbit up_light = P03;sbit d

8、own_light = P04;sbit center_light = P05;sbit CSOut = P34;sbit rs = P35;sbit rw = P36;sbit lcden = P37;unsigned char flag,TIME,ReceiveOK,ct; /1左,2中,3右 4上 5中 6下unsigned char code rotate_r8 = 0x99,0x11,0x33,0x22,0x66,0x44,0xcc,0x88;void delay_nm(unsigned char z) unsigned char x; while(z-) for(x = 0;x 0

9、;x-)for(y = 600;y 0;y-);void write_com(unsigned char com)rs = 0;lcden = 0;P2 = com;delay_ms(5);lcden = 1;delay_ms(5);lcden = 0;void write_dat(unsigned char dat)rs = 1;lcden = 0;P2 = dat;delay_ms(5);lcden = 1;delay_ms(5);lcden = 0;void CCOut() /超声波发射函数unsigned char i,j; CSOut = 0;for(j = 0;j 12;j+) C

10、SOut = CSOut; for(i = 0;i 12;i+) _nop_(); CSOut = 1;void DataProcess() /计算距离并分解 long time = 0; TIME = TH0; TIME = (TIME 8)|TL0; TIME *= 173; /距离 TIME = TIME/10000; /单位:CM dist_temp0 = TIME%10; dist_temp1 = TIME%100/10; dist_temp2 = TIME/100;void CSBCJ_start()unsigned char i;TMOD = 0x01;/T0定时器方式1TH0

11、= 0x00; TL0 = 0x00; TIME = 0; ET0 = 1;IT0 = 0;/INT0负边沿触发EX0 = 1;TR0 = 1;EA = 1; CCOut(); ct = 100; while(-ct); /等待一段时间让超声波去检测 TR0 = 0;EX0 = 0; if(ReceiveOK = 1) /接收成功 DataProcess(); /数据处理 write_com(0x80+0x40+10); write_dat(dist_temp2); write_com(0x80+0x40+12); write_dat(dist_temp1); write_dat(dist_t

12、emp0); ReceiveOK = 0; /清除接收成功标志 for(i = 0;i 3;i+) dist_tempi = 0; elsewrite_com(0x80+0x40+10); write_dat(dist_temp2); write_com(0x80+0x40+12); write_dat(dist_temp1); write_dat(dist_temp0);void right_rotate()unsigned char r,i,j;for(r = 0;r N;r+) for(j = 0;j 8;j+)for(i = 0;i 8;i+)P1 = rotate_ri&0x0f;i

13、f(mid_light = 0)delay_ms(5);if(mid_light = 0)flag = 2;CSBCJ_start();break;delay_nm(10);if(flag = 2)break; if(flag = 2)break;flag = 0;void left_rotate()unsigned char r,j;char i;for(r = 0;r N;r+)for(j = 0;j = 0;i-)P1 = rotate_ri&0x0f;if(mid_light = 0)delay_ms(5);if(mid_light = 0)flag = 2;CSBCJ_start()

14、;break;delay_nm(10);if(flag = 2)break;if(flag = 2)break;flag = 0;void up_rotate()unsigned char r,j;char i;for(r = 0;r N;r+) for(j = 0;j = 0;i-)P1 = rotate_ri&0xf0;if(center_light = 0)delay_ms(5);if(center_light = 0)flag = 5;CSBCJ_start();break;delay_nm(10);if(flag = 5)break; if(flag = 5)break;flag =

15、 0;void down_rotate()unsigned char r,i,j;for(r = 0;r N;r+) for(j = 0;j 8;j+)for(i = 0;i 8;i+)P1 = rotate_ri&0xf0;if(center_light = 0)delay_ms(5);if(center_light = 0)flag = 5;CSBCJ_start();break;delay_nm(10);if(flag = 5)break; if(flag = 5)break;flag = 0;void main()unsigned char r,j;char i;flag = 0;rw

16、 = 0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(j = 0;j 16;j+)write_dat(table1j);for(j = 0;j 16;j+)write_dat(table2j);while(1)while(1)/顺时针巡查for(r = 0;r N;r+)for(j = 0;j 8;j+)for(i = 0;i 8;i+) P1 = rotate_ri;if(mid_light = 0)delay_ms(2);if(mid_light = 0)flag =

17、 2;break;if(left_light = 0)delay_ms(2);if(left_light = 0)flag = 1;break;if(right_light = 0)delay_ms(2);if(right_light = 0)flag = 3;break;if(up_light = 0)delay_ms(2);if(up_light = 0)flag = 4;break;if(center_light = 0)delay_ms(2);if(center_light = 0)flag = 5;break;if(down_light = 0)delay_ms(2);if(down

18、_light = 0)flag = 6;break;delay_nm(10);if(flag != 0) break;if(flag != 0)break; if(flag != 0)break;/逆时针巡查delay_ms(100);for(r = 0;r N;r+)for(j = 0;j =0;i-)P1 = rotate_ri;if(mid_light = 0)delay_ms(2);if(mid_light = 0)flag = 2;break;if(left_light = 0)delay_ms(2);if(left_light = 0)flag = 1;break;if(right

19、_light = 0)delay_ms(2);if(right_light = 0)flag = 3;break;if(up_light = 0)delay_ms(2);if(up_light = 0)flag = 4;break;if(center_light = 0)delay_ms(2);if(center_light = 0)flag = 5;break;if(down_light = 0)delay_ms(2);if(down_light = 0)flag = 6;break;delay_nm(10);if(flag != 0)break;if(flag != 0)break;if(

20、flag != 0)break;delay_ms(100);if(flag != 0) /启动超声波测量 CSBCJ_start(); switch(flag)case 1: left_rotate();break;case 2:flag = 0;break;case 3:right_rotate();break;case 4:up_rotate();break;case 5:flag = 0;break;case 6:down_rotate();break;void Receive(void) interrupt 0 TR0 = 0; /关闭定时器,下一步要读取定时器的值 EX0 = 0; ET0 = 0; ReceiveOK = 1; /设定接收成功标志15

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1