文档详情

灭火小车控制系统毕业设计论文

daj****de
实名认证
店铺
DOCX
854.51KB
约38页
文档ID:152598577
灭火小车控制系统毕业设计论文_第1页
1/38

GuBngdong College of Industry & Commerce灭火小车控制系统的设计系 别:班 级:学生姓名:学生学号:指导老师: 完成日期:电气自动化系10电子信息技术陈旋1018103彭卫东2013-5-15随着社会与国家的发展,在经济迅速增长的同时,各种危险场所 不可避免的火灾频繁出现,给社会安全造成了很多隐患,于是现代火 灾及时补救已成为迫在眉睫需要解决的问题,救火早一刻就少一分损 失,消防救援人员固然速度已经很快,但也需要一段不小的时间,而 且进入救 火现场还有生命 危险的可能,于是消防机器小车的 理念诞生 了本文是对灭火小车控制系统进行了设计,采用单片机作为控制核 心,这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控 制功能及可以位寻址操作功能、价格低廉等优点利用其丰富的资源, 实现对各模块的控制;本设计通过加以电源电路、电机驱动、光电传 感电路、火焰检 测电路、灭火风 扇以及其它电路构成,其中电源电路 提供系统所需的工作电源,专用电机驱动芯片驱动电机控制 机器人的 前进后退以及转向,光电对管完成寻迹和避障,光敏电阻传感器检测 火焰,灭火风扇进行灭火。

设计的工作过程是:首先通过,光敏电阻 传感器寻找火源后将信号传递给单片机,单片机根据已设定好的程序 控制机器人运动,完成一系列的灭火动作灭火小车,火焰传感器,单片机,红外线对管目 录摘 要 I第1章绪论 41.1 灭火小车控制系统的设计背景和意义 41.2 国内国际研究现状 41.3 灭火小车控制系统的目标 错误!未定义书签第2章 智能寻迹灭火小车控制系统介绍 62.1 灭火小车系统功能概述 32.2 系统工作原理 42.3 主要设计内容 42.4 本章小结 4第3章系统硬件设计 53.1 硬件设计框图 53.2 硬件设计及主控芯片介绍 83.2.1 AT89C52 主控芯片介绍 83.2.2 避障模块方案设计 73.2.3 电机驱动系统方案设计 93.2.4 电源系统方案设计 错误!未定义书签3.2.5 火焰检测方案设计 123.2.6 车体方案设计 133.2.7 风扇方案设计 133.3 本章小结 16第4章系统软件设计 174.1 软件设计思路 174.2 系统程序流程图 174.2.1 避障模块程序流程图 184.2.2 驱动电机模块程序流程图 194.2.4 风扇模块程序流程图 204.3 软件实现 204.3.1 软件开发平台介绍 204.5 本章小结 24第5章仿真调试 255.1 硬件调试 255.1.1 避障电路驱动电机调试 255.1.2 火焰检测模块的调试 275.5 本章小结 24结论 25致谢 32参考文献 33第1章 绪论1.1 灭火小车控制系统的设计背景和意义火灾在现实生活中是非常普遍的,它被称为三大自然灾害之一。

消防人员 时时刻刻冲到第一线,面临生命危险,在这种背景下,智能寻迹灭火系统应运 而生,实现了对安全防护的质的提高,也大大地减低了消防人员的危险在智 能灭火系统中应用单片机来代替人的思考,还可以实现自动化控制,简化了灭 火的工作流程,使单片机代替多余的消防人员,节省了国家不必要的支出,减 低了危险随着社会与国家的发展,在经济迅速增长的同时,各种危险场所不 可避免的火灾频繁出现,给社会安全造成了很多隐患,于是现代火灾及时补救 已成为迫在眉睫需要解决的问题,救火早一刻就少一分损失,消防救援人员固 然速度已经很快,但也需要一段不小的时间,而且进入救火现场还有生命危险 的可能,于是消防机器小车的理念诞生了灭火小车控制系统的研究除了在科学研究方面具有深远的意义,它也是一 个很好的教学平台通过它可以使学生将理论与实践紧密地结合起来,提高学 生的动手能力、创造能力、协作能力和综合能力目前国家所提倡的素质教育 中,能力培养是核心灭火小车提供了一个对学生的能力进行培养的大舞台 对推动高校的科技创新和产学研一体化产生了积极作用,也为提高我国在智能 机器领域的国际地位做出了积极贡献1.2 国内国际研究现状我国的机器人研究开发工作始于20世纪70年代初,到现在已经历了 30 年的历程。

