单片机控制自动避障小车_第1页
单片机控制自动避障小车_第2页
单片机控制自动避障小车_第3页
单片机控制自动避障小车_第4页
单片机控制自动避障小车_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机控制自动避障小车设计摘要:本论文介绍的是具有自动避障功能的智能小车的设计与制作,论文对智能小车的设计的方案选择,设计的思路与过程,以及软件与硬件的功能和工作原理进行了详细的分析和论述。硬件部分采用了MSP430F149芯片作为主控芯片,利用超声波传感器检测障碍的方位与距离,并用LCD1602显示出来,软件在Keil C51环境下编程。经过软件原理设计与实践验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案可行,正确,各项指标稳定、可靠。关键词:单片机;智能小车;避障;超声波测距IAutomatic Obstacle Avoidance Car Design Bas

2、ed on SCMAbstract: This paper describes an automatic obstacle avoidance function is the design and production of the smart car, intelligent car design thesis program selection, design ideas and processes, as well as the functions and working principle of software and hardware for a detailed analysis

3、 and discussion . The hardware uses the MSP430F149 chip as the main chip, using the orientation and distance from the ultrasonic sensor to detect obstacles, and use LCD5110 displays, software programming in Keil C51 environment. After the software design principles and practice of acceptance testing

4、, the circuit structure of the smart car is simple, easy to debug, system reflects rapid, flexible design is feasible and correct, the indicators stable and reliable.Keywords: SCM; intelligent car; obstacle avoidance; ultrasonic ranging II目 录1.引言11.1 小车避障系统设计的意义11.2智能小车技术发展11.3设计任务及要求22.方案设计32.1 小车避

5、障系统32.2主控系统32.3机械系统42.4 电机驱动模块52.5 传感器系统52.6 电源电路的选型72.7显示模块73. 硬件电路设计83.1主控制部分 CPU介绍83.2 MSP430F149单片机引脚图103.3硬件资源分配103.4直流电机的驱动电路103.5 CPU相关电路113.6 避障传感器电路123.7显示电路设计134.软件设计154.1主程序流程图154.2左侧避障程序流程图154.3显示程序流程165.电路调试175.1 调试的思路175.2 各模块的调试175.3 结果分析186. 结论19结束语20参考文献21附录1:22总原理图附录2:38致谢39III11.引

6、言1.1 小车避障系统设计的意义现代智能小车的发展非常迅速并且功能也越来越趋向于多样化,基本上可以实现循迹、避障、检测贴片,寻光入库、避崖等基本功能,有向声控系统发展的趋势。比较出名的飞思卡尔智能小车更是走在前列,此次的设计主要实现避障这一个功能,首先通过传感设备要感知障碍物,并作出判断和相应的执行动作。智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。它可以分为三大部分:传感器检测部分,执行部分,CPU。 开展自主避障智能小车的研究工作,对进一步巩固已学知识加深已学知识可以起到促进作用,引导和激励学生实事求是、刻苦钻研、勇于创新、多出成果、提高素质,发现

7、和培养一批在学术科技上有作为、有潜力的优秀人才的作用。以前从来没接触过智能小车方面的知识,这对于我来说是一个巨大挑战,整个研究的过程,都是摸着石头过河的。由于知识和经验的缺乏,经常会遭到失败,有时一个小小的因素,就会影响到设计,所以步伐前进得很慢。研究的进程大概可能分为:资料收集及整理阶段、硬件制作阶段和调试阶段。公欲善其事,必先利其器,在做每件事之前都要先经过思考,在制作之前会先从网上、书上及请教老师来收集资料,把资料经整理理解透了之后,做出设计。接着就是制作硬件,工具和电子元件都需要购买,途径可以是网购或是商店,由于设计不可能是完美的,不能做到一次就把需要的元件都列出来,一次性购买,所以分

