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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

智能循迹小车分析方案.docx

1、智能循迹小车分析方案 智能循迹小车设计专业:自动化班级:0804班姓 名:指导老师:2018年8月2018年10月摘要:本课题是基于AT89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以 AT89S52 单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。引言当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要

2、,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种

3、功能。无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得工程整体设计的能力

4、,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以杨老师提供的小车为基础上,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。一、实验目的:通过设计进一步掌握单片机的应用,特别是在嵌入式系统中的应用。进一步学习单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。二、设计方案:该智能车采用红外传感器对赛道进行道路检测,单片机根据采集到的信号的不同状态判断小车当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车姿态的控制。三、报告内容安排:本技术

5、报告主要分为三个部分。第一部分是对整个系统实现方法的一个概要说明,主要内容是对整个技术原理的概述;第二部分是对硬件电路设计的说明,主要介绍系统传感器的设计及其他硬件电路的设计原理等;第三部分是对系统软件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说明及代码设计介绍等。技术方案概要说明本模型车的电路系统包括电源管理模块、单片机模块、传感器模块、电机驱动模块。工作原理:利用红外采集模块中的红外发射接收对管检测路面上的轨迹将轨迹信息送到单片机单片机采用模糊推理求出转向的角度和行走速度,然后去控制行走部分最终完成智能小车可以按照路面上的轨迹运行。 硬件电路的设计1、最小系统:小车

6、采用atmel公司的AT89C52单片机作为控制芯片,图1是其最小系统电路。主要包括:时钟电路、电源电路、复位电路。其中各个部分的功能如下:1、时钟电路:给单片机提供一个外接的16MHz的石英晶振。2、电源电路:给单片机提供5V电源。3、复位电路:在电压达到正常值时给单片机一个复位信号。图1 单片机最小系统原理图2、电源电路设计:模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。在本设计中,51单片机使用5V电源,电机及舵机使用6V电源。考虑到电源为充电电池组,额定电压为7.2V,实际充满电后电压则为6.

7、5-6.8V,所以单片机及传感器模块采用7805稳压后的5V电源供电,舵机及电机直接由电池供电。3、传感器电路:光电寻线方案一般由多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。图2赛道检测原理图:4、电机驱动电路:电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电

8、阻器,形成电流传感信号。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。L298N的逻辑功能:表1 SHARP GP2D12实物图外形及封装:图3 L298N实物图L298N电路原理图:由于一片L298N可以直接驱动两个电机,但是为了加大驱动力,我们采用两路并联的方式来驱动电机。图3.3 L298N电路图软件系统的实现小车循迹规则:若小车偏左的时候,车轮将向右偏转;若小车偏右,车轮将向左偏转

9、;若没有偏移,小车将继续向前;若小车完全偏离黑色轨迹,小车后退以寻找黑色轨迹。小车程序:#include reg52.h#define det_Dist 2.55 /单个脉冲对应的小车行走距离,其值为车轮周长/4#define RD 9 /小车对角轴长度#define PI 3.1415926#define ANG_90 90#define ANG_90_T 102#define ANG_180 189/*=全局变量定义区=*/sbit P10=P10。 /控制继电器的开闭sbit P11=P11。 /控制金属接近开关sbit P12=P12。 /控制颜色传感器的开闭sbit P07=P07。