前10年处于研究单位自行开展研究工作状态,发展比较缓慢1985 年后开始列入国家有关计划,发展比较快在机器人基础技术方面:诸如机器 人机构的运动学、动力学分析与综合研究,机器人运动的控制算法及机器人编 程语言的研究,机器人内外部传感器的研究与开发,具有多传感器控制系统的 研究,离线编程技术、遥控机器人的控制技术等均取得长足进展,并在实际工 作中得到应用在机器人的单元技术和基础元部件的研究开发方面:诸如交直流伺服电机 及其驱动系统、测速发电机、光电编码器、液压(气动)元部件、滚珠丝杠、 直线滚动导轨、谐波减速器、RV减速器、十字交叉滚子轴承、薄壁轴承等均开 发出一些样机或产品但这些元部件距批量化生产还有一段距离我国近几年 机器人自动化生产线已经不断出现,并给用户带来显著效益随着我国工业企 业自动化水平的不断提高,机器人自动化线的市场也会越来越大,并且逐渐成 为自动化生产线的主要方式我国机器人自动化生产线装备的市场刚刚起步, 而国内装备制造业正处于由传统装备向先进制造装备转型的时期,这就给机器 人自动化生产线研究开发者带来巨大商机据预测,目前我国仅汽车行业、电 子和家电行业、烟草行业、新能源电池行业等,年需求此类自动化线就达300 多条,产值约为上百亿元人民币。

我国消防装备研究部门从1997年开始对消防 灭火机器人进行科研开发,2002年6月,由公安部上海消防研究所、上海交 通大学、上海消防局三家单位共同承担的国家863项目〃履带式、轮式消防灭火 机器人"研制成功并顺利通过国家验收消防灭火机器人,又称自行式水-泡沫 消防炮,是一种结合多种消防灭火手段为一体的新型消防装备2002年9月8日,灭火机器人参加公安消防部队北京协作区反恐演习中 受到公安部消防局陈家强局长的高度评价;2002年我国云南、湖北省相继配备灭火机器人;2003年9月,灭火机器人在湖北省首次投入实战;2003年10月,我国江苏省、香港地区、马来西亚开始大规模配备消防灭 火机器人我国灭火小车科研事业从实验室走向生产车间最终战斗在火场一线,为我 国消防装备的发展注入了新鲜血液,填补了国内空白消防的社会意义在于它 将对人类生存安全作为终极关怀,消防装备作为一种重要的火灾扑救手段,已 经在消防灭火救援中显示越来越重要的作用消防装备科研应始终贯彻〃从火场 中来,到火场中去〃的指导思想,贴近火场一线,急火场之所急不仅在我国,在世界上消防工作也是一个大难题,各国政府都千方百计地 将火灾的损失降到最低点。

1984年11月,在日本东京的一个电缆隧道内发生 了一起火灾,消防队员不得不在浓烟和高温的危险环境下在隧道内灭火这次 火灾之后,东京消防部开始对能在恶劣条件下工作的消防机器人进行研究,目 前已有五种用途的消防机器人投入使用遥控消防机器人1986年第一次使用了这种机器人当消防人员难于接近 火灾现场灭火时,或有爆炸危险时,便可使用这种机器人这种机器人装有履 带,最大行驶速度可达10公里/小时,每分钟能喷出5吨水或3吨泡沫喷射灭火机器人这种机器人于1989年研制成功,属于遥控消防机器人的 一种,用于在狭窄的通道和地下区域进行灭火机器人高45厘米,宽74厘米, 长120厘火焰,喷嘴将水流转变成高压水雾喷向火焰消防侦察机器人 消防侦察机器人诞生于1991年,用于收集火灾现场周围 的各种信息,并在有浓烟或有毒气体的情况下,支援消防人员机器人有4条 履带,一只操作臂和9种采集数据用的采集装置,包括摄像机、热分布指示器 和气体浓度测量仪消防的社会意义在于它将对人类生存安全作为终极关怀, 消防装备作为一种重要的火灾扑救手段,已经在消防灭火救援中显示越来越重 要的作用1.3灭火小车控制系统的目标本设计开发的智能灭火小车控制系统应用范围十分广泛,设计的灭火小车 应该能够实现自动避障、检测火源、吹风灭火、报警等功能,可通过光电传感 器的监控来进行设定小车是否前进。

