【精品】智能灭火小车设计
智能灭火小车的设计与实现

随着社会经济和科学技术的快速发展,化工行业危险化学品和放射性物质泄漏、燃烧及爆炸等事故的隐患逐渐增加,一旦发生火灾,往往会带来巨大的人员伤亡和财产损失,因此开发一款智能设备用于实时监测火灾隐患并代替人工进行灭火,具有重要的现实意义[1]。
1总体方案设计笔者设计了一个智能灭火小车,其总体方案设计如图1所示。
发生火情后,火源检测模块发送信号给单片机,单片机判断后驱动电机前往火源处,途中遇到障碍物后会及时躲避,到达火源后驱动风扇进行灭火。
图1智能灭火小车总体方案设计2系统硬件部分2.1电源电路电源电路(图2)设计选用7805芯片。
7805智能灭火小车的设计与实现张博1,2邓治岗3巨永锋1吕建新2(1.长安大学电子与控制工程学院;2.西安思源学院工学院;3.西安航天动力试验技术研究所)摘要设计了一个以单片机为核心的智能灭火小车,利用红外接收二极管实现对火源的检测,利用红外传感器实现避障。
给出了智能灭火小车系统的软硬件部分和具体的调试过程。
实验结果表明,该小车通过检测火源,将采集到的数据传给单片机,驱动小车寻找火源并进行相应的避障,最后完成了灭火工作并返回。
关键词灭火小车单片机红外接收二极管红外传感器避障中图分类号TH862文献标识码A文章编号1000⁃3932(2020)04⁃0341⁃05作者简介:张博(1994⁃),硕士研究生,从事嵌入式系统的研究。
通讯作者:巨永锋(1962⁃),教授,从事自动控制、智能测控技术的研究,************.cn。
图2电源电路芯片有3个引脚,分别为终端输入端、输出端和地面接地端[2]。
通常情况下,该芯片可提供的最大电流为1.5A,输入电压可以为9、12、15V,输出电压为5V,且误差不超过±0.2V[3]。
综合考虑后, 7805芯片采用电池供电,选择9V的输入电压。
2.2电机驱动电路电机驱动电路(图3)采用L298电机驱动芯片。
电机调速采用PWM调速原理,电机的速度与占空比成正比关系[4],利用该比例关系可以控制电机的转速从而达到灭火的目的。
基于单片机控制的智能灭火小车模型设计

基于单片机控制的智能灭火小车模型设计摘要:工厂由于电路老化或操作不规范,时常导致火灾发生,造成极大损失。
本文以此为背景,设计了一款智能灭火小车。
采用单片机STC89C52RC控制,电机驱动芯片L2930驱动。
采用红外传感器和火焰传感器收集环境参数,实现智能灭火小车的循迹、避障、障碍物跟随和火焰识别。
程序设计方面,以C语言在Keil开发环境下进行控制程序编写。
硬件设计方面,使用立创EDA进行元器件的选型,电路图设计,PCB图设计和BOM表生成。
最终实验测试表明:本设计的智能灭火小车能自动避障,并能够快速、精确的行驶到火源点,打开灭火风扇将其扑灭。
关键词:单片机;避障;循迹;灭火;模型车1 智能灭火小车的硬件设计1.1核心控制模块单片机作为小车的控制中心,本文选取的是STC89C52RC单片机,作为整个小车的大脑,负责程序的控制,使智能灭火小车能够正常行驶并且符合当时提出的要求。
本系统设计的控制芯片最小系统电路如图1-1所示:1.2电机驱动模块对于能够使小车动起来的“双脚”,采取的是L293D的控制芯片和脉宽调制(PWM)技术进行控制[1],其工作原理是通过单片机控制输入端的高/低电平,然后控制直流电机的转动方向,进而控制单片机对于驱动电机的输入的脉冲信号的空占比,之后不停地改变对电机的供电,最后控制智能灭火小车的速度。
本系统设计的电机驱动电路图如图1-2所示:图1-1 系统最小系统电路图图1-2 电机驱动电路图1.3灭火传感器模块智能灭火小车使用火焰传感器来寻找是否有高于周围的异常红外光源,从而判断出是否有火焰产生,例如,红外线传感器会把所检测的光信号转变为电信号传输给单片机进行处理[2],处理完成后,判断是否要触发灭火风扇,从而实现对于火焰的检测判断和扑灭。
本文设计火焰传感器电路图如图1-3所示:1.4 行走方向判定模块行走方向判定主要是通过主板上左右两个光敏传感器感应是否有光信号产生,当右边光敏传感器检测到光信号而左边无,小车则控制电机驱动从而右转弯,当两个光敏传感器同时检测到光信号时,小车则控制电机驱动从而前进,当把光信号移动到左边时,左边光敏传感器检测到光信号而右边无,小车则控制电机驱动从而左转弯[4]。
智能灭火小车的设计与实现