10、 /控制声光信号的开启sbit P26=P26。 /接收颜色传感器的信号,白为0,黑为1sbit P24=P24。 /左 sbit P25=P25。 /右 接收左右光传感器的信号,有光为0unsigned char mType=0。 /设置运动的方式,0 向前 1 向左 2 向后 3 向右unsigned char Direction=0。 /小车的即时朝向 0 朝上 1 朝左 2 朝下 3 朝右unsigned sX=50。 unsigned char sY=0。 /小车的相对右下角的坐标 CMunsigned char Light_Flag=0。/进入光引导区的标志(1unsigned i

11、nt cntTime_5Min=0。/时间周期数,用于 T0 精确定时unsigned int cntTime_Plues=0。 /霍尔开关产生的脉冲数/*=全局变量定义区=*/*-*/*-通用延迟程序-*/*-*/void delay(unsigned int time / time*0.5ms延时unsigned int i,j。for(j=0。j for(i=0。i。/*-*/*-显示控制模块-*/*-*/*数码管显示,显示铁片的数目(设接在P0,共阴*/void Display(unsigned char n char Numb12=0x3F,0x06,0x5B,0x4F,0x66,0

12、x6D,0x7D,0x07,0x7F,0x6F,0x37,0x77。P0=Numbn。/*-*/*-传感器模块-*/*-*/*光源检测程序: */*用于纠正小车运行路线的正确性*/unsigned char LightSeek( void Display(unsigned char。bit l,r。l=P24。r=P25。if(l=0&r=1 /Display(1。 return (3。 /偏左,向右开 if(r=0&l=1 /Display(3。 return(1。 /偏右,向左开 if(l=1&r=1|(l=0&r=0 /Display(9。 return(0。 /没有偏离,前进/*铁片检

13、测程序: */*判断铁片的颜色,设定bkAim,0为A仓库,1为B仓库,2为停车场*/void IornColor( delay(4000。 bkAim=(int(P26。 Display(int(P26+2。/*-*/*-运动控制模块-*/*-*/*=基本动作层:完成基本运动动作的程序集=*/*运动调整程序: */*对小车的运动进行微调*/void ctrMotor_Adjust(unsigned char tif(t=0 P2=P2&240|11。 /用来解决两电机不对称的问题 delay(6。 if(t=3 P2=P2&250。 /向左走 delay(1。 if(t=1 P2=(P2&2

14、45。 delay(1。 /向右走 P2=(P2&240|15。delay(10。/*直走程序: */*控制小车运动距离,dist为运动距离(cm,type为运动方式(0 2*/*只改变小车sX 和 sY的值而不改变Direction的值. */void ctrMotor_Dist(float dist,unsigned char type unsigned char t=0。mType=type。P2=(P2&240|15。cntTime_Plues=(int(dist/det_Dist。while(cntTime_Plues if(Inter_EX0=1&StartTask=0 cntTi

15、me_Plues=0。 break。 if(Light_Flag=1 t=LightSeek(。 if(type=0 /向前走 P2=P2&249。 delay(40。 ctrMotor_Adjust(t。 if(type=2 /向后退 P2=P2&246。 delay(50。 ctrMotor_Adjust(t。 P2=(P2&240|15。 if(mType=2 delay(60。/刹车制动 0.5ms else delay(75。 /*拐弯程序: */*控制小车运动角度,type为运动方式 unsigned char i=0。mType=type。P2=(P2&240|15。cntTim

16、e_Plues=(int(PI*RD*90/(180*det_Dist*1.2*ang/90。while(cntTime_Plues if(Inter_EX0=1&StartTask=0 cntTime_Plues=0。 break。 if(type=1 /向左走 P2=P2&250。 delay(100。 ctrMotor_Adjust(0。 if(type=3 /向右走 P2=P2&245。 delay(100。 ctrMotor_Adjust(0。 P2=(P2&240|15。 delay(50。/刹车制动 0.5ms if(!(Inter_EX0=1&StartTask=0 Direc

17、tion=dir。 /*=基本路线层:描述小车基本运动路线的程序集=*/*当小车到达仓库或停车场时,放下铁片或停车(0,1为仓库,2为停车场*/void rchPlace( unsigned int time,b,s,g。time=(int(cntTime_5Min*0.065535。/只有一个数码管时,轮流显示全过程秒数 个 十 百b=time%100。s=(time-b*100%100。g=(time-b*100-s*10%10。if(bkAim=2 /到达停车场了,停车 EA=0。 P2=(P2&240|15。 while(1 Display(10。 /N delay(2000。 Dis

18、play(cntIorn。 delay(2000。 Display(11。/A delay(2000。 Display(b。 delay(2000。 Display(s。 delay(2000。 Display(g。 delay(2000。 else if(Inter_EX0=1&StartTask=1P10=0。 /到达仓库,卸下铁片 /*无任务模式: */*设置小车的固定运动路线,未发现铁片时的运动路线*/void BasicRoute( /Light_Flag=1。 ctrMotor_Dist(153,0。 /Light_Flag=0。 ctrMotor_Ang(ANG_90,1,1。

19、ctrMotor_Dist(100-sX,0。ctrMotor_Dist(125,2。 ctrMotor_Dist(73,0。 ctrMotor_Ang(ANG_90,1,2。 /Light_Flag=1。 ctrMotor_Dist(153,0。 /Light_Flag=0。 ctrMotor_Ang(ANG_180,1,0。 rchPlace(。/*任务模式: */*设置小车的发现铁片后的运动路线*/void TaskRoute(/基本运行路线表,记载拐弯 0 向前 1 左拐 2 向后 3 右拐,正读去A区。反读去B区StartTask=1。ctrMotor_Ang(ANG_90_T,1,

20、2。if(bkAim=1 /仓库A ctrMotor_Dist(10,0。 P2=(P2&240|15。 delay(60。 ctrMotor_Ang(ANG_90_T,1,3。 ctrMotor_Dist(100-sX,2。 ctrMotor_Ang(ANG_90_T,1,2。 Light_Flag=1。 ctrMotor_Dist(153,2。 Light_Flag=0。 / ctrMotor_Ang(208,1,0。 else if(bkAim=0 /仓库B ctrMotor_Dist(10,0。 P2=(P2&240|15。 delay(60。 ctrMotor_Ang(ANG_90_

21、T,1,3。 ctrMotor_Dist(100-sX,0。 ctrMotor_Ang(ANG_90_T,1,0。 Light_Flag=1。 ctrMotor_Dist(153,2。 Light_Flag=0。 /ctrMotor_Ang(208,1,0。 delay(5000。 rchPlace(。/*-*/*-主程序段-*/*-*/void main(delay(4000。P2=0xff。 /初始化端口P07=0。 P1=0。TMOD=0x01。 /初始化定时器0/1 及其中断TL0=0。 TH0=0。TR0=1。ET0=1。ET1=1。IT0=1。 /初始化外部中断EX0=1。IT1=1。EX1=1。EA=1。P11=1。

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

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