本设计具有很好的开发前景,将会受到广 大安全防护人员的欢迎第2章 灭火小车控制系统介绍2.1 灭火小车控制系统功能概述经过开题期间的文献查阅和实际情况调研,了解到目前的消防车的研究与设计 一般采用的方案大都为两种方案:1、通过人为报警,再由消防人员开着小车去 灭火那样消防人员会随时面临着危险通过自己的想法采用的方案为:通 过火焰传感器、检测到火灾发生地点的温度的因素与其标准区间值不符,系统 会自动派出无人消防车进行灭火等操作2、遥控小车过去把火源吹灭,此方法 实现操作简单第一种控制系统的最大特点:1. 结构简单2. 体积小、功率低3. 信号无干扰,传输准确度高4. 成本低廉5. 安全系统各个功能模块简介:1. 避障模块:主要用来给小车做导航避开障碍物前进用2. 电源模块:主要用来分别区分给单片机与电机、水泵驱动模块供电3. 火焰模块:主要用来对火焰传感器给单片机传值的功能4. 电机驱动模块:主要用来驱动两个减速直流电机,实现小车的前进、后 退、前左转、前右转、后左转、后右转、停车等功能5. 风扇驱动模块:主要是用来控制风扇是否吹风,来实现小车灭火功能图2-1 灭火小车控制系统整体模块图2.2系统工作原理1、 在灭火小车控制系统的设计中,工作原理:首先小车检测灭火传感器,是否 有火焰信号,如果没有,小车往前行走。

在行走的过程中光电对十电路检测是 否遇到障碍物,若遇到障碍物,通过单片机控制系统驱动电机绕开障碍物,若 无信号,继续前行当在行走的过程中检测到火焰信号时,单片机控制小车停 止,同时驱动风扇控制电路,将火吹灭2、 首先确定火源位置,利用蓝牙模块跟端匹配,用控制小车走到火源 处,把火吹灭,这过程风扇是不停的转动的2.3主要设计内容用单片机作为控制核心,设计一个灭火小车控制系统设计包括以下内容:(1) 当小车探测到前进前方的障碍物时,可以自动报警调整,躲避障碍物, 从无障碍区通过小车通过障碍区后,能够自动循迹2) 当小车到达火源地后,自动停车同时启动灭火风扇进行灭火,灭掉火 源后,小车继续运动3) 另一个版本就是遥控设计,通过小车蓝牙模块跟之间的通讯,通 过遥控小车到达火源点,把火源吹灭2.4本章小结本章结合目前的智能灭火小车控制系统对当前的控制系统进行了概述,系 统具备的功能以及系统控制的工作原理,通过阅读本章内容可对该系统有一个 总体的了解第3章 系统硬件设计3.1 硬件设计框图本控制系统硬件设计框图3-1如下所示:图3-1 硬件设计框图在灭火小车控制系统的设计中,以单片机为控制核心,用了一片L298N用 于驱动两个减速电机。

12V电源单独给电机供电,5V给单片机供电首先单片 机根据火焰检测电路是否有火焰信号,来判断小车是否前进如果没有该信号, 则一直等待当产生信号驱动小车前进,若遇到障碍物,单片机根据程序设计 的要求做出相应的判断送给电机驱动模块,让小车来实现前进、左转、右转、 停车等基本功能到达火灾地点时,单片机通过品闸管导通风扇控制电路,驱 动风扇灭火另一个版本就是蓝牙模块跟匹配遥控小车道火源点灭火3.2 硬件设计及主控芯片介绍在灭火小车控制系统的设计中,共用了一片AT89C52单片机作为本控制系 统的主控芯片,硬件设计模块共分为:避障模块、电机驱动模块、蓝牙模块、 电源模块、火焰检测模块、风扇模块3.2.1 AT89C52主控芯片介绍AT89C52 简介本系统的核心部件AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位 单片机,片内含2k字节的可反复擦写的只读程序存储器(PEROM)和128字节的随 机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生 产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元, 具有较高的性价比设计本着应用性,因此选择AT89C52单片机作为本控制系统 的中央处理器。

AT89C52 包括:(1) 一个8位微处理器CPU2) 片内数据存储器RAM和特殊功能寄存器SFR3) 片内程序存储器ROM4) 两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计数5) 四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出6) 一个串行端口,用于数据的串行通信7) 中断控制系统8) 内部时钟电路AT89C52单片机的基本组成如图3-2所示To时钟电路SFR 和 RAMROM定时/计数器CPU系 统 总 线并行端口串行端口中断系统P0 P1 P2TXD RXDINTo W TiT1图3-2 AT89C52单片机基本结构AT89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5 个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串 行通信口,看门狗(WDT)电路,片内时钟振荡器此外,AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模 式空闲模式下,CPU暂停工作,而RAM定时计数器串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断 激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式 以适 应不同产品的需求P 1.0140V CCP239P1.10.0P338P1.20.1P437P1.30.2P 1.4536P 0.3P 1.5635P 0.4P 1.6734P 0.5P833P1.70.6RST/VPD9AT89C 5232P0.7RXD/P3.01031EA/Vpp-TXD/P1130ALE/PROG3.1INT /P1229PSEN0 3.2IN T /P1 3.31328P2.7T0/P1427P3.42.6-T1/P1526P3.52.5WR/P1625P3.62.4RD/P3.71724P2.3XTAL1823P22.2XTAL11922P 2.1GND2021P 2.0图 3-3 AT89C52管脚图AT89C52芯片的40个引脚功能为:1. Vcc :电源电压2. GND :地3. P0 口 (P0.0〜P0.7 ):该端口为漏极开路的8位 准双向口,它为外部低8位地址线和8位数据线复用端 口,驱动能力为8个LSTTL负载P1 口 ( P1.0〜P1.7 ):它是一个内部带上拉电阻的8 位准双向I/O 口,P1 口的驱动能力为4个LSTTL负载。