8、了好几次去商店买元件;因为方案没有最终确定,若是直接焊接电路板,设计如果不成功,整个电路板就没用了,这样就增加了制作的成本,所以需要用面包板制作硬件,在调试阶段完成最终确立设计之后,才做出电路板。调试阶段就是要测试设计是否成功、合理,当然经常会失败,但要在每次的失败中吸取经验、改正错误,取得最后的成功。整个过程是漫长的,但在无数的挫败之后终于成功制作出了智能避障小车系统。1.2智能小车技术发展电子技术及计算机智能控制技术的快速发展导致智能小车也高速的发展,各种玩具电子产品的小型化和智能化越来越成受到人们的关注。智能小车更是其中的主流。在现代化的生活中,智能小车玩具非常广泛的受到人们的喜爱。伴随

9、着电子技术的发展,以及现代控制理论的应用,智能小车控制技术也得到了很大的发展。直流电动机的调速性能较好,且起动转距较大,能在很宽的范围内平滑调速,调速比大,起制动性能好,定位精度高。因此常用于调速控制系统,称之为直流传动系统。因而在智能小车中应用的比较多的就是直流电机控制的智能小车。在直流电机的调速控制1系统中,速度调节主要通过改变电枢电压大小来实现,经常采用晶闸管相控整流调速或大功率晶体管脉宽调制调速两种方法,后者就是PWM。PWM常见于中小功率系统,其工作原理是:通过改变接通脉冲的宽度,改变直流电机电枢上电压的占空比,即方波高低电平的时间比,从而改变电枢电压的平均值,控制电机的转速。智能小

10、车作为现代社会的产物可以应用于多个方面,例如玩具,科学勘探,智能环境检测等。无需人为控制便可以达到目标而且更容易的适应各种苛刻环境,可以及智能和多功能于一体达到各种科学研究,危险探索,也可以应用于交通运输多个方面,因此受到多方面关注。1.3设计任务及要求以单片机作为主控芯片,通过超声波测距来获取小车距离障碍物的距离,并且用LED显示出来。控制系统要求:1.小车前方没有障碍物时,左右轮速度同时不断增加,小车全速前进; 有障碍物且距离小于30cm时,小车减速并控制小车右转弯避开障碍物;2. 当小车右前方有障碍物,且距离小于30cm时,小车减速并控制小车左转弯并避开障碍物; 3. 当小车左前方有障碍

11、物,且距离小于30cm时,控小车减速并制小车右转弯并避开障碍物。在避开障碍物后,小车沿直线前进。小车方向控制:左轮减速实现左转弯,右轮减速实现右转弯。2.方案设计2.1 小车避障系统控制系统可以分为三大组成部分:传感器检测部分、执行部分、CPU。智能小车要实现自动避障功能,感知障碍物并自动躲避。基于上述要求,传感检测部分考虑到小车只需要粗略感知障碍物大概位置因而使用超声波测距,用直流电机来让智能小车执行动作,控制小车的前进的速度与方向。用单片机驱动直流电机一般有两种方案:第一种方案,不需要占用单片机内部资源,直接选择有PWM功能的单片机,如此可以实现电机的精准调速;第二种方案,用软件模拟PWM

12、输出方式,需要占用单片机内部资源,不容易实现精准速度调节,但是所选择的单片机型号比较多。考虑到实际情况的需要,本实验选择了第二种方案。CPU使用单片机MSP430F149,配合软件编程实现。还有显示部分通过软件可以显示障碍物距离与两个电机转速。2.2主控系统方案一:仅采用CPLD作为核心部件的方案避开障碍显示障碍物方位,距离指示灯显示电机转速距离检测方位检测障碍检测CPLD如图1所示:选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较

13、大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,不采用该种方案,进而提出了第二种设想。图1 CPLD主控系统方案二:采用单片机作为系统核心部件的方案如图2所示:使用单片机作为整个系统的核心,用单片机去控制运动中的小车的方向与速度,来达到系统即定的性能指标。充分分析系统,系统的关键在于如何让小车实现自动控制,而在这上面,单片机具有它独特的优势控制简单方便、敏捷迅速。这样,单片机就能够充分发挥其资源丰富、有强大的控制功能与操作功能、价格低廉、

