激光传感器是新型测量仪表,已广泛应用于国防、生产、医学和非电测量等各方面,它的优点是能实现无接触远距离测量,速度快,精度高,量程大,抗光、电干扰能力强等。ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。本系统以AVR单片机为控制核心,采用电机专用驱动芯片L298驱动两个直流电机,通过激光传感器件来采集信息,并将数据信息送入主控单元ATmega16单片机,处理数据后完成相应的操作,实现了智能小车在无人控制状态下智能光电检测、循光功能。接下来CN人才网小编为您整理了关于电子工程毕业论文范文,欢迎您阅读!
电子工程毕业论文范文
激光是20世纪60年代出现的最重大的科学技术成就之一。它发展迅速,已广泛应用于国防、生产、医学和非电测量等各方面。激光具有3个重要特性: 高方向性、高单色性、高亮度。
激光传感器是利用激光技术进行测量的传感器。激光传感器由发射管、接收管、调制管、大透镜等组成。
激光传感器工作时先由激光发射二极管对准目标发射激光脉冲。发射部份由一个振荡管发出180KHz频率的振荡波后,经三极管放大,激光管发光;接收部份由一个相匹配180KHz的接收管接收返回的光强,经过电容滤波后直接接入单片机的PA口,检测返回电压的高低。由于激光传感器使用了调制处理,接收管只能接受相同频率的反射光,因而可以有效防止可见光对反射激光的影响。
智能电动小车,将测量光电数据传送至单片机进行处理,由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
第一章 发展状况及意义
1.1 发展状况
1.1.1 传感器的全球发展现状
调查显示,2011年全球传感器市场容量为600亿美元,预计2013年全球传感器市场可达800亿美元以上。东欧、亚太区和加拿大成为传感器市场增长最快的地区,而美国、德国、日本依旧是传感器市场分布最大的地区。真尚有公司等世界高端传感器制造商开始进入中国大陆,并且设立了技术开发部门。
1.1.2 研究意义
就世界范围而言,传感器市场上增长最快的依旧是汽车市场,占第二位的是过程控制市场,看好通讯市场前景。
利用激光的高方向性、高单色性和高亮度等特点可实现无接触远距离测量。激光传感器常用于长度、距离、振动、速度、方位等物理量的测量,还可用于探伤和大气污染物的监测等。
1.2 国内外发展状况
1.2.1 激光的应用
激光测长1:精密测量长度是精密机械制造工业和光学加工工业的关键技术之一。现代长度计量多是利用光波的干涉现象来进行的,其精度主要取决于光的单色性的好坏。激光是最理想的光源,它比以往最好的单色光源(氪-86灯)还纯10万倍。因此激光测长的量程大、精度高。若用氦氖气体激光器,则最大可测几十公里。一般测量数米之内的长度,其精度可达0.1微米。
【】激光测距2:它的原理与无线电雷达相同,将激光对准目标发射出去后,测量它的往返时间,
再乘以光速即得到往返距离。由于激光具有高方向性、高单色性和高功率等优点,这些对于测远距离、判定目标方位、提高接收系统的信噪比、保证测量精度等都是很关键的,因此激光测距仪日益受到重视。在激光测距仪基础上发展起来的激光雷达不仅能测距,而且还可以测目标方位、运运速度和加速度等,已成功地用于人造卫星的测距和跟踪,例如采用红宝石激光器的激光雷达,测距范围为500~2000公里,误差仅几米。目前常采用红宝石激光器、钕玻璃激光器、二氧化碳激光器以及砷化镓激光器作为激光测距仪的光源。
激光测振:它基于多普勒原理测量物体的振动速度。多普勒原理是指:若波源或接收波的观察者相对于传播波的媒质而运动,那么观察者所测到的频率不仅取决于波源发出的振动频率而且还取决于波源或观察者的运动速度的大小和方向。所测频率与波源的频率之差称为多普勒频移。这种测振仪在测量时由光学部分将物体的振动转换为相应的多普勒频移,并由光检测器将此频移转换为电信号,再由电路部分作适当处理后送往多普勒信号处理器将多普勒频移信号变换为与振动速度相对应的电信号,最后记录于磁带。这种测振仪采用波长为6328埃的氦氖激光器,用声光调制器进
行光频调制,用石英晶体振荡器3加功率放大电路作为声光调制器的驱动源,用光电倍增管进行
光电检测,用频率跟踪器来处理多普勒信号。它的优点是使用方便,不需要固定参考系,不影响物体本身的振动,测量频率范围宽、精度高、动态范围大。缺点是测量过程受其他杂散光的影响较大。 激光测速:它也是基多普勒原理的一种激光测速方法,用得较多的是激光多普勒流速计,它可以测量风洞气流速度、火箭燃料流速、飞行器喷射气流流速、大气风速和化学反应中粒子的大小及汇聚速度等。
1.2.2 市场前景
一些传感器4市场比如压力传感器、温度传感器、流量传感器、水平传感器已表现出成熟市场的特征。流量传感器、压力传感器、温度传感器的市场规模最大,分别占到整个传感器市场的21%、19%和14%。传感器市场的主要增长来自于光电传感器、无线传感器、传感器、生物传感器等新兴传感器。其中,无线传感器在2007-2010年复合年增长率超过25%。全球的传感器市场在不断变化的创新之中呈现出快速增长的趋势。有关专家指出,传感器领域的主要技术将在现有基础上予以延伸和提高,各国将竞相加速新一代传感器的开发和产业化,竞争也将日益激烈。在高端技术传感器领域,真尚有等国际传感器巨头也已经进入国内市场,并直接在中国设立技术研发部。新技术的发展将重新定义未来的传感器市场,比如光电传感器、无线传感器、光纤传感器、智能传感器和金属氧化传感器等新型传感器的出现与市场份额的扩大。
第二章 方案设计与论证
2.1 光电发射器
光电测量技术是以光电子学为基础,以光电子器件为主体,利用光电传感器将被测量的量转换成光通量,再转换成电量并综合利用信息传送和处理技术,完成测量的一门新兴的技术。,其中激
光传感器就是光电测量技术的一个重要应用。激光传感器5简单介绍及其优点。激光传感器是利
用激光技术进行测量的传感器。它由激光器、激光检测器和测量电路组成。激光传感器工作时先由激光发射二极管对准目标发射激光脉冲。激光接收管只能接收160KHZ至200KHZ左右频率的光,也就是说一般可见光中的大部分色光都不能被接收到。那么只要将激光的发射频率调制到160KHZ至200KHZ内就能被激光接收管接收到了如图2-1。
图 2-1光电调制管
2.2 控制系统
2.3检测系统
检测系统主要实现光电检测,即利用光电传感器对电动车的行车状态进行测量。光线跟踪,采用光敏三极管接收激光发出的光线,当感受到光线照射时,其c-e间的阻值下降,检测电路输出高电平,经整形后送单片机控制。此套光电传感器固定在底盘前沿。正常行驶时,激光被接收管接收,输出高电平信号,传感器输出高电平信号后送单片机处理,判断执行哪一种预先编制的程序来控制车的行驶状态。前进时,驱动轮直流电机正转,由单片机控制进行调速,通过软件改变通电时长实现调速,最后经反接制动实现停车。
2.4接收与传输
本系统共设计五个激光接收传感器如图2-2,分别放置在电动车车头的正前方及左、右两个方向,用来控制电动车的行走方向,当五个接收器都未受到光照时单片机控制直行;当左侧接收器受到光照时,单片机控制转向电机向左转;当右侧接收器受到光照时,单片机控制转向电机向右转;当正前方接收器都受到光照时,单片机控制直行;正前方接收器控制行进角度不要偏离直行,用以及时校对。行车方向检测电路采用激光接收触发原理配置了一对激光发射、接收传感器。该电路包括一个红外发光二极管、一个红外光敏三极管及其上拉电阻。1号脚接了一个下拉电阻,一般为可调电阻,用于调整调制频率,1号脚同时也是调制信号输出端;2号脚接+5V,3号脚悬空。
图 2-2接收管
2.5 电机驱动系统
直流电动机的调速7方法有三种:(1)调节电枢供电电压U。改变电枢电压主要是从额定电压往下降低电枢电压,从电动机额定转速向下变速,属恒转矩调速方法。对于要求在一定范围内无级平滑调速的系统来说,这种方法最好。aI变化遇到的时间常数较小,能快速响应,但是需要大容量可调直流电源。(2)改变电动机主磁通。改变磁通可以实现无级平滑调速,但只能减弱磁通进行调速(简称弱磁调速),从电机额定转速向上调速,属恒功率调速方法。fI变化时间遇到的时间常数同变化遇到的相比要大得多,响应速度较慢,但所需电源容量小。(3)改变电枢回路电阻R。在电动机电枢回路外串电阻进行调速的方法,设备简单,操作方便。但是只能进行有级调速,调速平滑性差,机械特性较软;空载时几乎没什么调速作用;还会在调速电阻上消耗大量电能。改变电阻调速缺点很多,目前很少采用,仅在有些起重机、卷扬机及电车等调速性能要求不高或低速运转时间不长的传动系统中采用。弱磁调速范围不大,在额定转速以上作小范围的升速。对于要求在一定范围内无级平滑调速。 【】
第三章 硬件设计
3.1 控制系统的硬件构造
3.1.1 ATmega16单片机简介
ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。如图3.1由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。 本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区。在更新应用Flash存储区时引导Flash区的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
3.1.2 ATmega16 引脚功能 VCC 电源正
GND 电源地
端口A(PA7..PA0) 端口A 做为A/D 转换器的模拟输入端。端口A 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A 处于高阻状态。本系统将A端口作为输入信号端口,与激光接收器端口相连接。 端口C(PC7..PC0) 端口C 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C 处于高阻状态。如果JTAG接口使能,即使复位出现引脚 PC5(TDI)、 PC3(TMS)与 PC2(TCK)的上拉电阻被激活。端口C 也可以用做其他不同的特殊功能。本系统将端口C作为电机驱动的信号输入端。
RESET 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P36Table 15。持续时间小于门限间的脉冲不能保证可靠复位。
XTAL1 反向振荡放大器与片内时钟操作电路的输入端。
XTAL2 反向振荡放大器的输出端。
AVCC是端口A与A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC连接如图3-1。
图 3-1ATmega16单片机
3.1.3 ATmega16 内核
为了获得最高的性能以及并行性, AVR 采用了Harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。 快速访问寄存器文件包括32 个8 位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。程序流程通过有/ 无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。大多数指令长度为16 位,亦即每个程序存储器地址都包含一条16 位或32 位的指令。在中断和调用子程序时返回地址的程序计数器(PC) 保存于堆栈之中。这个指针位于I/O 空间,可以进行读写访问。数据SRAM 可以通过5 种不同的寻址模式进行访问。AVR 存储器空间为线性的平面结构。AVR有一个灵活的中断模块。控制寄存器位于I/O空间。状态寄存器里有全局中断使能位。每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。
3.1.4最小应用系统设计
80C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3-2 80C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
图 3-2最小系统
3.2 激光触发与接收
3.2.1 激光发射
常用的激光二极管有两种:PIN光电二极管8。它在收到光功率产生光电流时,会带来量子噪声。雪崩光电二极管。它能够提供内部放大,比PIN光电二极管的传输距离远,但量子噪声更大。为了获得良好的信噪比,光检测器件后面须连接低噪声预放大器和主放大器。
半导体激光二极管的常用参数有。波长:即激光管工作波长,目前可作光电开关用的激光管波长有650nm、670nm、780nm、810nm、980nm等。阈值电流Ith :即激光管开始产生激光振荡的电流,对一般小功率激光管而言,其值约在数十毫安,具有应变多量子阱结构的激光管阈值电流可低至10mA以下。工作电流Iop :即激光管达到额定输出功率时的驱动电流。 发射部分电路如图3-3。电源电压5v(稳压),NPN中功率三极管,集电极接正电源,发射极对地,用一只22欧姆左右的电阻接在调制管与基极之间。
图 3-3发射部分
3.2.2 激光接收
激光接收管在管子上加一反向电压时,有光时电流就增大,无光时几乎无电流通过。用一个电阻分压,电流的变化则可转换为电压的变化,如果接电阻在二极管负极端,有光时电压下降输出低电平;如果电阻接在二极管正极端,有光时电压上升输出高电平如图3-4。
图 3-4接收部分
3.3 电机驱动
3.3.1 L298介绍
L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动图3-5。
图 3-5L298
电源电压,驱动部分:本驱动器可适应较宽电压范围可在10V-36V之间选择。一般来说较
高的额定电压有利于提高电机在高转速扭矩,但却会加大驱动板的功率损耗和温升9。
前置部分:可在9-12V之间选择。前置部分约消耗0.25A电流,在功率电源输入超过12V时不可将前置电源并接于功率电源。
输出电流选择:本驱动器最大电流值为2A/相,为配合不同电机使用,调整精密可调电阻以达到最佳电流匹配如表3-1。
输入信号:本驱动器并口输入信号使用共阴接线方式,+5VTTL电平驱动。
脉冲信号输入:该信号被驱动器解释为一个有效脉冲,并驱动电机运行一步,为确保脉冲信号可靠响应,本驱动器最高信号响应频率为70KHZ,过高的输入频率将可能得不到正确响应。方向信号输入:该端信号的高低电平控制电机的两个转向,控制电机转向时应确保方向信号领先脉冲信号建立,可避免驱动器对脉冲的错误响应。当电感线圈通电后再断电时,绕组两端会产生一个比电源电压高N倍,极性与电源电压相反的反向电压,这就是自感电动势。这个反向电压就会加在L298的功率开关器件上,将L298的功率开关器件击穿烧坏,所以要建立一个泄放通道,将绕组自感电动势所产生的高压和电流释放,以保护功率开关器件。
D1、D6,D2、D5两组的作用分别为:A电机正转时,OUT1为正,OUT2为地,电流从OUT1经A绕组流向OUT2。当切断电流,电机停转时A电机绕组的感生电压使OUT2为正,OUT1为负(就象一组电池),这时接在正端(OUT2)的D2会正向导通;而接在负端(OUT1)的D5也导通将负端接地。为感生电流提供泄放通道向C1、C2充电。这时,C1、C2作为储能器件将自感电流吸收储存。 反转时与正转相反,当电机反转后断电时D1和D6起作用。
电路中的二极管在为L298提供保护同时,也为感生电流向电源电路充电提供通道。C1、C2不但是滤波电容,也是储能器件如图3-6。
图 3-6 驱动电机
3.3.2 驱动电路
设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载。内部包含4通道逻辑驱动电路10,其额定工作电流为 1 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 36 V;Vs 电压最大值也是 36 V。L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。根据L298N芯片的特点,把IOA4~IOA7作为输出口,分别与L298N的IN1~IN4相接,其VS、VSS分别接+12 V、+5 V电源,其输出口OUT1~OUT2接转向电机,OUT3~OUT4接驱动电机,根据设计要求,结合所编好的程序,根据所发语音命令,接收信号,从而控制转向电机和驱动电机如图3-7。
图 3-7驱动系统
3.3直流电机
主磁极的作用是产生气隙磁场。主磁极由主磁极铁心和励磁绕组两部分组成。 直流电机铁心一般用0.5mm~1.5mm厚的硅钢板冲片叠压铆紧而成,分为极身和极靴两部分,上面套励磁绕组的部分称为极身,下面扩宽的部分称为极靴,极靴宽于极身,既可以调整气隙中磁场的分布,又便于固定励磁绕组。励磁绕组用绝缘铜线绕制而成,套在主磁极铁心上。整个主磁极用螺钉固定在机座上,由直流电动机和发电机工作原理示意图可以看到,直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。
直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。直流电机里边固定有环状永磁体,电流通过转子上的线圈产生安培力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。 直流发电机的工作原理就是把电枢线圈中感应的交变电动势, 靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。感应电动势的方向按右手定则确定(磁感线指向手心,大拇指指向导体运动方向,其他四指的指向就是导体中感应电动势的方向)。导体受力的方向用左手定则确定。这一对电磁力形成了作用于电枢一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。
3.4通道设计
3.4.1前向通道
单片机用与测控系统时,总要有与被测对象相联系的前向通道。因此,前向通道设计与被测对象的状态、特征、所处环境密切相关。在前向通道设计时要考虑到传感器或敏感元件选择、通道结构、信号调节、电源配置、抗干扰设计等。在通道电路设计中还涉及到模拟电路诸多问题。
当将单片机用作测﹑控系统时,系统中总要有被测信号输入通道,有计算机拾取必要的输入信息。作为测试系统,对被测对象拾取必要的原始参量信号是系统的核心任务,对控制系统来说,对被控对象状态的测试以及对控制条件的监测也是不可缺少的环节。 对被测对象状态的测试一般都离不开传感器或敏感元件,这是因为被测对象的状态参数常常是一些非电物理量,如温度、压力、载荷、位移等,而计算机是一个数字电路系统。因此,在前向通道中,传感器、敏感元件及其相关电路占有重要地位。
对被测对象的信号的拾取其主要任务就是最忠实地反映被测对象的真实状态,它包括实时性与测量精度。同时使这些测量信号能满足计算机输入接口的电平要求。
因此,单片机应用系统中的前向通道体现了被测对象与系统相互联系的信号输入通道,原始参数输入通道。由于在该通道中主要是传感器与传感器有关的信号调节、变换电路,故也可称为传感器接口通道。
在单片机应用系统中,对信号输入、传感、变换应作广义理解,例如开关量的检测及信号输入,在单片机的各种应用系统中有着广泛的应用。最简单的开关量输入通道就是一个具有TTL电平的状态开关,如水银温度触点、温度晶闸管、时间继电器、限位开关等。故只要反映外界状态的信号输入通道都可称为前向通道。
并不是所有单片机应用系统都有前向通道,例如时序控制系统,只根据系统内部的时间序列来控制外部的运行状态;分布式测控系统中的智能控制总站完成上级主计算机与现场测、控子站计算机之间的指令、数据传送。这些应用系统没有被测对象,故不需要前向通道。
3.4.2后向通道设计
在工业控制系统中,单片机总要对控制对象实现操作,因此,在这样的系统中,总要有后向通道。后向通道是计算机实现控制运算处理后,对控制对象的输出通道接口。
根据单片机的输出和控制对象实现控制信号的要求,后向通道具有以下特点:
1.小信号输出、大功率控制。根据目前单片机输出功率的限制,不能输出控制对象所要求的功率信号。
2.是一个输出通道。输出伺服驱动系统控制信号,而伺服驱动系统中的状态反馈信号通常是作为检测信号输入前向通道。
3.接近控制对象,环境恶劣。控制对象多为大功率伺服驱动机构,电磁、机械干扰较为严重。但后向通道是一个输出通道,而且输出电平较高,不易受到直接损害。但这些干扰易从系统的前向通道窜入。
第四章 软件设计 4.1软件流程
4.2 主程序设计
主程序清单如下: #include #include #define uint unsigned int #define uchar unsigned char
uint g,str;//定义全局变量,以便端口扫描 uchar tur=0,tur01=0,flag=0,flag0=0,final; /*********延时子程序*********/
void delay_ms(unsigned int n) //毫秒级延时 {unsigned int i,j; for(i=1;i
{for(j=1;j
void delay_us(unsigned int n) //微秒级延时 {unsigned int i,j; for(i=1;i
{for(j=1;j
void kuaipwm(uint a)//PWM初始化及PWM调速 {
TCCR1A=0X63;//快速PWM模式的选定设置 TCCR1B=0X1C;//256分频
OCR1A=312;//快速PWM的TOP值
OCR1B=a;//匹配寄存器,可随意调节占空比 }
void go_ahead(void)//直行 {
kuaipwm(300);//初始占空比设置 PORTC|=0b00001010;//正向直行 PORTC&=0b11111010; flag=1; }
void turn_left(void)//左转 {
//delay_ms(1);//
kuaipwm(300);//占空比
PORTC=0b00001000;//电机左转 flag=0;//代表向左 }
void turn_right(void)//右转 {
//delay_ms(1);//
kuaipwm(300);//占空比
PORTC=0b00000010;//电机右转 flag=2; }
void turn_right90t(void)//右转90 {
kuaipwm(300);//占空比
PORTC=0b00000010;//电机右转 delay_ms(1100); flag=2; }
void turn_left90t(void)//左转90 {
kuaipwm(300);//占空比
PORTC=0b00001000;//电机左转 delay_ms(1100); flag=0; }
void turn_stop(void)//停止 {
//delay_ms(1);//
kuaipwm(300);//占空比
PORTC=0b00000000;//电机停转 }
void init_IO(void)//PC0/1--左侧电机,PC2/3---右侧电机 {
DDRC|=0b00001111;//
DDRD|=BIT(4)|BIT(5);//pwm初始化 }
void firtly_setted(void)// {
if(str
delay_us(100); } else if(4000
{ str=0; } }
void main(void) {
delay_ms(30
init_IO();//初始化IO口
DDRA&=0b11100000;//pa4--pa0输入 pa4--pa0对应对管和小灯从右到左(面向小车的前进方向)
PORTA|=0b00011111;//上拉输入
while(1) {
g=PINA; g=~g
g&=0b00011111; if(g!=0) {final=0;} switch(g) {
case 0b00011111:if(tur==0
{tur01++;//黑点个数 str++;//初始寻迹过程控制变量 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{go_ahead();delay_ms(100);}break;//无激光照射,灯全亮,执行直行子函数
case 0b00011010:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;}//tur01待改 } else
{turn_right90t();go_ahead();delay_ms(100);}break;//右一右三寻到光,执行右转90度子函数
case 0b00011100:if(tur==0)//一般是final=1的时候出现 {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else {turn_right90t();go_ahead();delay_ms(100);}break;//右一右二寻到光,执行右转90度子函数
case 0b00011110:if(tur==0)//一般是final=1的时候出现 {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else {turn_right90t();go_ahead();delay_ms(100);}break;//右一寻到光,执行右转90度子函数
case 0b00010110:if(tur==0)//一般是final=1的时候出现 {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else {turn_right90t();go_ahead();delay_ms(100);}break;//左二右一寻到光,执行右转90度子函数
case 0b00011101:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_right();delay_ms(100);go_ahead();delay_ms(100);}break;//右2寻到光,同样执行右转子函数
case 0b00011001:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。
firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_right();delay_ms(100);go_ahead();delay_ms(100);}break;//
case 0b00011011:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{go_ahead();delay_ms(100);}break;//中间寻到光,执行直行函数
case 0b00010111:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_left();delay_ms(100);go_ahead();delay_ms(100);} break;//执行左转函数
case 0b00010011:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_left();delay_ms(100);go_ahead();delay_ms(100);} break;//
case 0b00000111:if(tur==0) {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_left90t();go_ahead();delay_ms(100);} break;//左转90度函数
case 0b00001111:if(tur==0
{tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_left90t();go_ahead();delay_ms(100);} break;//左转90度函数
case 0b00001011:if(tur==0)//一般是final=1的时候出现 {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_left90t();go_ahead();delay_ms(100);}break;//左转90度函数
case 0b00001101:if(tur==0)//一般是final=1的时候出现 {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_left90t();go_ahead();delay_ms(100);}break;//左转90度函数
case 0b00010001:if(tur==0)//一般是final=1的时候出现 {tur01++; str++;//初始寻迹过程控制变量。 firtly_setted
if(tur01>4){tur=1;str=0;tur01=0;} } else
{turn_stop();}break;//停止
default:;break; } } }
结 论
在制作过程中主要的测试仪器和软件包括数字万用表、直流稳压电源和PROGISP程序烧写软件等。数字万用表主要用来测试分立元件的电阻、压降、截止/导通状态等参数;直流稳压电源在测试期间为各待测系统供电。
本设计采用的是ATmega16单片机,这主要是因为该单片机的稳定性比较好。灵敏度高低是首要解决问题,同样的探头在不同的设备上,不同的环境下可能测量出来的实际数据也会不同,如果所用的接收头在接收信号时不能准确同步,有超前或迟滞,都会产生不灵敏。 周围环境的干扰,光的干扰,不同的光强,对其灵敏度有影响。 程序的调试也决定着激光收发的灵敏度,在程序的设计中我主要加入了激光触发后调入子程序执行的延时时间,这样在执行转向子程序后,能够让小车有足够时间寻找制导光源,以免冲出可控范围。
设计过程中,我边查资料,边焊接小车的线路板。在焊接过程中,我感觉到即使是一个简单的电路,要想很轻松的焊好,也不是很容易的事情。有时是虚焊的原因,有时可能是阻值选错。这使我深深感受到理论与实际间的差距。通过这样的设计,提高了我的动手能力。除了焊接线路板,上机编程使我软件调试知识也提高了。
致 谢
毕业设计已经告一段落。经过自己不断的搜索努力以及王老师的耐心指导和热情帮助,本设计已经基本完成。在这段时间里,王老师严谨的治学态度和热忱的工作作风令我十分钦佩,使我受益非浅。同时本系实验室的开放也为我的设计提供了实习场地。在此对王春民老师表示深深的感谢。
通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这次的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。 由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。
参 考 文 献
[1] 韦俊,杨兴平. 电子工业专用设备. 中文科技期刊数据库,2008 ,10, 1-5. [2] 吴刚. 红外与毫米波学报. 中科院上海技术物理研究所 2008 ,3,1-4.
[3] 秦根红. 石英晶体振荡器及陶瓷谐振元件的识别与检测. 电子工业出版社 2010 ,6, 23-26.
[4] 唐文彦. 传感器. 21世纪普通高等教育规划教材, 2006 ,46-50 . [5] 袁希光. 传感器技术手册. 国防工业出版社.北京,1986 ,30-33 .
[6] 马潮. AVR单片机嵌入式系统原理与应用实践(第2版). 北京航空航天大学出版社 .2012 ,75-82 .
[7] 郭庆鼎,赵希梅. 直流无刷电机原理与技术应用. 中国电力出版社. 2008 .50-56 . [8] 史寒星. 二极管激光器与集成光路. 北京邮电大学出版社. 2006,75-80 . [9] 王兆安. 谐波抑制和无功功率补偿. 机械工业出版社. 2006, 37-44 .
[10] 陈永真,陈之勃. 驱动电路的设计详解. 机械工业出版设. 2010,44-56 .