自动搬运机器人论文_第1页
自动搬运机器人论文_第2页
自动搬运机器人论文_第3页
自动搬运机器人论文_第4页
自动搬运机器人论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自动搬运机器人成员:周丽丽 刘蕾 张长春 时间:8月4号-8月8号 摘要 本设计采用STC89C52单片机作为主控制器芯片,辅以木块探测模块、液晶显示、电源等模块,以实现对自动搬运机器人的自动控制。搬运机器人在移动过程中通过红外线探测技术来感测木块的位置,然后传给STC89C52单片机,通过单片机处理后控制PWM波来改变机器人的运动方向,然后通过控制机械手上的舵机来实现对木块的抓取。另外本设计可以通过显示模块显示每次运行时间。 AbstractThis design uses STC89C52 microcontroller as the main controller chip, with

2、wooddetection module, liquid crystal display, power supply module, in order to realize the automatic control of automatic guided robot. Handling robot in the process of moving through the infrared detection technology to sense the block position, and then transmitted to the STC89C52 microcontroller,

3、 control the direction of movement to change the robot PWM processed by the single chip, and then by controlling the servo manipulator to realize the catch block. In addition the design can be displayed through the display module for each run time.目 录1系统方案的设计、比较与论证11.1电源模块的论证与选择11.2 单片机的论证与选择1.21.3

4、电机驱动模块的论证与选择1.3 1.4红外避障模块的论证与选择1.41.5显示模块的论证与选择1.5 1.6机械手模块的论证与选择1 .5 2硬件电路的设计1.7.2.1 硬件电路设计院与分析1.72.2 机械手工作模块的设计1.72.3红避避障探测电路2.82.4显示电路的设计2.93系统软件设计2.93.1整体程序流程图2.93.2红外避障传感器程序流程图设计2.104系统测试3'.144.1测试环境3.144.2 测试仪器3.144.3 测试结果3.15 4.4 数据分析与总结.155 总结5.156 参考文献167 附录.程序.171、 系统方案的设计、比较与论证 根据题目的基

5、本要求,设计任务主要完成自动搬运机器人在规定形成范围内把三个木块运动仓库,并力求所用时间最短,同时对行程中的有关数据进行处理显示。为完成相应功能,系统可以划分为几个模块:电机驱动模块、电源模块、红外避障模块、机械手模块、显示模块。 图 11.1 电源模块 本系统要求6V和5V两种电压供电,故选用7.2V大功率镍镉电池组做电源,经由二端稳压器LM7805和LM7806稳压后输出标准5V和6V电压。分别向单片机和电机单独供电,实现了控制电路电源和单片机电源隔离,避由免了电源供电时电机启停产生的大电流对单片机和其他模块的影响。 图 21.2 单片机显示控制系统选择方案一:采用飞思卡尔系列单片机进行控

6、制。该系列单片机专用性强,是16位单片机处理速度快,拥有4个定时器,但是价格昂贵,在短时间内很难学懂及熟练的使用。方案二:采用8位的STC89C52作为自动搬运机器人的核心控制器。STC89C52单片机通用性强,运用比较广泛,容易上手,市场价格低。就本设计而言,足以满足要求。 经分析可得,STC89C52单片机无论从完成设计要求还是性价比上都更优于飞思卡尔系列单片机,故选方案二。1.3 电机驱动模块 根据题目中的要求,电机的速度不会很快,普通的电机很难满足要求,而直流减速电机可以满足此要求。故我们选用直流减速电机。 在选用驱动模块方面有以下两种方案:采用分立三极管驱动电路。经分析此电路的焊接比

7、较复杂,并且稳定性差,很难满足要求。采用专用驱动芯片。该芯片集成度高,占用空间小。主要应用于电机调速场合。用电机专用集成驱动电路可以达到预期的目标。故我们最后决定用后方案。 图 3 电机驱动电路1.4 红外避障模块方案一:TK-20黑白线检测传感器。在目标木块以及仓库的表面贴上白色胶带,但是,黑白线检测传感器检测距离近,难以调节,很难达到预期的目标。方案二:红外避障传感器。该集成传感器是专用于障碍物测量模块。其体积小,灵敏度高,测量距离远,可靠的工作性能等优点,可高度满足该题的要求。经过以上两个方案的比较,方案二明显优于方案一,故采用方案二。 图 41.5 显示模块 方案一:采用LCD1602