14、使用方便简单等优点。因而,这种方案是一种比较理想的实现方案。避开障碍显示障碍物方位,距离指示灯显示电机转距离检测方位检测障碍检测单片机图2单片机主控系统本设计要求多个开关量输入的复杂程序控制系统,需要非常容易处理多个开关量的单片机,运行处理速度要敏捷迅速,而不可以是用简单的I/O口和程序存储器比较小的单片机,D/A、A/D功能也不必选用。根据这些分析,选定了MSP430F149单片机作为本设计的主控装置,MSP430F149单片机具有功能强大的运算处理能力,I/O口都可以按位寻址操作,程序存储空间也比较大,对于该实验设计也足够使用。在综合考虑了超声波测距、两部电机的驱动、显示等诸多因素后,决定

15、采用一片单片机,充分利用MSP430F149单片机的资源。2.3机械系统本题目要求小车的机械系统稳定、简单,而四轮运动系统具备以上特点。驱动部分:由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。显示部分:将显示模块放置小车前部上方,利于观察。电池的安装:将电池放置在车体的正下方,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。2.4 电机驱动模块方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,

16、缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案二:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。方案三:三极管作为功率放大器的输出去控制直流电机运转。使用线性驱动电路,该电路原理简单,结构简便,成本也比较低,或者使用由达林顿管组成的 H型PWM电路。使用单片机去控制达林顿管使之工作在可调节占空比的状态,用来准确调节电动机转动快慢。这种电路由于管子工作在截止饱和状态下,效率比较高;H型电路简单的实现电机的转速和方向控制;电

17、子管的开关速度非常快,稳定性比较强,是比较常用的 PWM调速技术。方案四:采用电机驱动L298N芯片驱动,这是一款电机驱动的专用芯片,可以同时驱动两个电机,方便快捷,这种调速方式有调节速度特性快捷准确、调节平缓、调节速度的范围宽、过载的能力大,可以承载多次反复负载冲击,制动和反转比较迅速等优点。因此决定采用使用L298N芯片调速。2.5 传感器系统方案一:反射式红外发射接收装置,只有物体反射红外光时才有信号输入,其反射信号强度与小车距离障碍物的距离成正比。因此可利用信号强度作为避障依据。红外探测器具有较强的抗干扰能力,在工业生产中得到了广泛的应用,红外探测器的操作模式大致可分为主动和被动的,主

18、动红外探测器的光通过闭塞,反射,折射和其他光源的光学装置,可以对被检测对象完成位置的确定。被动红外探测器本身并不发光,对象被接收的辐射测量的检测对象,光谱特征位置检测的温度,或红外成像。直流驱动系统是简单但探测距离和干扰比穷人;交流调制由于交换耦合可以解决直流漂移放大器可大大提高检测距离问题,但由于环境光在大多数情况下,直流或低频分量的信号产生的干扰可以通过过滤分离,所以交易调试模式相对抗干扰能力强,缺点是一个比较复杂的系统。我们要利用远程红外探测器探测到障碍物,显然选择更合适的主动式红外传感器,可降低成本更可以提高系统的可靠性。主动式红外传感器9可分为离散型,透射式和反射快门式,分立元件型发

19、光管和接收管之间是相互独立的,使用者用可灵活使用电弧管的设置、接收管的位置,并使用棱镜,透镜等,完成一个特殊的目的,其缺点也意味着麻烦。阻断传播和反射的塑料模具的球包与接收管是非常好的,在这个设计中的障碍物检测我使用反射式。图3 红外探测器的形式主动红外探测器共同的驱动方式可分为直流直接驱动模式和AC调制,直流直接驱动型器件是简单的,但该检测距离和抗干扰能力相对较差;交流调制由于AC耦合模式可以用来解决直流漂移放大器的问题,这可大大提高检测距离,同时作为环境光的在大多数情况下,干扰信号的直流或低频成分可通过分离过滤器,所以抗干扰能力的通信调试方法越强,缺点是比较复杂的系统。方案二:采用反射式超

20、声波测距6,只有物体反射超声波时才有信号输入,测量发射接收信号间的时间差T2-T1,这样就可以得到障碍物距离小车的距离,将这个信息送达至单片机,单片机发出控制信号使小车转向或调速,让小车不触碰到障碍物。该方法远近障碍物距离检测都合适,测试准确,反应迅速快捷,易于检测障碍的距离。因此采用超声波测距传感器。2.6 电源电路的选型方案一:所有器件采用单一电源。这样供电比较简单方便;但是电动机在启动瞬间的启动电流非常大,并且PWM驱动电动机电流波动较大,容易造成电压不稳定、有大量干扰信号,造成单片机掉电不能运转,导致系统不能正常工作,有很大的缺陷。如图4所示。图4 稳压电源电路方案二:直接使用直流稳压

