《简易智能电动车.doc》由会员分享,可在线阅读,更多相关《简易智能电动车.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、保密类别 编号 091武汉大学珞珈学院毕业论文简易智能电动车系 别 电子信息科学系 专 业 通信工程 年 级 2009级通信三班 学 号 091 姓 名 陈佳甫 指导老师 张望先 武汉大学珞珈学院 2013年04月05日摘 要本系统设计采用一块单片机和两块CPLD作为简易电动小车的检测和控制核心。通过多种传感器对小车位置、状态和环境信息进行检测,运用带码盘的直流电机作为小车的驱动,以CPLD实现PWM直流电机调速技术,完成对小车运动位置、速度、方向和时间等的控制,进而控制小车依次完成寻轨、定位(C点)、避障、入库等一系列规定动作。检测引导线和边界线使用光电传感器,检测场地内薄铁片(探雷和定位)
2、使用金属探测传感器,检测障碍物运用了多传感器(光电、红外和超声波)信息融合技术,入库动作在红外传感器帮助下实现。 关键词:电动车,光电传感器,直流电机,路径跟踪,避障,光源引导目 录第1 章 绪论1.1 研究背景 041.2 智能小车现状 05第2章 智能小车控制论证2.1 主控系统 062.2 电机驱动模块 072.3 循迹模块 092.4 避障模块 10 2.5 机械系统 11 2.6 电源模块 11第3章 系统总体方案设计 3.1 系统总体结构设计及说明 123.2 系统硬件设计,分析计算,电路图 133.3 系统软件设计,分析计算和程序框架 173.4 软硬件的调试 18结论 33结束
3、语 34谢词 35参考文献 36附录 37第1章 绪论1.1研究背景:自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式,也慢慢开始成为人们生活方式的主导。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想,以此来提高人们的生活品质。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算
4、也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法,因此我们接下来也是运用这种性价比比较高的方法来实现我的设计。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能,让他能够感知到设定好的物品。避障控制系统是基于自动导引电动车(AVGauto-guide vehicle)系统,基于它的智能电动车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路
5、线和障碍并作出判断和相应的执行动作,以此来高效的完成行驶路线。该智能电动车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM
6、功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。CPU使用STC89C52单片机,配合软件编程实现。1.2 智能电动车的现状现如今智能电动车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几届的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。我此次的设计主要实现循迹避障这两个功能。简易智能电动车是一个运用了计算机,传感器,信息,导航和人工智能以及自动控制等技术实现环境的感知,规划决策
7、和自动行驶结合为一体的高新技术。它在军事,民用及科学研究等领域已经获得了广泛运用,并且对解决交通安全问题提供了一中新的途径。第2章 智能小车控制论证根据要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。2.1 主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:方案一:选用一片CPLD
8、(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而电动车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。方案二:采用单片机作为整个系统的核心,用其控制行进中的智能电动车,以实现本设计所要求的性能指标。充分分析我们的系统,可以很容易看出其关键在于实现智能电动车
9、的自动控制,而在这一点上,单片机就显现出来它的绝对优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点,同时单片机也是我们学习并运用得比较好的一个部件。因此,这种方案是一种较为理想的方案。针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析,我选定了P89C51RA单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机
10、价格非常低廉。在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。2.2 电机驱动模块方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对智能电动车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案二:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。方案三:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电
11、路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路(如图2.1)。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。现市面上有很多此种芯片,我选用了L298N(如图2.2)。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。图2.1 H桥式电路图2.2
12、 L298N2.3 循迹模块方案一:采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现问题,而且容易因为 该部件造成整个系统的不稳定。故最终未采用该方案。方案二:采用两只红外对管(如图2.3),分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。方案三:采用三只红外对管,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后
13、,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。通过比较,我发现第二种方案更加适合我的设计,所以我选取第二种方案来实现循迹。图2.3 红外对管2.4 避障模块方案一:采用一只红外对管置于小车中央。其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应,这种方法显然无法实现此设计的要求。方案二:采用二只红外对管分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确
14、的判别和及时反应。但此方案过于依赖硬件、成本较高、缺乏创造性,而且置于小车左方的红外对管用到的几率很小,虽然他的性能比第一方案的要好,但是还是无法满足我所设计的方案,所以最终未采用。方案三:采用一只红外对管置于小车右侧。通过测试此种方案就能很好的实现小车避开障碍物,且充分的利用资源而不浪费。通过比较我采用方案三。2.5 机械系统本题目要求智能电动车的机械系统性能稳定、行驶灵活、操作简单,而三轮运动系统具备以上特点。驱动部分:由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。电池的安装
15、:将电池放置在车体的电机前后位置,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。简单,而三轮运动系统具备以上特点。2.6电源模块方案一:采用实验室有线电源通过稳压芯片供电,其优点是可稳定的提供5V电压,但占用资源过大。方案二:采用4支1.5V电池单电源供电,但6V的电压太小不能同时给单片机与与电机供电。方案三:采用8支1.5V电池双电源分别给单片机与电机供电可解决方案二的问题且能让小车完成其功能。所以,我选择了方案三来实现供电。第3章 系统总体设计方案3.1 系统总体结构设计及说明图1 系统总体结构框图此系统实现了智能电动车的路径跟踪,壁障,探测金属片,记数,报
16、警,光引导功能,测量距离,数码显示,电机控制等系列功能。设计要求功能如下:1) 电动车从起跑线出发(车体不得超过起跑线)、沿宽度为2cm的 黑色引导线到达B点。在“直道区”铺设的白纸下沿引导线埋有13块宽度 为15cm、长度不等的薄铁片。电动车检测到薄铁片时,立即发出声光指示信 息,并实时存储、显示在“直道区”检测到的薄铁片数目。2) 电动车到达B点后进入“弯道区”,沿圆弧引导线到达C点(也 可脱离圆弧引导线到达C点)。C点下埋有边长为15cm的正方形薄铁片,要求电动车到达C点检测到薄铁片后在C处停车5秒,停车期间发出断续的声光信息。3) 电动车在光源的引导下,通过障碍区进入停车区并到达车库。
17、电动车必须在两个障碍物之间通过且不得与其接触。3.2系统硬件设计,分析计算,电路图:3.2.1 总体方案智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。避障的原理和循迹一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退或者转向,从而避开障碍物。3.2.2主板设计框图如图3.2.2,所需原件清单如表3.2
18、.2AT89C51Stc89c52循迹红外对管时钟电路复位电路报警电路电机驱动避障红外对管图3.2.2 主控电路图元件数量元件数量元件数量直流电机2只电阻若干集成电路芯片若干单片机1 块二极管若干电容若干红外对管3只蜂鸣器1只电位器若干12M晶振1只杜邦线若干玩具小车1个排针若干表3.2.2元件清单3.2.3驱动电路电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。通过单片机给予L298N电路PWM信号来控制小车的速度以及开始行驶和停止行驶。其引脚图如3.2,驱动原理图如图3.3。图3.2.3 L298N引脚图图3.2.3 电机驱动电路铁
19、片探测电路由电路图可以得出,当有金属被其探测到时,输出端输出一个高电平,即发生一个正向跳变,将这个正向跳变信号用单片机检测出来,借此控制电动机产生相应的动作。以下时金属接近开关外驱动电路:3.2.4信号检测模块智能电动车循迹原理是小车在画有黑线的白纸 “路面”上行驶,以黑线为道路,智能小车要延这条道路行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”黑线。我在该模块中利用了简单的,应用也比较普遍的检测方法红外探测法。红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点,它是利用对光的反射程度或者说是对光的吸收程度来实现的。在智能电动车行驶过程中不
20、断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在智能电动车上的接收管接收;如果遇到黑线则红外光被吸收,则智能电动车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。避障也同样是运用了这样一个原理。电路图如图3.2.4。市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。图3.2.4信号检测图3.2.5主控电路本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。以及再检测到障碍报警等作用。其电路图如图5。图3.2.5 主控电路3.3系统软件设计、分析计算和程序框图根据方案所设定的三个部分重点来解决问题,可以将单片机
21、的大量工作集中于信号检测和精确定时计数上。具体实现方法:这是一个对实时性要求比较高的系统,大量数据信号都必须在尽量短的时间内完成,因此我们对程序的设定也追求高效。具体思路如下:利用单片机查寻法编程,不断检测外部传感器信号,并及时输出显示。编程关键实时输出。除了传感器本身延时外,还与优化程序程度和电机控制度有关。3.4 软硬件调试我们按照前面的方案同样将调试分为了3个阶段:第一阶段:首先是直道区+弯道区的调试1)通过两边固定的光电传感器对引导线检测来实现电动车沿着引导线到达指定的地点。2)根据题目要求,在行进线路上需要检测金属片,因此,我们又加上了金属接近开关用于实现这个要求。3)利用原来作过的
22、静态显示电路板和试验用过的子程序,我们将显示功能又加在了系统当中。第二阶段:障碍区的调试在障碍区主要解决的问题是如何躲避障碍物,当检测到障碍物后,智能小车必须避免碰到小铁片,绕过铁片后再回到设定好的轨道继续运行。因此,我们根据题目在车头安装了一个超声波发送接收模块,当检测到有障碍物时进行转向。第三阶段:停车区的调试检测光电接收器的输出信号,来寻找光信号最强的方向。3.4.1启动循迹是否检测到停止线停止是否检测到障碍物NY避障YN主程序框图:图4.1 主程序框图#include reg52.h#define det_Dist 2.55 /单个脉冲对应的小车行走距离,其值为车轮周长/4#defin
23、e RD 9 /小车对角轴长度#define PI 3.#define ANG_90 90#define ANG_90_T 102#define ANG_180 189/*=全局变量定义区=*/sbit P10=P10; /控制继电器的开闭sbit P11=P11; /控制金属接近开关sbit P12=P12; /控制颜色传感器的开闭sbit P07=P07; /控制声光信号的开启sbit P26=P26; /接收颜色传感器的信号,白为0,黑为1sbit P24=P24; /左sbit P25=P25; /右 接收左右光传感器的信号,有光为0unsigned char mType=0; /设置
24、运动的方式,0 向前 1 向左 2 向后 3 向右unsigned char Direction=0; /小车的即时朝向 0 朝上 1 朝左 2 朝下 3 朝右unsigned sX=50; unsigned char sY=0; /小车的相对右下角的坐标 CM(sX,sY)unsigned char StartTask=0; /获得铁片后开始执行返回卸货任务,StartTask置一unsigned char Inter_EX0=0; / 完成一个完整的任务期间只能有一次外部中断/ Inter_EX0记录外部中断0的中断状态/ 0 动作最近的前一次未中断过,/ 1 动作最近的前一次中断过uns
25、igned char cntIorn=0; /铁片数unsigned char bkAim=2; /回程目的地,0为A仓库,1为B仓库,2为停车场,/(在MAIN中接受铁片颜色判断传感器的信号来赋值)unsigned char Light_Flag=0;/进入光引导区的标志(1)unsigned int cntTime_5Min=0;/时间周期数,用于 T0 精确定时unsigned int cntTime_Plues=0; /霍尔开关产生的脉冲数/*=全局变量定义区=*/*-*/*-通用延迟程序-*/*-*/void delay(unsigned int time) / time*0.5ms延时unsigned int i,j;for(j=0;jtime;j+)for(i=0;i=4520)Display(5);P2=(P2&240)|15);EA=0; /停车程序P07=1;delay(4000);PCON=0X00;while(1);/*外部中断0中断程序: */*发现铁片,发出声光信号并将铁片吸起,发光二极管和蜂鸣器*/*并联在一起(设接在P07). 0为A仓库,1为B仓库,2为停车场*/void fndIorn(void) interrupt 0unsigned char i; P10=1;P2=(P2&240)|15);
限制150内