智能灭火小车的设计与实现一、智能灭火小车的设计需求与目标智能灭火小车的设计旨在能够自主感知火灾环境、准确识别火源位置,并迅速采取有效的灭火措施。
其主要需求包括:具备可靠的火源探测能力、灵活的移动性能、精准的定位系统以及高效的灭火装置。
设计目标是在火灾发生的初期,能够快速响应,自主导航至火源位置,进行灭火操作,最大程度地控制火势蔓延。
二、硬件系统设计(一)车体结构智能灭火小车的车体采用坚固且轻巧的材料制作,以保证在复杂环境中的稳定性和灵活性。
车轮采用防滑、耐磨的材质,并具备良好的悬挂系统,适应不同的地形。
(二)驱动系统选择高性能的电机作为驱动装置,通过精确的电机控制算法,实现小车的前进、后退、转弯等动作,确保小车能够在火灾现场灵活移动。
(三)火源探测系统采用多种传感器组合来探测火源,如温度传感器、烟雾传感器和红外传感器等。
这些传感器能够实时感知环境中的温度变化、烟雾浓度和红外辐射,从而准确判断火源的位置和范围。
(四)定位系统利用 GPS 定位模块和惯性导航系统,实现小车在室内外环境中的精准定位,为导航和灭火操作提供准确的位置信息。
(五)灭火装置搭载适合的灭火设备,如干粉灭火器或二氧化碳灭火器。
灭火装置的控制通过电磁阀和喷头实现,能够根据火源的情况调整灭火剂量和喷射方向。
三、软件系统设计(一)数据采集与处理通过传感器采集到的环境数据,经过滤波、放大和模数转换等处理,得到准确、可靠的信息。
(二)火源识别算法运用先进的图像处理和模式识别技术,对采集到的温度、烟雾和红外图像进行分析,识别出火源的特征和位置。
(三)路径规划与导航算法根据火源位置和环境信息,规划出最优的行驶路径。
导航算法结合定位系统的数据,实时调整小车的行驶方向和速度,确保小车能够准确、快速地到达火源位置。
(四)灭火控制算法根据火源的大小、类型和距离等因素,计算出合适的灭火剂量和喷射时间,控制灭火装置进行有效的灭火操作。
四、系统集成与测试在完成硬件和软件的设计后,进行系统集成和测试。
基于单片机的智能灭火小车设计

基于单片机的智能灭火小车设计摘要:如今,我国正处于经济迅猛发展的时期,人民的生活水平得到普遍提高,居住环境和生活环境也不断的改善,但同时,我国的消防安全隐患仍是个巨大的问题。
每年,我国的火灾事故频频出现,尤其是发生了重大火灾时,消防工作人员自身在抢救时也面临着生命的危险,甚至有时候根本无法达到目的地进行灭火抢救。
如何能在高效灭火的同时保障消防员的生命安全,是我们当今所考虑的问题,于是,当代人们想出了智能灭火小车,由机器代替人们进行一些不可完成的工作,同时也能减少生命和财产的损失。
关键词:智能灭火小车;MX1508;STC89C52引言基于单片机的智能灭火小车设计的研究背景,源于对火灾扑救效率和安全性的需求和对智能科技的追求。
通过单片机技术的应用,可以实现智能灭火小车的自主导航、实时感知、智能控制等功能,提高灭火效率和消防安全,同时也为智能科技的发展提供了基础和支撑。
本次设计的研究旨在设计一个基于单片机的智能灭火小车,能够实现火源的检测并且自动寻迹前往进行灭火。
并结合了蓝牙模块,可以实时向手机反馈小车的运转状况,也可以通过手机发送指令控制小车的运行。
1系统硬件介绍1.1单片机最小系统STC89C52单片机最小系统电路是一种基于STC89C52单片机的基本电路,包括STC89C52芯片、11.0592MHz晶振和复位电路。
晶振提供时钟信号,复位电路用于初始化单片机,为其提供稳定的工作环境,实现基本的操作和程序运行。
这个最小系统电路是STC89C52单片机开发和应用的基础。
1.2避障检测模块电路HC-SR04超声波检测模块是一种常用的超声波测距模块,包含超声波发射器和接收器。
它通过发射超声波脉冲并接收其回波来测量物体与模块之间的距离。
模块工作原理是通过发送一个短脉冲的超声波信号,然后计算从发射到接收回波的时间差来确定距离。
HC-SR04模块广泛应用于无人机、机器人、智能小车等领域,提供非接触式、精确的距离测量功能。
毕业设计--全自动消防小车

