已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京化工大学北方学院毕业设计(论文)电磁感应智能小车的设计陈阳自动化专业 自控0905 学号090204111指导教师 赵燕摘 要该论文主要任务是通过电磁感应原理设计自动寻迹的智能小车。该设计通过传感器对线路进行检测,采集信号,再将检测线圈输出的感应电动势经过放大和必要的处理,最后提供给智能车的飞思卡尔单片机进行a/d转换采样,以获取赛道的位置。智能车单片机a/d输入端需要05v之间的单极性电压,因此采用以下方法进行采样: 将检测线圈输出的频率20khz,大约毫伏级的信号放大,放大倍数约为1000倍,然后进行幅度检波转换为直流电压,单片机对每路检测信号只采样一次就可以知道信号大小,巡回采集多路电压进行比较,通过找到最大值实现赛道定位。与此同时,我们通过制作传感器来采集模拟信号,然后传给单片机,然后c语言编程来实现小车位置的判别以及控制小车采取相应动作。关键词:单片机 传感器 c语言electromagnetic induction intelligent car designabstract the paper main task is through the electromagnetic induction principle to design automatic tracing of smart car. this design through the sensor to test the circuit, acquisition signals, then test coil output of the induced electromotive force through amplifier and the necessary processing, and finally to provide intelligent car freescale mcu a/d conversion sample, in order to get the position of the track. smart car single chip a/d input need single polarity between 0 5 v voltage, so the sample using the following methods: will detect the coil output frequency of the 20 khz, about millivolt level of signal amplifier, about 1000 times magnification, and then to convert the amplitude detection of dc voltage, single chip microcomputer to each road detection signals sampling only one can know size, voltage comparison circuit to collect multiple . at the same time, we produced by the sensors to collect analog signal, and then to the microcontroller, and c language programming to realize the car position determination and control of the car to take action accordingly. key words: microcontroller sensor c language目 录绪 论1设计方案介绍1第1章 硬件方案介绍2第1.1节 路径识别模块2第1.2节 电机驱动模块4第1.3节 传感器放大模块6第2章 软件方案介绍8第2.1节 单片机介绍9第2.2节 控制器最小系统10第3章 系统控制软件设计13第3.1节 主程序设计13第3.2节 中断服务程序15第3.3节 控制程序设计18第4章 调试与检测20附 录21程序清单21致 谢26iii绪 论随着科学技术的飞速发展,人们对生活的要求越来越高,特别是对交通工具的智能方面的要求,除此之外,随着在企业中越来越追求工作效率和生产成本,迫切的要求以最低的成本生产出所需要的产品,在这种种的社会的条件下,人们越来越重视机器智能方面的研究,在众多的研究当中,交通工具的智能研究就是其中的一个热点问题,而智能小车的研究就是一个很好的代表。所谓的智能小车,就是集路面环境探测、卫星导航、自动行驶和有自己的决策能力等功能为一体的小车,它综合运用了计算机、通信、导航和自动化控制等技术。正因为智能小车的功能强大和比较实用,同时对智能小车的研究有很大的发展空间,所以智能小车的研究得到了国内外科学家的重点关注。智能小车的研究是一个很有意思的科研问题,得到了很多大学生的关注,他们在学校期间学习很多与之相关的知识,同时做很多与之相关的实验。现在国内的很多电子设计大赛都有与智能小车相关的题目,在大赛中设计出来的这些小车能实现很多方面的功能,例如避障、循迹等。 本系统主要实现了智能小车的左转,右转,停止等功能,在一个交变磁场为引导信号道路中,根据电感线圈的路径识别模块,单片机得到采集到的信号,通过采集到的信号来改变输出的pwm波的占空比,从而使两个直流电机的转速不相同,来控制小车的运行方向。程序采用了c语言进行设计,主程序采用了循环模式的设计,子程序则为功能模块设计,由主程序进行调用。设计方案介绍本论文主要对智能小车软件系统进行了研究。整个硬件系统由路径检测系统和单片机最小系统组成。论文首先对检测系统作了详细的分析,接着对单片机最小系统的各个组成部分作了详细的说明,同时在论文中对所用到的传感器,电机等阐述了其原理。系统整体设计基于单片机的控制,由单片机作为主控制器进行各部分的协调工作,在熟悉硬件的基础上编程实现软件功能。本系统先简单介绍智能小车系统的构成与特性,再详细讲述基于at89s52单片机的智能小车系统的软件功能的设计与实现。第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)。由于线圈的轴线是水平的,所以感应电动势反映了磁场的水平分量。根据公式可以知道感应电动势大小。图1.2 感应线圈的布置方案令h=10cm, x(30,+30)cm,可以根据公式计算出感应电动势我们使用相距水平长度为l 的两个感应线圈,并计算两个线圈感应电动势的差值:下面假设l = 30cm ,计算两个线圈电动势差值d e。当左边线圈的位置x = 30的时候,此时两个线圈的中心恰好处于跑道中央,感应电动势差值d e 为0。当线圈往左偏移, x (15,30) ,感应电动势差值小于零;反之,当线圈往右偏移, x (0,15) ,感应电动势大于零。因此在位移030cm 之间,电动势差值d e 与位移x 是一个单调函数。可以使用这个量对于小车转向进行负反馈控制,从而保证两个线圈的中心位置跟踪赛道的中心线。通过改变线圈高度h ,线圈之间距离l 可以调整位置检测范围以及感应电动势的大小。 第1.2节 电机驱动模块 一般来说控制器、功率变换器和电机三个部分组成了电动小车的驱动系统。由于小车的驱动不但要求电机驱动系统具有很宽的调速范围和高可靠性的性能,还有就是电机的转速要受电源功率的影响,就要求驱动具有宽的高效率区。直流电机的控制比较简单,性能比较出众,而且直流电源也比较容易实现。所以本设计的驱动选用了两个直流电机,分别驱动两侧的小车履带,同时也使小车能够方便的达到转弯的目的。采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 h型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,h型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 pwm调速技术。现市面上有很多此种芯片,我选用了l298n。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。图1.3 h桥式驱动电路l298n内部集成了h桥式驱动电路,从而可以采用l298n电路来驱动电机。通过单片机给予l298n电路pwm信号来控制小车的速度,起停。图3.4 l298n引脚图 图1.5 电机驱动电路第1.3节 传感器放大模块 在设计该放大电路中,采用两级级联放大:第一级选择高精度斩波稳零运算放大器tlc2652作为小信号的放大。第二级主要由运放op07构成,作为信号的二级放大及滤波。前置放大电路如图1.6所示。可以看出,tlc2652构成差分放大电路。从tlc2652输入端看进去,电桥电路可用图1.7等效示意图(虚线部分)来描述,等效于在放大器反相端和同相端各接r=500欧的一个电阻;为了提高电阻的精度和共模抑制比,r2和r3选用精密电阻且取r19=r18=39 k,因此理论上闭环放大倍数约为a=r3/r=39000/500=78倍;c2、c3用来滤除信号上的高频噪音;记忆元件c4和c5使用绝缘电阻很高的聚酯薄膜电容器,容量为0.1f。电容的一端接到cxa或cxb引脚,另一端接至vdd-引脚;tlc2652在作直流微弱信号放大时,为了进一步减少交流信号干扰,在输出端加接一个低通滤波电容c6,容量为1f,用以滤除输出信号中的交流成分,使输出信号更加平稳;总之,为了保证放大器的精度,一是负反馈电阻必须有足够的精度,采用精密电阻,且电路的闭环增益不能太大;二是必须提高印制板的质量,防止印刷板表面的漏电流;三是注意合理布线。图1.6 前级放大电路图1.7前级放大电路等效图1.8 后级放大电路第二级放大电路完成信号的二次放大和低通滤波的作用。后级放大电路如图1.8所示:图中运放op07构成了反相放大电路,u1是经tlc2652放大之后的电压,理论上此放大电路的放大倍数为b=r1/r3=30k/1k=30倍。c3、r1构成rc低通滤波网络,其电路截止频率为f=1/2*r22*c13=1/2*30k*0.01=530 hz,符合设计要求(有用信号频率范围主要集中在0500 hz);管脚7和4分别接一个0.1f的瓷片电容,用来滤除高频成分;为了减少失调电流6,3脚接r2(其阻值约为r1和r3的并联值1k);out端出来的信号送a/d进行模数转换,转换完成送cpu进行数字信号处理。第2章 软件方案介绍c语言:是计算机程序设计语言,既具有高级语言的特点,有具有汇编语言的特点,是一种中级语言。因为c语言的功能很强大,所以c语言发展非常快,c语言成为现在最受欢迎的编程语言之一。c语言有以下优点:c语言是结构化语言,结构化使得程序层次清晰,便于使用、维护以及调试;c语言功能齐全,具有多种数据类型,使得程序效率更高;c语言有很好的移植性,编好的c语言程序,能很好的下载到不同的芯片,没有什么兼容性的问题,不需要重新再编写程序。总的来说,就是c语言功能比较强大,又通俗易懂,所以在编程的时候,选择c语言来编程。第2.1节 单片机介绍图2.1 stc12c60s2引脚图stc12c60s2单片机指令代码完全兼容传统8051单片机。stc12c60s2单片机的工作电压为5.5v-3.4v,工作频率范围0-80mhz,程序存储器flash容量为8kb,随机存储器ram空间为512字节,完全满足设计温度控制系统的要求。所以本设计采用stc12c60s2单片机为核心控制器主控单元的一个最小系统。该最小系统包括:复位电路、电源电路、时钟电路。c3与r1组成单片机的复位电路。复位时单片机执行初始化操作,复位后pc初始化为0000h,使得单片机程序从out单元开始执行,从成本与效益考虑本系统采用由简单的rc电路构成的复位电路。时钟频率是单片机每个功能部件的运行基准,有了这个基准单片机才能有条有理的一拍一拍地工作,因此,时钟直接关系到单片机的运行速度,时钟电路的工作质量也直接关系到单片机系统的工作稳定性。本设计选用的是22.1184mhz的晶体振荡器(简称晶振),这样是为了方便计算波特率。晶振的频率越高,则系统得到的时钟频率也就越高,单片机执行指令的速度也就越快。第2.2节 控制器系统本方案基于模块化思想,采用stc89c52单片机作为控制核心,该mcu是宏晶推出的性价比极高的单片机,具有8k以上的大容量rom可供程序编写,这极大方便了液晶这样需要大容量信息存储的硬件的使用。而这款基于mcs-51内核的单片机支持isp下载,在工作时可以不分频,速度是加同样晶振的普通51的12倍,况且这种单片机的功耗又很低,能够满足本设计的需求。主板承担着整部赛车各类电源的提供以及信号采集控制任务,主要由各类电源电路和单片机系统与接口电路组成。该系统主要用到的是单片机,所以主要的部分是系统图,该系统图如:第3章 系统控制软件设计根据软件设计方案,整个软件采用模块化设计,各功能部分均设计为子程序模块,各功能的实现是通过主程序调用子程序或子程序调用子程序完成的。整个程序由以下部分组成:(1)、主程序:主程序是整个程序的主体,包括单片机内存单元以及各个i/o口的初始化,主要有相关标志位,暂存单元,显示缓冲区的清零,中断向量入口地址,中断优先级,堆栈指针的设置,以及对子程序的调用等。(2)、中断服务程序:利用了定时器模拟pwm波输出,并定义了小车运行时间。(3)、控制程序:控制小车前进的方向。第3.1节 主程序设计主程序是整个软件流程核心,它起到串联各功能模块的作用,各功能部分的执行都采用子程序调用的方式来实现。另外主程序还负责对一些标志、状态、符号地址进行定义和设置初始化值,以便在程序运行中使用和判断。主程序采用循环结构的方式设计,在系统上电以后先系统的复位工作。 图3.1 软件系统的主结构图 main()ea=1; /开中断et0=1; /开t0中断tmod=0x02; /8位重装tl0=0xfc;th0=0x18;tr0=1;while(1) temp=p3&0x0f;switch(temp) /检查磁场传感器传来的接口状态case 0x00: do stop(); /小车停止while(temp!=0);break;case 0x03: doleft(); /小车向左转while(temp!=0);break;case 0x0b: doleft1() /小车小幅度向左转while(temp!=0x01);break;case 0x0d: doright(); /小车向右转while(temp!=0x02);break;case 0x0c: doright1(); /小车小幅度向右转while(temp!=0x04);break;case 0x0f: dohead(); /小车前进while(temp!=0);break;head(); 第3.2节 中断服务程序中断服务程序中定义了定时器变量sum,计数器变量count,当进一次中断,计数器变量自加一,当等于全局区定义的脉宽变量width值时,把输出pwm口置为0,count继续自加一,当等于全局区定义的频率变量fre值时,把输出口pwm置1,这样就完成了一个周期的输出方波,每次只用控制width值就能改变占空比大小的输出,进而控制小车的方向。而每次进中断,定时器变量也自加一,当加到等于全局区定义的定时器值时就中断服务程序,并把输出口置为低电平,小车停止前进。流程图如下:图3.2 中断服务程序流程图相关程序如下:void t0-isr() interrupt 1static int count; /计数器变量int sum=0; /定时器变量count +;sum+;if(sum=sum1) /判断小车是否到停止条件ea=0; /关闭中断pwmr=0; /输出口置为低电平pwml=0if(count = widthr) pwmr =0;if(count = widthl) pwml =0;if(count=fre)count =0;pwmr=pwml=1;其设计原理如下图: 图3.3 定时器模拟pwm波利用定时器/计数器计数,当计到等于脉宽变量值width时,pwm口置为低电平,当计到等于频率变量值fire时,pwm口置为高电平,如图所示,当我改变width值的大小时,就可以改变该占空比大小。pwm调速原理:脉冲宽度调制(pwm)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。它是一种是对模拟信号电平进行数字编码的方法。通过高分辨率计数器的来计算方波的占空比,用来对一个具体模拟信号的电平进行编码。但pwm信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(on),要么完全无(off)。电压或电流源是以一种通(on)或断(off)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用pwm进行编码。第3.3节 控制程序设计 控制程序设计主要是小车路径的抉择,在接到单片机的处理命令后控制程序控制着小车所做的举动,包含了4个动作,其中head()函数功能是向前走,left()函数功能向左走,right()函数功能是向右走,stop()函数功能是停止前进。在程序中定义了两个width变量来控制输出占空比大小,一个控制左轮,一个控制右边轮,所以只用改变width的值就能决定小车的方向,下图为输出端口与小车行走情况:图3.4 输入端口电压与小车行走情况的关系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波的占空比,来控制直流电机的转速,进而控制小车的转向。void left()widthl=15;widthr=20;void right() widthr=15;widthl=20;void stop()widthr=0;widthl=0;void head()widthr=20;widthl=20;第4章 调试与检测调试与检测是应用开发电子领域中必不缺少的实践环节,单片机的开发也是一样。若在具体的工程实践中,因为方案错误并进行相应的开发设计,会浪费更多的时间和资金,应此,进行软件的模拟与仿真是非常有必要的。对结果的数据分析关系到系统的参数是否正确,通过检测分析能够及时的更正发生的错误以避免造成不必要的麻烦。第4.1节 控制程序设计单片机开发,除必要的硬件外,软件也是不能分开的。通过编译软件将源代码编译变为机器码,早期单片机的汇编软件有a51等,随着技术的不断发展,由早期的汇编语言开发逐渐演变到现在的高级语言开发。同时单片机的开发软件也在不断更新发展,其中keilc51软件是目前最流行的用于开发mcs-51系列单片机的软件。keilc51提供了包括库管理、连接器、宏汇编、c编译器和一个功能强大的仿真调试系统等,它通过一个集成开发环境将这些组件结合在一起,全windows界面,生成目标代码的效率非常高,是一种非常实用的软件。keil软件的优点:容易上手,编程操作简单;支持许多内部函数,内部函数产生代码来完成库函数,执行速度很快,效率也很高。另外一款用于硬件仿真的软件proteus isis是labcenter公司推出的电路实物分析仿真系统,可仿真各类电路及ic,并全面支持单片机系统。它的元件库种类齐全,使用方便,是一款人们普遍使用的的专业单片机软件仿真系统。其主要的特点有两个:一是能够对动态元件的实时仿真,同时使得系统更具真实性;二是集成了虚拟工具箱的功能,虚拟工具能够与仿真系统同时进行,使测量更加方便而准确。本系统使用c语言编程,采用keil uversion3 编译器进行源程序编译,结合硬件电路的设计制作使用proteus isis硬件仿真软件进行系统的联调与仿真测试。调试过程分模块进行调试与仿真,在确保各个模块无异常情况下进行系统联调,最后进行数据的分析对比,改进完善程序。第4.2节 控制程序设计本小节将介绍在调试过程中检测出的问题及分析解决方法。初次调试程序难免会产生相应的错误,这就需要耐心的对程序的语法进行检查,如函数的定义规则、逗号的使用、花括号的对应,以及赋值符号与等号分别。通过修改,编译全部通过,下一步就是对程序的功能测试。附 录程序清单int sum1=100000; int width=20;/右轮脉宽int widthleft=20;/左轮脉宽int fre =40;/频率sbit pwm p00; /右输出口sbit pwm1 p01; /左输出口/传感器端口sbit s1=p30; sbit s2=p31;sbit s3=p32;sbit s4=p33;main()ea=1; /开中断et0=1; /开t0中断tmod=0x02; /8位重装tl0=0xfc;th0=0x18;tr0=1;while(1) int temp=p3&0x0f;switch(temp)case 0x00: dostop();while(temp!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购合同解除合同模板
- 2024年度财务预算执行监控与分析服务合同3篇
- 陕西造价咨询合同模板
- 2024年度变电站电气设备维护外包合同3篇
- 2024年度二手车销售与二手车拍卖平台合作协议3篇
- 2024版经典公司股权转让及股权激励方案执行协议
- 2024年度房地产销售代理与战略合作合同3篇
- 山村屋子出租合同模板
- 2024年度深圳广告代理发布合同
- 设备材料购买合同模板
- 2024统编版(2024)道德与法治小学一年级上册教学设计(附目录)
- DL∕T 5362-2018 水工沥青混凝土试验规程
- 清华大学《工程伦理》网课习题及期末考试答案
- 人教版小学三年级语文上每课词句积累
- 大学生心理健康与发展学习通超星课后章节答案期末考试题库2023年
- 卫浴产品世界各国认证介绍
- 个体诊所药品清单
- 深度学习数学案例(课堂PPT)
- 中国地图含省份信息可编辑矢量图
- 卧式钻床液压系统设计课件
- 水库维修养护工程施工合同协议书范本
评论
0/150
提交评论