P2 口 ( P2.0〜P2.7 ):它为一个内部带上拉电阻的8 位准双向I/O 口,P2 口的驱动能力也为4个LSTTL负载 在访问外部程序存储器时,作为高8位地址线P3 口 ( P3.0〜P3.7 ):为内部带上拉电阻的8位准 双向I/O 口,P3 口除了作为一般的I/O 口使用之外,每 个引脚都具有第二功能P3 口还用于实现AT89C52的各种功能,如下表3-1所示表3-1 P3 口各功能对照表位线引脚第二功能P 3.010RXD (串行输入口)P 3.111TXD (串行输出口)P 3.212INT (外部中断0 ) 0P 3.313INT1 (外部中断1 )P 3.414T0 (定时器0的计数输入)P 3.515T1 (定时器1的计数输入)P3.616WR (外部数据存储器写脉冲)P3.717RD (外部数据存储器读脉冲)4. RST :复位输入RST 一旦变成高电平,所有的I/O引脚就复位到“1” 当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位 每一个机器周期需12个振荡器或时钟周期5. XTAL1 :作为振荡器反相放大器的输入和内部时钟发生器的输入。

6. XTAL2 :作为振荡器反相放大器的输出3.2.2 避障模块方案设计3.2.2.1 用红外对管电路的设计1、 模块描述该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发 射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线 反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信 号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离, 有效距离范围2〜80cm,工作电压为3.3V-5V该传感器的探测距离可以通过电 位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人 避障、避障小车、流水线计数及黑白线循迹等众多场合2、 模块参数说明1当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离2〜80cm,检测角度35 °,检测 距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位 器,检测距离减少2、 传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大3、 传感器模块输出端口 OUT可直接与单片机IO 口连接即可,也可以直接驱动 一个5V 继 电器;连接方式:VCC-VCC;GND-GND;OUT-IO4、 比较器采用LM393,工作稳定;5、 可采用3-5V直流电源对模块进行供电。

当电源接通时,红色电源指示灯点 亮;6、 具有3 mm的螺丝孔,便于固定、安装;7、 电路板尺寸:3.1CM*1.5CM8、 每个模块在发货已经将阈值比较电压通过电位器调节好,非特殊情况,请勿 随意调节电位器3、模块接口说明(3线制)1 VCC外接3.3V-5V 电压(可以直接与5v单片机和3.3v单片机相连)2 GND 外接 GND3 OUT小板数字量输出接口( 0和1)红外对管模块3.2.3 驱动电机系统方案设计方案1:采用专用芯片L298N作为电机驱动芯片L298N是一个具有高电 压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流 电机,而且还带有控制使能端用该芯片作为电机驱动,操作方便,稳定性好, 性能优良L298N是SGS公司的产品,内部包含4通道逻辑驱动电路是一种二相和 四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接 收标准TTL逻辑电平信号,可驱动46V、2A以下的电机其引脚排列如图3-7 中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号 L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。

5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能 端,控制电机的停转也利用单片机产生PWM信号接到ENA,ENB端子,对 电机的转速进行调节1 L298N的逻辑功能:表 3-2 SHARP GP2D12 实物图ENA(B)iwi aw3)IH2 CN4)电机运行焙况HHL正转HLH反转H同IH2 CN4)同INI (IH3)快速停止2l外形及封装: 乂X停止3 CURRENT SE NSI NG BOUTPUT 45 OUTPUT 32 INPUT 43 ENABLE BINPUT 33 LOGIC PFLY VOLTAG E Vss? GND3 INPUT 2 Z? ENABLE A) INPUT 1E散热片与8脚连堕 图3-7 L298N 实物图SU PPLY VOLTAGE Vs3 OUTPUT 2 OUTPUT 15 CURRENT SE NSI NG A方案2:对于直流电机用分立元件构成驱动电路由分立元件构成电机驱动 电路,结构简单,价格低廉,在实际应用中应用广泛但是这种电路工作性能 不够稳定因此我们选用了方案1图3-8 驱动电机模块原理图驱动电路的设计如图3-8所示:3.2.4 火焰检测系统设计火焰传感器是模拟传感器。