8、。占用太单片机IO口显示信息量少,占用太多的程序资源。 方案二:采用NOKIA5110。只占用5个单片机接口,同时显示信息量大,灵活多变显示多种信息。 因此,我们拟采用后者。1.6 机械手驱动模块本模块采用舵机来完成设计要求,其工作原理是由单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC判断转动方向,在驱动无核心马达开始转动。透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。鉴于此种舵机摆臂比较长很容易实现本设计要求,所以选用舵机。经过一番仔细的论证比

9、较,我们最终确定的系统详细方框图如下: 图 52 硬件电路的设计2.1 硬件电路设计原理分析 本设计要求机器人从起始线出发(出发前,机器人任何部分不得超出起跑线,后端不限),自动将木块逐一送到库房内(允许倒车)。运行时间应力求最短(从合上电源开关开始计时)。木块运到库房时,应能堆放到库房挡板20cm线以内;如果不能全部运到库房,记录木块距离20cm线的最大距离。我们根据小车走过的路程s和平均速度v来计算小车行驶所用的时间t。 图 6 机械手搬运示意图计算公式如下所示: v = s / t t总 = t1 + t2 +t3 S总 = v1t1 + v2t2 + v3t32.2 机械手工作模块设计

10、 利用红外避障传感器不断向外发射红外线进行探测。在小车行进的过程中,当探测到目标时,小车停止前进,进行转向,再利用车体下端的红外避暲传感器进行对物体的定位,并通过单片机驱动小车向目标前进,行进过程中自动校正方位,到达目标后,舵手夹住目标倒车转向,最终把目标松紧仓库。2.3 红外避障探测电路 本设计采用类似镜面反射原理来实现对物体的探测的,先通过调试电位器设定好红外探测的距离,红外避障传感器发出红外线后对目标探测,当红外线探测到目标后,根据镜面反射原理,光线返回被接收,传给单片机进行处理。 图 7 红外探测电路2.4 显示电路设计 该设计采用Nokia5110液晶来实现的。该模块采用串行接口与主

11、处理器进行通信,接口线数量大幅度减少,包括地和电源信号线共有8支,传输速率高达4bps,可全速写入显示数据,无等待时间。 图 8 显示电路 3 系统软件设计3.1 整体程序流程图 图 9 系统流程示意图3.2 红外避障传感器软件设计当小车行进过程中,当红外避障传感器探测到目标后,把数据传给单片机处理,否则小车继续前进。设计流程图如下(图 10) 图 10 红外避障传感器探测示意图4 系统测试4.1 测试环境 测试日期:2013-8-8 测试时间: 测试温度:30OC4.2 测试仪器秒表,米尺S4.3 测试结果左右偏差 前后偏差 搬运所用的时间4.4 数据分析与总结由以上数据我们可以看出,数据测

12、试的效果,达到了题目的要求,虽然还有一点偏差,但是经过我们的多次反复校正,测量的数据是在误差允许的范围内,且系统性能可靠稳定。5 总结经过为期四天的设计,我们终于成功的实现了题目的基本要求和部分发挥功能。同时加入了自己的创新部分,通过本次模拟设计大赛能够让我们学以致用,同时也激发了我们的创新思维。在这次模拟设计竞赛中,我们不但历练了实践能力和协作精神,而且懂了联系实际的重要性,这对我们以后的学习和生活有很大帮助。另外我们发现了红外避障传感器对不同的材质性能有很大影响的特点,当然,我们的设计也存在一些小问题,还有待改进。在此恳请各位评委批评指正。6 参看文献1. 华成英 【M】模拟电子技术基础(

13、第四版) 高等教育出版社2. 阎石 【M】数字电子技术基础 (第五版) 高等教育出版社3. 郭天祥 51单片机C语言教程 电子工业出版社7 附录 程序 /*2013-08-05*/*PWM波模块控制电机*/ /*头文件和预处理命令*/#include <reg52.h>#include<math.h>#define uchar unsigned char #define uint unsigned int#define Left_moto_pwm ENA /接驱动模块ENA使能端,输入PWM信号调节速度#define Right_moto_pwm ENB /接驱动模块E