毕业设计--全自动消防小车目录绪论 (1)1系统方案选择 (2)1.1任务要求 (2)1.1.1 设计任务 (2)1.1.2 设计要求 (3)1.2总体设计方案 (3)1.3方案选择与分析 (3)1.3.1控制器分析与比较 (3)1.3.2电动车车体的选择 (4)1.3.3电机的选择与分析 (5)1.3.4电机驱动电路方案选择 (5)1.3.5轨迹探测模块设计与比较 (5)1.3.6火源检测设计与比较 (6)1.3.7电源模块 (7)1.3.8避障模块设计与分析 (7)1.3.9灭火模块 (8)1.4最终方案 (8)2硬件实现及单元电路设计 (9)2.1 STC89C52单片机系统概述及其引脚功能介绍 (9)2.1.1 STC89C52单片机系统概述 (9)2.1.2 单片机引脚功能 (10)2.2光电对管电路的设计 (12)2.3火焰传感器及应用 (14)2.4电机驱动电路的设计 (15)2.5灭火模块设计 (17)2.6避障功能的实现方法 (17)3软件系统设计 (17)3.1编译语言及编译环境 (17)3.1.1汇编语言的概述 (18)3.1.2 C语言概述 (18)3.1.3 编译语言及编译环境综述 (18)3.2程序解析 (19)3.2.1各函数功能 (19)3.2.2程序流程图 (25)4测试结果 (25)结束语 (27)致谢 (28)参考文献 (29)附录A:程序清单 (31)绪论现在,随着科技的快速发展,国内外对小型智能系统的应用越来越广泛,种类也越来越多。
本题目就是结合有关科研项目而确定的设计类课题,所设计的智能寻迹灭火小车应能够实现自动发现火源、自动寻迹、自动前进接近火源并完成灭火任务的功能。
根据题目的要求,智能寻迹灭火小车控制系统采用一片STC89C52单片机作为本控制系统的主控芯片,硬件包括以下几个模块:驱动电机模块、寻迹传感器模块、单片机控制模块、火源传感器模块、风扇模块、电源模块。
毕业论文-智能灭火小车设计

毕业论文-智能灭火小车设计精品文档题目智能灭火机器人设计学院自动化学院专业电气工程及其自动化班级电气0604成员贺昌忠、罗海峰、李晓进、李建青2008年11月18日摘要本次设计CPU采用Atmel公司的AVR系列单片机中的Atmega16L。
完成的是学校组织的灭火机器人大赛。
完成的作品基本功能要求在规定的场地中尽快寻找到火源,然后在尽可能短的时间内作出灭火动作。
本作品使用AVR产生PWM波,控制小车的直流电动机,利用红处开关管探测障碍物,使得小车能够避开障碍,找到火源,从而做出灭火动作。
同时使用液晶显示各个阶段小车的任务,使得我们对小车的运行有一个很好的了解。
关键词:Atmega16L 智能小车光电开关 PWM 液晶显示智能灭火机器人一设计目的与设计要求此次比赛的场地如下图1所示,图中的H区为小车的起始地区域,蜡烛在图中圆形的区域内,中间的黑色线条表示场地中的木板,整个场地的场面为黑色,其中起跑线为白线,另外在火灾区的入口以及蜡烛之前的半圆处也各有一条白线。
场地中各处的尺寸如图中所标(单位均为mm),设计要求小车能够避开障碍物(木板),在最短时图1 灭火机器人比赛场地间内找到火源所在的区域,然后将火吹灭,要求小车整体外形尺寸限制在30cm×30cm×30cm之内,包括机器人的触角、探测物及装饰物。
二方案设计与论证根据设计的目的与要求,经过讨论我们一致选定左手法则,即小车一直延左墙走,当遇到障碍物就右转,直到进入火灾区时检测到白线改为右手走法,再利用蜡烛前面的白线检测火源。
因此设计的小车要求能够及时调节前进的方向,以避开障碍物,顺利找到火源。
1.直流调速系统鉴于价格和功能的考虑,我们选择了直流电机,通过PWM控制小车的速度以及方向。
电机驱动部分有以下两种方案:方案一:使用MOSFET构成H桥式驱动电路,利用PWM波形来控制小车的速度,再用单片机两个I/O口控制电机旋转方向,此电路驱动功率比较大,小车的转速比较快。
基于单片机的智能灭火小车设计

