




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科论文目录TOC\o"1-3"\h\u摘要 IAbstract II引言 11总体方案论证与设计 31.1设计方案 31.2主控模块的选型和论证 32系统硬件电路设计 52.1主控模块设计 52.1.1STM32单片机概述 52.1.2STM32单片机最小系统电路 52.2MCU主要实现功能 62.3火焰传感器 72.4超声波模块 82.5驱动模块 102.6稳压模块 112.7继电器模块 123系统软件设计 143.1编程工具Keil简介 143.2程序设计原理 143.3小车功能设计 154系统调试 16结论 18参考文献 19附录1系统原理图 21附录2主要程序 22致谢 30本科论文摘要近年来随着科技的快速的向前推进,伴随着单片机及其应用方面的技术不断开发与优化,单片机大量应用于生活的各个领域,高性价比和功能更为强大的单片机甚至应用于军事科研领域,警用机器人就大量使用单片机作为主控芯片,更强大的功能,也为机器人完成复杂的任务提供高质量的保障。为了应对未来复杂的战场和道路情况,警用机器人虽然可以完成城市反恐任务,但是对于复杂地形,却缺乏一定的环境适应能力,对于野外使用,阻碍众多;军队中的侦察和探明路况的任务,任务繁杂,但又是行军中不可或缺的重要一环,结合这两种情况,一种能够适应野外复杂地形,并且兼顾清理障碍的野外作战的开路清障车应运而生。开路清障车可以通过车载的各个高性能模块,应对道路上的各种突发情况,利用火力模块进行大型障碍物清理,火焰模块解除火情,从而降低野外行军风险,为部队快速开辟安全道路,实现快速高效的行军。本次设计利用STM32单片机芯片为核心控制器实现开路清障车控制系统的逻辑控制,包含火焰传感器、驱动模块、超声波模块等外围电路。通过实践结果表明,以STM32系列芯片为主的设计可以满足整体需求,预期的功能均可实现。关键词:单片机;警用机器人;超声波模块;传感器AbstractAlongwiththerapidadvanceofscienceandtechnologyinrecentyears,withthecontinuousdevelopmentandsingle-chipcomputertechnologyanditsapplicationtooptimize,MCUusedineveryfieldoflifeingreatquantities,cost-effectiveandmorepowerfulSCMappliedinmilitaryscientificresearch,andevenpolicerobotisextensiveuseofsinglechipmicrocomputerasmaincontrolchip,themorepowerfulfeatures,alsoprovidesthehighqualityfortherobottoaccomplishcomplextasks.Inordertocopewiththecomplexbattlefieldandroadsituationinthefuture,althoughthepolicerobotcancompletetheanti-terroristtaskinthecity,itlackstheabilitytoadapttotheenvironmentforthecomplexterrain.Thetaskofreconnaissanceandroadconditionexplorationinthearmyiscomplicated,butitisalsoanindispensableandimportantpartofthemarch.Incombinationwiththesetwosituations,akindofopenroadclearingvehiclethatcanadapttothecomplexterraininthefieldandtakeaccountoftheobstaclesinthefieldoperationcameintobeing.Theopen-circuitblockremoverscandealwithvariousemergenciesontheroadthroughvarioushigh-performancemodulesonthevehicle,usethefirepowermoduletocleanuplargeobstacles,andtheflamemoduletoremovethefire,soastoreducetheriskofwildmarching,openupasaferoadforthetroopsquickly,andrealizefastandefficientmarching.ThisdesignUSEStheSTM32microcontrollerchipasthecorecontrollertorealizethelogiccontroloftheopencircuittroubleshootingvehiclecontrolsystem,includingtheflamesensor,drivingmodule,ultrasonicmoduleandotherperipheralcircuits.TheresultsofpracticeshowthatthedesignofSTM32serieschipscanmeettheoverallrequirementsandalltheexpectedfunctionscanberealized.Keywords:SingleChipMicrocomputer;Policerobots;ultrasonicmodule;Sensor引言1作用和意义在部队行军中,部队大都会派遣侦察兵,在前方进行侦察并探明路况,为大部队开拓道路,当遭遇到中大型的障碍物时候,需要汇报回大部队,大部队派出工兵或者装甲车进行爆破清理。对于瞬息万变的战场,这无疑会耗费大量的时间和精力甚至贻误战机。而在城市反恐作战中,特警配备有排爆机器人,用于运输危险品,远程排爆作业,用来降低人员伤亡,增加安全保障,可以应对一般的反恐作业REF_Ref32195\r\h[1]。为了应对未来复杂的战场和道路情况,排爆机器人虽然可以完成城市反恐任务,但是对于复杂地形,却缺乏一定的环境适应能力,对于野外使用,阻碍众多;军队中的侦察和探明路况的任务,任务繁杂,但又是行军中不可或缺的重要一环,结合这两种情况,一种能够适用于适应野外复杂地形兼顾清理障碍的野外作战的开路清障开路车应运而生。可以为行军降低风险,节省人力物力REF_Ref5539\r\h[2]。本次课题所研究的开路清障车车可以为大部队快速开辟行军路线,清理沿途障碍,对于不同的道路情况,可以进行灭火,开辟隔离区,清除道路障碍物,并且做到低风险高机动,可以大大节省部队行军所需的时间,同时此次的开路清障车整体所需材料简易,造价较低,也具有良好的推广性和实用性。2研究概况及意义单片机的优点是体积小、扩展灵活、高性价比、高可靠性和功耗低,单片机从开始试验到现在的广泛应用,仅仅使用了几十年的时间,从最开始的大型设备,到现在的精密仪器都可以见到他们的身影。遍布于大多数电子设备之中。单片机是微型控制执行器的简称,它能够实现基本的计算机功能,是最简单的计算机,称得上是应用最多的计算机了,因为它小巧而精致,使用范围比较广阔。平常用到的手机、电脑、家用电器等产品中配有单片机,单片机在信息安全控制系统发挥出重大的作用REF_Ref64\r\h[3]。本文利用单片机为核心控制实现了一个基于STM32的开路清障车控制系统。在设计之中,所使用到的硬件方面的模块有单片机主控模块、火焰传感器、驱动模块、超声波模块等。本文先对要采用的主要芯片以及各个模块进行分析,选择要制作物理对象的组件,选择一系列需要的组件,包括满足系统要求的各种指定型号,课题总体系统方案的设计,硬件方面具体的方案及实现,物理调试和试验完成后,记录每次调试和比较得到的数据REF_Ref31110\r\h[4]。3研究的具体工作(1)采用火焰感知模块实现火情的感知,火焰模块中含有红外火焰传感器,以及灭火装置,检测火焰并解除火情。(2)采用超声波模块实现对道路上障碍物检测,为车辆避障和清障提供准确的障碍物位置以及障碍物的清理情况。(3)采用火力系统作为本次设计的主动清障单元,仿照枪械激发装置,发射弹药对目标障碍物进行清理,为车辆前进清除较大的障碍物,使车辆可以快速开辟安全通道,快速通过。4解决的主要问题本课题是设计类课题,在设计之初,对于整体设计可能遇到的问题有了一个整体的预估,所需重点解决的问题:(1)车辆稳定性不足:车辆的运行时候,由于地形复杂,有高坡,低谷,碎石等,这要求车辆要有足够的抓地力,为解决这个需求,本次设计中仿照涡轮增压的原理,利用风扇对车辆进行负压,使得其稳定性增加,同时负压能够使车辆可以承受射击装置。(2)车辆清障方式单一:在清理大中型障碍物时,常用的将障碍物整体移走的方法难以实现,需要将中大型障碍物分割处理,再分次移开,为应对这种情况,本次设计采用枪械的发射装置对障碍物进行射击,击碎障碍物,然后进行进行清理。1总体方案论证与设计1.1设计方案以基于STM32的开路清障车控制系统设计,根据功能来进行划分,包括:主要的控制模块(单片机最小系统)、进行检测的模块(火焰传感器、超声波模块)、驱动模块。在这个以单片机作为核心的基于STM32的开路清障车控制系统设计,作为主控的单片机模块是系统的核心处理部分,可以协调其他模块一起工作,下面就针对这几个模块的选型进行讨论。设计框图,如图1.1所示。图1.1设计框图1.2主控模块的选型和论证本次设计从功能上进行分析,对于主芯片的选择,查阅了相关的资料,并综合的分析了在设计之中的实用性与可靠性,综合拟定的有以下两种比较可行的参考方案:方案一、采用STC89C52单片机。STC89C52单片机是51系列的单片机,来源于STC公司,继承51系列单片机的优良传统REF_Ref31208\r\h[5]。而其中有8k的存储空间,可烧录进入大量的程序,具有很多传统的51系列单片机优秀的编写方式,更灵活、效率更高,在解决问题时也更有效。 方案二:STM32单片机是专为要求高性能、低成本、低功耗的嵌入式应用设计的,其STM32系列分类众多,可选择性更强,其中STM32F为通用系列,STM32F103为主流级单片机,拥有72MHZ的CPU,最高可以达到1M的Flash容量,且兼具电机控制功能,现在也是越来越流行的趋势。本次设计中,需要用到多个电机,且需要对多个电机控制,这对软件和硬件都有一定的要求,52单片机虽然可以基本满足,但是操作起来极为繁琐,而STM32拥有更高的处理速度和更多的扩展功能,性价比更高,根据以上所述综合考虑,最终本次的课题设计的主芯片选择的是STM32系列单片机。2系统硬件电路设计2.1主控模块设计2.1.1STM32单片机概述STM32这一款单片机是ARM公司推出了其全新的基于ARMv7架构的32位CortexM3(72MHz)/M4(168MHz,额外增加了浮点运算)微控制器内核REF_Ref31280\r\h[6]。STM32作为最新一代的单片机,有更强大的功能,更高的性能比。所以,本次设计采用了STM32芯片,一方面它的性能高,方便学习更多新的嵌入式技术;另一外面,跟紧时代的步伐,让自己在未来步入社会的时候更具优势REF_Ref31355\r\h[7]。要完成本系统的设计,需要用到串口1、串口2、JTAG、LED、3.3v、5v引出等基本外设。串口1主要负责调试代码,与外接模块进行通信,直到各个模块能实现项目里的基本功能。连接过程中,应要认真对照着芯片原理图来进行,以防止接错线造成短路损坏模块。这个设计,我采用了高性能的ARM,这个芯片的最大运行速度为72MHZ,能在调节测试的过程中快速响应,能够高效率地处理各种复杂的运算。加上芯片本身丰富的资源,例如高精度的ADC、多个IO接口、还有I2C接口等,能适应各种各种的现场情况。2.1.2STM32单片机最小系统电路单片机的最小系统电路,以STM32单片机和外部的一些电阻、晶振、电容等构建而成REF_Ref31443\r\h[8],接收来自各模块的信号并对其进行处理,然后将需要执行的命令信号再发往各模块,主要负责协调各个模块的共同工作。复位电路是单片机最小系统中必不可少的一个模块,单片机的复位按键是由按键,电容与电阻组成的,在按键开关为关闭状态时,电源供电,电阻本身没有反应,但是电容可以存储电量,在这个时候电路中的电流值非常的小,基本可以说是没有。相对于电源的电压VCC来说,复位IO口的引脚是处于低电平状态,这个时候,单片机的工作状态没有收到干扰。当按键开关为关闭状态时,电源系统就会变成回路,在这个时候复位引脚的电压相比电源按键的电压是一样的,为5V高电平,单片机发出复位指令。晶振也是单片机最小系统里很重要的一部分,它由一个晶体和两个陶瓷电容器构成。其在单片机系统中的主要作用是结合内部的电路,产生单片机正常运行所必须的时钟频率,可以说它为单片机正常执行命令提供了重要的保障REF_Ref31512\r\h[9],通常情况下晶振电路提供的时钟频率越高,那么单片机的运行速度也就越快,从而系统工作的效率也会越高。在设计晶振电路时,需要注意晶振频率的选择,合适的晶振频率可以使本次系统发挥出最好的效果REF_Ref2091\r\h[10]。STM32F103C8T6原理图,如图2.1所示。图2.1STM32F103C8T6原理图2.2MCU主要实现功能通过上文的设计分析,每一种情况所对应的流程设计对对应着一些传感器。为方便程序的运行,对各个方面做出了相应的程序设计。MCU主要功能软件设计实现如下:高低电平控制实现,我们已经分析过了硬件电路,电磁铁的发生作用需要通过MCU输出的高低电平,单片机函数库中GPIO_SetBits(GPIOx,GPIO_Pin)和GPIO_ResetBits(GPIO_GPIOx,GPI0_Pin)分别将输出I/O口置高、置低,如开启报警模块或者关闭报警模块时,PA12口输出低电平配置GPIO_ResetBits(GPIOA,GPIO_Pin_12)REF_Ref2147\r\h[11]。I/O口上升/下降沿中断实现,MCU会检测到相应的I/O口的下降沿对外围的模块进行操作。单片机的所有的GPIO管脚都可以作为外部中断输入口,我们在这个单片机上,可以设置多种情况,上升沿或者下降沿触发中断,还可以同时设置中断的优先级。2.3火焰传感器本设计的主要模块之一为火焰传感器,红外火焰传感器使用特制的红外线接受管来检测火焰,实时监测环境中的火焰值REF_Ref756\r\h[12]。然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器中,中央处理器根据信号的变化做出相应的程序处理使得灭火风扇开始运作,从而达到消除火焰的作用。火焰传感器检测火焰信号,火焰传感器的指示灯亮起,将接收到的信号通过STM32F103C8T6芯片的PA3接口传输给主控芯片,经处理将控制信号传递给各个模块,协调同步停车,并开启灭火装置,消除火情。火焰传感器内部原理图、火焰传感器原理图,如图2.2、2.3所示。图2.2火焰传感器内部原理图图2.3火焰传感器原理图2.4超声波模块本设计采用了HC-SR04超声波模块,在开路清障车上装载该模块让开路清障车检测到障碍物和与障碍物的距离,当到合适位置时便会启动其他模块协同清除障碍物。本次使用的超声波测距模块可以对2cm到400cm进行无接触测距感应,该模块由超声波发射器、接收器、控制电路组成REF_Ref2264\r\h[13]。TRIG端口为触发控制信号接入端口,ECHO为回响信号输出端口,二者分别对应STM32F103C8T6芯片的PB11,PB10接口,当检测到前方有障碍物时,会将信号通过端口传给主控芯片,主控芯片将信号处理,将控制信号传输个各个模块,从而完成,检测、清除、正常通行一系列功能。HC-SR04超声波模块原理图、HC-SR04超声波模块工作流程图,如图2.4、2.5所示。图2.4HC-SR04超声波模块原理图图2.5HC-SR04超声波模块工作流程图2.5驱动模块本设计装载了电机驱动模块,本次使用的电机驱动L298N是非常常用的电机驱动模块其成本不高且是一种双桥电机驱动芯片,在较高电流时输出可以并联,双桥每个H桥都可以有2A电流,但注意的是其功率电压小于6V将无法正常工作,L298N驱动模块可以很好的满足本次的设计,其驱动芯片、电路原理图如下图2.6、2.7所示。将四个驱动车辆前进的减速电机和一个负压模块电机连接在一个L298N电机驱动模块,发射装置和灭火模块连接在一个L298N电机驱动模块上,对不同的模块分开进行控制。-图2.6L298N驱动芯片图2.7驱动模块2.6稳压模块本次设计使用的稳压模块能够很好的行使保护电路、热关断电路、限制电流等功能REF_Ref2316\r\h[14],稳压模块可以将输出的电压的分压电阻的输出与内部基准稳压值比较,如果发现电压偏差,可使用放大器对内部振荡器进行控制调整其输出占空比,进而调整输出电压稳定,稳压模块原理图如图2.8所示。图2.8稳压模块2.7继电器模块本次设计中采用本次选用2路光耦-高低电平继电器模块,当LOW端与公共端接通时,为低电平触发;当HIGH端与公共端接通时,为高电平触发,光耦继电器就是固态继电器,用光耦驱动可控硅,控制光耦端给合适的电信号,这样,光耦另一端光三极管,得信号导通,驱动可控硅导通。继电器模块如图2.9所示。图2.9继电器模块
3系统软件设计3.1编程工具Keil简介STM32单片机软件开发环境使用的是有德国的KEIL公司推出的keil软件REF_Ref2346\r\h[15]。根据不完全统计,全球大约十万的科研人员在使用这一款软件,在官网上可以看到起目前最新的版本是5.5。使用这一个版本不仅仅能够开发我们目前使用的STM32单片机,还可以开发由全球数百个开发公司所开发的芯片,知名的包括51,DSP等等。由它编译生成的代码效率极高稳定性很好并且能够实现程序的编译、编写、承接、调测、仿真等全部的开发流程。同时,使用Keil5也对STM32单片机的开发有了针对性的优化,相比较传统模式的开发方式原开发界面,这样一个编译器是非常好用的REF_Ref2375\r\h[16]。Keil5的界面,如图3.1所示。图3.1KeiluVision53.2程序设计原理 本文的程序设计内容主要包含数据分析、电机控制。在软件设计中如果采用的是传统的整体代码编写,出错的概率可能会有点大,甚至有时候可能连错在哪里都找不出来,这样花费的人力物力成本太大。所以本次软件的设计选择的是模块化的设计,模块化的设计将一个程序分成几个模块来编写,这里的模块指的是那些可以单独拿出来运行的程序。这样如果有错,就会很容易的就可以将它找出来,这样对于我们来说调试起来很方便。模块化程序设计有以下好处:(1)每个模块都是可以分开来写,而且调试起来也很方便;(2)每个模块完成的功能都是独立,不会互相影响REF_Ref2418\r\h[17];3.3小车功能设计当小车开始驱动时,小车运行前进,当小车前进时检测到了火焰,开启灭火风扇进行灭火,灭火三秒后,再次检测火焰是否还在,若还在则绕行,未检测到则继续前行,当检测到路线有障碍物时,会开启火力系统,发动火力清理障碍物,五秒后,再次检测,若障碍物还在,无法清除,则绕行避开,若已清除检测不到,则继续前行。本设计的开路清障车程序功能设计,如图3.2所示。图3.2小车功能流程图4系统调试系统测试最重要的目的是判断系统是否可以正常运行系统所开发的功能模块能否进行正常的操作以及程序代码中是否存在错误。测试程序是开发过程中的一个必不可少又极其重要的环节REF_Ref2463\r\h[18]。这是因为就算系统被认为设计的再完美其在进行程序测试时也会被发现一个此前从来没有被发现的错误。在制作硬件电路之前,我们先根据实际需要的功能划分硬件模块,并且在AD里面画出其硬件原理图和PCB图,检查无误后开始焊接REF_Ref2490\r\h[19]。在实际制作过程中也不是一帆风顺的,在硬件做好调试过程中,所测数据不变动、或不显示,经检查硬件电路,使用万用表量通断发现,部分导线可能不通,存在虚焊现象,导致整个设计无法正常运行。重新焊接该部分导线,焊接牢固后,问题才可以解决。在后期调试过程中,前置的L298N驱动模块(连接发射装置和灭火装置)经常过热,并伴有塑料焦糊味,随后出现了,发射装置和灭火装置失灵,一时间设计搁置。在遇到硬件问题时,常用排除法排杂,所以先列出了可能存在的情况:存在虚焊情况,发射装置和灭火装置损坏,L298N驱动模块损坏等。先给发射装置和灭火装置外接电源,发现二者均可工作,且传感器均有反应,故排除二者损坏的可能,使用万用表对以上情况一一排除,首先排除了存在虚焊的情况,当检查驱动模块时,发现装置供电LED正常点亮,模块供电正常,用万用表检查模块各个元件,发现L298N驱动芯片损坏,于是更换了L298N驱动模块,装置可以正常使用,并且在后面调试时对连续调试时间进行缩短,给L298N驱动芯片足够的散热时间,延长其使用寿命。实物展示图、实物调试图,如图4.1、4.2所示。图4.1实物展示图图4.2实物调试图结论本文开篇便先对系统进行了分析,并且向大家条理清晰有逻辑地介绍了设计的开发背景、设计思想和研究内容等。我们还对软件的设计方案进行了全局性的规划和详尽的设计。全局性的规划主要包括总体功能规划,系统总体结构规划等;最后我们还对整体设计进行了调试,并且对调试的结果进行了分析和总结REF_Ref2516\r\h[20]。这从很大程度上帮助我们进一步的找到系统的缺陷与需要进行升级优化处理的地方,大大的更便于后面,当设计作品出现问题时候,我们如何对整体作品进行排杂和维护。基于总体设计方案,本文完成了系统的软件设计和硬件设计。通过实际操作验证了序列的准备和调试,取得了满意的效果。在这个进行毕业性的项目设计的过程中,我学习到了很多也成长了很多。在设计中,我对大学生涯所学的专业知识与其的实际应用有了更深入的理解和新的经验。基本上,我已经意识到我学到的知识并应用它,我也意识到规范化的整体设计流程的重要性以及整体作品的调试和维护的必要性。通过这次毕业性的项目设计,使我得到了一次用专业所学习的知识、专业技术和能力分析以及一些解决相关问题方面得到更加完完整整的锤炼。使我在微型处理器的基础性的原理、微处理器方面实际使用的系统所需要开发的流程中,以及在常用编写程序设计思想路线和技巧(特别是C语言)的掌握方面都能往前面迈进了一步,为日后成为实用型奠定良好的基础。参考文献耿文静,吴华.应用型本科院校《单片机原理及应用》课程教学研究[J].科技视界,2017(04):186汤辛华.道路清障车的4大发展趋势[J].商用汽车,2009(01):96-97金琦淳,倪月,刘清翔等.案例式教学在《单片机原理及接口技术》课程中的应用[J].装备制造技术,2015(01):216-218肖军.我国道路清障车现状及发展前景[J].商用汽车,2014(06):24-30赵华峰.基于单片机的家居智能系统设计与实现[J].信息与电脑(理论版),2018(22):134-136郁美霞.基于校园卡的智能储物柜人机交互系统的设计[D].兰州交通大学,2015:42-44李琪琪,杨冲,张芳芳等.小区物业智能快递储物柜系统研究[J].现代物业(中旬刊),2019(06):30徐爱昆,康怡琳,顾珉光等.智慧校园储物柜的多功能控制系统设计[J].单片机与嵌入式系统应用,2019,19(01):69-72张立立,尹国成,孙尚超.基于MCU技术的数据采集系统的硬件设计与实现[J].电子世界,2013(21):128+143宁志超.基于ATmega16的六自由度果实采摘机械手控制系统的设计[D].东北农业大学,2010:42-43宋珂.自动售票机硬币处理装置控制系统的设计与开发[D].南京理工大学,2017:54-55董刚.智能小车运动控制系统研制[D].西安科技大学,2009:32-33章叶骏.ASR机器人系统中无线语音控制系统的应用研究[D].合肥工业大学,2008:25-26周柱.基于STM32的智能小车研究[D].西南交通大学,2011:24-26吴慧玲.基于多传感器的移动机器人避障策略的研究[D].沈阳大学,2013:45-46谢留威.基于虚拟样机的气体连续发射轻小目标装置的研制[D].哈尔滨工业大学,2017:47-49马庆乐.基于路径规划及避障的自主导览互动讲解机器人研制[D].兰州理工大学,2017:36-37王时群.智能吸尘器红外避障控制系统研究[D].海南大学,2015:24-25吴迪.锂电池充电控制与管理方法研究[D].北京交通大学,2015:45-46朱恩亮.基于ARM的灭火机器人设计与制作[D].电子科技大学,2011:25-26附录1系统原理图附录2主要程序#include"delay.h"#include"sys.h"#include"usart.h" #include"led.h" #include"key.h" //超声波硬件接口定义#defineHCSR04_PORTGPIOB#defineHCSR04_CLKRCC_APB2Periph_GPIOB#defineHCSR04_TRIGGPIO_Pin_11#defineHCSR04_ECHOGPIO_Pin_10//超声波计数u16msHcCount=0;//定时器4设置voidhcsr04_NVIC(){ NVIC_InitTypeDefNVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}//IO口初始化及其他初始化voidHcsr04Init(){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(HCSR04_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin=HCSR04_TRIG;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(HCSR04_PORT,&GPIO_InitStructure);GPIO_ResetBits(HCSR04_PORT,HCSR04_TRIG);GPIO_InitStructure.GPIO_Pin=HCSR04_ECHO;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(HCSR04_PORT,&GPIO_InitStructure);GPIO_ResetBits(HCSR04_PORT,HCSR04_ECHO);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);TIM_DeInit(TIM2);TIM_TimeBaseStructure.TIM_Period=(1000-1);TIM_TimeBaseStructure.TIM_Prescaler=(72-1);TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);TIM_ClearFlag(TIM4,TIM_FLAG_Update);TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);hcsr04_NVIC();TIM_Cmd(TIM4,DISABLE);}//打开定时器4staticvoidOpenTimerForHc(){TIM_SetCounter(TIM4,0);msHcCount=0;TIM_Cmd(TIM4,ENABLE);}//关闭定时器4staticvoidCloseTimerForHc(){TIM_Cmd(TIM4,DISABLE);}//定时器4终中断voidTIM4_IRQHandler(void){if(TIM_GetITStatus(TIM4,TIM_IT_Update)!=RESET){TIM_ClearITPendingBit(TIM4,TIM_IT_Update);msHcCount++;}}//获取定时器4计数器值u32GetEchoTimer(void){u32t=0;t=msHcCount*1000;t+=TIM_GetCounter(TIM4);TIM4->CNT=0;delay_ms(50);returnt;}//通过定时器4计数器值推算距离floatHcsr04GetLength(void){u32t=0;inti=0;floatlengthTemp=0;floatsum=0;while(i!=5){TRIG_Send=1;delay_us(20);TRIG_Send=0;while(ECHO_Reci==0);OpenTimerForHc();i=i+1;while(ECHO_Reci==1);CloseTimerForHc();t=GetEchoTimer();lengthTemp=((float)t/58.0);//cmsum=lengthTemp+sum;}lengthTemp=sum/5.0;returnlengthTemp;}voidgo()//前进{ GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6); //PB.5输出高 GPIO_ResetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7); }voidstop()//停止{ GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7); //PB.5输出?}voidleft()//左{ GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6); //PB.5输出高 GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_7); }voidright()//右{ GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_7); //PB.5输出高 GPIO_ResetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6); }//测试主函数intmain(void){ floatlength;// u8time_spear=0; delay_init(); //延时函数初始化 LED_Init();//电机控制方向初始化 KEY_Init();//火焰传感器初始化 spear_Init();//水弹枪初始化 fan_Init();//风扇初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 Hcsr04Init(); printf("大海电子串口测试\r\n");Hcsr04Init();printf("超声波初始化成功!\n"); while(1) { length=Hcsr04GetLength();printf("距离为:%.3fcm\r\n",length); go(); if(length<30) //有障碍物 { stop(); GPIO_SetBits(GPIOA,GPIO_Pin_0); GPIO_ResetBits(GPIOA,GPIO_Pin_1);//水单枪攻击 delay_ms(1000);//延时三秒 delay_ms(1000); delay_ms(1000); length=Hcsr04GetLength();//再次检测障碍物 if(length<30) //障碍物没有清除 { GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1); left(); //绕行 delay_ms(500); stop(); } GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1); } if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)==0)//检测到火焰 { stop(); GPIO_SetBits(GPIOB,GPIO_Pin_4); //风扇转动 GPIO_ResetBits(GPIOB,GPIO_Pin_5); delay_ms(1000);//延时五秒 delay_ms(1000); delay_ms(1000); delay_ms(1000); delay_ms(1000); if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)==0);//火焰没有消失 { left(); //绕行 delay_ms(500); stop(); } GPIO_SetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5); //关闭风扇 } // go();// delay_ms(1000); } }致谢从刚确定所需要完成的设计的课题以来,我首先是查找相关的及资料,然后资料的处理,并根据实际情况设计确定出最初的设计方案,从而达到进行升级方案。所以我翻阅了很多相关的书籍,在网上搜索相关的运用方法,加上老师和同学的帮助下,完成的设计达到了以前期望的要求。同时,通过这次实际操作设计,我们在每个方面能力都有一定的提高,学到了如何综合分析数据,整理相关的资料,使大学里学习的理论知识在根本上得到一次最完整的实践和提高。也为我以后的学习奠定了很好的基础。在导师的指导和同学帮助之下,我顺利地完成了本次毕业性的项目设计。在毕业的项目类目设计这段时间里,我认识到了自己的不足并努力的争取独自一个人完成我的设计,最终学习到了很多,学到了以前很多没有学到的知识,同时也巩固了所学过的知识。感谢我的导师,胡海龙和于宏波导师孜孜不倦的指导,不论在理论还是实践方面都给我提了很多重要的意见,使我的毕业性的课题设计在正常流程的环境下进行,一步接着一步的无限接近完善,得以顺利完成。没有导师的帮助,只靠我一个人的努力是无法圆满完成这次毕业性的项目设计的。尽管我经常问您一些很基础的问题,但是您从来没有对此表示过一丝一毫的不耐烦,而是用智慧的光芒化解我所有疑惑。感谢在毕业项目设计中为我提供帮助的学院的老师和同学,以及在毕业项目设计中被我引用或参考的论著的作者,总之感谢在毕业项目设计期间给予我帮助的所有老师和同学,感谢你们对我的支持。
捷键与一些电脑小技巧HYPERLINKwinkey+d:
这是高手最常用的第一快捷组合键。这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口……只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口!
--这个就是winkeywinkey+f:
不用再去移动鼠标点“开始→搜索→文件和文件夹”了,在任何状态下,只要一按winkey+f就会弹出搜索窗口。
winkey+r:
在我们的文章中,你经常会看到这样的操作提示:“点击‘开始→运行’,打开‘运行’对话框……”。其实,还有一个更简单的办法,就是按winkey+r!
alt+tab:
如果打开的窗口太多,这个组合键就非常有用了,它可以在一个窗口中显示当前打开的所有窗口的名称和图标●,选中自己希望要打开的窗口,松开这个组合键就可以了。而alt+tab+shift键则可以反向显示当前打开的窗口。
winkey+e:
当你需要打开资源管理器找文件的时候,这个快捷键会让你感觉非常“爽”!再也不用腾出一只手去摸鼠标了!
小提示:
winkey指的是键盘上刻有windows徽标的键●。winkey主要出现在104键和107键的键盘中。104键盘又称win95键盘,这种键盘在原来101键盘的左右两边、ctrl和alt键之间增加了两个windwos键和一个属性关联键。107键盘又称为win98键盘,比104键多了睡眠、唤醒、开机等电源管理键,这3个键大部分位于键盘的右上方。
再补充点
F1显示当前程序或者windows的帮助内容。
F2当你选中一个文件的话,这意味着“重命名”
F3当你在桌面上的时候是打开“查找:所有文件”对话框
F10或ALT激活当前程序的菜单栏
windows键或CTRL+ESC打开开始菜单
CTRL+ALT+DELETE在win9x中打开关闭程序对话框
DELETE删除被选择的选择项目,如果是文件,将被放入回收站
SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是
放入回收站
CTRL+N新建一个新的文件
CTRL+O打开“打开文件”对话框
CTRL+P打开“打印”对话框
CTRL+S保存当前操作的文件
CTRL+X剪切被选择的项目到剪贴板
CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板
SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置
ALT+BACKSPACE或CTRL+Z撤销上一步的操作
ALT+SHIFT+BACKSPACE重做上一步被撤销的操作
Windows键+D:最小化或恢复windows窗口
Windows键+U:打开“辅助工具管理器”
Windows键+CTRL+M重新将恢复上一项操作前窗口的大小和位置
Windows键+E打开资源管理器
Windows键+F打开“查找:所有文件”对话框
Windows键+R打开“运行”对话框
Windows键+BREAK打开“系统属性”对话框
Windows键+CTRL+F打开“查找:计算机”对话框
SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单
SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开wo
rd的时候按下不放,可以跳过自启动的宏
ALT+F4关闭当前应用程序
ALT+SPACEBAR打开程序最左上角的菜单
ALT+TAB切换当前程序
ALT+ESC切换当前程序
ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换
PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板
ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板
CTRL+F4关闭当前应用程序中的当前文本(如word中)
CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前
一个窗口)
在IE中:
ALT+RIGHTARROW显示前一页(前进键)
ALT+LEFTARROW显示后一页(后退键)
CTRL+TAB在页面上的各框架中切换(加shift反向)
F5刷新
CTRL+F5强行刷新1.打开“我的电脑”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前打勾-“确定”
2.删除以下文件夹中的内容:
x:\DocumentsandSettings\用户名\Cookies\下的所有文件(保留index文件)
x:\DocumentsandSettings\用户名\LocalSettings\Temp\下的所有文件(用户临时文件)
x:\DocumentsandSettings\用户名\LocalSettings\TemporaryInternetFiles\下的所有文件(页面文件)
x:\DocumentsandSettings\用户名\LocalSettings\History\下的所有文件(历史纪录)
x:\DocumentsandSettings\用户名\Recent\下的所有文件(最近浏览文件的快捷方式)
x:\WINDOWS\Temp\下的所有文件(临时文件)
x:\WINDOWS\ServicePackFiles(升级sp1或sp2后的备份文件)
x:\WINDOWS\DriverCache\i386下的压缩文件(驱动程序的备份文件)
x:\WINDOWS\SoftwareDistribution\download下的所有文件
3.如果对系统进行过windoesupdade升级,则删除以下文件:x:\windows\下以$u...开头的隐藏文件
4.然后对磁盘进行碎片整理,整理过程中请退出一切正在运行的程序
5.碎片整理后打开“开始”-“程序”-“附件”-“系统工具”-“系统还原”-“创建一个还原点”(最好以当时的日期作为还原点的名字)
6.打开“我的电脑”-右键点系统盘-“属性”-“磁盘清理”-“其他选项”-单击系统还原一栏里的“清理”-选择“是”-ok了
7、在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。删除系统备份文件吧:开始→运行→sfc.exe/purgecache近3xxM。(该命令的作用是立即清除"Windows文件保护"文件高速缓存,释放出其所占据的空间)
8、删掉\windows\system32\dllcache下dll档(减去200——300mb),这是备用的dll档,只要你已拷贝了安装文件,完全可以这样做。
9、XP会自动备份硬件的驱动程序,但在硬件的驱动安装正确后,一般变动硬件的可能性不大,所以也可以考虑将这个备份删除,文件位于\windows\drivercache\i386目录下,名称为driver.cab,你直接将它删除就可以了,通常这个文件是74M。
10、删除不用的输入法:对很多网友来说,WindowsXPt系统自带的输入法并不全部都合适自己的使用,比如IMJP8_1日文输入法、IMKR6_1韩文输入法这些输入法,如果用不着,我们可以将其删除。输入法位于\windows\ime\文件夹中,全部占用了88M的空间。
11、升级完成发现windows\多了许多类似$NtUninstallQ311889$这些目录,都干掉吧,1x-3xM
12、另外,保留着\windows\help目录下的东西对我来说是一种伤害,呵呵。。。都干掉!
13、关闭系统还原:系统还原功能使用的时间一长,就会占用大量的硬盘空间。因此有必要对其进行手工设置,以减少硬盘占用量。打开"系统属性"对话框,选择"系统还原"选项,选择"在所有驱动器上关闭系统还原"复选框以关闭系统还原。也可仅对系统所在的磁盘或分区设置还原。先选择系统所在的分区,单击"配置"按钮,在弹出的对话框中取消"关闭这个驱动器的系统还原"选项,并可设置用于系统还原的磁盘空间大小。
14、休眠功能会占用不少的硬盘空间,如果使用得少不妨将共关闭,关闭的方法是的:打开"控制面板",双击"电源选项",在弹出的"电源选项属性"对话框中选择"休眠"选项卡,取消"启用休眠"复选框。
15、卸载不常用组件:XP默认给操作系统安装了一些系统组件,而这些组件有很大一部分是你根本不可能用到的,可以在"添加/删除Windows组件"中将它们卸载。但其中有一些组件XP默认是隐藏的,在"添加/删除Windows组件"中找不到它们,这时可以这样操作:用记事本打开\windows\inf\sysoc.inf这个文件,用查找/替换功能把文件中的"hide"字符全部替换为空。这样,就把所有组件的隐藏属
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《突发事件应对法》练习卷附答案
- 汽车买卖简单合同协议书
- 交警公文测试考试题及答案
- 肾小球疾病试题及答案
- 特征方程试题及答案
- 兽医微生物考试题及答案
- 2025音乐会录制与音像出版合同样本
- 中级社工考生的备考经验分享试题及答案
- 软件评测师考试如何高效备考试题及答案
- 初级社会工作者考试中的评估与反馈机制及试题及答案
- T-CAS 886-2024 输血相容性检测设备检测性能验证技术规范
- 公司安全生产事故隐患内部报告奖励工作制度
- 【词汇】311个四级核心高频词汇
- 稻鸭共作及其环境效应
- 农业机械安装调试及验收方案
- 气压传动课件 项目四任务二 折弯机气动系统组装与调试
- 土菜馆策划方案
- 技能人才评价新职业考评员培训在线考试(四川省)
- 江苏省扬州市2024-2025学年高一化学下学期期末考试试题
- 成本加酬金合同协议书
- 创新创业实战案例解析智慧树知到期末考试答案章节答案2024年东北农业大学
评论
0/150
提交评论