它利用红外敏感型元件AC4067对红外信号强度的检 测并将其转换为机器人可以识别的信号,从而来检测火焰信号如下图为火焰 传感器电路宿号帖E指示灯,低 电平输出指示切亮…接电源地赎时针灵敏度调啧 诬时针灵敏度调低接卸电源 输出TTLfU平"或接单片机)图3-10火焰传感电路火焰传感器可以用来探测波长在700nm〜1000nm范围内的红外线,探测角 度为60º ;,其中红外线波长在880nm附近时,其灵敏度达到最大红外火 焰探头将外界红外光的强弱变化转化为电流的变化,通过A/D转换器反映为0〜 255范围内数值的变化外界红外光越强,数值越小;红外光越弱,数值越大 在机器人设计中,红外火焰探头起着非常重要的作用,它可以用作机器人的眼 睛来寻找火源或其他物体利用它可以制作灭火机器人、足球机器人等3.2.5 车体方案设计方案1:购买玩具电动车购买的玩具电动车具有组装完整的车架车轮、电 机及其驱动电路但是一般的说来,玩具电动车具有如下缺点:首先,这种玩 具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便其次,这种 电动车一般都是前轮转向后轮驱动,不能适应该题目的方格地图,不能方便迅 速的实现原地保持坐标转90度甚至180度的弯角。

再次,玩具电动车的电机多 为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速而且这种电 动车一般都价格不菲因此我们放弃了此方案方案2:自己制作电动车经过反复考虑论证,我制定了左右两轮分别驱动, 前万向轮转向的方案即左右轮分别用两个转速和力矩基本完全相同的直流减 速电机进行驱动,车体前部装一个万向轮这样,当两个直流减速电机转向相 反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐 标不变的90度和180度的转弯在安装时我保证两个驱动电机同轴当小车前进时,左右两驱动轮与前万 向轮形成了三点结构这种结构使得小车在前进时比较平稳,可以避免出现后 轮过低而使左右两驱动轮驱动力不够的情况为了防止小车重心的偏移,前万 向轮起支撑作用对于车架材料的选择,我们经过比较选择了有机玻璃用有机玻璃做的车 架比塑料车架更加牢固,比铁制小车更轻便,美观综上考虑,我们选择了方案23.2.6 风扇模块设计灭火风扇的驱动电路如图3-12所示其中Port接到单片机的P2.5接口上 单片机输出Port控制信号用以驱动灭火电机动作由于选用的是增强型MOS 管,所以,当Port信号为高时,MOS管在V下开始工作,MOS导通,风扇开始 动作,进行灭火;当Port信号为低时,由于增强型MOS管特点,Vgs=0时,厂0。

此时,MOS截止,风扇不动作 GS °2A1|/ Q1 NPN 图3-11风扇控制电路3.3 本章小结本章通过框图的形式介绍了各个系统模块的设计,将避障模块、驱动电机 模块、火焰检测模块、风扇控制等几部分的设计思路作了详细分析,通过阅读 本章内容可对本智能灭火小车控制系统的硬件设计全面了解系统软件设计对于一个完整控制系统来说,除了要有一个完整的硬件控制以外,还应该 有一个能充分发挥硬件功能的软件系统来支持它,本章将详细介绍避障模块、 电机驱动、火焰检测模块、风扇驱动的软件实现方法4.1 软件设计思路根据总体设计的思想及本系统实现的功能,在软件设计中完成以下功能机,退、1. 避障模块主程序:由是否遇到障碍物产生信号的操作,信号返回到单片 再通过单片机来实现相应的功能2. 电机驱动模块主程序:主要用来控制两个直流减速电机,实现前进、后 前左转、前右转、后左转、后右转、停车等功能火焰检测模块主程序:主要通过火焰传感器探测是否有火源风扇模块程序:主要用来控制一个报警器和风扇,实现报警、吹风等功3.4.5.4.2系统程序流程图蓝牙模块:通过小车蓝牙模块跟匹配,达到遥控小车灭火的目根据软件的总体设计思想及本系统所要实现的功能,进行其系统程序流程 图设计,本系统程序流程图共分为:避障程模块序流程图、电机驱动模块程序 流程图、火焰检测模块程序流程图、风扇模块程序流程图。

