版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)中文摘要简易智能电动车摘要:本小车以MSP超低功耗单片机系列MSP430F149和MSP430FE425为核心,完成寻迹、检测金属、避障、寻光、测速等功能。在机械结构上,对普通的小车作了改进,即用一个万用轮来代替两个前轮,使小车的转向更加灵敏。采用PWM驱动芯片控制电机,红外传感器检测黑线,金属传感器检测铁片,光敏器件检测光强,红外LED和一体化接收头来避障。基于可靠的硬件设计和稳定的软件算法,实现题目要求。而且附加实现显示起跑距离、行驶时间、检测金属数目等扩展功能。关键词:MSP430寻迹检测金属避障寻光毕业设计(论文)外文摘要Title:SimpleIntelligentCarAbstract:ThisdesigniscontrolledwiththeMCU(MSP430F149,MSP430FE425)tocompletethefunctionoffindingtrace,detectingmedal,avoidingbarrier,tendingtolightandmeasurespeed.Byusinginfraredsensortolocatethetrace、photoelectricitysensetomeasurethelight、metalsensortodetectthemetalandultrasonicwavesensortoavoidthebarrier.Basedonthereliablehardwareandsoftwaredesigning,thisdesigniswellfulfilled.Inaddition,suchextendedfunctionsasmeasuringthedistanceandrecordingtherunning-timearecompletedwell.Onthelevelofmachinestructure,weuseaperfectwheeltomakethecarturningmoreconvenience.Keywords:MSP430findtracedetectmedalavoidbarrierandtendtolight目录1 引言 52系统设计 52.1 设计要求 52.1.1 基本要求 52.1.2发挥部分 52.2方案论证与比较 62.2.1电机驱动方案的选择与论证 62.2.2路面寻线模块 62.2.3金属检测模块 62.2.4寻光模块 62.2.5避障模块 63硬件电路设计 73.1主控制模块 73.2电机驱动模块 93.3寻迹模块 103.4金属检测模块 123.5寻光避障模块 123.6测距和显示模块 133.7电源模块 144软件设计 154.1寻迹算法 154.2寻光,避障算法 174.3串口通信 215.系统测试 235.1测试用仪表: 235.2测试数据: 23结论 24致谢 24参考文献 24附录 25附件1:使用TI芯片 25附件2:元器件清单 25附件3:实物及PCB图片 26TOC\o"1-3"\h\u1 引言随着素质教育的越来越被重视,很多学校都把制作智能小车作为首选课题,智能小车有趣生动并且还牵扯到机械结构、电子基础、传感器原理、自动控制、单片机、编程等诸多学科知识,学生通过动手实践能大大提高解决实际问题的能力,而且智能小车还是一个很好的硬件平台,只要增加一些控制电路就能完成循迹小车,机器人等课题。本设计以MSP430单片机为核心使小车实现特定功能要求,设计,制作过程详细,并且充分利用MSP430内部资源,是一个有趣而有意义的过程。2 系统设计2.1 设计要求2.1.1 基本要求(1)电动车从起跑线出发(车体不得超过起跑线),沿引导线到达B点。在“直道区”铺设的白纸下沿引导线埋有1~3块宽度为15cm、长度不等的薄铁片。电动车检测到薄铁片时需立即发出声光指示信息,并实时存储、显示在“直道区”检测到的薄铁片数目。(2)电动车到达B点以后进入“弯道区”,沿圆弧引导线到达C点(也可脱离圆弧引导线到达C点)。C点下埋有边长为15cm的正方形薄铁片,要求电动车到达C点检测到薄铁片后在C点处停车5秒,停车期间发出断续的声光信息。(3)电动车在光源的引导下,通过障碍区进入停车区并到达车库。电动车必须在两个障碍物之间通过且不得与其接触。(4)电动车完成上述任务后应立即停车,但全程行驶时间不能大于90秒,行驶时间达到90秒时必须立即自动停车。2.1.2发挥部分(1)电动车在“直道区”行驶过程中,存储并显示每个薄铁片(中心线)至起跑线间的距离。(2)电动车进入停车区域后,能进一步准确驶入车库中,要求电动车的车身完全进入车库。(3)停车后,能准确显示电动车全程行驶时间。(4)其它。2.2方案论证与比较2.2.1电机驱动方案的选择与论证方案一:使用继电器对电机进行开关控制和调制。但缺点很明显,继电器响应慢而且机械结构容易坏。方案二:使用三极管或者达林顿管,结合单片机输出PWM信号实现调速的目的,此方案易于实施,但若控制电机转动方向较为困难。方案三:使用PWM控制芯片来实现对电机的控制。方案选择:采用方案三。,该方案电路简单,性能稳定,可以轻松实现对电机方向的控制。2.2.2路面寻线模块方案一:采用光敏传感器,根据白色背景和黑线反光程度的不同来判断传感器是否位于黑线上。方案二:采用反射式红外传感器来进行探测。只要选择数量和探测距离合适的红外传感器,可以准确的判断出黑线的位置。方案选择:采用方案二。方案一受环境光的影响太大,效果不佳。而红外光不易受到环境光的干扰。2.2.3金属检测模块采用金属接近开关来检测铁片,当金属接近时,高频磁场在金属中产生了涡流,使得LC谐振回路的震荡幅度下降到阈值电压,开关输出信号。2.2.4寻光模块方案一:采用单一的光敏电阻,利用其在不同的光强下阻值不同,确定小车的转向,保证其朝着光源最强的角度前进,这样做电路实现简单,但是精度不易控制。方案二:采用多个光敏电阻,在小车车头排列成为半圆状结构。根据矢量合成原理,按照各个传感器测量光强的不同,确定小车相对于光的位置。方案选择:采用方案二。此方案实现较为复杂但能取得良好的效果。2.2.5避障模块方案一:采用一体化红外接收头,在38KHz附近,接收头的灵敏度不同。依次在38KHz发射频段不同的红外线,在距离障碍物一定距离时测出障碍物。方案二:采用超声波测距的方法,利用超声波传感器,监视测量发射脉冲和接受脉冲的时间差,计算超声波和物体之间的距离。可以将避障和寻光模块一起排列为环状结构。方案选择:虽然超声波测距有其性能上的优势,但其价格过高,且通过算法上的优化红外测距完全可以满足设计要求,故采用方案一。2.2.6测距模块方案一.采用断续式光电开关测距方案二.利用磁钢和干簧管,在车轮上均匀粘贴若干磁钢。每当车轮上磁钢转动至干簧管处,单片机进行一次计数,结合车轮半径就能求出小车行进距离。方案选择:考虑到小车的实际机械结构,如果采用方案一必然会对小车结构有较大的改变。方案二结构简单、市场上的磁钢、干簧管体积小巧,易于在我们的小车上很好的固定安装。而且软件上也易于实现。3 硬件电路设计本系统以MSP430F149和MSP430F425为控制核心。整个硬件框图如下图所示:图2.1系统硬件框图3.1主控制模块MSP430系列单片机是美国TI公司1996年开始推向市场的一种16位的超低功耗的混合信号处理器。其之所以称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。MSP430单片机更适合于低功耗、高速实时控制以及数据计算,它拥有更多的片上资源供设计使用,是设计的不错选择。由于本小车实现功能较多,因此我们选择了MSP430F149和MSP430FE425为双核心的系统。通过编写通信协议,完成其之间的串行通信。MSP430F149主要完成电机驱动、寻迹、避障、寻光等功能。如图2.2:图2.2MSP430F149原理图MSP430FE425主要完成金属检测、测速、液晶显示等功能。如图2.3:图2.3MSP430FE425原理图3.2电机驱动模块电机的驱动芯片选用L298N作为驱动芯片。工作稳定电机驱动信号由单片机提供,信号经过光耦隔离后,传至PWM控制芯片L298N,通过L298N的输出与两个电机相连。L298N的连接方法如图2.4所示图2.4L298N的连接方法芯片控制方法如下图2.5,11脚为高时,当10脚电平高于12脚时,13脚,14脚端电机正转;12脚电平高于10脚时,电机倒转;11脚为低时,电机自由控制。图2.5L298N控制电机方法3.3寻迹模块当小车在白色地面行驶时,装在车下的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,输出端将输出低电平;当小车行驶到黑线时,红外线信号被黑色吸收后,将输出高电平,从而实现了通过红线检测信号的功能。将检测到的信号送到单片机的I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑线吸收了,表明小车处在黑色的引线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。反射式红外传感器ST188采用高发射功率红外广电二极管和高灵敏度光电晶体管组成。检测距离可调整范围为4-15mm;采用非接触检测方式。图2.6反射式红外传感器工作原理图2.6是反射式红外传感器的工作原理图。封装在矩形壳体中的是发射器LED(由左侧的白色方块表示)和探测器装置(在右侧)。虚线表示光线从发射器LED中发出并反射回探测器;探测器检测到的光强大小取决于物体表面的反射率,而这一光强就是传感器的输出值。如图所示,选通信号(高电平)经过三极管扩流后送到传感器的K脚,如果检测到黑线,传感器C脚输出高电平;否则输出为低电平。图2.7寻迹模块电路原理图为了提高控制精度,要求传感器排列紧密,越紧越好。但传感器排列紧密,传感器发射管的光线可能会从地面反射进入临近传感器的接收管。所以不能同时开启这些传感器。其分布如图2.8所示:图2.8传感器安装图3.4金属检测模块采用市售的接近开关,无信号时,探头输出高电平。检测到金属时,电平跳变为低,单片机再进行相应处理。相应金属传感器型号为LJ18A3型。3.5寻光避障模块寻光避障模块均设计为环状传感器结构,共排布若干个传感器组,每个传感器组包含红外收发模块和光敏电阻。如下图所示,共有五个传感器组:图2.9传感器的排布光源检测模块,光敏电阻A组到E组从不同方向采光,每个光敏电阻的电压信号入单片机片内ADC,利用F149系列内置的ADC12模块,实现了对五个方向光强的采集。由ADC的值,判断光强不同来确定小车的趋光方向;同理,可设定一个阈值比较,得出一开关信号调节最终小车停在车库内。避障模块,利用单片机定时器发出可调制的38KHz红外线,利用一体化接收头判断,再由小车执行相应的避障动作。图2.10寻光避障模块原理图3.6测距和显示模块利用磁钢和干簧管,在车轮上均匀粘贴若干磁钢。每当车轮上磁钢转动至干簧管处,单片机进行一次计数,结合车轮半径就能求出小车行进距离。显示模块采用段码液晶来实现,FE425上有专门的液晶接口,可以很方便地实现电路。液晶采用4-MUX输入方式的7位半段码液晶。图2.11液晶显示模块原理图3.7电源模块小车采取单电源供电,由于传感器需采用5V供电,主控制芯片采用3.3V供电故电源模块的电路如图2.12,图2.13所示:图2.12电源模块1图2.13电源模块2其中Vin接5节1.5V电池,经TLV1117-5可稳到5V,经TLV1117-3.3稳到3.3V,分别给传感器和控制芯片提供电源。注意系统在单片机去电机驱动的连接部分要使用光耦进行隔离。4 软件设计本系统采用“双核”结构,一片采用MSP430F149,一片采用MSP430F425,功能上主要用F149做运动控制芯片,F425做检测金属,计算距离,液晶显示,计时等功能。之所以采用MSP430单片机,主要时因为该系列单片机有许多优秀的特点,非常适合用于本系统。首先,MSP430单片机引入了时钟系统的概念,将CPU、外围功能模块、休眠唤醒机制三者相互独立,这就可以通过软件设置时钟分频实现系统不同程度的休眠,让系统以间歇方式工作最大限度的节省电力,我们小车系统的F425就是使用BasicTimer定时唤醒。其次,MSP430单片机内核时16位RISC处理器,单指令周期,运算能力,处理能力都具有一定的优势,完全可以满足我们小车寻线、避障、寻光等多个功能的实现,CPU可以在1.8-3.3V宽电压供电。第三,MSP430系列单片机采用模块化的结构,每一种模块(内部资源)都具有独立而完整的结构,在不同型号的结构中,同一种模块的使用方法和寄存器都时相同的。这为学习和开发MSP430单片机提供了便利。比如说我们的双核系统内部都用到了TA定时器,UART0串口,这样的话开发时就可以只对底层程序稍作修改用于不同型号的MSP430单片机。第四,MSP430内置资源非常地强大,它不仅仅只是一个微处理器系统,还包含了模拟电路、模数/数模转换电路、显示接口等丰富的外设。要完成对小车的巡线,寻光,避障,显示距离,计时等功能,除了必要的传感器和电机驱动芯片以外,一个完整系统所需的所有外设都集成在了430芯片上。两片MEP430单片机几乎提供小车的SOC解决方案。4.1寻迹算法采用PID(PD)控制算法,如果某时刻检测到黑线偏左,就要向左转弯;如果检测到黑线偏右,就要向右转。偏得越多,就要向黑线方向打越大的转角。这就是比例控制(P)。遗憾的是,因为小车有惯性。假设黑线偏左,说明小车偏右了,需要左传舵,等到小车回到中心的时候,停止转舵,可是小车的惯性会使车身继续左转,直到冲过黑线,黑线又偏右。然后控制过程反复,车身是在左右摇摆中向前行走的。这种摇摆叫做“超调”,超调越大,控制越不稳定,容易出轨。为了克服惯性,我们除了位置信息之外,还需要知道轨迹的变化趋势。我们可以用黑线位置的微分值来提前得到变化趋势。用本次位置减去前次位置求出差值,就大致知道偏移量的变化趋势。将该差值和比例相加后一起作为控制量,即可实现提前控制。这就叫做比例微分控制(PD控制)/*PID(PD)控制算法*/intPID_Control(signedcharPosition){intTemp_P,Temp_D,Temp_PID,Temp_I,k;//声明三个变量,用于存放P、ID量的运算结果三量的运算结果(I没用上)if(Position==-128)return(No_black);//错误处理(值得改进的地方)Else{Temp_I=Position;for(k=0;k<5;k++)Temp_I+=Last_Position[k];Temp_I*=I_coefficient;Temp_P=P_coefficient*Position;//计算比例分量(P)=比例系数*本次位置差Temp_D=D_coefficient*(Position-Last_Position[5]);//计算微分量(D)=数微分系*(本次位置差-前3次的位置差)//注意由于采样比较快,用本次位置前三次的位置才有足够大的控制量Last_Position[6]=Last_Position[5];Last_Position[4]=Last_Position[3];Last_Position[3]=Last_Position[2];Last_Position[2]=Last_Position[1];Last_Position[1]=Last_Position[0];Last_Position[0]=Position;/*保存前5次的位置,以备用。Temp_PID=Temp_P+Temp_D+Temp_I;//P分量和D分量相加,得到控制量。if(Temp_PID>5000)Temp_PID=5000;//防止控制量溢出if(Temp_PID<-5000)Temp_PID=-5000;//控制量-5000~5000作为左右满舵Temp_PID=Temp_PID*1/5;//-1000~+1000以是左右满舵的输出,因此需要除0.5/*单片机浮点运算非常慢,所以用乘2除5点运算来替代定点数要先乘后除,才能保证精度同时要防止溢出,用起来比较麻两烦次,但定CPU和内存开销小。*/return(Temp_PID);}}4.2寻光,避障算法题目要求小车到达C点之后,在光源引导下避开障碍物进入车库,这就要求小车同时完成寻光和避障的功能。如果只进行寻光,小车会撞上障碍物,如果只进行避障,小车也许会离光源越来越远。理论上避障的优先级是要高于寻光的,因为一旦接触上障碍便宣告失败。所以一旦检测到障碍物,小车会立刻执行避障动作,一旦传感器环路没有检测到障碍小车就向光源靠拢,这样能够保证小车在成功避障的条件下逐渐逼近光源,直到走出障碍区之后就能直奔光源而去。这种算法小车执行寻光避障整体采用了状态机的切换,voidFSM(){switch(Status){caseLight_Status:Find_Light();break;//没有障碍物就进入寻光模式caseBarrier_Status:Avoid_Obstacle();break;//检测到障碍进入避障状态default:break;}}具体的寻光采用了149内部的ADC12模块,通过AD读出的光敏电阻的值进行处理。根据传感器环路的结构,以小车前后方向作为Y轴,左右方向作为X轴,五个光敏电阻分别位于0度,45度,90度,135度,180度的位置。先对采回的各个光强进行归一化的处理,然后根据矢量合成的原则,计算出小车应该行进的方向,其中X为两个轮的速度差,Y为共同速度。代码如下://矢量合成,X,Y两个轴,x=0;y=0;//1号光敏电阻,无Y轴,X为负x=x-Intensity*Light[0];//2号光敏电阻,X为-0.707,Y为0.707,45度x=x-(Intensity*Light[1]*707)/1000;y=y+(Intensity*Light[1]*707)/1000;//3号光敏电阻,X为0,Y为正y=y+Intensity*Light[2];//4号光敏电阻,X,Y都为+0.707,45度x=x+(Intensity*Light[3]*707)/1000;y=y+(Intensity*Light[3]*707)/1000;//5号光敏电阻,Y为0,X为正x=x+Intensity*Light[4];y=y;由于小车采用左右两轮的差动控制,在小车测试时,,若X和Y的差距太小,会导致趋光性并不明显,若Y的值太小又会使小车前进速度很慢。所以要仔细调制X和Y参数归一到占空比CCRx的系数。或许采用舵机控制后轮或者利用汽车结构的前轮转向小车系统能够更高效的解决寻光灵敏度的问题。在寻光小车设计中,还要考虑实际环境对小车的影响。如何滤除环境光的影响时设计的一个难点,引导小车的光源时200W的灯泡,在实际测试时,由于白天和晚上环境光的不同,小车的实际AD采样值也有差异,会造成小车运行的不稳定。不过即使环境光再强烈,在题目要求的场地里也不及灯泡的亮度,该问题解决方法是先大概感知周围环境的光强,再根据预设的值调整光强系数,自适应调整电机转速,这样就能保证只要是200W的灯泡作为引导光源,无论周围环境光的强弱,小车都能稳定地、以大概相同的速度寻光进入车库。这个问题要是深究下去还有很多值得研究的地方:比如同时有若干个强光源,小车现在的算法是朝着这些光源合成的几何中心进行,如果要实现朝着光最强的那个光源行进该采用什么样的算法。避障算法采用了检测发射红外LED,读一体化接收头的数据判断障碍物的位置。这里采用38Khz敏感的接收头。为了使小车的检测距离适中,还需调整通过红外LED的电流为5mA左右。采用了TA0来发生红外线,不干扰CPU的运行:voidTimerAInit(){//设置数组,对应频率分别为38,41,44,48,54,60,67TACTL|=TASSEL_2+TACLR+MC_1;//TIMER_A时钟源选为SMCLK,清TARTACCR0=44;//产生约38KHZ的PWM输出,SMCLK=4M,105周期个时钟TACCTL0|=OUTMOD_4;//翻转模式产生占空比为50%的PWM}避障底层程序:避障底层程序:voidMeasure_Distance(){unsignedcharflag_1=0,flag_2=0,flag_3=0,flag_4=0,flag_0=0;//unsignedchari,Frequency[5]={29,36,44,47,51};//66,54,44,42,38//1if(flag_0==0){Delay(34); PIRE1_H;//打开1号传感器 Delay(34);//延迟,等待数据稳定if(IRE1_IN==0)//如果接收到的信号为低电平,表明前方有障碍物{flag_0=1;BarrierData[0]=1;}elseBarrierData[0]=0;PIRE1_L;}//2if(flag_1==0){Delay(34); PIRE2_H;//打开2号传感器 Delay(34);//延迟,等待数据稳定if(IRE2_IN==0)//如果接收到的信号为低电平,表明前方有障碍物{flag_1=1;BarrierData[1]=1;}elseBarrierData[1]=0;PIRE2_L;}//3 if(flag_2==0){PIRE3_H;//打开3号传感器 Delay(34);//延迟,等待数据稳定if(IRE3_IN==0)//如果接收到的信号为低电平,表明右前方有障碍物{flag_2=1;BarrierData[2]=1;}else{BarrierData[2]=0;}PIRE3_L;//关闭3号传感器}//4if(flag_3==0){ PIRE4_H;//打开4号传感器 Delay(34);//延迟,等待数据稳定if(IRE4_IN==0)//如果接收到的信号为低电平,表明右前方有障碍物{flag_3=1;BarrierData[3]=1;}elseBarrierData[3]=0;PIRE4_L;//关闭4号传感器}//5 if(flag_4==0){Delay(34);PIRE5_H;//打开5号传感器 Delay(34);//延迟,等待数据稳定if(IRE5_IN==0)//如果接收到的信号为低电平,表明右前方有障碍物{flag_4=1;BarrierData[4]=1;}elseBarrierData[4]=0;PIRE5_L;//关闭5号传感器}if(flag_0||flag_1||flag_2||flag_3||flag_4)//寻光与避障的切换{Status=2;flag=1;}elseStatus=Light_Status;//寻光}4.3串口通信由于小车采用双核结构,所以就涉及到了两个单片机的通信问题。在整个进行的过程中,由于两个单片机分工明确,需要通信的地方大概有如下几个地方:1.启动时,149给425发送信号,开始计时;2.检测到金属时,425发给149计数;3.检测到C点停车;4.车身入库后149发给425停车,停止计时。由此可见,通信量并不是很大,而且通信距离不过十几个厘米,所以采用两个单片机的串口直接相连的方式。全部收发均放在中断中执行,以下是串口通信的部分程序:149串口初始化UART_Init149(){U0CTL|=CHAR;//异步通讯模式,8位数据,无校验,1位停止位ME1|=UTXE0+URXE0;//开启串口0收发模块U0TCTL|=SSEL0;//选择ACLK作为串口波特率时钟源U0BR1=0;//U0BR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输尿管结石患者的健康教育
- 个人工作特点竞聘演讲稿
- 告别会的演讲稿英语简短
- 招标采购制度宣贯演讲稿
- 社交媒体信息发布政策
- 《不动产测绘》课件-项目7 7.4不动产数据库更新与管理功能
- 陕西安康市高新中学等校2026届高三下学期3月学情自测物理试卷(含答案)
- 数据精准分析管理承诺书范文4篇
- 美容院顾客体验提升流程操作手册
- 空间设计风格创新保证承诺书3篇
- 中小学生研学旅行投标方案(技术方案)
- 工程质量保证金协议
- 医院保洁服务投标方案(技术方案)
- 《社区康复》课件-第三章 社区康复的实施
- 护理人员应急预案培训课件:居家病人护理与应急服务
- 质性研究的基础:形成扎根理论的程序与方法
- 《消防训练基地建设标准》建标190-2018
- 各种地质现象的解释
- 冠心病规范化诊断和治疗
- 北京市房屋质量缺陷损失评估规程及条文说明
- 抚顺东联安信化学有限公司(甲基)丙烯酸酯系列产品新建项目环境影响报告
评论
0/150
提交评论