14、NB#define Left_moto_go IN1=1,IN2=0; /P00 P01 接IN1 IN2 当 P3_4=0,P3_5=1; 时左电机前进#define Left_moto_back IN1=0,IN2=1; /P00 P01 接IN1 IN2 当 P3_4=1,P3_5=0; 时左电机后退 #define Left_moto_stop IN1=1,IN2=1; /P00 P01 接IN1 IN2 当 P3_4=1,P3_5=1; 时左电机停转 #define Right_moto_go IN3=1,IN4=0; /P02 P03 P3_7 接IN1 IN2 当 P3_6=0,

15、P3_7=1; 时右电机前转#define Right_moto_back IN3=0,IN4=1; /P02 P03 接IN1 IN2 当 P3_6=1,P3_7=0; 时右电机后退#define Right_moto_stop IN3=1,IN4=1; /P02 P03 接IN1 IN2 uchar i;uchar t1; /此参数改变占空比uchar t2;uchar num1; /计数器uchar num2;uchar PWM1_MAX=100; /此参数调节上限值uchar PWM2_MAX=100;/*位定义*/sbit Left_moto_pwm = P02;/根据自己板子定义引

16、脚sbit Right_moto_pwm = P05;sbit IN1 = P00; /控制左电机sbit IN2 = P01;sbit IN3 = P03; /控制右电机sbit IN4 = P04;sbit zuochuan=P07;/红外避障传感器sbit xiachuan=P20;sbit chuan=P21;sbit shangchuan=P22;uint a,c;sbit p10=P06;/*延时函数*/void DelayMS(uint z) uint i,j; for (i=z;i>0;i-) for (j=110;j>0;j-); /*前进函数*/ void ru

17、n()t1 =40;t2 =40;Left_moto_go ;Right_moto_go ; /*后退函数*/ void back() t1 =40;t2 =40;Left_moto_back ;Right_moto_back ; /*左转函数*/ void left() t1 =55; t2 =55; Right_moto_go;/右电机继续 Left_moto_back; /左电机停走 void left1() t1 =40; t2 =40; Right_moto_go;/右电机继续 Left_moto_back; /左电机停走 /*右转函数*/ void right() t1 =50;

18、t2 =50; Right_moto_back;/右电机停走 Left_moto_go;/左电机继续 void right1() t1 =60; t2 =60; Right_moto_stop;/右电机停走 Left_moto_go;/左电机继续 /*中断服务子程序*/void timer0(void) interrupt 1 p10=!p10; c=20000-c; TH0=-(c/256); TL0=-(c%256); if(c>=500&&c<=2500) c=a; else c=20000-a; /*中断服务子程序2*/ void time1(void) i

19、nterrupt 3 TH1=(65535-100)/256;TL1=(65535-100)%256; num1+;num2+;if(num1<=t1) Left_moto_pwm=1;/左电机pwm else Left_moto_pwm=0; if(num1=PWM1_MAX) num1=0;if(num2<=t2) Right_moto_pwm=1; /右电机pwm else Right_moto_pwm=0; if(num2=PWM2_MAX) num2=0;/*中断初始化函数*/void init() TMOD=0X11; a=500; /a小角度放开木块,大角度夹紧 c=

20、a; TH0=-(a/256); TL0=-(a%256); EA=1; ET0=1; TR0=1; TH1=(65535-100)/256; TL1=(65535-100)%256; ET1=1; TR1=1; /*主函数*/ void main(void) num1=0; /给计数器赋初值 num2=0; init(); while(1)/无限循环 run();if(zuochuan=0) run(); while(zuochuan=0); left1();DelayMS(480); Left_moto_stop; Right_moto_stop; DelayMS(500); run();DelayMS(200); Left_moto_stop; Right_moto_stop; DelayMS(500); if(xiachuan=0) a=2000;DelayMS(500); /夹紧延时 right1();DelayMS(1000); Left_moto_stop; Righ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论