图4-2 系统功能流程图4.2.1 避障模块程序流程图在小车前进的过程中,分布在小车前,左后,右后的三个传感器不停地进 行扫描,若有一个方位遇到障碍物,通过单片机驱动电机控制电路,实现左转, 右转,后退等功能程序跳转到对应的位置执行,从而绕开障碍物,继续朝着 火源的方向继续前进其寻迹模块程序流程图如下图4-1所示:右转模块一I动机块彝电模图4-3 避障模块程序流程图4.2.2 驱动电机模块程序流程 图程序运行后,首先进行初始化将AT89C52单片机的P1 口全部置0,等到有 火源信号时,然后就通过单片机控制电机驱动电路前进具体如下图4-4和表 4-1所示:驱动电机模块程序开始驱动电机模块程序初始化图4-4 驱动电机模块程序流程图表4-1驱动电机模块程序功能对照表接收真值表(前左,后 右)对应功能1-1A r_L.刖进0-0停车1-0左转0-1右转4.2.3 灭火流程图灭火子程序的流程图如图4-5所示当机器人检测到火焰时,由于有障碍物的存在,需要对不同坐标上的 火焰分别进行判断由于设计中使用一个风扇,安装在机器人的正前方,没有使用舵机的 方案,风扇只能朝前方吹风为了提高灭火的准确度,我们要让机器人正 面对准火焰,否则,可能会出现长时间灭不了火的现象。

对火时让机器人 走到火焰附近,判断左右两边火焰强度,左边火焰强,左转一点,右边火 焰强,右转一点,每对一次火,前进一点图4-5 灭火子程序流程图4.2.4 风扇模块程序流程图该模块程序与驱动电机模块采用的驱动电路是一样的都是用L298N针 对该模块程序流程的相应调用而执行的模块如下图4-5所示:直流电机驱动子程序返回图4-5 水泵风扇模块程序流程图4.3 软件实现章介绍了此次毕业设计使用的编程工具Keil uVision4 ,介绍了主要的控 制模块程序,编写相应的控制程序,主要是寻线控制程序和灭火控制程序4.3.1.软件开发平台介绍编程语言选用C语言汇编语言作为传统的嵌入式系统的编程语言,具有 执行效率高的优点,但其本身是低级语言,编程效率较低,可移植性和可读性 差,维护极不方便而C语言以其结构化,容易维护,容易移植的优势满足开 发的需要MCS-51是支持C语言编程的编译器,它主要有两种:Franklin C51编译器 和Keil C51编译器,我们简称C51C51是专为MCS-51开发的一种高性能的C 编译器由C51产生的目标代码的运行速度极高,所需存储空间极小,完全可 以和汇编语言媲美。

Keil软件公司提供的专用8051嵌入式应用开发工具套件,可以编译C源 文件、汇编源文件、连接定位目标模块和库、生成并调试目标程序,为实际的 每一种8051及其派生系列产品生成嵌入式应用系统Keil C51交叉编译器兼 容ANSI (美国国家标准协会)C编译器,专用于为8051微控制器系列生成快速 紧凑的目标代码使用Keil 8051开发工具套件,以工程的形式组织各种文件, 工程开发周期与任何其他软件开发工程的周期大致相同四Vision2 IDE是Keil公司提供的用于开发MCS-51系列芯片的汇编语言与 C程序的集成开发环境,是标准的Windows应用程序,同其他Windows应用程 序一样,|iVision2 IDE环境包括菜单、工具条、编辑及显示多种窗口四Vision2 IDE支持使用的Keil C51工具,包括C编译器、宏汇编器、连接定位器、目标代码到HEX的转换器4.4 本章小结本章用流程图的方法说明了智能寻迹灭火小车控制系统的软件设计,并对 系统中主要程序的设计作了详细说明,通过阅读本章内容可以全面了解本控制 系统的软件设计第5章 仿真调试5.1 硬件调试硬件调试是用基本测试仪器(万用表、示波器等)和自己编写的测试程序 进行相关的测试,来检查系统硬件中存在的问题。

5.1.1 避障电路驱动电机调试图5-1 小车前进图本章小结本章将硬件调试与软件调试分开叙述,并对调试过程中出现的问题作了详 细的分析通过对硬件调试的基础上,根据其功能和特性,完成了软件的调试, 整个程序能够实现预定的功能在综合调试中尤其要注意各子程序之间的调用、 返回阅读本章可对智能寻迹灭火小车控制系统的整个调试过程了解得很全面结论本次毕业设计按照课题“小区智能灭火车”应实现的功能设计了所需的硬 件电路,以AT89C52为主控中心L298N芯片共同组成了本系统的硬件电路 根据硬件电路设计了相应的软件程序,本次设计主要完成了以下功能:(1) 、对火焰温度的感应;因为要准确的读出温度值,必须按照18B20的时序进行相应的操作时序需 要自己去一点一点的调整2) 、控制小车避障前进;当启动小车时,这时有一个瞬时的电流,变的很大,容易使其它的程序跑 飞,所以也得需要调用时序程序来缓解3) 、控制报警和风扇灭火当启动小车前进时一样,也有很大的瞬时的电流所以需要延时程序来调 整通过硬件调试及软件的编程,达到了毕业设计的设计要求,实现了基本功 能以及其一些扩展功能该系统不仅能够对风扇的灵活控制,还可以来实现小 车的运动控制,并可根据用户的不同需求对小车进行调整。

