智能循迹小车设计与实现_第1页
智能循迹小车设计与实现_第2页
智能循迹小车设计与实现_第3页
智能循迹小车设计与实现_第4页
智能循迹小车设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

/智能循迹小车设计和实现摘要本文介绍的是基于单片机STC89C52限制智能循迹小车的设计。利用红外对光管检测黑线和障碍物,并以STC89C52单片机为限制芯片限制电动小汽车的运动,从而实现自动循迹避障的功能。其中小车的电机由LG9110驱动,整个系统的电路结构简洁,牢靠性高。关键词STC89C52LG9110红外对光管循迹小车ThemanufactureofintelligenttrackingcarAbstractThisarticaleintroducesthedesignofintelligenttrackingcarbasedontheSTC89C52singlechipcomputer.Basedinfrareddetectionofblacklinesandtheroadobstacles,anduseaSTC89C52MCUasthecontrollingcoreforthemovement.Aelectronicdrived,whichcanautomatictrackandavoidobstacle,wasdesignedandfabricated.Inwhich,theelectricmachineryofcarisdrivedbytheLG9110.Theelectriccircuitstuctionofwholesystemissimple,andthefunctionisdependable.KeywordsSTC89C52LG9110InfraredemittingdiodeTrackingcar第1章引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很简洁将计算机技术和测量限制技术结合,组成智能化测量限制系统。这种技术促使机器人技术也有了突飞猛进的发展。单片机技术作为自动限制技术的核心之一,被广泛应用于工业限制、智能仪器、机电产品、家用电器等领域。随着微电子技术的快速发展,单片机功能也越来越强大,本设计基于单片机技术在智能寻迹小车限制系统的设计中,以STC89C52为核心,用LG9110驱动两个减速电机,当产生信号驱动小车前进时,是通过寻迹模块里的传感器管是否寻到黑线产生的电平信号通过传感器再返回到单片机,单片机依据程序设计的要求作出相应的推断送给电机驱动模块,让小车实现前进、左转、右转、停车等基本功能,寻白线时,外部环境光线的强弱对小车的运动会产生很大的影响,基于此缘由,本试验中的寻迹是指在白色地板上寻黑线。1.1设计目的1、了解机械部件结构和机械安装过程;2、驾驭电动机齿轮箱内部结构及减速原理;3、了解电子元器件的基本形态及焊接过程;4、驾驭电子元器件的焊接步骤和检测过程;5、了解单片机内部结构和程序编制方法;6、了解LED灯驱动方法,全面驾驭流水灯/跑马灯编程技术;7、了解数码管内部结构,驾驭数码显示技术;8、了解键盘结构原理,驾驭中断查询技术;9、了解话筒电路结构,驾驭话筒输入技术;10、了解蜂鸣器驱动技术,全面体现音乐报警功能;11、了解光敏电阻结构原理,充分体现夜间自动照明功能;12、了解红外放射和接收技术,有力体现防撞检测和智能寻迹功能13、了解直流电机驱动原理,驾驭电机驱动技术;14、相识红外检测传感器,全面驾驭红外遥控编码解码技术;15、了解R232通信协议,驾驭串口通信技术。16、通过本机系统学习,全面驾驭智能自动寻迹机器人的限制方法。1.2设计要求当前的电动小汽车基本上实行的是基于纯硬件电路的一种开环限制方法,或者是直线行使,或者是在遥控下作出前进、后退、转弯、停车等基本功能。但是它们不能实现在某些特殊的场合下,我们须要能够自动限制的小型设备先采集到一些有用的信息的功能。本文正是在这种须要之下开发设计的一种智能的电动小车的自动限制系统。它以单片机STC89C51为限制核心,附以外围电路,在画有黑线的白纸“路面”上行使,由于黑线和白线对光线的反射系数不同,可依据接收到的反射光的强弱来推断“道路”——黑线。推断信号可通过单片机限制驱动模块修正前进方向,以使其保持沿着黑线行进。轨迹探测模块用2对红外放射管。2对各置于轨道外侧,当小车脱离轨道时,外面随意一只检测到黑线后,做出相应的转向调整,直到重新回到轨道。第2章总体方案设计2.1总体方案的设计思路该简易智能小车在画有黑线的白纸“路面”上行使,不断地向地面放射红外光,利用红外线在不同颜色的物理表面具有不同的反射性质的特点,当红外光遇到白色地面时发生漫放射,反射光被装在小车上的接收管接收;假如遇到黑线则红外光被吸取,则小车上的接收管接收不到信号。当红外接收探头接收到信号后,再将信号送到单片机由单片机内部程序来限制电机,由电机完成小车的前进,转向。因此,可依据接收到的反射光的强弱来推断“道路”——黑线。2.2总体方案设计整个路系统分为检测、限制、驱动三个模块。首先利用光电对管对路面信号进行检测,把检测到的光信号转化为电信号,送给单片机进行处理,然后单片机输出相应的信号给驱动芯片驱动电机转动,从而限制整个小车的运动。系统方案方框图如图所示:限制小车驱动电机软件限制检测(黑线)图2-2限制小车驱动电机软件限制检测(黑线)2.2.1方案一:接受FPGA(现场可编程门阵列)作为系统的限制器。FPGA可以实现各种困难的逻辑功能,规模大,密度高。但由于本设计对数据处理速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时其芯片引脚较多,实物硬件电路板布线困难,加重了电路设计和实际焊接的工作。因此解除该方案。方案一:接受89C51作为限制核心。针对本设计特点—多开关量输入的困难程序限制系统,须要擅特长理多开关量得单片机,而不能用精简I/O口和程序存储的小体积单片机,A/D,D/A功能也不必选用,据此,我们选用STC89C51单片机,另外,该单片机价格低廉,运用简洁。综上所述,我们选用方案二。2.2方案一:接受继电器对电动机的开或关进行限制,通过开关的切换对小车的运动进行调整,此方案的优点是电路较为简洁,缺点是继电器的响应速度慢,易损坏,寿命短,牢靠性不高。方案二:市面上有特地的双电机驱动芯片LG9110,经测试性能可以满足小车的电机限制要求,而且外围电路比较简洁,稳定性好,驱动实力强,能够很好的保证两电机的同步。因此,接受方案二。2.2方案一:接受摄像头或探测头收集画板上信息。用这种方法,对板面信息处理精确,但是成本过高,对硬、软件的要求都特殊高,短时间内难做出实物来。方案二:运用可见光发光二级管和光敏二级管组成的放射-接受模块。这种方案的缺点在于其他环境光源会对光敏二级管工作产生很大干扰,一旦外界光亮条件变更,很可能造成误判和漏判;如接受高亮发光管可以降低确定的干扰,但会增加额外的功率损耗。方案三:运用反射式红外二级管和接收管组合放射-接收器。由于红外光波长比可见光长,因此受可见光的影响比较小,同时,红外对管还具有以下优点:质量轻,灵敏度高,线性好,接口电路比较简洁,安装便利,对于本系统中近距离的检测,用它作为传感器将是最志向的。因此,本系统接受方案三2.2.4方案一:接受直流电机。直流电机运用便利,价格便宜,有优良调速特性,实现便利平滑调速,调整范围广,有较强过载实力,能承受常见的冲击负载,可频繁无级快速启动,制动,反转。方案二:接受步进电机。步进电机的运动精度很高,由其组成的位置限制系统定位精确,稳定时间短,一般可接受开环限制。但限制系统必需由双环形脉冲信号,功率驱动电路等组成方可运用,限制相对困难。综上所述,直流电机的电路相对简洁,功能合题意,运用便利,价格便宜,本系统接受直流电机作为动力源。第3章系统硬件设计3.1系统的硬件组成硬件设计总体上以STC89C52为核心,辅以必要的外围电路,完成红外传感器对运动轨迹的检测,信号的处理,电机的转动等功能。系统总框图如下:3.2单片机模块此部分是整个小车运行的核心部件,起着限制小车全部运行状态的作用。这里选择了ATMEL公司的STC89C52作为限制核心部件。该单片机要想正常工作,还需有复位电路和晶振电路,此单片机的最小系统图如下: 图3-23.3电机驱动模块LG9110是为限制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机牢靠性提高。该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能干脆驱动电机的正反向运动,它具有较大的电流驱动实力,每通道能通过750~800mA的持续电流,峰值电流实力可达1.5~2.0A;同时它具有较低的输出饱和压降和静态电流;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的运用上平安牢靠。9110被广泛应用于玩具汽车电机驱动、自动阀门电机驱动、电磁门锁驱动等电路上。该驱动芯片LG9110的IA,IB口接单片机,输出口OA,OB接电机。O口为低电平常,电机正传。O口为高电平常,电机反转。电机驱动电动如下图3-3:图3-33.4红外检测模块本单元模块中,白色管作为发色管,黑色管作为接管,当白色管放射一束光,遇到黑线或白色物体反射,黑色管接收到反射光,然后把光信号转化为电信号送给单片机进行处理,限制电机的正反转,电路原理图如下:图3-43.5声控模块话筒的阻值随接收到声音信号强度的变更而变更,在电容正端产生变更的电压信号,经电容C5耦合和基本共射极三极管V3的电压反向存在,通过单片机P0.4引脚采集和处理可实现小车的声控功能,正常状况下P0.4管脚采集到的是高电平信号,当话筒收到强度足够的声音后,三极管导通后P0.4管脚变为低电平。原理图如图3-5:

图3-53.6报警模块单片机上电后各管脚默认为高电平,三极管不导通。当须要执行报警时,单片机P0.6管脚出现低电平信号,三极管导通驱动蜂鸣器报警。如图3-6图3-63.7串口通信模块此模块用于单片机和电脑进行串口通信,但由于计算机串口为RS232电平,高电平为—12V,低电平为+12V,而单片机为TTL电平,高电平为+5V,低电平为0V,因此,计算机和单片机之间通讯时须要加电平转换芯片MAX232.原理图如下图3-7第4章系统软件设计该系统的软件程序接受模块结构,由C语言编写完成,主要由初始化程序,偏道调整程序、声光指示程序,读红外对光管状态,显示程序等模块组成。总的设计流程图如下:循迹流程图:循迹程序:#include<at89x51.h>//包含51单片机相关的头文件sbitLeftLed=P2^0;//定义前方左侧指示灯端口sbitRightLed=P0^7;//定义前方右侧指示灯端口sbitLeftIR=P3^5;//定义前方左侧红外探头端口sbitRightIR=P3^6;//定义前方右侧红外探头端口sbitFontIR=P3^7;//定义前方正前方红外探头端口sbitM1A=P0^0;//定义左侧电机驱动A端sbitM1B=P0^1;//定义左侧电机驱动B端sbitM2A=P0^2;//定义右侧电机驱动A端sbitM2B=P0^3;//定义右侧电机驱动B端sbitB1=P0^4;//定义语音识识别传感器端口sbitSB1=P0^6;//定义蜂鸣器端口#defineRunShowP1//定义数据显示端口voidDelay()//定义机器人调转子时间子程序{unsignedintDelayTime=50000;//定义机器人转弯时间变量while(DelayTime--);//机器人转弯循环SB1=!SB1;//蜂鸣器闪响return;}voidControlCar(unsignedcharConType)//定义电机限制子程序{M1A=0;//将M1电机A端初始化为0M1B=0;//将M1电机B端初始化为0M2A=0;//将M2电机A端初始化为0M2B=0;//将M2电机B端初始化为0switch(ConType)//推断用户设定电机形式{case1://前进//推断用户是否选择形式1{M1A=1;//M1电机正转M2A=1;//M2电机正转break;}case2://后退//推断用户是否选择形式2{M1B=1;//M1电机反转M2B=1;//M2电机反转break;}case3://左转//推断用户是否选择形式3{M2A=1;//M2电机正转 break;}case4://右转//推断用户是否选择形式4{M1A=1;//M1电机正转//M2电机反转 break;}case8://停止//推断用户是否选择形式8{break;//退出当前选择}}}voidmain()//主程序入口{bitRunFlag=0;//定义小车运行标记位RunShow=0;//初始化显示状态ControlCar(1);//初始化小车运行状态while(1)//程序主循环{Start:LeftLed=LeftIR;//前方左侧指示灯指示出前方左侧红外探头状态RightLed=RightIR;//前方右侧指示灯指示出前方右侧红外探头状态if(LeftIR==0)//左侧红外探头没有接收到白色道路信号{ControlCar(4);//左侧没有信号时,起先向右转确定的角度 Delay();//修改这里进行转弯角度的调整 Delay();//同上 Delay(); gotoNextRun;}if(RightIR==0){ControlCar(3);//右侧没有信号时,起先向左转确定的角度 Delay();//修改这里进行转弯角度的调整 Delay();//同上Delay(); gotoNextRun;}gotoStart;NextRun:ControlCar(1);}} 避障流程图:避障程序:#include<at89x51.h>//包含51单片机相关的头文件sbitLeftLed=P2^0;//定义前方左侧指示灯端口sbitRightLed=P0^7;//定义前方右侧指示灯端口sbitLeftIR=P3^5;//定义前方左侧红外探头端口sbitRightIR=P3^6;//定义前方右侧红外探头端口sbitFontIR=P3^7;//定义前方正前方红外探头端口sbitM1A=P0^0;//定义左侧电机驱动A端sbitM1B=P0^1;//定义左侧电机驱动B端sbitM2A=P0^2;//定义右侧电机驱动A端sbitM2B=P0^3;//定义右侧电机驱动B端sbitB1=P0^4;//定义语音识识别传感器端口sbitSB1=P0^6;//定义蜂鸣器端口#defineRunShowP1//定义数据显示端口voidDelay()//定义机器人调转子时间子程序{unsignedintDelayTime=50000;//定义机器人转弯时间变量while(DelayTime--);//机器人转弯循环SB1=!SB1;//蜂鸣器闪响return;}voidControlCar(unsignedcharConType)//定义电机限制子程序{M1A=0;//将M1电机A端初始化为0M1B=0;//将M1电机B端初始化为0M2A=0;//将M2电机A端初始化为0M2B=0;//将M2电机B端初始化为0switch(ConType)//推断用户设定电机形式{case1://前进//推断用户是否选择形式1{M1A=1;//M1电机正转M2A=1;//M2电机正转break;}case2://后退//推断用户是否选择形式2{M1B=1;//M1电机反转M2B=1;//M2电机反转break;}case3://左转//推断用户是否选择形式3{M1B=1;//M1电机反转M2A=1;//M2电机正转 break;}case4://右转//推断用户是否选择形式4{M1A=1;//M1电机正转M2B=1;//M2电机反转 break;}case8://停止//推断用户是否选择形式8{break;//退出当前选择}}}voidmain()//主程序入口{bitRunFlag=0;//定义小车运行标记位RunShow=0;//初始化显示状态ControlCar(1);//初始化小车运行状态while(1)//程序主循环{LeftLed=LeftIR;//前方左侧指示灯指示出前方左侧红外探头状态RightLed=RightIR;//前方右侧指示灯指示出前方右侧红外探头状态RunShow=FontIR;//数据显示窗口,指示前方红外探头状态if(FontIR==0||LeftIR==1||//推断前方,左侧,右侧是否有信号输入RightIR==1){ControlCar(2);//让小车后退 Delay();//起先小车后退延时子程序 Delay();//确定了小车后退的步数 Delay();//变更它可以改小车后退的距离 Delay();//这里只是一个延时ControlCar(3);//变更小车为左转方向 Delay();//起先小车左转延时子程序 Delay();//变更它可以变更小车旋转的角度 Delay();//同上 Delay();//同上 ControlCar(1);//变更小车为前进运行状态 SB1=1;

温馨提示

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

评论

0/150

提交评论