基于单片机的智能循迹小车设计_第1页
基于单片机的智能循迹小车设计_第2页
基于单片机的智能循迹小车设计_第3页
基于单片机的智能循迹小车设计_第4页
基于单片机的智能循迹小车设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的智能循迹小车设计基于单片机的智能循迹小车设计全文共49页,当前为第1页。基于单片机的智能循迹小车设计全文共49页,当前为第1页。本科毕业设计(论文)基于单片机的智能循迹小车设计学生学院 信息工程学院专业 测控技术与仪器(光机电一体化方向)年级班别 20级(1)班学号 学生姓名 指导教师 20年6月基于单片机的智能循迹小车设计全文共49页,当前为第2页。摘要基于单片机的智能循迹小车设计全文共49页,当前为第2页。自循迹智能小车也是智能行走机器人的一种,智能小车可以适应不同的环境,不受外界温度、湿度、空间以及重力等各种恶劣条件的影响,在人类无法进入或者生存的环境中完成人类无法完成的任务。本课题是智能循迹小车系统的设计,智能小车的设计涉及传感器技术、电路涉及、程序设计、控制设计等多个方面的知识,是一项综合设计。设计目标是小车能沿着规划好的黑线行走,不偏离道路。。智能循迹小车以木板车架为承载,包括单片机模块:STC89C52芯片;驱动模块:L298N驱动模块和两个直流电机;循迹模块:红外光电传感器和LM324运算放大器。红外光电传感器判断是否寻找到黑线,并将产生的电平信号发送至LM324运算放大器,再返回到单片机,单片机根据程序设计的要求做出相应的判断送给电机驱动模块控制小车在黑线上实现前进后退左转右转。关键词:智能小车,自动循迹,单片机,红外传感器基于单片机的智能循迹小车设计全文共49页,当前为第3页。Abstract基于单片机的智能循迹小车设计全文共49页,当前为第3页。Self-tracingsmartcarisalsoakindofintelligentwalkingrobot,intelligentcarcanadapttodifferentenvironments,fromoutsidetemperature,humidity,spaceandgravityandotheradverseconditions,inthehumancannotenterorsurvivetheenvironmenttocompletethehumanUnabletocompletethetask.Thistopicisthedesignofintelligenttrackingcarsystem,intelligentcardesigninvolvessensortechnology,circuitinvolved,programming,controldesignandotheraspectsofknowledge,isacomprehensivedesign.Thedesigngoalisthatthecarcanwalkalongtheplannedblacklinewithoutdepartingfromtheroad.TheThefollowingsteps:STC89C52chip;drivemodule:L298NdrivemoduleandtwoDCmotors;trackingmodule:infraredphotoelectricsensorandLM324operationalamplifier.Infraredphotoelectricsensortodeterminewhethertofindtheblackline,andtheresultinglevelsignalsenttotheLM324operationalamplifier,andthenreturntothemicrocontroller,themicrocontrolleraccordingtotherequirementsoftheprogramtomaketheappropriatejudgmenttothemotordrivemodulecontrolcarontheblacklineTurnforwardandturnright.Keywords:intelligentcar,automatictracking,singlechip,infraredsensor基于单片机的智能循迹小车设计全文共49页,当前为第4页。基于单片机的智能循迹小车设计全文共49页,当前为第4页。目录摘要 3Abstract 4第1章 绪论 71.1 引言 71.2题目研究目的及意义 71.3 国内外研究状况 81.3.1国外发展状况 81.3.2国内发展状况 9第2章 系统硬件设计 112.1循迹小车整体方案设计 112.2STC89C52单片机介绍 132.3红外光电传感器TCRT5000及LM324运算放大器组成的循迹模块 162.3.1TCRT5000的介绍 162.3.2LM324的介绍 172.3.3循迹模块原理图 192.4电机驱动模块 192.4.1L298N驱动电路逻辑真值表 202.4.2L298N驱动模块电路原理图 212.4.3L298N集成H桥芯片,引脚图 212.4.4L298N引脚功能表 22基于单片机的智能循迹小车设计全文共49页,当前为第5页。2.4.5L298N驱动电路运行参数 23基于单片机的智能循迹小车设计全文共49页,当前为第5页。2.5电源模块 23第3章系统软件设计 243.1主程序 243.1.1主程序流程图 243.1.2主程序程序设计 253.2循迹模块 263.2.1循迹模块流程图 263.2.2循迹模块程序设计 273.3PWM调速原理 283.3.1PWM控速代码 29第4章 系统测试 31第5章 325.1总结 325.2 展望 32参考文献 33致谢 35附录 36基于单片机的智能循迹小车设计全文共49页,当前为第6页。绪论基于单片机的智能循迹小车设计全文共49页,当前为第6页。引言智能小车在工业、军事中取得广泛的作用,在不为人们所熟知的领域,如深海探测,航空航天,地质勘探,智能也发挥着举足轻重的作用。智能小车是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。整个系统设计集中运用了自动化控制、传感技术、导航、电子、电气、PC机、机械、人工智能等多个学科的知识,是典型的高新技术综合体。以后智能机器人的应用领域会愈发广泛,如在航天航空技术、海洋能源开发技术、微电子技术、制造与维修技术、农业自动化、生物医学等领域会有很大的突破和进展。能自动识别道路并完成相关任务是对一类专业机器人的基本要求,本课题主要研究的是以STC89C52芯片为核心控制的智能小车。由电源模块、红外传感器模块、电机驱动模块和芯片模块组成,主要通过红外对管收集外界信息实现智能循迹和避障功能。1.2题目研究目的及意义自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。其中智能小车可以作为机器人的典型代表。其需要实现自动避障功能就必须要感知障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并做出判断和相应的执行动作。智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。它可以分为三大部分:传感器检测部分,执行部分,CPU。现代智能小车发展很快,从智能玩具到各行业都有实质成果,其基本可实现循迹、避障功能等基本功能。日本目前投入市场的不再是高性能的工业机器人,微型机器人汽车也正在逐步的进入市场。日前由日本科研人员研发的两款微型机器人汽车与大众见面,汽车内安装有最尖端的视觉识别系统,通过内部的摄像头与传感器能够使小车自动基于单片机的智能循迹小车设计全文共49页,当前为第7页。识别障碍物,从而避免碰撞,并判断小车与障碍物之间的距离。目前研究人员已经将小车的这种自动识别系统应用到汽车工业领域去,这将为陷入低靡的汽车行业注入新的活力。基于单片机的智能循迹小车设计全文共49页,当前为第7页。随着计算机、自动控制、微电子技术、人工智能、虚拟现实、微纳米技术、仿生学、材料等相关学科领域的发展,避障循迹小车可以通过自动感知引导线以及躲避障碍物在工作中取代人力运输,节省人力以及成本。智能车辆是一个运用计算机、传感、信息、通信、导航、人工智能及自动控制等技术实现环境感知、规划决策和自动行驶为一体的高新技术综合体。此类机器人以后对我们的研究和生活定会发挥至关重要的作用,在以后对车辆的自动驾驶,飞船的自动航行模式及深海自动探测有很大的研究价值。国内外研究状况1.3.1国外发展状况智能小车,也就是轮式机器人,主要有口令识别与语音合成、机器人自定位、动态随机避障、多传感器信息融合、实时自适应导航控制等功能。现在智能小车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几年的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。1950年,美国BarretElectronics公司开发出世界第一台自动引导车辆系统(AutomatedGuidedVehicleSystemAGVS)。该系统是一个运行在固定线路上的平台,具备了智能小车应有的特征——无人驾驶。1974年,瑞典的Volov公司,研制出了一种可装载轿车车体的AGVS,并由多台该种AGVS组成了汽车装配线,从而取代了拖车及叉车等传统应用运输工具。1985年,德意志联邦大学研制出了多只能原型车,并在户外进行了测试,该车使用了机器视觉来控制车辆的横向和纵向运动,并能以100KM/H的速度在高速公路上运行。1988年,在都灵的Prometheus项目会议上展出了VITA,该车是一个双目视觉系统,具有极高的稳定性,同时还包括一些其他种类的传感器包括:三个加速度计、一个车轮位置编码器(可作为里程表或速度计)。VITA可以自动前进、制基于单片机的智能循迹小车设计全文共49页,当前为第8页。动,并能够和后车交互信息。基于单片机的智能循迹小车设计全文共49页,当前为第8页。1995年,美国成立了国家自动高速公路系统联盟,其主要目的就是研发智能车辆,并希望投入到实际的生产中去。其实,CMU在20世纪80年代就开发出了Navlab系列地面智能车辆,并且在公路的白线跟踪试验中取得了成功,该智能车能在存在水渍、阴影等环境下以50-60KM/H的速度自主行驶。1996年,日本成立告诉公路先进巡航/辅助驾驶研究协会,其主要目的是为了研究车辆的自动导航系统。日本早在60年代就开始了智能车的研究,在1988年,研究自动引导小车的厂家就有高达200多家。日前,三菱公司和尼桑公司发布了其近期研制的防撞设备,前方防撞和车道偏离有望在1-2年内实现。德国联邦国防大学与奔驰公司进行合开发的第二代VITA只能车辆,此智能小车实现了智能超车。交通拥挤情况下车辆自动采用低速自动驾驶技术有望被广泛地应用。另外,奔驰公司,美国麻省理工学院,美国卡内基梅隆大学,英国国防部门的研究,韩国理工大学对智能小车也有较多的研究。1.3.2国内发展状况在我国,各大学也在广泛的开展智能小车的研究,清华大学汽车研究所是国内最早成立的主要从事智能汽车及智能交通的研究单位之一,在主动避撞、车载微机、汽车导航等领域有广泛而深入的研究。吉林大学在1992年就开始了智能小车的研究,其中自主研发的图像识别自动引导小车为我国提供了一种新型的自动引导车辆系统。为我国生产组织模式向柔性或半柔性生产组织转化提供了有意义的技术支撑和关键设备。吉林大学先后研制出4代JUTIV-3型实验型视觉导航小车,现已进入商品化开发阶段。中国一汽集团和国防科技大学联合研制了CITAVT型自主导航车,并已经开发到第四代,此型号的智能车在长沙市绕城公路上进行了自主实验,最高车速可达75.6km/h,并具备超车功能。其技术性能指标已达到世界先进水平。沈阳新松机器人自动化股份公司研制出的智能机器人名叫“亮亮”,身高0.8米,体重25KG,采用锂电池和铅酸电池作为电源,可以持续运行12小时。它具备教育、娱乐、安全和个人助理四大功能,可以自动行走并能智能躲避障碍物,基于单片机的智能循迹小车设计全文共49页,当前为第9页。联网后还可以下载新闻、天气预报等,并能接受语音指令并做出相应反馈。基于单片机的智能循迹小车设计全文共49页,当前为第9页。2006年,我国开始举办“飞思卡尔”全国智能小车竞赛,该赛事是由教育部高等学校自动化专业教学指导委员会主办,在飞思卡尔半导体公司资助下举办的。2012,该赛事吸引了共50多所高校的100多支队伍参与.目前,智能小车的研究呈现出新的特点。首先,随着计算机硬件技术的提高,硬件结构由最初的专用板卡或者芯片逐渐向通用板卡或芯片过渡,为了提高运算速度,出现了专用的运算指令。其次,在控制系统方面,随着网络的发展和传输速度的提高,出现了基于网络传输信号控制的智能小车,而不再是以往一成不变的“单机式”控制模式。此次设计的智能车可以作为机器人的典型代表,主要实现循迹和避障两个功能。该智能小车可以作为机器人的典型代表。它可以分为四大组成部分:传感器检测部分、执行部分、工作状态显示部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。CPU使用STC89C52芯片,配合软件编程实现。基于单片机的智能循迹小车设计全文共49页,当前为第10页。系统硬件设计基于单片机的智能循迹小车设计全文共49页,当前为第10页。2.1循迹小车整体方案设计本课题中,循迹指的是小车在白色地板上沿着约1cm宽的黑线行走。红外光电传感器的发射管发出红外线,由接收管接受。同时,接收的物理量被转化成电信号,经过LM324运算放大器,经由P36,P37口输入芯片,然后由单片机的P12,P13,P14,P15口输出给电机驱动电路的L298N电路,从而达到驱动小车行走和循迹的目的。本课题采用两个红外光电传感器,并并排在小车前锋。两个红外光电传感器的距离间隔和黑线差不多,循迹时,小车就由两个传感器来检测小车是否偏离黑线,并自动调整回归路线。小车包括两部分,一部分是系统硬件方面,另一部分是软件方面:系统硬件方面以STC89C52为CPU,L298N驱动模块驱动两个直流电机,TCRT5000和LM324组成的循迹模块、红外光对管为避障模块、4*1.5V电池为电源为整个系统供电组成整个小车的硬件部分;系统软件反面,按照功能分为主程序、初始化程序、信息采集程序分析程序、逻辑程序和电机控制程序。循迹小车采用单片机STC89C52作为路面信息检测、输入信号处理和电机控制的核心,根据电路功能需要设计车体,2个直流电机作为主驱动,附加相应的电源电路和下载电路构成整体电路。自动循迹功能采用红外光电传感器实现,信号经过LM324运算放大器比较滞后送回单片机,由单片机通过控制驱动芯片L298N驱动小车的电机。结构框图如图2-1所示。图2-1循迹小车结构框图从智能循迹小车的设计要求出发,用基本的车体框架加上循迹模块和电机驱动模块来完成整个功能。小车采用前两轮驱动,后方万向轮来转换方向。循迹模基于单片机的智能循迹小车设计全文共49页,当前为第11页。块的红外光电传感器接收管在车头下方的左右两个方向。当车身下面左边的传感器检测到黑线时,小车向左转一点;当车身下面右边的传感器检测到黑线时,小车右转以保证车体正常的在黑线上行走,避免小车远离黑线回不到黑线。一直此循环直至任务终止为止。基于单片机的智能循迹小车设计全文共49页,当前为第11页。考虑到电机控制要使用PWM波形,而STC89C52单片机本身不能产生PWM,需要外加电路或者使用软件的方式来实现,为减少硬件电路,这里选中软件产生PWM方式。图2-2小车整体实物和现场路线图基于单片机的智能循迹小车设计全文共49页,当前为第12页。2.2STC89C52单片机介绍基于单片机的智能循迹小车设计全文共49页,当前为第12页。图2-3单片机实物该单片机是宏晶公司生产的STC89C52,其片内带有8K字节闪速可编程、可擦除寿命1000次程序存储器。该产品与工业标准8051中单片机完全兼容,并且还可支持两种软件可选的省电模式,工作时钟最高可达到24MHz。使实时控制、实时处理的功能更加完善,简化了硬件配置。与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。STC89C52实物如图3。图2-4芯片引脚图基于单片机的智能循迹小车设计全文共49页,当前为第13页。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash基于单片机的智能循迹小车设计全文共49页,当前为第13页。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0T2(定时器/计数器T2的外部计数输入),时钟输出;P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);P1.5MOSI(在线系统编程用);P1.6MISO(在线系统编程用);P1.7SCK(在线系统编程用);P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出基于单片机的智能循迹小车设计全文共49页,当前为第14页。缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。基于单片机的智能循迹小车设计全文共49页,当前为第14页。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当基于单片机的智能循迹小车设计全文共49页,当前为第15页。STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。基于单片机的智能循迹小车设计全文共49页,当前为第15页。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2.3红外光电传感器TCRT5000及LM324运算放大器组成的循迹模块红外发射接收器返回的信号较弱,且直接输入给单片机的话容易产生误判,而对信息处理出现错误的分析,以致出现循迹的错误,因此,需要经过前置电路对其进行放大、滤波、电平调整,满足单片机输入信号的要求。本系统采用的LM324运算放大器实现滤波及电平调整。常见的运算放大器中,LM324价格低廉、使用简单等优点比较突出,因此本设计中的信号处理、电平调整用LM324作为电路的比较器。图2-5循迹模块实物图2.3.1TCRT5000的介绍TCRT5000具有结构紧凑建设发光光源和探测器排列在同一方向,以感知对象的存在从对象使用反射红外线光束。工作波长为950毫米。该探测器光电晶体管组成。工作时由蓝色发射管发射红外线,红外线由遮挡物反射回来被接收管接基于单片机的智能循迹小车设计全文共49页,当前为第16页。收。接收反射光线后的接收管呈导通状态,与一电阻串联即可主城一个由发射管控制的分压电路,由此可实现对遮挡物反射光线强度的检测。我们经常利用这一特性去实现颜色识别。基于单片机的智能循迹小车设计全文共49页,当前为第16页。图2-6TCRT5000实物图图2-7TCRT5000电路图2.3.2LM324的介绍LM324是四运放集成电路,它采用14脚双列直插塑料封装。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图2-8所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图2-9。图2-8单个运放符号图2-9LM324引脚图下面介绍LM324在电压比较电路中的应用。当去掉运放的反馈电阻时,或者说反馈电阻趋于无穷大时(即开环状态),理论上认为运放的开环放大倍数也为无基于单片机的智能循迹小车设计全文共49页,当前为第17页。穷大(实际上是很大,如LM324运放开环放大倍数为100dB,既10万倍)。此时运放便形成一个电压比较器,其输出如不是高电平(V+),就是低电平(V-或接地)。当正输入端电压高于负输入端电压时,运放输出低电平。基于单片机的智能循迹小车设计全文共49页,当前为第17页。图2-10LM324电压比较电路如图2-10中使用两个运放组成一个电压上下限比较器,电阻R1、R1ˊ组成分压电路,为运放A1设定比较电平U1;电阻R2、R2ˊ组成分压电路,为运放A2设定比较电平U2。输入电压U1同时加到A1的正输入端和A2的负输入端之间,当Ui>U1时,运放A1输出高电平;当Ui<U2时,运放A2输出高电平。运放A1、A2只要有一个输出高电平,晶体管BG1就会导通,发光二极管LED就会点亮。若选择U1>U2,则当输入电压Ui越出[U2,U1]区间范围时,LED点亮,这便是一个电压双限指示器。若选择U2>U1,则当输入电压在[U2,U1]区间范围时,LED点亮,这是一个“窗口”电压指示器。此电路与各类传感器配合使用,稍加变通,便可用于各种物理量的双限检测、短路、断路报警等。基于单片机的智能循迹小车设计全文共49页,当前为第18页。2.3.3循迹模块原理图基于单片机的智能循迹小车设计全文共49页,当前为第18页。图2-11红外光电传感器原理图图2-12LM324运算放大器原理图1)当没有检测到黑线,则H4发光到白色地板反射到H4接收端,H4接收端导通,导通则T1接地=0此时LM324运算放大器2脚比较器反向端T1=0V3脚比较器同向端=3V同向端大于反向端则OUT1输出12)当有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),则T1=VCC此时LM324运算放大器2脚比较器反向端T1=5V3脚比较器同向端=3V反向端大于同向端则OUT1输出0在第一次使用时,应用黑色物体遮挡传感器检测T1脚电压变化是否正常调节电位器R13,使得3脚电压介于(2脚)T1电压的最大和最小值之间2.4电机驱动模块基于单片机的智能循迹小车设计全文共49页,当前为第19页。图2-13电机驱动模块实物图基于单片机的智能循迹小车设计全文共49页,当前为第19页。电机驱动模块:该部位采用L298N驱动电路进行控制,该驱动板可驱动2路直流电机,使能端ENA、ENB为高电平时有效,控制方式及直流电机状态表L298N驱动电路逻辑真值表输入输出Ven=HC=H;D=L正转C=L;D=H反转C=D制动Ven=LC=※;D=※没有输出,电机不工作若要对直流电机进行PWM调速,需设置IN1和IN2,确定电机的转动方向,然后对使能端输出PWM脉冲,即可实现调速。注意当使能信号为0时,电机处于自由停止状态;当使能信号为1,且IN1和IN2为00或11时,电机处于制动状态,阻止电机转动。2.4.1L298N驱动电路逻辑真值表L298N的逻辑控制见如下表。其中C、D分别为IN1、IN2或IN3、IN4;L为低电平,H为高电平,※为不管是低电平还是高电平。图2-14L298N直流电机控制的逻辑真值表输入输出Ven=HC=H;D=L正转C=L;D=H反转C=D制动Ven=LC=※;D=※没有输出,电机不工作基于单片机的智能循迹小车设计全文共49页,当前为第20页。2.4.2L298N驱动模块电路原理图基于单片机的智能循迹小车设计全文共49页,当前为第20页。图2-15L298N驱动模块原理图2.4.3L298N集成H桥芯片,引脚图图2-16L298N驱动电路引脚图基于单片机的智能循迹小车设计全文共49页,当前为第21页。2.4.4L298N引脚功能表基于单片机的智能循迹小车设计全文共49页,当前为第21页。表2-17L298N引脚功能表引脚符号功能1SENSINGA与地连接电流检测电阻,并向驱动芯片反馈检测到的信号15SENSINGB与地连接电流检测电阻,并向驱动芯片反馈检测到的信号2OUT1此脚是全桥式驱动器A的两个输出端,用来连接负载3OUT2此脚是全桥式驱动器A的两个输出端,用来连接负载4Vs电机驱动电源输入端5IN1输入标准的TTL逻辑电平信号,控制全桥式驱动器A的开关7IN2输入标准的TTL逻辑电平信号,控制全桥式驱动器A的开关611891012ENABLEA使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁工作。ENABLEB使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。GND接地端,芯片本身的散热片与8脚相通Vss逻辑控制部分的电源输人端口IN3输入标准的TTL逻辑电平信号,控制全桥式驱动器B的开关IN4输入标准的TTL逻辑电平信号,控制全桥式驱动器B的开关OUT3此脚是全桥式驱动器B的两个输出端,用来连接负载OUT4此脚是全桥式驱动器B的两个输出端,用来连接负载基于单片机的智能循迹小车设计全文共49页,当前为第22页。2.4.5L298N驱动电路运行参数基于单片机的智能循迹小车设计全文共49页,当前为第22页。表2-18L298N的运行参数参数测试环境最小值最大值驱动电源电压Vs逻辑电源电压Vss输入低电平电压 ViL输入高电平电压 ViH使能端低电平电压Ven=L使能端高电平电压Ven=H全桥式驱动电压Vce(sat)持续工作时IL=1AIL=2A2.5V4.5V0.3V2.3V0.3V2.3V1.8V46V7V1.5VVss1.5VVss4.9V2.5电源模块电源模块:采用4节1.5V电池。基于单片机的智能循迹小车设计全文共49页,当前为第23页。 第3章系统软件设计 基于单片机的智能循迹小车设计全文共49页,当前为第23页。本课题中,软件重点是单片机对信息的接收及处理的问题,即实现收集信息、对小车运行状态控制和对信息的显示。本系统采用Uversion4进行编程,C语言编程,使用PZISP对单片机进行程序的烧写。根据要求本设计要达到小车能完成自主行走的功能,由于使用了定时器产生PWM编码程序,所以应先进行程序初始化,设置好定时器初始值并给小车前进的指令。然后开始检测黑线,并作出相应的判断与驱动指令。进入循环后单片机先收集传感器的信号,根据信号来判断小车所在位置以及小车的驱动指令。一直循环下去。3.1主程序3.1.1主程序流程图循迹主要依靠车体前方两个并排固定的红外光电传感器发射管和接收管采集黑线信息,返回至单片机进行分析处理,对小车的运行加以控制,使小车始终循着黑线前进。其两个传感器在左右,中间是黑线,当小车的左边的传感器检测到黑线就代表小车向左偏离了,此时应往右边调整为止,直至转至白白状态;同理当小车右边的传感器检测到黑线时就往左边调整,以此来完成整个循迹过程。其流程图如图3-1所示。图3-1主程序流程图基于单片机的智能循迹小车设计全文共49页,当前为第24页。3.1.2主程序程序设计基于单片机的智能循迹小车设计全文共49页,当前为第24页。voidmain()//主程序入口{TMOD=0X01;TH0=0XFc; //1ms定时TL0=0X18;TR0=1;ET0=1;EA=1; //开总中断//EX1=1;//同意开启外部中断1IT1=1;//设定外部中断1为低边缘触发类型while(1)//程序主循环{ if(P3_2==0) { delay_nms(10); if(P3_2==0) { temp++; while(!P3_2); } } if(temp>3) { temp=1; } switch(temp) { case1: ShowPort=LedShowData[1];Robot_Traction();EX1=0;break;基于单片机的智能循迹小车设计全文共49页,当前为第25页。 case2:ShowPort=LedShowData[2];Robot_Avoidance();EX1=0;break;基于单片机的智能循迹小车设计全文共49页,当前为第25页。 case3:ShowPort=LedShowData[3];SB1=1;EX1=1;break; }}3.2循迹模块两个传感器位于车头前正下方,小车初始状态下是静止的,当两个传感器检测到黑线时小车开始前进,在前进过程中,如果右边检测到黑线,说明小车有点向左偏离,此时应右转调整小车为止;同理,当左边检测到黑线时,小车向左边调整位置,一直循环。3.2.1循迹模块流程图图3-2循迹流程图基于单片机的智能循迹小车设计全文共49页,当前为第26页。3.2.2循迹模块程序设计基于单片机的智能循迹小车设计全文共49页,当前为第26页。//机器人循迹子程序voidRobot_Traction()//机器人循迹子程序{//SB1=1;if(Left_1_led==0&&Right_1_led==0)//两个红外检测到黑线,就前进 Left_1_led Right_1_led{run();//左侧没有信号时,开始向右转一定的角度delay_nms(10); SB1=0;}elseif(Left_1_led==0&&Right_1_led==1){rightrun();//右侧检测到黑线,开始向右转一定的角度delay_nms(10);}elseif(Left_1_led==1&&Right_1_led==0){leftrun();//左侧检测到黑线,开始向左转一定的角度 delay_nms(10);}elseif(Left_1_led==1&&Right_1_led==1){SB1=1;基于单片机的智能循迹小车设计全文共49页,当前为第27页。 stop();//左侧检测到黑线,开始向左转一定的角度基于单片机的智能循迹小车设计全文共49页,当前为第27页。 delay_nms(10);}}3.3PWM调速原理脉冲宽度调制(PulseWidthModulation),简称PWM。脉冲周期不变,只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。PWM的理论基础是:冲量相等而形状不同的的窄脉冲加在具有惯性的环节上,其效果基本相同。采用PWM进行电机的调速控制,实际是保持加在电机电机电枢上的脉冲电压频率不变,调节其脉冲宽度。电机是一个惯性环节,它的电枢电流饿转速均不能突变,很高的频率的PWM加在电机上,效果相当于施加一个恒定电压的直流电。如图所示。这个电压可以由脉冲的宽度调节。PWM等效图示意图使用PWM方式可以很容易的实现调速。PWM信号由单片机软件产生,使用非常方便。由于电路总体上并不复杂,驱动电路的控制输入端也可以不用经光耦合隔离,直接与单片机引脚相连。前进时,驱动两个直流电机都正转,后退时,则两电机都反转。左转时前进时,左电机反转而右电机正转,右转前进时,则右电机反转而左电机正转。进入减速区时,由单片机控制进行PWM变频调速,通过软件改变脉冲调宽波形的占空比,实现调速。所有这些都是通过软件编程实现控制。基于单片机的智能循迹小车设计全文共49页,当前为第28页。3.3.1PWM控速代码基于单片机的智能循迹小车设计全文共49页,当前为第28页。//前速前进voidrun(void){push_val_left=12; //速度调节变量0-20。。。0最小,20最大 push_val_right=12; Left_moto_go;//左电机往前走 Right_moto_go;//右电机往前走}//前速后退voidback(void)//后退{push_val_left=13; //速度调节变量0-20。。。0最小,20最大 push_val_right=13; Left_moto_back;//左电机往前走 Right_moto_back;//右电机往前走}//左转voidleftrun(void){ push_val_left=6; push_val_right=14; Right_moto_go;//右电机往前走Left_moto_back;//左电机后走}//右转voidrightrun(void){ push_val_left=14;基于单片机的智能循迹小车设计全文共49页,当前为第29页。 push_val_right=6;基于单片机的智能循迹小车设计全文共49页,当前为第29页。Left_moto_go;//左电机往前走 Right_moto_back;//右电机往后走 }//停止voidstop(void){ P1_2=0; P1_3=0; P1_4=0; P1_5=0;}基于单片机的智能循迹小车设计全文共49页,当前为第30页。系统测试基于单片机的智能循迹小车设计全文共49页,当前为第30页。测试仪器:示波器,电源,万用表。测试方法:采用模拟电路由前端到后段,数字电路先仿真再试测,先逐个模块测试再整体调试的办法寻迹采集模块测试:连接好电路,用万用表分别测量光电传感器接收端的输出电压值以及经过比较器后的电压值,其值如表6-1所示:表6-1TCRT5000输出的电压测量基于单片机的智能循迹小车设计全文共49页,当前为第31页。第5章基于单片机的智能循迹小车设计全文共49页,当前为第31页。5.1总结本次设计,将至尾,小车基本能完成预期的要求,而且有一定的优化,能适应多种赛道。但是小车的速度调整的还不是很完美,某些弯道的情况下,还是会出现刹车不及时的问题。不过小车不会严重偏离赛道,也算是解决这一问题。通过本次设计,我知道了很多以前了解过但是不懂,不熟练的东西,也知道了一个项目的开发不是一件简单的事,从开始到现在,我遇到不少的问题,有时候自己的思维转换不过来,就会很烦,还好,有老师的指导和舍友的帮助下,还是可以解决不少问题的。这就是我们在书本上学不到的发现问题,分析问题,解决问题的能力,他将在我的日后工作于生活中让我受益匪浅。使我在人生上又进了一步。也认识到很多的不足。虽然实现的不是很完美,但是基本的还是实现了,因为舍友的也是小车,他的是自平衡小车,而我的是循迹小车,我对这些小车的想法是,它们都可以结合在一起来达到更加智能的目的。或许这就是设计的深究,希望课题能越来越好。展望在本文中,对智能循迹小车控制系统的软硬件的设计上进行了一定研究,研究以达到预定要求为目标,所以只是做了一些初期的工作,因为时间和本人的限制,所以研究的不够深入,但我认为还能有几个点可以改进:第一点,因为是课题研究,所以各种器材硬件都不是很好,采用的比较廉价的红外光电传感器,扩展性不强,而且受外界影响较大,传感器这点可以用更好的硬件来提高精度;第二点,此次研究只是单纯的调用中断和代码使用PWM来控制速度,使其在一定的速度上运行,实际上可以用PWM来调整速度,在直线上能以更快的速度运行,在转弯的时候降低速度来提高转弯的准确度。总之,此次研究基本的目的已经达到,更强大、更稳定、更丰富的功能可以在以后做深入的研究。基于单片机的智能循迹小车设计全文共49页,当前为第32页。参考文献基于单片机的智能循迹小车设计全文共49页,当前为第32页。[1]毕万新,李明.单片机原理与接口技术.大连理工大学出版社,2009[2]王东锋,王会良,董冠强.单片机C语言应用100例.电子工业出版社,2009[3]张军,张淑英.传感器原理及应用.天津大学出版社,2004[4]顾群,蒲双雷.基于单片机的智能小车避障循迹系统设计.无锡科技职业学院,2012[5]朱涛.基于STC89C52单片机的智能循迹小车设计.陕西理工学院,2011[6]陈飞鹏.基于STC89C52单片机智能小车设计.吉林大学,2012[7]董涛,刘进英,蒋苏.基于单片机的智能小车的设计与制作.连云港工贸职业技术学院,2009[8]郭志超,何爱龙.自动循迹避障寻光智能小车硬件系统设计.新乡学院学报,2016[9]钱栢霆,李娟.基于单片机的循迹避障智能小车系统的设计.电子制作,2015[10]谢富珍,戈林发.基于51单片机的智能小车设计.新余学院学报,2015[11]张岩,裴晓敏,付韶彬.基于单片机的智能循迹小车设计.辽宁石油化工大学,2014[12]王晓明.电动机的单片机控制[J].学术期刊,2002,13(15):1322-1755.[13]肖文超,陈洋,张赛硕.基于51单片机的智能小车设计[J].工业控制计算机,2016,(06):121-122.[14]金彦,胡威,刘阳,陈春玲.基于单片机的循迹喷药小车设计[J].农业科技与装备,2016,(05):25-26.[15]卜文东,华凯,马草原,白耀武,孙荣琛.基于红外传感器智能小车的设计[J].电子世界,2017,(03):134-136.[16]肖文超,陈洋,张赛硕.基于51单片机的智能小车设计[J].工业控制计算机,2016,(06):121-122.[17]索南尖措,杨建,周欢欢,杨倩.基于STC89C52单片机的智能小车的设计[J].信息安全与技术,2016,(04):67-69.基于单片机的智能循迹小车设计全文共49页,当前为第33页。[18]王勇申,初俊博,孙恒震,郝政,韩特,刘峥.智能小车的设计与应用[J].科技传播,2016,(07):170-171.基于单片机的智能循迹小车设计全文共49页,当前为第33页。[19]杜云,魏雅.基于单片机的智能小车设计制作与应用[J].自动化与仪器仪表,2016,(01):67-68.[20]谢富珍,戈林发.基于51单片机的智能小车设计[J].新余学院学报,2015,(04):6-9.[21]钱栢霆,李娟.基于单片机的循迹避障智能小车系统的设计[J].电子制作,2015,(12):15.[22]LiXin,XiangQiang.DesignofIntelligentCarBasedonSingleChipProcessorSTC89C52.CollegeofElectricalInformation,SouthwestUniversityforNationalities,Chengdu610041,China.[23]Y.Q.Wang,G.Wang,

