ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.10MB ,
资源ID:7768141      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7768141.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(天津理工大学机电类专业设计之避障小车.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

天津理工大学机电类专业设计之避障小车.docx

1、天津理工大学机电类专业设计之避障小车机械工程学院专业设计设计说明书设计题目:避障 小 车 设 计 者: 刘 骏 学 号:设 计 者: 李 睿 学 号:设 计 者: 赵 喆 学 号:指导教师:陈炜 刘凉 乔志峰 完成日期:2016年9月 20 日天津理工大学机械工程学院摘要智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。本论文介绍的是具有自动避障功能的智能小车的设计与制作,论文对智能小车的方案选择,设计思路,以及软硬件的功能和工作原理进行了详细的分析和论述。经实践

2、验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案正确、可行,各项指标稳定、可靠。关键字: 智能小车 避障 模型第一章 绪论1.1 课题研究的意义自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 避障小车可以通过自动感应并躲避障碍物,在工作中可以取代人力运输,节省人力和成本。智能小车是一个及运用计算机、传感、信息、通信、导航、人工智能以及自动控制等技术来实现环境感知、规划决策和自动控制为

3、一体的高新技术综合体。它在军事、民用和截雪研究方面已经获得了一定的应用,对解决道路交通安全提供了一种新的途径。随着汽车工业的迅速发展,关于汽车的研究也就越来也多的受人关注。电研究意义很大。1.2课题研究的背景子设计技术是国家高科技实例的一个重要标准,可见其国外智能车辆的研究历史较长,始于上世纪50年代,它的发展历程大致可分为三个阶段: 第一阶段:20世纪50年代是智能车辆研究的初始阶段。早期研制该系统的目的是为了提高仓库运输的自动化水平,应用领域仅局限于仓库内的物品运输,但它却具有了智能车辆最基本的特征即无人驾驶。随着计算机的应用和传感器技术的发展,智能车辆的研究不断得到新的发展。 第二阶段:

4、从80年代中后期,世界主要发达国家对智能车辆开展了卓有成就的研究。进入80年代中期,设计和制造智能车辆的浪潮席卷了全世界,一大批世界著名的公司开始研究智能车辆平台。第三阶段:从90年代开始至今,智能车辆进入了深入、系统、大规模的研究阶段。最为突出的是,美国卡内基梅隆大学机器人研究所一共完成了Navlab系列的自主车的研究,取得了显著成就。 相比与国外,我国开展智能车技术方面的研究起步较晚,始于20世纪80年代,而且大多数研究尚处于针对某个单项技术研究的阶段。 中国第一汽车集团和国防科技大学机电工程与自动化学院于2003年研制成功了我国第一辆自主驾驶轿车。 上海交通大学应用现代控制理论设计出了一

5、种自动驾驶汽车模型,该模型在汽车系统的动力学建模的基础之上,设计了自动驾驶的专项系统,它能根据的弯曲变化程度实时的计算出车辆的转向盘角度,控制车辆按照预设道路行驶。 智能车辆研究也是智能交通系统ITS的关键技术。目前,国能许多高校和科研院所都在进行ITS关键技术、设备的研究,随着ITS研究的兴起,我国已经形成了一支ITS技术研究开发的专业技术队伍。1.3课题研究的主要内容其实智能车,就是一个机器人,其可以分为三大结构:传感器检测、机械执行、中央处理器。智能车通过感知导引线和障碍物,可以实现避障等功能,且可以通过一套完整的控制策略,改善小车的行驶状况,达到更加稳定的状态。 要完成上述的功能设计,

6、传感检测部分可以采用能够感知清晰的图像的摄像头,或者选用人们常用的光电对管传感器来感测路况。而智能小车的机械部分,可以采用四轮车(带有舵机)、或者三轮车(前轮为万向轮),电机则只需使用直流电机即可。对于主控芯片CPU,本组全组成员选择简单易用的51单片机或高级复杂额ARM等芯片,通过配合软件编程,可以很好的实现自动避障的功能第二章 问题的提出和简单分析2.1小车组建小车的组建可以分为几大项,即四轮车(可分为二轮驱动,四轮驱动),三轮车(三轮驱动,二轮驱动),履带车等本组全组成员在看过设计要求和建造小车的材料,以及简单的讨论之后,选择制作三轮车,因为三轮车是最基础的稳定结构,而且二轮驱动便于控制

7、。2.2 Cpu的选择启诚机器人电气模块主要有四种控制器,分别是MEGA48、MEGA16、MEGA128、89S52,每种控制器控制主板相同,基本输入输出点数相同,但每种控制器的可扩展性各不相同。本组全组成员在经过讨论后选择了AT89S52单片机,因为AT89S52单片机可以满足本次实验设计所想要达到的功能和效果。该单片机更加高效和低能,并且适用于多种编程器,更利于本组全组成员后续的程序设计。AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flas

8、h允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。2.3 传感器的选择本组全组成员初步的设计选择使用避障传感器,型号:TQD-GD002,因为距启航机器人使用手册说明,该传感器模块对环境光线适应能力强,并且 该传感器探测距离可以通过电位器调节,而且具有干扰小、便于装配、使用方便等特点。第三章 小车的制作3.1搭建车体本组全组成员在经过了简单分析后选择使用三轮车,通过控制器分别控制后面两个轮子,前面使用一个万向轮起支撑和保持平衡的作用,万向轮没有动力,便于后两个轮子

9、控制。如图1图1为了使电池和主板平稳置于小车上,本组全组成员在小车的底板上方添加了七个机体块。为了美观和后续制作,本组全组成员分别使用了长短不同的两组,共四个机体块直立安装,并安装一个横向的短机体块在短支架上,并在底板的最后方安装两个很短的机体架。如图2。 图 2在将电池和主板放在小车上后,为了更好的固定它们,本组全组成员又在之前加的机体块上添加了一个横着的机体块。同时为了更好的使传感器感应到前方的障碍物和火苗,本组全组成员在小车前端加了一个三角支架用于放前端的传感器。如图3。为了实现灭火功能,本组全组成员制作了小型的灭火装置,将灭火传感器和触碰传感器共同置于前端的三角支架上。风扇放在小车的前

10、端,三角支架的后方。图3然后本组全组成员将两个触碰传感器分别放在小车的左右前端,用于发现障碍物。如图4。图 4远距离探测传感器是因为本组全组成员在做小车测试的时候发现了问题,最后进行的更换,详细说明在第六章调试小车。3.2 小车的最后外形图 5小车所有零件规格见附录1。小车三视图大图见附录3。第四章 电路板的制作4.1安装电路元器件电路板实物图:图 6单片机底板电路图:图 7电路板零件清单见附录二。4.2焊接电路元器件4.2.1焊接的概念采用锡铅焊料进行焊接的称为锡铅焊,简称锡焊,其机理是:在锡焊的过程中将焊料、焊件与铜箔在焊接热的作用下,焊件与铜箔不熔化,焊料熔化并湿润焊接面,依靠焊件、铜箔

11、两者问原子分子的移动,从而引起金属之间的扩散形成在铜箔与焊件之间的金属合金层,并使铜箔与焊件连接在一起,就得到牢固可靠的焊接点4.2.2焊接工具电烙铁是最主要的焊接工具。电烙铁的种类很多,有直热式、感应式、储能式及调温式多种,电功率有15W、2OW、35W300W多种,主要根据焊件大小来决定。小功率电烙铁的烙铁头温度一般在300400之间。一般元器件的焊接用2OW内热式电烙铁。新的烙铁使用前,应用细纱纸将烙铁头打光亮,通电烧热,蘸上松香后用烙铁头刃面接触焊锡丝,使烙铁头上均匀的镀上一层锡,这样可以便于焊接和防止烙铁头表面氧化。若使用时间很长,烙铁头已经氧化发黑时,要用小锉刀轻锉去表面氧化层,在

12、其露出紫铜的光亮后用同新烙铁头镀锡的方法一样进行处理,才能使用。4.2.3锡料锡料:是一种易熔金属,它能使元器件引线与印制电路板的连接点连接在一起。锡(Sn)是一种质地柔软、延展性大的银白色金属,熔点为232,在常温下化学性能稳定,不易氧化,不失金属光泽,抗大气腐蚀能力强。铅(Pb)是一种较软的浅青白色金属,熔点为327,高纯度的铅耐大气腐蚀能力强,化学稳定性好,但对人体有害。锡中加入一定比例的铅和少量其它金属可制成熔点低、流动性好、对元件和导线的附着能力强、机械强度高、导电性好、不易氧化、抗腐蚀性好、焊点光亮美观的焊料,一般称焊锡。4.2.4焊接流程步骤一:准备施焊左手拿焊丝,右手握烙铁,进

13、入备焊状态。要求烙铁头保持干净,无焊渣等氧化物,并在表面镀有一层焊锡。步骤二:加热焊件烙铁头靠在两焊件的连接处,加热整个焊件全体,时间大约为12秒钟。对于在印制板上焊接元器件来说,要注意使烙铁头同时接触两个被焊接物。步骤三:送入焊丝焊件的焊接面被加热到一定温度时,焊锡丝从烙铁对面接触焊件。注意:不要把焊锡丝送到烙铁头上!步骤四:移开焊丝当焊丝熔化一定量后,立即向左上45度方向移开焊丝步骤五:移开烙铁焊锡浸润焊盘和焊件的施焊部位以后,向右上45度方向移开烙铁,结束焊接。从第三步开始到第五步结束,时间大约也是12s。4.2.5注意事项:1、先熟悉开发板原理图再和电路板上的丝印层相对照,以免出现错误

14、。2、焊接时要从低到高的顺序,先焊小元器件再焊大元器件,特别是先焊接USB接口和电阻这类器件。3、为了保证焊接的质量,焊接元件时一定要先固定一个引脚,然后调整元件的位置及高低至合适后,再焊另外的引脚,以免焊歪,因为一旦固定两个以上引脚,元件的位置就不可动。4、焊接USB接口时,应该先不要焊接其旁边的电容C4和复位按键,等焊上USB接口后再焊电容C4,另外,不要使USB引脚间相互短路。5、在往电路板上安装发光二极管、电解电容和蜂鸣器时,注意看准它们的极性。6、在安装集成块时,它们的缺口要与丝印层上的缺口保持一致。7、焊接数码管时一定要注意,必须先焊接板子底层的三个芯片,(建议:这三个芯片焊接完后

15、可以准备一个锋利的指甲剪或斜口钳,剪去芯片在正面的引脚过长的部分)。8、在焊接三极管时,注意三极管的朝向4.2.6遇到的问题和解决方案 初步焊接完成后,万用表测试时,有几个接口没有接好,重新焊接后,小灯亮起,焊接完成。第五章 编程5.1编写程序的应用软件编写程序应用软件:Keil uVision2是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作

16、效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。5.2编写传感器程序/*程序名称:避障 程序描述:测试小车避障1. 左右两个传感器的测量距离约为16cm,前面的传感器约为27cm2. LED的P0端为1时不亮3. 传感器遇到障碍物时输出低电平4. 无将P0口设为0xff;【

17、修改时间】: dong.2014.04.16 /*/#include#includeDCmotor.h#includeBiZhang.hsbit PWM0 = P12;sbit PWM1 = P14;sbit PWM2 = P25;sbit PWM3 = P27;sbit Beep = P11; /Beep=0,蜂鸣器响int timer = 0; /波形周期int count0 = 0; /PWM0输出波形的计数控制int count1 = 0; /PWM1输出波形的计数控制int count2 = 0; /PWM2输出波形的计数控制int count3 = 0; /PWM3输出波形的计数控

18、制uint tim0; /PWM0输出波形的计数控制uint tim1; /PWM1输出波形的计数控制uint tim2; /PWM2输出波形的计数控制uint tim3; /PWM3输出波形的计数控制/*【函数原型】: Tim2_Init() 【函数描述】:初始化时钟T2和中断【修改时间】: dong.2014.04.16 /*/void Tim2_Init() T2MOD = 0x00; TH2 = (65535-500)/256; /定时500us为周期 TL2 = (65535-500)%256; RCAP2H = (65535-500)/256; /定时500us为周期 RCAP2寄

19、存器中存放要放入T2的初值 RCAP2L = (65535-500)%256; ET2 = 1; /允许T2的中断 TR2 = 1; /启动T2 EA = 1; /开中断/*【函数原型】:void main();【函数描述】:在蜂鸣器响一声后进行时钟T2的初始化(Tim2_Init(), 设定左后和右后两个电机的状态,之后利用while循环检测是否遇到障碍【修改时间】: dong.2014.04.16 /*/void main() Beep = 0; delay_ms(100); Beep = 1; Tim2_Init(); DC_Motor_Config(4 ,f ,50 ); DC_Mot

20、or_Config(2 ,f ,50 ); while(1) Bi_Sensor(); /*【函数原型】: PWM_Cyle2() 【函数描述】:利用T2计时中断产生PWM波,【修改时间】: dong.2014.04.16 /*/void PWM_Cyle2() interrupt 5 timer +; /控制PWM波周期 count0 +; /PWM0计数 count1 +; /PWM1计数 count2 +; /PWM2计数 count3 +; /PWM3计数 if(count0 = tim0) PWM0 = 0; count0 = 0; if(count1 = tim1) PWM1 =

21、0; count1 = 0; if(count2 = tim2) PWM2 = 0; count2 = 0; if(count3 = tim3) PWM3 = 0; count3 = 0; if(timer = 100) PWM0 = 1; PWM1 = 1; PWM2 = 1; PWM3 = 1; timer = 0; count0 = 0; count1 = 0; count2 = 0; count3 = 0; /*程序名称:DCmotor.c 程序描述:包含电机函数的C文件/*/#include DCmotor.hextern uint tim0; /PWM0输出波形的计数控制exter

22、n uint tim1; /PWM1输出波形的计数控制extern uint tim2; /PWM2输出波形的计数控制extern uint tim3; /PWM3输出波形的计数控制sbit DIR0 = P10;sbit DIR1 = P13;sbit DIR2 = P24;sbit DIR3 = P26;/*【函数原形】; delay_ms(unsigned int x); 【函数描述】:延时函数(单位:100us)【修改时间】: dong.2014.04.16 /*/void delay_ms(unsigned int x) unsigned int i,j; i=0; for(i =

23、0;i x;i+) j=108; while(j-); /*=【函数原形】: void motor(unsigned char m ,unsigned char z,unsigned char n )【参数说明】: m: 选择电机用, 可输入1,2,3,4 1:左前电机,2:左后电机,3:右前电机,4:右后电机 z: 选择方向用, 可输入 f/forward(前进) , b/backward(后退) n: 电机转速, 范围为1-100 【修改时间】: dong.2014.04.13 =*/void DC_Motor_Config(uchar m ,uchar z,uint n )/ unsig

24、ned int tmp = 0 ; switch (m) case 1 : if(z = backward)|(z = b) DIR2 = 1 ; else if(z = forward)|(z = f) DIR2 = 0 ; tim2 = n ; break; case 2: if(z = backward)|(z = b) DIR1 = 1 ; else if(z = forward)|(z = f) DIR1 = 0 ; tim1 = n ; break; case 3: if(z = backward)|(z = b) DIR3 = 0 ; else if(z = forward)|(

25、z = f) DIR3 = 1 ; tim3 = n ; break; case 4: if(z = backward)|(z = b) DIR0 = 0 ; else if(z = forward)|(z = f) DIR0 = 1 ; tim0 = n ; break; default: break; /*=【函数原形】: void DC_Motor_Stop(uchar k)【参数说明】: k: 选择电机用, 可输入1,2,3,4,1:左前电机,2:左后电机,3:右前电机,4:右后电机 【修改时间】: dong.2014.04.16 =*/void DC_Motor_Stop(uchar k) DC_Motor_Config(k ,b ,5 ); delay_ms(12); DC_Motor_Config(k ,f ,1 );/*程序名称:BiZhang.c 程序描述:包含三个光电传感器判断的函数主体/*/#include Dcmotor.h#include BiZhang.hsbit l_sensor = P04; /左侧传感器sbit r_sensor = P02; /右侧传感器sbit f_sensor = P03; /前方传感器/sbit PWM0 = P12;sbit PWM1 = P14;sbit PWM2 = P25;sbit PWM3 = P2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1