使得人们能够不仅 方便而且还很灵活的控制小车的前进、后退、前左转、前右转、后左转、后右 转、停车等相应的功能该控制系统的后继发展应该针对不同行业的需要,扩 展其遥控功能、增加表现方式,从而更好的为广大用户服务,扩大用户群体通过写此论文,使对各芯片的工作原理有了更深入的认识,使能够理论联 系实际,同时也建立起了很强的思考能力,并学习到了课本以外的东西,最重 要的是锻炼了独立思考和独立动手的能力,这将为以后走向工作岗位打下了坚 实的基础致谢在本次的设计过程中,在这里 首先要感谢 我的导师他平日里工 作繁多,但在我 做毕业设计的每个阶段,从查阅 资料,设计草案的确 定和修改,中期检查,后期详细设计等整个过程中都给予了我悉心的 指导因为我的基础有限,但是老师仍然细心地纠正设计中的错误 如果没有老师的细心帮助,此次设计的完成将变得非常困难除了 敬佩老师的专业水平外,他的治学严谨和对科学研究的精神 也是我永 远学习的榜样,并将积极地影响我今后的学习和工作生活广东工贸职业技术学院有着优良的学风和良好的学习风气,它也 深深的影响着我们,在此次毕业设计当中,各位老师对我们要 求严格, 同时也积极的帮助我们。

自从设计开始,查找资料、提出设计思路、 逐步的完善功能,都得到了导师耐心、细致的指导尽管导师们公作 繁忙,但他们 从来没有因为公事而延误对 我们的指导,每周定 点到办 公室单独 指导我们的设计我的设计顺利的通过了末检,这与老师们 的热情帮助是分不开的并且在毕业设计这段期间我还被各位老师以其严谨的学风、渊博 的知识使 我受益匪浅至此在 论文完成之即,要向尊敬的各位老师对 我的教育表示衷心的感谢在本人毕业设计期间,老师给予我不仅是 在设计上的教导和帮助,还有他们那种平易近人,吃苦耐劳的工作精 神;治学严谨的态度;谦逊的品格永远是我学习的榜样,可以这么说, 没有各位 老师的指导和帮助,我的毕业设 计不可能这样顺 利在此, 我要向院系的各位老师,以及在毕业期间给予我各方面指导和帮助的 老师们、同学们表示感谢最后,再次感谢本次毕业设计的所有导师,是你们用辛勤的劳动、 无私的奉献换来了我们巨大的进步正是因为有了你们的指导和帮 助,才能使我们顺利的完成本次毕业设计谢谢你们!参考文献1邬宽明.单片机外围器件实用手册.北京航空航天大学出版社,2005 : 20-252 和立民.单片机高级教程.北京航空航天出版社,2000 : 35-60 : 80-1013 余孟尝.数字电子技术基础简明教程.高等教育出版社,1999 : 371-3804 楼然苗,李光飞.51系列单片机设计实例,北京航空航天大学出版社,2005 : 148-1605 梅丽凤,王艳秋,汪毓铎,张军.单片机原理及接口技术.清华大学出版 社,北京交通大学出版社:102-1306 穆兰,刘自然主编.单片微型计算机原理及接口技术.机械工业出版社, 1998:50-797 高明.单片微机接口与系统设计.哈尔滨工业大学出版社,1995 : 35-698张毅坤,陈善久,裘雪红.单片微型计算机原理及应用.西安电子科技大 学出版社,1998 : 120-1419 何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社, 1995:133-15110潘永雄,沙河,刘向阳.电子线路CAD实用教程.西安电子科技大学出版 社,2004: 10-11811薛钧义,张彦斌.MCS - 51系列单片微型计算机及其应用.西安交通大学 出版社,1997 : 40-6512 Motorola INC . MC68HC11 Reference Manual , 1991 : 66-8013 Honeywell Magnetic Sensor Products User’s Manual . Honeywell Application Note , 2001 : 97-110 附录 1系统硬件原理图附图3 -1驱动电机模块硬件原理图附录2从串口接收的数据//左红外对管,检测小车前方障碍//右红外对管,检测小车是否碰到台阶//L298输入//L298输入//L298输入//L298输入//定义单片机P2 口的第7位(即P2.6)为传感器的输入端//风扇智能版部分程序代码#include#define uchar unsigned char #define uint unsigned int uchar cs1,cs2,num1,num2;uchar code table[]={0,1};uchar Buffer[4] = {0}; // sbit zdg=P2A3;sbit ydg=P2A4;sbit in1=P1A0;sbit in2=P1A1;sbit in3=P1A2;sbit in4=P1A3;sbit DOUT=P2A6;sbit FS=P2A5;sbit FM=P2A2;sbit led1=P2A0;sbit led2=P2A1;void delay(int z)//延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);void init() //初始化函数{TMOD=0x11;TH0=(65536-500)/256;TL0=(65536-500)%256;ET0=1;TR0=1;EA=1;}void main(){ FM=0;init();led1=0;led2=0;while(1){if(DOUT==1)//确定 浓度高于设定值时,执行条件函数{FS=0;in3=1;in1=1;}else//确定 浓度低于设定值时,执行条件函数{FS=1;FM=0;in3=0;in1=0;}if(zdg==1) //如果前方没有检测到障碍,对管输出高电平{in2=0; //L298IN2 为低,小车左轮前进in4=0; //L298IN4 为低,小车右轮前进led1=0;30 |led2=0;}else{in2=1; //如果左方检测到障碍,L298使能端为低,左轮停止(小车转弯)led1=1;delay(1500);in4=0; //1.5秒后转弯结束,继续两轮驱动前进}if(ydg==0){in2=0;led2=1;in4=1; //右轮停止1.5秒后,左轮转弯delay(1500); //转弯结束,小车继续前进}}}void timer0() interrupt 1{TH0=(65536-500)/256;TL0=(65536-500)%256;cs1++;if (cs1==500){cs1=0;num1++;if(num1==2)num1=0;in1=table[num1];num2++;if(num2==2)num2=0;in3=table[num2];}}遥控版部分程序#include#include#define uchar unsigned char#define uint unsigned intuchar Buffer[4] = {0}; // 从串 口接收的数据uint i,j;sbit Left_Positive=P「0;sbit Left_Negative=P「1;sbit Right_Positive=P「2;sbit Right_Negative=P「3;sbit FS=P2"5; // 风扇sbit LeftLight=P2”1;sbit RightLight=P2”2;/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* 名称:Delay_1ms()*功能:延时子程序,延时时间为1ms * x*输入:x(延时一毫秒的个数)*输出:无***********************************************************************void Delay_1ms(uint i)//1ms 延时{uchar x,j;for(j=0;j

