毕业设计-电磁感应路径识别智能小车设计_第1页
毕业设计-电磁感应路径识别智能小车设计_第2页
毕业设计-电磁感应路径识别智能小车设计_第3页
毕业设计-电磁感应路径识别智能小车设计_第4页
毕业设计-电磁感应路径识别智能小车设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

-.z.-..-可修遍-毕业论文〔设计〕题目基于电磁感应路径识别智能小车软件设计院系专业年级学生学号指导教师-.z.电磁感应路径识别智能小车软件设计专业::指导教师:【摘要】本系统主要实现了智能小车的左转,右转,停顿等功能,在一个交变磁场为引导信号道路中,根据电感线圈的路径识别模块,单片机AT89S52得到采集到的信号,通过采集到的信号来改变输出的PWM波的占空比,从而使两个直流电机的转速不一样,来控制小车的运行方向。程序采用了C语言进展设计,主程序采用了循环模式的设计,只要定时器计数没满,利用switch语句一直对P3口的判断,再调用方向函数来控制小车行进方向。中断效劳程序中定义一个计数变量自加1,当等于脉宽值width时,输出口置为低电平,当等于频率值fre时,输出口置为高电平,这样就可以改变width值时改变输出占空比大小。方向函数中对width值进展了赋值,由主程序进展调用。【关键词】AT89S52;线圈磁场传感器;直流电机,PWM调速法ElectromagneticinductionintelligentvehiclerecognitionMajor:Student:Supervisor:【Abstract】Themainachievementofthesystemofintelligentvehicleturnleft,turnright,stopandotherfunctions,inanalternatingmagneticfieldinordertoguidethesignalpath,basedoninductancecoilpathidentificationmodule,single-chipAT89S52signal,throughtheacquisitionofthesignaltochangetheoutputofthePWMwavedutycycle,sothatthetwoDCthemotorspeedisnotthesame,tocontrolthecarrunningdirection.ProgramusingClanguageforthedesignofthemainprogram,usingacircularpatterndesign,aslongasthetimercountnotfull,useswitchstatementshavebeenontheP3exportjudgment,andthencallthedirectionfunctiontocontrolthedirectionofthemovingcar.Theinterruptserviceroutinetodefineavariablecountfrom1,whenequaltothepulsewidthwhenthevalueofwidth,outputislow,whenthevalueoffreisequaltothefrequency,outputishigh,soitcanchangethewidthvaluechangetheoutputdutyratiosize.Directionalfunctiononwidthvalueswereassigned,bythemainprogramcall.【Keywords】AT89S52;magneticfieldsensor;DCmotor,PWMspeedcontrolmethod目录绪论31设计方案介绍41.1硬件方案介绍41.1.1路径识别模块51.1.2电机驱动模块62软件方案介绍72.1.1单片机介绍72.1.2系统原理93系统控制软件设计93.1主程序设计93.2中断效劳程序113.3控制程序设计144调试与检测154.1调试与仿真154.2检测与分析16完毕语16附录17程序清单17致19绪论随着科学技术的飞速开展,人们对生活的要求越来越高,特别是对交通工具的智能方面的要求,除此之外,随着在企业中越来越追求工作效率和生产本钱,迫切的要求以最低的本钱生产出所需要的产品,在这种种的社会的条件下,人们越来越重视机器智能方面的研究,在众多的研究当中,交通工具的智能研究就是其中的一个热点问题,而智能小车的研究就是一个很好的代表。所谓的智能小车,就是集路面环境探测、卫星导航、自动行驶和有自己的决策能力等功能为一体的小车,它综合运用了计算机、通信、导航和自动化控制等技术。正因为智能小车的功能强大和比拟实用,同时对智能小车的研究有很大的开展空间,所以智能小车的研究得到了国外科学家的重点关注。智能小车的研究是一个很有意思的科研问题,得到了很多大学生的关注,他们在学校期间学习很多与之相关的知识,同时做很多与之相关的实验。现在国的很多电子设计大赛都有与智能小车相关的题目,在大赛中设计出来的这些小车能实现很多方面的功能,例如避障、循迹等。本系统主要实现了智能小车的左转,右转,停顿等功能,在一个交变磁场为引导信号道路中,根据电感线圈的路径识别模块,单片机得到采集到的信号,通过采集到的信号来改变输出的PWM波的占空比,从而使两个直流电机的转速不一样,来控制小车的运行方向。程序采用了C语言进展设计,主程序采用了循环模式的设计,子程序那么为功能模块设计,由主程序进展调用。1设计方案介绍本论文主要对智能小车软件系统进展了研究。整个硬件系统由路径检测系统和单片机最小系统组成。论文首先对检测系统作了详细的分析,接着对单片机最小系统的各个组成局部作了详细的说明,同时在论文中对所用到的传感器,电机等阐述了其原理。系统整体设计基于单片机的控制,由单片机作为主控制器进展各局部的协调工作,在熟悉硬件的根底上编程实现软件功能。本系统先简单介绍智能小车系统的构成与特性,再详细讲述基于AT89S52单片机的智能小车系统的软件功能的设计与实现。1.1硬件方案介绍整个硬件系统由路径检测系统和单片机最小系统组成,路径检测系统检测到磁场的变化情况,以信号的形式传送给单片机,单片机最小系统接收并处理检测系统传送过来的信号,把处理好的信号后采取PWM调速法来改变直流电机的转速,从而控制小车的行驶。小车识别硬件系统的整体构造如下列图所示,图1硬件系统构造路径检测系统是整个小车硬件系统的前端局部,是比拟重要的一局部,不可缺少的。在整个系统中,路径检测局部能否准确的检测到磁场传感器传来的信号,对小车的行驶来说是很重要的。如果路径检测系统能够准确的检测到信号,并且及时的反应给单片机系统,这样的话,单片机系统就能及时的处理所接收到的信号,同时将所处理好的信号传输给直流电机,从而控制小车避开前进方向。因而路径检测系统中传感器的选择是很重要的,传感器选择的好的话,会对设计的结果有很大的帮助。1.1.1路径识别模块用两个10mH的电感线圈置于车模头部作为确定小车位置的传感器,即双水平线圈方案。使用两个线圈,分别装在小车前方两侧,顺着电流方向竖直放置线圈,此时线圈中的感应电动具有势分布简单,衰减快,远处对近处的干扰小的特点,所以非常适合作为采集信号的传感器。用一根导线产生20KHZ100mA的交变磁场,然后使小车沿着引导线信号的道路行走。根据电磁学,在导线入按正弦规律变化的电流,导线周围会产生变化的磁场,且磁场与电流的变化成一定的规律。如果在此磁场中置一由线圈组成的电感,那么该电感上会产生感应电动势,且该感应电动势的大小和通过线圈回路的磁通量的变化率成正比。由于在导线周围不同位置,磁感应强度的大小和方向不同,所以不同位置上的电感产生的感应电动势也应该是不同。据此,那么可以确定电感的大致位置。靠近磁场的地方磁感应强度越高,远离磁场的地方磁感应强度越低。用两线圈采集到的感应电压对小车的位置做出判断。对于弧形导线假设选用左侧线圈电压减去右侧线圈电压,假设这个差为正值那么说明小车已经偏离直线向左侧转弯,且这个值越大说明偏左越厉害;同理可得,假设选用右侧线圈电压减去左侧线圈电压,假设这个差为正值那么说明小车已经偏离直线向右转弯,且这个值越大说明偏右越厉害。对于直导线,即左侧线圈电压和右侧线圈电压的值差不多,那么小车沿着直线向前行走。不同的线圈轴线摆放方向,可以感应不同的磁场分量。在车模前上方水平方向固定两个相距L的线圈,两个线圈的轴线为水平,高度为h,为了讨论方便,我们在跑道上建立如下的坐标系,假设沿着跑道前进的方向为z轴,垂直跑道往上为y轴,在跑道平面垂直于跑到中心线为x轴。xyz轴满足右手方向。假设在车模前方安装两个水平的线圈。这两个线圈的间隔为L,线圈的高度为h,参见下列图5所示。左边的线圈的坐标为〔x,h,z〕,右边的线圈的位置(x-L,h,z)。由于磁场分布是以z轴为中心的同心圆,所以在计算磁场强度的时候我们仅仅考虑坐标(x,y)。由于线圈的轴线是水平的,所以感应电动势反映了磁场的水平分量。根据公式可以知道感应电动势大小。图2感应线圈的布置方案令h=10cm,x∈(−30,+30)cm我们使用相距水平长度为L的两个感应线圈,并计算两个线圈感应电动势的差值:下面假设L=30cm,计算两个线圈电动势差值dE。当左边线圈的位置x=30的时候,此时两个线圈的中心恰好处于跑道中央,感应电动势差值dE为0。当线圈往左偏移,x∈(15,30),感应电动势差值小于零;反之,当线圈往右偏移,x∈(0,15),感应电动势大于零。因此在位移0∼30cm之间,电动势差值dE与位移x是一个单调函数。可以使用这个量对于小车转向进展负反应控制,从而保证两个线圈的中心位置跟踪赛道的中心线。通过改变线圈高度h,线圈之间距离L可以调整位置检测围以及感应电动势的大小。1.1.2电机驱动模块一般来说控制器、功率变换器和电机三个局部组成了电动小车的驱动系统。由于小车的驱动不但要求电机驱动系统具有很宽的调速围和高可靠性的性能,还有就是电机的转速要受电源功率的影响,就要求驱动具有宽的高效率区。直流电机的控制比拟简单,性能比拟出众,而且直流电源也比拟容易实现。所以本设计的驱动选用了两个直流电机,分别驱动两侧的小车履带,同时也使小车能够方便的到达转弯的目的。电机在正常工作时对电源的干扰很大,所以可以用光耦器件将控制局部和电机驱动局部隔开,这样可以有效的防止对电源局部的影响,并且用三极管加在场效应管的基极加以驱动,从而有足够大的基极电流流过场效应管。PWM为脉冲宽度调制,通过PWM波控制MOS管控制直流电机的电压。通过改变PWM的占空比可以调节电机的速度。直流电机两端的电压与其转速比例,也与控制波形的占空比成正比,因此电机的速度与占空比大小成正比,占空比越大,电机转得越快,当占空比为1时,电机转速最大。2软件方案介绍C语言:是计算机程序设计语言,既具有高级语言的特点,有具有汇编语言的特点,是一种中级语言。因为C语言的功能很强大,所以C语言开展非常快,C语言成为现在最受欢送的编程语言之一。C语言有以下优点:①C语言是构造化语言,构造化使得程序层次清晰,便于使用、维护以及调试;②C语言功能齐全,具有多种数据类型,使得程序效率更高;③C语言有很好的移植性,编好的C语言程序,能很好的下载到不同的芯片,没有什么兼容性的问题,不需要重新再编写程序。总的来说,就是C语言功能比拟强大,又通俗易懂,所以在编程的时候,选择C语言来编程。2.1.1单片机介绍AT89S52的特点是:8位CPU和在系统可编程Flash;晶片部具时钟振荡器;部程序存储器〔ROM〕为8KB;部数据存储器〔RAM〕为256字节;32个可编程I/O口线;8个中断向量源;三个16位定时器/计数器;三级加密程序存储器;全双工UART串行通道。端口3也具有部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器容的读取或写入控制等功能。P0口:P0口为一个8位漏极开路双向I/O口,每脚吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。由于AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,并且片上Flash允许程序存储器在系统可编程。所以本设计采用AT89S52单片机为核心控制器主控单元的一个最小系统。该最小系统包括:复位电路、电源电路、时钟电路。C3与R1组成单片机的复位电路。复位时单片机执行初始化操作,复位后PC初始化为0000H,使得单片机程序从OUT单元开场执行,从本钱与效益考虑本系统采用由简单的RC电路构成的复位电路。时钟频率是单片机每个功能部件的运行基准,有了这个基准单片机才能有条有理的一拍一拍地工作,因此,时钟直接关系到单片机的运行速度,时钟电路的工作质量也直接关系到单片机系统的工作稳定性。本设计选用的是22.1184MHZ的晶体振荡器〔简称晶振〕,这样是为了方便计算波特率。晶振的频率越高,那么系统得到的时钟频率也就越高,单片机执行指令的速度也就越快。2.1.2系统原理小车启动后,调整好路线后全速前进,行驶到弯道时,左右线圈磁场传感器会检测到不相等的电压信号,传输给单片机,通过单片机调节PWM信号输出调节左右轮速度从而实现小车的转弯,直转到左右线圈磁场传感器检测到相等的电压信号为止,在执行中断效劳程序中输出PWM封锁信号并实现闭锁从而实现小车的刹车。刹车后小车在原地等待。3系统控制软件设计根据软件设计方案,整个软件采用模块化设计,各功能局部均设计为子程序模块,各功能的实现是通过主程序调用子程序或子程序调用子程序完成的。整个程序由以下局部组成:〔1〕、主程序:主程序是整个程序的主体,包括单片机存单元以及各个I/O口的初始化,主要有相关标志位,暂存单元,显示缓冲区的清零,中断向量入口地址,中断优先级,堆栈指针的设置,以及对子程序的调用等。〔2〕、中断效劳程序:利用了定时器模拟PWM波输出,并定义了小车运行时间。〔3〕、控制程序:控制小车前进的方向。3.1主程序设计主程序是整个软件流程核心,它起到串联各功能模块的作用,各功能局部的执行都采用子程序调用的方式来实现。另外主程序还负责对一些标志、状态、符号地址进展定义和设置初始化值,以便在程序运行中使用和判断。主程序采用循环构造的方式设计,在系统上电以后先系统的复位工作。软件系统的主构造图main(){EA=1;//开中断 ET0=1; //开T0中断 TMOD=0x02; //8位重装 TL0=0xfc; TH0=0x18; TR0=1;While(1) {Temp=P3&0x0f; switch(temp)//检查磁场传感器传来的接口状态 {case0x00:do {stop();//小车停顿 }while(temp!=0);break; case0x03:do {left();//小车向左转 }while(temp!=0);break; case0x0b: do { Left1()//小车小幅度向左转 }while(temp!=0x01);break; case0x0d: do {right();//小车向右转 }while(temp!=0x02);break; case0x0c {Right1();//小车小幅度向右转 }while(temp!=0x04);break;case0x0f {head();//小车前进 }while(temp!=0);break; }head(); }}3.2中断效劳程序中断效劳程序中定义了定时器变量sum,计数器变量count,当进一次中断,计数器变量自加一,当等于全局区定义的脉宽变量width值时,把输出PWM口置为0,count继续自加一,当等于全局区定义的频率变量fre值时,把输出口PWM置1,这样就完成了一个周期的输出方波,每次只用控制width值就能改变占空比大小的输出,进而控制小车的方向。而每次进中断,定时器变量也自加一,当加到等于全局区定义的定时器值时就中断效劳程序,并把输出口置为低电平,小车停顿前进。流程图如下:相关程序如下:VoidT0-ISR()interrupt1{Staticintcount;//计数器变量Intsum=0; //定时器变量Count++;Sum++;If(sum==sum1)//判断小车是否到停顿条件 { EA=0;//关闭中断PwmR=0;//输出口置为低电平PwmL=0}If(count==widthR)Pwmr=0;If(count==widthL)Pwml=0;If(count==fre) {Count=0;PwmR=pwmL=1;}}其设计原理如下列图:图定时器模拟PWM波利用定时器/计数器计数,当计到等于脉宽变量值width时,PWM口置为低电平,当计到等于频率变量值fire时,PWM口置为高电平,如下图,当我改变width值的大小时,就可以改变该占空比大小。PWM调速原理:脉冲宽度调制〔PWM〕是利用微处理器的数字输出来对模拟电路进展控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。它是一种是对模拟信号电平进展数字编码的方法。通过高分辨率计数器的来计算方波的占空比,用来对一个具体模拟信号的电平进展编码。但PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进展编码。3.3控制程序设计控制程序设计主要是小车路径的抉择,在接到单片机的处理命令后控制程序控制着小车所做的举动,包含了4个动作,其中head〔〕函数功能是向前走,left〔〕函数功能向左走,right〔〕函数功能是向右走,stop〔〕函数功能是停顿前进。在程序中定义了两个width变量来控制输出占空比大小,一个控制左轮,一个控制右边轮,所以只用改变width的值就能决定小车的方向,下列图为输出端口与小车行走情况:图输入端口电压与小车行走情况的关系P0.0-P0.7口为8位数据口和输出低8位地址复用口。选择其中的P0.2和P0.7口作为PWM波的输出口。分别在两个口各接一个光电耦合器,用于隔离单片机控制电路和驱动电路,防止干扰的产生。而P3.0、P3.1、P3.2、P3.3分别为RXD串行承受端、TXD串行发送端、INT0外部中断0请求端、INT1外部中断1请求端。现在接着电磁感应路径识别模块的4个输出端,都用于接收采集到的信号,然后处理采集到的信号。经过检波、滤波、放大后的线圈采集到的电压信号与3个电阻R11、R12、R13分压后的电压相比拟,得到需要采集的信号,产生的是上下电平,输入单片机的P3.0-P3.3口,来控制单片机输出PWM波的占空比,来控制直流电机的转速,进而控制小车的转向。voidleft() {WidthL=15;WidthR=20;}voidright() {WidthR=15; widthL=20;}voidstop() {WidthR=0;WidthL=0;}voidhead() {WidthR=20;Widthl=20;}4调试与检测调试与检测是应用开发电子领域中必不缺少的实践环节,单片机的开发也是一样。假设在具体的工程实践中,因为方案错误并进展相应的开发设计,会浪费更多的时间和资金,应此,进展软件的模拟与仿真是非常有必要的。对结果的数据分析关系到系统的参数是否正确,通过检测分析能够及时的更正发生的错误以防止造成不必要的麻烦。4.1调试与仿真单片机开发,除必要的硬件外,软件也是不能分开的。通过编译软件将源代码编译变为机器码,早期单片机的汇编软件有A51等,随着技术的不断开展,由早期的汇编语言开发逐渐演变到现在的高级语言开发。同时单片机的开发软件也在不断更新开展,其中KeilC51软件是目前最流行的用于开发MCS-51系列单片机的软件。KeilC51提供了包括库管理、连接器、宏汇编、C编译器和一个功能强大的仿真调试系统等,它通过一个集成开发环境将这些组件结合在一起,全Windows界面,生成目标代码的效率非常高,是一种非常实用的软件。Keil软件的优点:容易上手,编程操作简单;支持许多部函数,部函数产生代码来完成库函数,执行速度很快,效率也很高。另外一款用于硬件仿真的软件ProteusISIS是Labcenter公司推出的电路实物分析仿真系统,可仿真各类电路及IC,并全面支持单片机系统。它的元件库种类齐全,使用方便,是一款人们普遍使用的的专业单片机软件仿真系统。其主要的特点有两个:一是能够对动态元件的实时仿真,同时使得系统更具真实性;二是集成了虚拟工具箱的功能,虚拟工具能够与仿真系统同时进展,使测量更加方便而准确。本系统使用C语言编程,采用Keiluversion3编译器进展源程序编译,结合硬件电路的设计制作使用ProteusISIS硬件仿真软件进展系统的联调与仿真测试。调试过程分模块进展调试与仿真,在确保各个模块无异常情况下进展系统联调,最后进展数据的分析比照,改良完善程序。4.2检测与分析本小节将介绍在调试过程中检测出的问题及分析解决方法。初次调试程序难免会产生相应的错误,这就需要耐心的对程序的语法进展检查,如函数的定义规那么、逗号的使用、花括号的对应,以及赋值符号与等号分别。通过修改,编译全部通过,下一步就是对程序的功能测试。在程序功能测试中的主要问题是起初所给的电压过于低,导致小车没法驱动;其次小车没法识别方向,经过排查,是因为单片机上的P0输出口与电机接口没能连接妥当。完毕语通过这次毕业设计,使我认识到自身在该门课的理论知识的缺乏之处,表现在一些错误发生时,不能很好的按照科学的检查方法检查出错误,致使一些实验步骤进展缓慢。但是,对于单片机接口电路以及C语言的程序的设计知识得到了稳固,温习了旧的知识,也增强了实验动手能力,同时,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的根本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧〔特别是C语言〕的掌握方面都能向前迈了一大步。让我感受感到现代科学技术的迅猛开展,作为一个新时代的大学生,更应该以求知假设渴的姿态不断吸收新的知识,以跟上时代的步伐,促进祖国科技实力的不断进步,为日后成为合格的应用型人才打下良好的根底!参考文献[1].余孟尝.数字电子技术根底简明教程.高等教育.1985[2].素行.模拟电子技术根底简明教程.高等教育.1985[3].毅刚.喜元.单片机原理与应用设计.电子工业.2008.4[4].梅丽凤.王艳秋.汪毓铎.军.单片机原理与接口技术.交通大学.2005.7[5].笃仁.保君.传感器原理及应用技术.电子科技大学.2003.8[6].金平.明山.余祥.电子系统设计.电子工业.2007.8[7].马忠梅.籍顺心.凯.马岩.单片机的C语言应用程序设计.航空航天大学.2008[8].余志生.汽车理论.机械工业.2006附录程序清单Intsum1=100000; Intwidth=20; //右轮脉宽Intwidthleft=20; //左轮脉宽Intfre=40; //频率SbitpwmP0^0;//右输出口Sbitpwm1P0^1; //左输出口//传感器端口sbits1=P3^0;sbitS2=P3^1;sbits3=P3^2;sbitS4=P3^3;main(){ EA=1;

温馨提示

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

评论

0/150

提交评论