目录摘要 (I)Abstract (II)引言 (3)第一章智能灭火小车整体设计 (4)1.1 整体设计任务 (4)1.2 整体设计要求 (4)1.3 智能灭火小车系统整体方案设计 (4)1.3.1 智能灭火小车整体模块设计 (4)1.3.2 智能灭火小车整体设计方案选择 (5)第二章智能灭火小车的硬件设计 (7)2.1 智能灭火小车系统硬件基本组成部分的设计方案 (7)2.1.1 控制器模块 (7)2.1.2 火源检测模块 (8)2.1.3寻光电路模块 (8)2.1.4电机驱动模块 (9)2.1.5灭火模块 (12)2.1.6电源模块 (12)2.2智能灭火小车系统控制部分的设计思想 (12)2.2.1 控制部分 (12)2.2.2控制部分单元电路图 (13)2.3智能灭火小车系统检测部分的设计思想 (13)2.4系统各模块的最终方案 (14)第三章智能灭火小车的软件设计 (14)3.1 智能灭火小车系统的软件设计 (15)3.2智能灭火小车主程序流程图 (15)结论 (19)致谢.............................................. 错误!未定义书签。
参考文献.. (21)附录 A ............................................. 错误!未定义书签。
附录 B ............................................. 错误!未定义书签。
附录 C ............................................. 错误!未定义书签。
附录 D ............................................. 错误!未定义书签。
基于单片机的智能灭火小车设计摘要:当今社会,火灾在现实生活中普遍存在,被称为自然界三大灾害之一。
当火灾发后,灭火工作坏境恶劣时,人工不能完成一些灭火任务,此时便可以使用智能灭火小车去完成相应的任务。
智能灭火小车的设计与实现