21、电源供电。简单方便,不需要去单独设计稳压电源电路,可以完全消除大部分电路复杂所造成的干扰,可以提高系统的稳定性,这是一种非常好的方案,因而采用直流电源供电。2.7显示模块方案一:通过单片机,直接驱动LED,通过8个I/O口驱动八个LED,8个I/O口驱动LED的八段发光二级管,此方法占用大量的I/O口,单片机资源大量浪费。方案二:使用LCD1602液晶显示,清晰方便,占用I/O口少,方便编程,电路清晰简单,不易出错,便于检查电路。因此选用方案二。这次设计智能小车,可以直线前行遭遇障碍物自行转弯,在轨道上根据障碍距离可以自行调速。主要是以MSP430F149单片机为核心,采用超声波测距检测障碍物

22、距离,进行目标识别与避障,使智能小车准确躲避障碍物;采用直流电机对小车的转向进行控制,由软件实现了小车自动行驶、自动避障,速度调节,距离,速度显示,并发出指示信息等功能。3. 硬件电路设计经过方案论证的过程之后,选定了仅采用单片机作为核心主控制部件的设计方案,其系统总方框图如图5所示。图5 系统总原理框图具体的功能设置通过原理图做出了非常直观的说明。通过主控芯片控制各个传感器输入的信号,控制方式由软件设计来实现,其中包括2个超声波测距传感器用来检测障碍物距离以及方位。除了处理这些信号单片机还通过I/O口控制电机驱动芯片控制电机和液晶的显示。3.1主控制部分 CPU介绍MSP430F149系列单

23、片机是美国TI(TI)于1996年开始向市场推出了16超低MSP430 MCU。这是一个小的功耗,精简指令集(RISC)的混合信号处理器(混合信号处理器)。称为由于其实际应用的需求,将多个模拟电路,数字电路模块和微处理器集成在一个芯片上的不同的功能,以混合信号处理器,以提供一个“芯片”解决方案。该系列单片机用于MSP430F149微控制器系列便携式仪器需要电池是16位单片机,采用精简指令集(RISC)结构,具有丰富的(7种源操作数的寻址模式寻址,4目的操作数寻址),27内核的命令和大量的模拟指令的大量片上数据存储器可以参加各种操作;高效的查找表处理指令。这些特征确保产生源的高效率。快速的运算速

24、度,MSP430F149系列单片机驱动器25MHz晶振,实现40ns的指令周期。该16位的数据宽度,40ns的指令周期和多功能的硬件乘法器匹配(可以乘法实现),可以实现数字信号处理的一些算法(例如FFT)。超低功耗。MSP430F149 MCU具有功耗低,是因为它有其独到之处在降低芯片的电源电压和灵活可控操作时钟。首先,MSP430F149系列单片机的电源电压用于1.8-3.6V电压。因此,运行在1MHz时钟芯片电流条件下,最低165 A,RAM仍是最低功耗模式仅为0.1 A。时钟系统设计独特。有两个不同的时钟系统中的MSP430系列:基本时钟系统,锁频环(FLL和FLL)和时钟系统和DCO数

25、字振荡器时钟系统。可以简单地使用晶体振荡器(的32.768kHz)DT-26或DT-38,可以使用两个晶体振荡器。由CPU的系统时钟系统和每个所需功能的时钟产生。和时钟可以在命令开闭的控制之下,以实现整体功耗的控制。由于运行期系统的功能模块的所述开口是不同的,具有不同的工作模式下,芯片的功率消耗是显著不同。有五种低功耗模式(LPM0LPM4)的系统模式。丰富的片上资源,MSP430F149系列单片机系列中集成了丰富的外设。它们分别是看门狗(WDT)和A模拟比较器,定时器A0定时器(Timer_A0),A1(Timer_A1),定时器B0(Timer_B0),UART,SPI,I2C,硬件乘法器