RI = 0;}EA = 1;}/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* 名称:Com_Init()*功能:串口初始化,晶振11.0592,波特率9600,使串口中断* 输入 : 无* 输出 : 无个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/void Com_Init(void){TMOD = 0x20;PCON = 0x00;SCON = 0x50;TH1 = 0xFd; // 设置波特率9600TL1 = 0xFd;TR1 = 1; //启动定时器1ES = 1; //开串口中断EA = 1; //开总中断}/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* 名称:Moto_Forward()*功能:电机1、2启动,都是前进,整车表现为前进33 |*输入:无*输出:无***********************************************************************void Moto_Forward(){Right_Negative=0;Left_Positive=0;Left_Negative=1;Right_Positive=1;LeftLight=1;RightLight=1;Delay_1ms(100);}/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个*功能:电机1、2启动,都是后退,整车表现为后退。

输入 : 无* 输出 : 无***********************************************************************void Moto_Backward(){Left_Positive=0;Right_Positive=0;Right_Negative=1;Left_Negative=1;LeftLight=0;RightLight=1;Delay_1ms(100);}/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* 名称:Moto_TurnLeft()*功能:电机1后退,电机2前进,整车表现为左转输入:无*输出:无个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/void Moto_TurnLeft(){Left_Negative=0;Right_Positive=0;Right_Negative=1;Left_Positive=1;LeftLight=0;RightLight=0;Delay_1ms(100);}/个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个* 名称:Moto_TurnRight()*功能:电机1前进,电机2后退,整车表现为右转。

输入 : 无* 输出 : 无***********************************************************************void Moto_TurnRight(){Right_Negative=0;Left_Negative=0;Left_Positive=1;Right_Positive=0;LeftLight=1;RightLight=0;Delay_1ms(100);}void Moto_Stop(){Right_Negative=0;Left_Negative=0;Left_Positive=0;Right_Positive=0;Delay_1ms(100);}void main(){Delay_1ms(100);P2=0xf0;Com_Init();// 串口初始化while(1){ FS=1 ;//风扇部分switch(Buffer[0]){。

下载提示
相关文档
正为您匹配相似的精品文档