智能灭火小车的设计与实现它可以按照你给定的路线行走,找到光源并尽快的行走到光源附近,启动风扇(相当于灭火),灭火后还可以按照以前的路线继续前进。
这个工作受地面摩擦、机器人惯性、机器人电机的转数差、电压变化等多个因素影响,它模拟了现实机器人处理火警的过程,灯泡代表燃起的火源,机器人必须找到并熄灭它。
下面为机器人灭火的一般特性以及系统的构成:方案本方案具有以下七个模块组成:单片机控制模块、驱动模块、传感器模块、灭火模块、电源模块、循线模块、寻光模块。
1.控制模块采用STC89C52RC(STC 89C52RC数据手册)单片机作为本系统的核心控制芯片。
能对其进行一系列处理,根据处理结果,驱动电机做相应的运动,并能控制风扇转动进行灭火操作。
2.驱动模块驱动模块采用L298芯片与两个直流电机,该芯片能够接收单片机发出的控制信号,同时驱动两个直流电机运动。
3. 传感器模块传感器模块采用红外传感器和光敏电阻(光敏二级管)传感器两种传感器,红外传感器探测行进路面,光敏电阻传感器探测前方的光源(火焰),并将探测到的数据传到STC89C52RC单片机进行模数转换。
4. 灭火模块灭火模块采用直流风扇,用5V电磁继电器作为控制开关控制风扇的停转。
5. 电源模块锂电池稳压,使机器人动作的正常运行。
6. 循线模块它是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。
7.寻光模块寻光模块是根据电阻阻值的大小变化引起电压的变化,与给定值作比较,发送给单片机,当大于给定值则为1(高),当小于给定值则为0(低)。
然后由单片机来控制机器人的各种动作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能灭火小车设计目录1绪论 (1)1.1研究的背景和意义 (1)1.2本次论文设计的主要任务 (1)2系统方案设计 (1)2.1总体设计框图 (1)2.2核心控制单元的选择 (2)避障方案设计 (5)2.4小车选择 (11)3主控制模块主程序设计 (12)3.1红外循迹模块子程序设计 (12)3.2红外避障模块子程序设计 (14). 153.3电机控制子程序设计 (15)结论 (17)参考文献 (18)附录 (20)1绪论1.1研究的背景和意义在现代化社会中需要使用大量的电器,而当电器使用不当或者是老化的时候可能引发火灾。
当火灾发生后,在消防队赶来之前有一段时间,这段时间可能会造成重大的人员财产伤亡,而且在火势很大的情况下,消防队员可能会有生命危险,在一些恶劣的情况下人类不方便靠近智能汽车火灾产生于第一次火灾,为了有效地扑灭了火灾,人员伤亡和财产损失降到最低。
1.2本次论文设计的主要任务这次研究的课题主要有如下几点的内容MCU控制模块外部中断程序2系统方案设计2.1总体设计框图MCU是本系统的控制核心,负责处理由红外对管循迹模块,红外避障模块得到的电平信号。
最后单片机把信号处理的结果传递给小车电机模块,让小车做出正确的反应。
系统结构框图如下图所示。
总体设计框2.2核心控制单元的选择AT89C51的主要的特性•4K字节可编程FLASH存储器•与MCS-51 兼容•数据保留时间:10年•寿命:1000写/擦循环三级程序存储器锁定•全静态工作:0Hz-24MHz•32可编程I/O线•128×8位内部RAM•5个中断源•可编程串行通道•低功耗的闲置和掉电模式该系统采用AT89C51单片机为中央处理器。
循迹模块方案设计方案1:使用光敏电阻来做光敏探测器光敏电阻随环境光线的变化而变化。
当光照在上面有白色的线,反射光是比较强的,当光照射在黑色的线,反射光会比较弱。
因此,光敏电阻以白色和黑色的线,电阻的变化。
将比较器输出高电平后,光敏电阻值的变化。
但探测器受光照影响,但我们不能保证光已经在一个稳定的,所以这个方案不能稳定工作。
方案2:用RPR220型光电对管该RPR220反射式光电探测器的发射机和接收机的集成,砷化镓红外发光二极管的发射管,硅平面晶体管的高灵敏度接收机。
其具有如下特点:2、结构紧凑所以体积小。
4、工作性能稳定而且电路结构简单。
方案1容易受到光照影响选择RP所以选择R220型光电对管。
RPR220实物图循迹模块电路图如下图所示为了保证小车沿着黑色线驱动,使用四个探测器平行排列的探测器的位置,如图所示。
图3循迹模块电路图检测器位置避障方案设计方案1:使用超声波探测器超声波探测器的优点超声波探测器的缺点精度不够好,成本高。
同时,超声检测有一个很大的弊端,是一个几厘米至几十厘米的盲点,这辆车的避障是一个很大的不便方案2:使用红外避障传感器红外避障传感器具有很强的抗背景光干扰能力外,可在阳光下工作,这是与信号发送和接收的要求一致。
红外避障传感器可广泛应用于管道件,智能车辆和机器人的避障等众多场合所以,灭火小车最终使用红外避障传感器。
E18-D80NK加调制发射管调制器整流稳压接电源整流稳压解调器时钟逻辑负载放大器接电源加调制发射管发射器接收器E18-D80NK原理图E18-D80NK电气特性如表3.1。
表3.1 E18-D80NK电气特性红色绿色黄色工作电压工作电流驱动电流感应距离VCC GND OUT 5VDC 10-15mA 100mA 3-80CM避障模块采用三只红外避障传感器,安装于小车两侧及下中央,可以检测两侧和正前方是否有障碍,检测后将信号送入单片机,单片机对信号进行处理并发出相应的信号驱动小车电机,使小车躲避障碍。
单片机的PB0、PB1、PB2 端口分别接左中右三个传感器的硬件电路。
小车右转2.3电机驱动方案选择方案1:继电器控制电动机的开或关由继电器进行控制,小车的速度由开关的切换进行调整。
此方案的优方案2:使用L298驱动芯片L298芯片的电气特性电压电流功率L298的主要特点工作电压高输出电流大额定功率25W46VL298的结构与功能功能性负载端在 out1、out2 ,out3、out4 之间分别接上2个直流电机L298 引脚的功能Pin1和Pin15Enableinput1~input4 输入控制电位L298N引脚图方案1:采用步进电机步进电机的优点步进电机的缺点所以步进电机不适合。
方案2:采用直流减速电机经过分析,步进电机不适用于汽车设计的要求,所以用直流电机车驱动电机电路ENA IN1 IN2 直流电机状态0 X X 停止1 0 0 制动1 0 1 正转1 1 0 反转1 1 1 制动若要对小车进行转向控制,则需要对ENA和ENB输入不同的PWM信号,来实现直流电机的差动转速,从而实现小车的转弯。
本设计中有微调转弯和转弯两种转弯状态,微调转弯是其中一个PWM信号不变,另一个的占空比减少一半。
2.4小车选择选用常见的智能小车模型,小车总长20cm,宽140cm,长25cm.车轮直径6cm。
3主控制模块主程序设计主控制模块主程序流程图如下图,主要用于小车的总体控制,组合各个子程序模块,实现小车的功能整合。
计算机将最终通过小车驱动程序控制小车,实现小车的循迹和避障,从而实现本设计的要求。
图主程序流程图3.1红外循迹模块子程序设计红外循迹模块子程序主要采集外部电路红外对管的信号进行编译处理,以便判断小车的下一步动作。
流程图如下图所示。
当红外对管检测到黑线时所在红外对管输出高电平,外围电路红外对管状态进行信号编码后对应表格如表4.1,将信号进行处理编码之后,判断信号类型,当信号为:1000,1100,1110,0100时单片机送出左转信号;当信号为:0001,0011,0111,0010时单片机送出右转信号;当信号为:0111,1111时单片机送出直走信号;当信号为:0000时停止。
而信号0101,1010,1101,1011,1001为无效信号。
红外循迹模块子程序流程图111000101001100110开始初始化接收信号信号处理信号判断左转信号右转信号直走信号停止100011001110010000010011011100100110111100000110103.2红外避障模块子程序设计红外避障模块子程序流程图如下图所示。
子程序利用红外线光电传感器检测前方障碍物(通过红外避障模块的电位器可以调节红外传感器的检测距离)在定距(15cm )之内便视为出现阻碍行动的障碍物,反之视为无阻碍行动的障碍物。
图4红外避障程序流程图此子程序通过单片外避障传感器的信息,当前方无15cm 内障碍物时小车保持前进状态,若有障碍物则可通过小车前方及左右方的红外避障传感器,获得障碍物的具体情况进行信息处理编码,编码方式如下表4.2。
开始初始化信息编码处理信号判断发送左转信号发送停止信号发送右转信号发送前进信号100110010000101001011111将外部信息进行编码后,通过对信号的判断,控制小车的移动方向:探测结果111,表明前方15cm内无障碍物单片机送出“前进”指令,小车保持前进状态;探测结果000,表明前方及左右两边15cm内均有障碍物,单片机送出“停止”指令;探测结果若为101,则前方15cm内有障碍物左右两边都无障碍物,单片机送出“右转”指令(左右均无障碍物默认右转);探测结果001,表明前方及左边15cm内有障碍物,单片机送出“右转”指令;探测结果100,表明前方及右边15cm内有障碍物,单片机送出“左转”指令;探测结果110,表明右边15cm内有障碍物,单片机送出“左转”指令;探测结果011,表明左边15cm内有障碍物,单片机送出“右转”指令;探测结果010,表明左边及右边15cm内有障碍物,单片机送出“停止”指令。
红外避障模块外围电路信息处理编码表3.3电机控制子程序设计电机控制子程序等待单片机发送指令,接受到指令后,判断指令类型,从而控制驱动电机电路的输出,控制小车的运动状态。
流程图如图4.5所示。
当接收指令0x00:无数据,无PWM波,无方向信号。
当接收指令0x01:小车前进,两个电机驱动器给予相同的PWM波,相同的方向信号。
当接收指令0x02:小车后退,在前进的基础上改变方向信号。
当接收指令0x03:小车停止,无PWM波,无方向信号。
当接收指令0x04:结合循迹模块的信号向左微转或左转。
当接收指令0x05:结合循迹模块的信号向右微转或右转。
图电机控制程序流程图结论本智能小车系统实现了以下功能:(1) 能够按照程序沿预设轨道行驶。
小车在行驶过程中不仅能够实现直道的前进还能实现弧形轨道的前进。
若有偏差,能够自动更正,返回原来预设的轨道上来。
(2) 当小车检测到前方有障碍物时,能自动向右转弯行驶,避开前方障碍。
探测到左右方向有障碍时,也能自动的避开障碍行驶。
从运行情况上看,循迹效果符合要求,而避障效果不太理想。
能够使我熟悉以前的知识。
在本次论文中有很多不足之处,还需要改正。
参考文献00附录#include<reg52.h>#define uint unsigned int#define uchar unsigned charuint shaomiao ;bit CLK;/*uchar code table_m[]="Mea:";uchar code table_s[]="Set:";uchar code table_qd[]="<ON> ";uchar code table_tz[]="<OFF>";uchar code table_bengsu[]="speed:";*/sbit start_stop=P2^0;sbit s_fire=P2^1;sbit put_fire=P2^2;sbit left_C=P2^3;sbit right_C=P2^4;sbit head_C=P2^5;sbit hou_C=P2^6;sbit mie=P2^7;sbit IN1=P3^0;sbit IN2=P3^1;sbit IN3=P3^2;sbit IN4=P3^3;sbit ENA=P3^4;sbit ENB=P3^5;sbit RS=P3^6;sbit E=P3^7;void DelayMS(uint z){uint x,y;for(x=z;x>0;x--)for(y=120;y>0;y--);}/*************液晶显示函数****************//****液晶延时*****//* void lcd_delay(uint ms){uchar i;while(ms--){for(i=0;i<20;i++);}}*//************液晶写命令函数***************/ /*void lcd_write_com(uchar com){lcdrs=0;P0=com;lcd_delay(5);lcden=1;lcd_delay(5);lcden=0;}*//************液晶写数据函数****************/ /* void lcd_write_dat(uchar dat){lcdrs=1;P0=dat;lcd_delay(5);lcden=1;lcd_delay(5);lcden=0;}/************液晶初始化函数***************/ /* void lcd_init (void){lcd_write_com(0x38);lcd_write_com(0x0c);lcd_write_com(0x06);lcd_write_com(0x01);}/************三位数显式******************/ /*void lcd_sanweixianshi(uchar wz ,uchar xs) {lcd_write_com(wz);lcd_write_dat(xs/100+0x30);lcd_write_com(wz+1);lcd_write_dat(((xs/10)%10)+0x30);lcd_write_com(wz+2);lcd_write_dat(xs%10+0x30);}/************键盘扫描函数***************/ void keyscan(){if(start_stop==0){DelayMS(10);if(start_stop==0){shaomiao=1;}}if(s_fire==0){DelayMS(10);if(s_fire==0){shaomiao=2;}}if(put_fire==0){DelayMS(10);if(put_fire==0){shaomiao=3; }}if(left_C==0){DelayMS(10); if(left_C==0){shaomiao=4; }}if(right_C==0) {DelayMS(10); if(right_C==0) {shaomiao=5; }}if(head_C==0) {DelayMS(10); if(head_C==0) {shaomiao=6; }}if(hou_C==0){DelayMS(10); if(hou_C==0) {shaomiao=7; }}}/*******主程序********/void main(){/* TMOD=0x02;TH0=0x04;TL0=0x00;IE=0x82;TR0=1;lcd_init();*/mie=0;while(1){keyscan();switch (shaomiao){case 1:ENA=1;ENB=0;IN1=1;IN2=0; IN3=0;IN4=0;mie=0;break;case 2:ENA=0;ENB=0;IN1=0;IN2=0; IN3=0;IN4=0;mie=0;DelayMS(10);ENA=1;ENB=1;IN1=1;IN2=0; IN3=1;IN4=0;mie=0;break;case 3:ENA=0;ENB=0;IN1=0;IN2=0; IN3=0;IN4=0;mie=1;break;case 4:ENA=1;ENB=0;IN1=1;IN2=0; IN3=0;IN4=0;mie=0;break;case 5:ENA=0;ENB=1;IN1=0;IN2=0;IN3=1;IN4=0;mie=0;break;case 6:ENA=1;ENB=1;IN1=1;IN2=0; IN3=1;IN4=0;mie=0;break;case 7:ENA=1;ENB=1;IN1=0;IN2=1; IN3=0;IN4=1;mie=0;break;}}}void Timer0_INT() interrupt 1{CLK=!CLK;}。