26、,LCD驱动器,10位/12 ADC, 16位-ADC,DMA,I / O端口,基本定时器(基本定时器),不同的组合,USB控制器的几个外围模块的实时时钟(RTC)。其中,看门狗可以使程序失控迅速复位;模拟电压的模拟比较器与定时器比较,可以设计一个A / D转换器; 16位定时器(定时器A和和Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数,计时,PWM等;有些设备有更多的可实现异步,同步和多址接入串行通信接口,可实现多机通信应用;更多的I / O端口,P0,P1,P2口可接收外部上升沿或下降沿的中断输入;10/12硬件A / D转换器具有高转换率,高达200kbps

27、的,能够满足大多数数据采集应用;可以直接驱动液晶多达160; 12位D/ A,以实现双向转换;硬件I2C串行总线接口实现存储器串行扩展;并且,为了提高数据的传输速度,并且使用DMA模块的。提供这些外围设备的系统解决方案MSP430系列单芯片解决方案的便利。此外,MSP430系列微控制器中断源较多,并且可以任意嵌套的,灵活和方便的使用。当系统处于低功耗状态,省电,中断仅需5秒。开发环境MSP430系列与OTP型,FLASH型和ROM型三种类型的便捷,高效的设备,这些设备的开发手段不同。装置,用于OTP类型和ROM型,利用模拟器开发的成功写入或掩模芯片之后;对于调试一个开发环境,便于型的FLASH

28、,由于JTAG调试接口内的器件芯片,并且可以是电可擦除闪存存储器,所以使用第一下载程序到FLASH,则该设备运行该软件控制程序,通过JTAG接口来读取信息为设计人员使用片上调试方法的发展。这种方式只需要一台PC机和一个JTAG调试器,而不模拟器和程序员的需要。3.2 MSP430F149单片机引脚图图6 MSP430F149单片机引脚图3.3硬件资源分配在设计中,将MCU资源分配如下:P4.3-P4.4作为L298N的2个PWM信号控制端口,设计中采用直接控制。P3.4-P3.5作为超声波传感器信号的接入口,2个超声波传感器用于障碍物检测,检测到的超声波避障信号由P3口输入,再通过软件分析,通

29、过P4口输出相应的电机驱动信号控制小车,实现相应的动作来达到避开障碍物的目的,通过程序计算出小车距离障碍物的距离,并由小液晶显示出来。3.4直流电机的驱动电路L298N是高压,大电流电机驱动芯片。该芯片采用15引脚封装。其主要特点是:高电压,最大工作电压可达46V;输出电流, L298N电机驱动模块峰值电流达3A,连续工作电流2A;包含两个H桥的高电压大电流的全桥驱动器,可用于驱动直流电机与步进电机,继电器,线圈等感性负载;采用标准逻辑电平信号控制;有两个使能控制端,有一个逻辑电源输入,使用L298N驱动电机,该芯片可以驱动两相电机也可驱动一四相电机,输出电压可以通过调整电源去调整也可以直接用

30、单片机的I/O端口提供信号;电路实现简单,使用更方便。L298N主要引脚连接如下图7所示:芯片电压 VCC:5V GND:常见的接地连接。VS:12V, ISENA和ISEN2 都接地,EN1和EN2为使能端接5V。 IN1和IN2,IN3和IN4为PWM信号控制端,其中IN2, IN4接地。OUT1-OUT4为电机连接端。图7 直流电机驱动电路3.5 CPU相关电路时钟信号输入方式:图8时钟输入电路图MSP430的时钟信号的应用有两种方式1:内部方式和外部方式。原理图如上图所示,在设计中采用的是内部方式。XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振

31、荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,电容取30PF左右。MSP430F149中DVcc,AVcc分别接100PF,10000PF电容后接地,DVSS,AVSS则直接接地保证芯片正常工作。3.6 避障传感器电路避障电路部分有2个传感器,2个可以检测障碍物的超声波传感器,检测到的信号送入到单片机的P3.4-P3.5口,然后由单片机处理检测出障碍物的距离并且控制PWM信号,控制电机的运转状态。(1)US-100超声波测距:US-100超声波测距模块可实现2cm - 4.5m的非接触测距功能,拥有2.4 - 5.5V的宽电压输入范围,静态功耗低于2 m

32、A,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。主要技术参数:表1:US-100主要技术参数电气参数US-100超声波测距模块工作电压DC 2.4V - 5.5V静态电流2 mA工作温度-20 - +70度输出方式电平或UART(跳线帽选择)感应角度小于15度探测距离2cm-450cm探测精度0.3cm+1%UART模式下串口配置波特率9600,起始位1位,停止位1位,数据位8位,无奇偶校验,无流控制。本模块实物图: 图9 US-100正面图从左到右依次编号1,2,3,4,5。它们的接口定义如下:l1号Pin:接VCC电源(供电范围2.4V

33、5.5V)。l2号Pin:当为UART模式时,接外部电路UART的TX端;当为电平触发模式时,接外部电路的Trig端。l3号Pin:当为UART模式时,接外部电路UART的RX端;当为电平触发模式时,接外部电路的Echo端。l4号Pin:接外部电路的地。l5号Pin:接外部电路的地。(2)障碍物测距系统:使用超声波传感器是探测障碍的比较简单的方法,它是利用向探测目标发射超声波脉冲,计算其往返时间来判定目标距离的。算法简单,价格合理。所以我们选择超声波传感器。首先利用单片机输出一个触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射的同

34、时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。 (3)躲避障碍物的方法小车前行,检测P2口,如果前方或左前方有障碍物,其避障效果如图10,重复步骤可躲避正前方和左前方障碍物。右前方有障碍物时,上述图中步骤将左拐变为右转,右转相应改为左转即可躲避右前方有障碍物。图10 避障效果图示 3.7显示电路设计根据任务设计要求对系统各项参

35、数和电机的运行状态进行显示以便更直观的观察到实验结果,因此在电路中加入显示模块是非常必要的。在系统运行过程中需要显示的数据并不多,在这里选用LCD1602液晶显示器比较适合。LCD1602液晶是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。其引脚共有16个,各引脚名称及引脚编号的对应关系如下图,引脚功能如表2所示。表2 LCD1602液晶显示模块引脚功能引脚符号引脚功能引脚符号引脚功能1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示

36、偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 显示模块电路图图11 显示模块电路4.软件设计4.1主程序流程图在一个完整的系统中,只有硬件部分是不可能完成相应设计任务的,因此在系统中软件部分通常是必需要有的,也是非常重要的,所以按照系统设计任务的要求和系统运行过程的需要设计出主程序流程。软件设计主程序流程图如图12总程序清单见附录1。图12主程序流程图4.2左侧避障程序流程图在本系统中,使用了两个电机对小车进行方向调整,避障分为左侧与右侧两种,方式是一样的其中左侧避障程序的流程

37、图如图13。图13左侧避障程序流程图4.3显示程序流程显示模块是实现人机对话的重要部分,在这里选用LCD1602显示器可实现对数字和字符的显示,该显示器在上面已经做了说明,下面介绍LCD1602的相关指令。162字符型点阵模块基本操作时序如表3所示。表3 LCD5510基本操作时序操作输入输出读状态RS=L,RW=H,E=HD0D7=状态字写指令RS=L,RW=L,D0D7=指令码,E=高脉冲无读数据RS=H,RW=H,E=HD0D7=数据写数据RS=H,RW=L,D0D7=指令码,E=高脉冲无 液晶显示程序如下:初始化过程(复位过程)延时15ms写指令38H(不检测忙信号)延时5ms写指令3

38、8H(不检测忙信号)延时5ms写指令38H(不检测忙信号)写指令38H:显示模式写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动写指令0CH:显示开及光标5.电路调试5.1 调试的思路本设计的智能避障小车,一共分为四个大模块。分别是:L298N电机驱动模块,超声波测距模块,LCD显示模块。调试的时候我们可以把四大模块进行分别调试,然后再把所有模块组合起来再进行最后的整机调试这样一个调试的思路。 5.2 各模块的调试LCD的调试:首先根据电路图将显示模块焊好,再用万用表检查电路是否出现短路。一切都正常的情况下,将LCD测试程序烧到芯片中,观察LCD的显示是否正确。一开始可能

39、什么都不显示,这个时候我们只需调整变阻器阻值即可。超声波模块的调试:超声波模块一共有四个脚,一个是VCC,一个是GND,还有两个分别是超声波的发射和接收引脚。连接电路时候只需引出四根插线,分别连接到MSP430F149的对应的引脚并且烧制好测试程序检测发射接受超声波后通过LCD去显示障碍的距离,注意两个超声波传感器应该要同时检测。本设计四根插线分别连接到VCC,GND,还有发射和接收引脚分别为:P3.4和P3.5口。L298N电机驱动模块的调试:电机驱动模块的调试主要是调试电机的转动是否正常转动以及电机转动速度的调试。焊接好电机与L298N,并且将L198N与单片机连接好,主要是两个电机的PW

40、M控制信号与单片机之间的连接。烧制好电机检测程序,直接控制两个电机同时加速与减速,观察两个电机是否正常运转即可。如果部能正常运转要检测硬件,与软件到可以正常运行为止。系统的整体调试:分别将LCD模块,电机控制模块,超声波模块都加入电路,烧制好检测程序,观察各个模块的工作状况,如果上面单独几个模块的检测是没有问题,整体检测硬件一般不会出问题,主要是调试软件,通过调整障碍物距离超声波的距离判断软件的问题并针对性做出调整,一直到没有问题为止。5.3 结果分析该系统以单片机MSP430F149作为主控芯片,通过超声波测距来获取小车距离障碍物的距离以及障碍物的方向,通过软件检测PWM占空比来表示电机的转

41、动快慢,并且用LCD1602显示出来。控制系统检测结果为:1.小车前方没有障碍物时,左右轮速度同时不断增加到固定值然后匀速行驶LCD上小车两个电机的占空比都为50%,小车匀速行驶不变。2. 当小车右前方有障碍物,且距离在20cm-30cm时,小车减速并控制小车左转弯并避开障碍物,右侧电机占空比为50%,左侧电机的占空比为35%;当小车左前方有障碍物,且距离在20cm-30cm时,小车减速并控制小车右转弯并避开障碍物,左侧电机的占空比为50%,右侧电机占空比为35%;当障碍物距离到20cm以内时,障碍在左侧,那么小车减速并控制小车左转弯并避开障碍物,右侧电机占空比为50%,左侧电机的占空比为20

42、%;障碍在右侧,那么小车减速并控制小车右转弯并避开障碍物,左侧电机占空比为50%,右侧电机的占空比为20%,小车转弯的速度更快,根据障碍距离小车的距离远近可以更快的避开障碍物。在避开障碍物后,小车沿直线前进。6. 结论本设计采用单片机MSP430F149对直流电机进行控制,通过I/O口输出的PWM脉冲作为直流电机的控制信号,同时采用超声波传感器检测周围障碍,再由单片机做出判断,选择正确路线,同时由液晶显示器显示障碍物距离与控制电机转速的占空比。C语言是现在针对单片机编程的非常流行的语言,它用简单的语句就可以实现复杂的功能,在设计开始时,在网上,书上,在老师那里大量的收集了关于单片机、直流电机和

43、各种传感器的资料。在硬件上,智能小车系统中用了超声波传感器,2个超声波传感器来进行障碍物的检测,被检测到的信号由P3口输入,通过软件的分析,然后再通过P4口输出相应的信号控制小车运动快慢与方向,来实现相应的动作达到避开障碍物的目的.结束语本课题的目的在于利用单片机实现超声波传感器控制单片机产生PWM脉冲来控制电机转速。到目前为止通过对控制器模块、电机驱动模块、LCD显示模块、超声波传感器等进行深入的研究。完成了硬件电路的系统设计,但由于实验条件不足没能做出PCB板。软件方面利用C语言进行编程,增强了程序的可移植性和灵活性,并且利用软件进行原理图的设计更加保证了程序的可靠性。归纳起来主要做了如下

44、几方面的工作:1、超声波传感器应用与PWM控制技术有机的结合;2、利用C语言进行程序设计,并通过Keil C51进行仿真(部分源程序见附录);根据上面论述结合测试数据可以看出本次设计基本完成了设计任务和要求。通过此次设计,掌握了超声波传感器的使用,PWM电机控制及C语言的编程方法,系统原理图的设计,MSP430F149芯片的使用,硬件的焊接方法并且学习了如何进行系统软硬件的设计以及相关技巧,为今后的工作和学习奠定了扎实的基础。参考文献1 张毅刚.单片机原理及其接口应用M北京:人民邮电出版社,20082 王运丽,劳芳单片机实现的直流电H型PWM调速控制器设计与实现 J .科技广场,2007:7

45、( 2 ):196-1973 何立民.单片机应用系统设计M .北京:航空航天大学出版社,19954 覃春芳.基于C 语言的直流电机调速系统J广西民族学院学报,2005:2(1) 83-875 张伟Protel 99SE实用教程M北京:人民邮电出版社,20066 陈杰. 传感器与检测技术M. 北京:高等教育出版社,20027 谢自美.电子线路设计.试验.测试 M .华中科技大学出版社,20048 泰继荣. 现代直流控制技术及其系统设计M. 北京:机械工业出版社,19939 肖景和.红外线热释电与超声波遥控电路M .人民邮电出版社,200310 周坚编.单片机C语言轻松入门M .北京:航空航天大学

46、出版社,200611 Oppenhein AV. Schafer R.Discrete-Time Signal Processing M .Englewood Cliffs,NJ: Prentice-Hall, 198912 Proakis J G. Manolakis D G.Introducton to Digital Signal Processing M .New York: Macmillan Publishing Company,1988附录1:主程序:#include#includeInit_430.h#includedelay.h#include5110.h#includeUA

47、RT0.h#includeUART1.h#includePWM.h/long int k;uchar i=0,j=0;uchar i_key=0;uint JULI4,JULI24,juli,juli2;/extern uint juli,juli2;uchar biaozhi; uint num_1,num_2;uchar num3,num23,num32,num42;uint ZKB1=0,ZKB2=0;/uchar SB=0;/*uint chaosheng1()if(flag=1) flag=0; juli=256*datas0+datas1; while(!(juli20) ; re

48、turn juli;*/*void chaosheng2() /if(biaozhi=1) / /biaozhi=0;if(flag2=1) IE1&=URXIE0; flag2=0; juli2=256*datas20+datas21; while(!(juli220) ; /return juli2;*/void main() WDT_Init(); Clock_Init(); PWM_B_Init(); P5DIR=0xff; UART0_Init(); UART1_Init(); / Lcd_led(1); Lcd_Init(); Lcd_Cls(); /Lcd_Num_Write(1

49、3,5,0); / Lcd_Num_Write(12,1,0); / Lcd_Num_Write(14,0,1); / Lcd_Num_Write(12,1,1); / Lcd_Num_Write(15,0,2); / Lcd_Num_Write(12,1,2); Lcd_Char_Write(0,0,0);/左 Lcd_Char_Write(2,1,0);/距 Lcd_Char_Write(3,2,0);/离 Lcd_Num_Write(12,6,0);/: delay_us(100); / Lcd_Char_Write(1,0,2);/ Lcd_Char_Write(4,0,2);/占 L

50、cd_Char_Write(5,1,2);/空 Lcd_Num_Write(12,4,2);/: / Lcd_Char_Write(1,0,3);/左 / Lcd_Char_Write(4,0,3);/占 / Lcd_Char_Write(5,1,3);/空 / Lcd_Num_Write(12,6,3);/: Lcd_Char_Write(1,0,1);/右 Lcd_Char_Write(2,1,1);/距 Lcd_Char_Write(3,2,1);/离 Lcd_Num_Write(12,6,1);/: delay_us(100); _BIS_SR(GIE);/开中断 flag=0; flag2=0; while(1) ZKB1=(TBCCR1/400); ZKB2=(TBCCR2/400); /num30=ZKB % 10000 / 1000; /num30 = ZKB% 1000 / 100; num30 = ZKB1% 100 / 10; num31 = ZKB1% 10; num40 = ZKB2

温馨提示

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

评论

0/150

提交评论