ADesignofIntelligentCarBasedonSTC89S52SingleChipMicrocomputer",AppliedMechanicsandMaterials,Vols.246-247,pp.666-670,2013基于单片机的智能循迹小车设计全文共49页,当前为第34页。致谢基于单片机的智能循迹小车设计全文共49页,当前为第34页。本次设计能够顺利完成,首先感谢姬靖老师及身边同学的指导和帮助。通知我们学校的安排,让我们和学校一直有保持良好的联系;催促我们的进度,让我们的课程设计得以在指定的时间内完成规定的任务。毕竟自身的见识远不及老师,从论文的选题到完成,每一步都有在姬靖老师的指导下完成,也占用了不少老师的时间,在此感谢姬靖老师的指导及同学的帮助。同时感谢我的室友们,谢谢你们,一起维系着整个宿舍的感情,一点也不比家庭要差的融洽及温馨。基于单片机的智能循迹小车设计全文共49页,当前为第35页。附录基于单片机的智能循迹小车设计全文共49页,当前为第35页。 //主程序#include<AT89x51.H>#include<intrins.h> #include<HJ-4WD_PWM.H> #defineLeft_1_ledP3_7 //左循迹传感器 #defineRight_1_ledP3_6 //右循迹传感器 #defineLeftIRBZP3_5 //左避障传感器 #defineRightIRBZP3_4 //右避障传感器 sbitIRIN=P3^3;unsignedcharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定义数码管显示数据0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9unsignedcharcodeRecvData[]={0x19,0x46,0x15,0x43,0x44,0x40,0x0D,0x0E,0x00,0x0F};unsignedcharIRCOM[7];#defineShowPortP0//定义数码管显示端口unsignedchartemp=1;voidDelay1ms(unsignedinti){基于单片机的智能循迹小车设计全文共49页,当前为第36页。unsignedcharj,k;基于单片机的智能循迹小车设计全文共49页,当前为第36页。do{j=10;do{k=50;do{_nop_();}while(--k);}while(--j);}while(--i);}voiddelay_nus(unsignedinti)//延时:i>=12,i的最小延时单12us{i=i/10;while(--i);}voiddelay_nms(unsignedintn)//延时nms{n=n+1;while(--n)delay_nus(900);//延时1ms,同时进行补偿}voiddelayms(unsignedcharx)//0.14mS延时程序{unsignedchari;//定义临时变量基于单片机的智能循迹小车设计全文共49页,当前为第37页。while(x--)//延时时间循环基于单片机的智能循迹小车设计全文共49页,当前为第37页。{for(i=0;i<13;i++){}//14mS延时}}voidDelay()//定义延时子程序{unsignedintDelayTime=30000;//定义延时时间变量while(DelayTime--);//开始进行延时循环return;//子程序返回}voidControlCar_yaokong(unsignedcharConType)//定义电机控制子程序 (红外遥控单独设置一个switchcase语句){stop();switch(ConType)//判断用户设定电机形式{case1://前进//判断用户是否选择形式1{stop(); //进入前进之前先停止一段时间防止电机反向电压冲击主板导致系统复位 Delay1ms(150);// LeftLed=0; run();break;}基于单片机的智能循迹小车设计全文共49页,当前为第38页。case2://后退//判断用户是否选择形式2基于单片机的智能循迹小车设计全文共49页,当前为第38页。{stop(); //进入后退之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);//LeftLed=1; back();//M2电机反转break;}case3://右转//判断用户是否选择形式3{stop(); //进入左转之前先停止一段时间防止电机反向电压冲击主板导致系统复位 Delay1ms(150); rightrun();//M2电机正转 break;}case4://左转//判断用户是否选择形式4{stop(); //进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位 Delay1ms(150);leftrun();//M1电机正转//M2电机反转 break;}case8://停止//判断用户是否选择形式8{stop();基于单片机的智能循迹小车设计全文共49页,当前为第39页。 break;//退出当前选择基于单片机的智能循迹小车设计全文共49页,当前为第39页。}}}voidRobot_Avoidance()//机器人避障子程序{ if(LeftIRBZ==1&&RightIRBZ==1) //LeftIRBZRightIRBZ { run();delay_nms(10); SB1=1; } else { if(LeftIRBZ==1&&RightIRBZ==0) //右边检测到红外信号 { rightrun();//右转delay_nms(300); //停止300MS防止电机反相电压冲击导致系统复位 } if(RightIRBZ==1&&LeftIRBZ==0) //左边检测到红外信号 { 基于单片机的智能循迹小车设计全文共49页,当前为第40页。 leftrun();//左转基于单片机的智能循迹小车设计全文共49页,当前为第40页。delay_nms(300); //停止300MS防止电机反相电压冲击导致系统复位 } if(RightIRBZ==0&&LeftIRBZ==0) //两边传感器同时检测到红外 { SB1=0; stop();//停止delay_nms(300); //停止300MS防止电机反相电压冲击导致系统复位 back(); //调用电机后退函数 delay_nms(300); //后退50毫秒 rightrun(); //调用电机右转函数 delay_nms(400); } } run(); }//机器人循迹子程序voidRobot_Traction()//机器人循迹子程序{//SB1=1;if(Left_1_led==0&&Right_1_led==0)//三个红外检测到黑线,就前进 Left_1_led Right_1_led{基于单片机的智能循迹小车设计全文共49页,当前为第41页。run();//左侧没有信号时,开始向右转一定的角度基于单片机的智能循迹小车设计全文共49页,当前为第41页。delay_nms(10); SB1=0;}elseif(Left_1_led==0&&Right_1_led==1){rightrun();//右侧检测到黑线,开始向右转一定的角度delay_nms(10);}elseif(Left_1_led==1&&Right_1_led==0){leftrun();//左侧检测到黑线,开始向左转一定的角度 delay_nms(10);}elseif(Left_1_led==1&&Right_1_led==1){SB1=1; stop();//左侧检测到黑线,开始向左转一定的角度 delay_nms(10);}}基于单片机的智能循迹小车设计全文共49页,当前为第42页。voidmain()//主程序入口基于单片机的智能循迹小车设计全文共49页,当前为第42页。{TMOD=0X01;TH0=0XFc; //1ms定时TL0=0X18;TR0=1;ET0=1;EA=1; //开总中断//EX1=1;//同意开启外部中断1IT1=1;//设定外部中断1为低边缘触发类型while(1)//程序主循环{ if(P3_2==0)

温馨提示

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

最新文档

评论

0/150

提交评论