智能灭火机器人毕业设计论文_第1页
智能灭火机器人毕业设计论文_第2页
智能灭火机器人毕业设计论文_第3页
智能灭火机器人毕业设计论文_第4页
智能灭火机器人毕业设计论文_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、 智能灭火机器人摘 要 文章对消防机器人进行了研究。介绍了消防机器人的背景并简单描述系统硬件、光电传感器和火焰传感器的工作原理,并附以电路图加以说明,通过传感器连接电压比较器输出电平由MF13处理实现寻找火源。最后由火焰传感器测距输入单片机实现停车并输出信号控制继电器闭合从而控制风扇灭火。论文详细阐述了程序流程和实现过程。此设计以数字集成电路技术为基础并以单片机技术为核心。依据传感器的信号传入单片机实现各种指令处理。小车在接近火源的过程中左右波动前进,躲避障碍物,最后找到火源打开风扇灭火。关键词单片机;光电传感器;灭火装置;复眼目 录1前言32机器人的相关概论6 2.1机器人的发展6 2.2本

2、课题要研究或解决的问题和拟采用的研究手段73硬件8 3.1机器人外观操作面板介绍8 3.2稳压板,灰度检测传感器9 3.3光电传感器,复眼10 3.4执行机构114软件电路设计12 4.1软件总体设计方案13 4.2vjc软件介绍14 4.3子程序16 4.4硬件电路软件电路225总结256参考文献267源程序27前 言目前由于人们的防火意识比较差,生活中火灾频发,消防战士在灭火中牺牲宝贵生命的事件不在少数,迫切要求机器代替人去执行灭火任务。 针对这个问题,前人已经做了很多的研究,有基于MSP430的灭火小车,能实现灭火功能。还有的是人为地控制机器人的活动和灭火,这样使得不得不靠人来控制,浪费

3、人力资源,不能很好的实现灭火的效果。 此设计在前人研究的基础上,通过不断地学习相关的知识,力求对消防机器人设计达到更深的了解和研究,促进消防机器人在火灾中的应用并推广在相关领域的研究,使消防研究工作不断向前发展,具有很大的学术价值。 在未来智能化和机械化的世界中,尤其是在消防事业中,一款好的机器的使用能够达到事半功倍的效果。消防机器人的应用前景非常明朗。 消防机器人随着社会经济的迅猛发展,建筑和企业生产的特殊性,导致化学危险品和放射性物质泄漏以及燃烧、爆炸、坍塌的事故隐患增加,事故发生的概率也相应提高。 一旦发生灾害事故,消防员面对高温、黑暗、有毒和浓烟等危害环境时,若没有相应的设备贸然冲进现

4、场,不仅不能完成任务,还会徒增人员伤亡,这方面公安消防部队已历经诸多血的教训。 尤其是当新消防法出台后,抢险救援已成为公安消防部队的法定任务,面对新时期面临的新情况新任务,也为了更好地解决前述难题,消防机器人的配备显得日益重要。消防部队将面对的火灾和应急救援的形势相当复杂。尤其是在高温、有毒、易燃易爆等复杂环境中,为切实增强消防部队扑救大火的能力,也为更好地保护广大官兵的生命安全,配备消防机器人已势在必行。机器人自60年代初问世以来,经历40余年的发展,己经取得长足进步,社会各行各业皆可见其身影。 从1986年日本东京消防厅首次在灭火中采用了“彩虹5号”机器人后,消防机器人就逐渐在灭火救灾领域

5、得到广泛的应用,消防机器人技术也得到快速的发展。截至目前,消防机器人已经稳步向高端智能机器人前进。目前由于人们的防火意识比较差,生活中火灾频发,消防战士在灭火中牺牲宝贵生命的事件不在少数,迫切要求机器代替人去执行灭火任务。 针对这个问题,前人已经做了很多的研究,有基于MSP430的灭火小车,能实现灭火功能。还有的是人为地控制机器人的活动和灭火,这样使得不得不靠人来控制,浪费人力资源,不能很好的实现灭火的效果。 此设计在前人研究的基础上,通过不断地学习相关的知识,力求对消防机器人设计达到更深的了解和研究,促进消防机器人在火灾中的应用并推广在相关领域的研究,使消防研究工作不断向前发展,具有很大的学

6、术价值。 在未来智能化和机械化的世界中,尤其是在消防事业中,一款好的机器的使用能够达到事半功倍的效果。消防机器人的应用前景非常明朗。 消防机器人随着社会经济的迅猛发展,建筑和企业生产的特殊性,导致化学危险品和放射性物质泄漏以及燃烧、爆炸、坍塌的事故隐患增加,事故发生的概率也相应提高。 一旦发生灾害事故,消防员面对高温、黑暗、有毒和浓烟等危害环境时,若没有相应的设备贸然冲进现场,不仅不能完成任务,还会徒增人员伤亡,这方面公安消防部队已历经诸多血的教训尤其是当新消防法出台后,抢险救援已成为公安消防部队的法定任务,面对新时期面临的新情况新任务,也为了更好地解决前述难题,消防机器人的配备显得日益重要。

7、消防部队将面对的火灾和应急救援的形势相当复杂。尤其是在高温、有毒、易燃易爆等复杂环境中,为切实增强消防部队扑救大火的能力,也为更好地保护广大官兵的生命安全,配备消防机器人已势在必行。机器人自60年代初问世以来,经历40余年的发展,己经取得长足进步,社会各行各业皆可见其身影。 从1986年日本东京消防厅首次在灭火中采用了“彩虹5号”机器人后,消防机器人就逐渐在灭火救灾领域得到广泛的应用,消防机器人技术也得到快速的发展。截至前,消防机器人已经稳步向高端智能机器人前进。2机器人的相关概况机器人技术作为20世纪人类最伟大的发明之一,自20世纪60年代初问世以来,经历50年发展以取得长足的进步。未来的机

8、器人是一种能够代替人类在非结构环境下从事危险、复杂劳动的自动化机器,是集机械学、力学、电子学、生物学、控制论、计算机、人工智能和系统工程等多科学知识于一身的高新技术综合体。走向成熟的工业机器人,各种用途的特种机器人的多用化,昭示着机器人技术的灿烂明天。21 机器人的发展对于当今世界而言,随时都有可能发生突发事件,例如:火灾,塌陷,洪涝等。有些是人可以解决的,而有些却是人类无能为力的。所以这时就需要机器人来解决。它可以进入人类无法进入的地方,做许多人做不到的事情,使危害和损失降低。现在,随着科技的快速发展,国内外对小型智能系统的应用越来越广泛,种类也越来越多。本题目就是结合相关科研项目而确定的设

9、计类课题,所设计的智能寻迹灭火机器人,能够实现自动发现火源、自动寻迹、自动前进接近火源完成灭火任务的功能。2.2 本课题要研究或解决的问题和拟采用的研究手段 本机器人以ARM芯片为控制核心,实现对小车的智能控制。此控制系统不仅在机器人中有很强的使用价值,在汽车领域,智能家居等方面都有很高的是实用价值,尤其在智能机器人领域有很高发展前景。所以本设计与实际相联系,具有很重要的意义。要研究或解决的问题:在设计上,使用红外传感器采集火源信号并将其信号传给控制器,由控制器做出判断把信号传给驱动电路,驱动风扇完成灭火。而灭火机器人,则是这发展过程中重要的一种,本文则以简要概括。3硬件机器人的尺寸:长31c

10、m、宽31cm、高27cm范围以内由控制器控制控制器稳压板-使程序运行更稳定灰度检测传感器把机器人前面多通道地面灰度放置与黑线平齐。1运行黑白检测程序,点击屏幕,出现红色圆点。2再把机器人后面多通道地面灰度放置与黑线平齐, 3运行黑白检测程序,点击屏幕,出现红色圆点。4把机器人放到全白上,点两下屏幕.5检测正确会出现16个OK光电传感器红外光电传感器可以测量1080cm范围内的物体,并通过模拟信号连接到MF12/MF13控制器上。有障碍物返回0,无障碍物返回复眼复眼模块,是由若干个红外感光单元构成的,能够同时多方位测量红外光强弱的电子部件。通过RS485接口和控制器连接,就可以实现方便、快捷地

11、读取多个方向的火焰(红外光)强度。/读取对应复眼传感器32(调制复眼14通道)各个方向上读数最大值,EYE表述的是对应的复眼编号,范围0或者1Int EyeInMax();/读取复眼传感器22(调制复眼14通道)各方向上最大值所在方向编号Int EyeInMax执行机构4软件电路设计软件,总体设计方案整个电路分为驱动电机模块、寻迹传感器模块、单片机控制模块、 火源传感器模块、风扇模块、电源模块六个模块。 首先利用红外对路面信号进行探测,利用火源传感器检测火源信号,两种信号经 过处理之后,送给单片机控制模块进行实时运算,输出相应的信号给驱动电机模块驱 动电机转动,从而控制整个小车的运动灭火机器人

12、,小车的方案设计与论并利用开发板做控制驱动小车。VJC程序介绍 :用VJC编写程序时,要在模块库中选择你所需要的模块,将它拖入到流程图生成区,并且将此模块与程序主体连接上,才能在程序中发挥作用。模块一旦连接上,在JC代码显示区(参见图4-1)就会自动生成与之相对应的JC代码,当流程图完成后,JC代码程序也就形成了,这也是程序有效的一个标志。如果没有连接上,JC代码显示区就不会出现相应的代码,这时模块对程序不起作用。:要在程序的末端新增一个模块,先在模块库中点击需要增加的模块,模块就可随光标移动了,将新增模块拖到流程图生成区中,放在程序末端,光标的顶点放在上方模块的红点处,单击鼠标,新增模块就与

13、程序主体连接上了。注:单击菜单栏中的视图选项卡,在下拉菜单中选择“连接指示”选项,可以显示/隐藏模块上的红点。打开JC代码显示区,观察是否生成了与新增模块对应的JC代码。下面介绍两种需要“移动”操作的情况:要将图62中模块B调整到模块C的后面,步骤可参看图6-2(1)-(6)。图6-2 调整程序的前后顺序子程序有时候要求某一段功能需要在程序中重复出现,或者复杂的程序需要进行局部封装,就可以用到子程序。VJC-POWERON能很方便地支持子程序,与多任务。可以同时创建多达10个子程序与16个子任务。子程序与子任务的编程方法将在后面将详细介绍,这里先来看看与之相关的程序模块。结束模块图标模块对话框

14、无设置对话框功能:用于给主程序或任务加一个结束标志,该模块产生JC代码return;。结束模块后不能再连接其他模块。操作:将“结束”模块移到流程图生成区,并连接在主程序或任务的结束位置。新建子程序图标模块对话框功能:把需要重复使用的一组模块新建为“子程序”,便于在主程序中调用,以精简程序。操作:新建子程序是一个特殊的模块,它是子程序调用的第一步。其操作如下:用鼠标点击“程序模块库”中的“新建子程序”模块,就会弹出一个新建子程序对话框。在对话框中“子程序位置”下,有两个选项:“系统子程序”和“其它程序”。 “系统子程序”提供常用的子程序模板;“其它程序”可以选择任何已编制程序,以调用其中存在的子

15、程序。当选择“系统子程序“时,右边的列表框中显示了系统提供的常用子程序模板。其中“自定义”选项可用来建立一个新的子程序,你可以在子程序名称处为这个子程序命名。当选择“其它程序”时,会弹出一个对话框,在这里我们可以选择任一流程图文件,如果该流程图文件包含子程序,列表框中就会出现存在的子程序名,用户也可以调用这些子程序。新建子程序“确定”后,会自动进入该子程序的编辑窗口,可以像编辑主程序一样编辑子程序。每个子程序都有独立的编辑窗口。新建子程序不能超过10个。子程序图标模块对话框功能:调用一个“子程序”,只能在主程序中使用。只有在新建了子程序之后这个模块才能在主程序界面中出现。子程序可以调用子程序,

16、但不能调用自己。操作:如果新建了子程序,在主程序窗口(主程序窗口可以用工具栏中的“主程序”快捷按钮切换),在“程序模块库”中可以看到新建的“子程序”模块的图标。子程序模块可以象其他模块一样移入到流程图生成区,连接在主程序中使用。在子程序模块上双击鼠标左键,可打开子程序对话框,选择“编辑”按钮,即可进入此子程序的编辑界面。子程序返回图标模块对话框无设置对话框功能:结束一个用户“子程序”。此模块在子程序编辑界面中出现,只能在子程序中使用。操作:将“子程序返回”模块从“程序模块库”移到流程图生成区,并连接在子程序的结束位置。自定义模块图标模块对话框功能:提供用户自定义功能,利用该模块直接用JC代码进

17、行编写程序。操作:用鼠标将“自定义”模块移到流程图生成区并连接在程序中的相应位置。设置时,鼠标左键双击“自定义”模块,在弹出的对话框中编写JC代码。设置参数说明:在文本框中编写所需JC代码。注意:编写JC代码时应确保语法无误,否则流程图文件无法下载。自定义子程序建立自定义子程序的操作如下:点击“程序模块库”中的“新建子程序”模块,在弹出的对话框中选择“自定义”,并为子程序命名,按“确定”后就会进入子程序的编辑窗口。在子程序的编辑窗口中,可以和主程序一样编辑子程序。执行器模块、传感器模块和控制模块在子程序中都可以使用。但是子程序的程序模块库没有“任务开始”、“结束模块”和“新建子程序”模块,只有

18、“子程序返回”模块,这是和主程序不同的地方。子程序编辑完成后,用工具栏中的“主程序”快捷按钮切换到主程序窗口,在程序模块库中就会有刚才编写好的子程序模块。将子程序模块移入到流程图生成区,与主程序相连,就完成了自定义子程序的调用。硬件电路,软件电路硬件电路是智能灭火机器人整体的核心骨架,其参数性能及设计的合理性直接决定了智能灭火机器人的性能。本文完成了基于mf13内核的智能灭火机器人的硬件电路的设计与实现。 1 硬件电路的总体设计 灭火的任务是在空地中,随机在其中一个位置放置蜡烛代替的火源,要求机器人在尽可能短的时间里无碰撞地找到火源并完成灭火。 根据要求及功能需要,灭火机器人的总体结构,主要由

19、控制器、传感器输入、驱动输出等模块组成。 2 硬件电路的主要部件分析与设计 2.1嵌入式系统 为实现机器人高速精确地按照规定路径行走,要求机器人的CPU能够实时迅速地读取多个传感器端口数值,并在较短的时间内完成对各端口数值的存储、运算和输出等多种任务。由于嵌入式微处理器对实时任务具有很强的支持能力,能够完成多任务并且具有较短的中断响应,因此在设计过程中选用以嵌入式微处理器mf13为核心的控制器,每秒可执行一亿一千万条机器指令。为提高端口数值读取速度,使机器人能对周围环境信息做出迅速判断,本设计在主芯片上设置了ADC0ADC7(P4.0P4.7)路数据输入端口,每秒可实现50万次数据采集;另外又

20、设置20路数据输入端口,通过ATMEGA816-PC辅助单片机连接到主芯片上,用以读取远红外传感器组及检测端口的数值,每秒可实现1 000次数据采集。本设计还设置了4路PWM控制信号输出端口,用以驱动4路大功率直流电机,实现对转速的精确调节;此外,还设置了7路Do数字输出端口,用以驱动伺服电机、蜂鸣器、继电器、发光二极管等。为了给庞大和复杂的程序提供更多的执行空间,本设计附加设置了100 KB的数据存储器(RAM)和512 KB的程序存储器(Flash ROM),用以存储更多的数据和命令。2)直流电机驱动电路 由于需要,机器人要在避免碰撞的前提下尽可能提高速度,因此要求具有更大功率的驱动器和更

21、灵敏的控制方式。为此本文采用的电机驱动电源电压为16.8 V,电流为20 A;采用占空比范围为095%的4路PWM信号控制直流电机,以实现精确的调速。由于电机功率较大,并要求能实现双向、可调速运行,本文设计了半桥式电力MOSFET管,成功实现了对电机的控制。2路PWM信号通过IR半桥驱动器(half-bridge driver)和相应保护电路连接至型号为IRF2807 的MOSFET管,控制电源与电动机连接线路的通与断,达到控制电机速度的目的。当PWM信号占空比较大时,线路导通时间长,电机速度大;相反,当PWM占空比较小时,线路导通时间短,电机速度小。4个MOSFET管在不同时刻导通组合,实现

22、控制电机转动方向:当MSFET管1和4导通时,电机端口1为正、2为负,电机正转;当MOSFET管2和3导通时,电机端口2为正、1为负,电机反转。5 总结 在小组成员的共同努力下,通过大量测试调试表明,小车能够较好的完成题目要求的基本要求。我们在完成基本任务的基础上想更好的方案。尽可能的减小时间。消防小车从硬件到软件都以达到预期的目的。由于时间关系对于更好的方案有待讨论。 6.2小组心得体会 我们从中收获了很多宝贵的知识,提高了团队协作能力,增强了团队意识。对于做控制类小车题目的我们来说,需要很强的动手能力,我们在做车的过程中受益匪浅。更让我们了解整个过程中应注意的问题,以及避免问题的方法,和对

23、于应急事件的处理。这对于我们毕业进入社会有着很大的帮助。也锻炼了我们的意志力与坚定信心的能力,让我们在压力下,一步一步接近成功。欢乐与汗水伴随着我们成长。参考文献1蒋新松.机器人与工业自动化M.石家庄:河北教育出版社,2003.2王耀南.机器人控制工程M.北京:科学出版社,2004.3倪星元,等.传感器敏感功能材料及应用M.北京;化学工业出版社,2005.4 南宫好友.传感器入门M. 北京:科学出版社,2000.5 许大中等.电机控制M.浙江大学出版社,2002.6康华光.电子技术基础模拟部分(第四版)M,北京:高等教育出版社。7刘海波,21世纪智能机器人发展预测J,机器人,13卷4期8张钹,

24、智能机器人的现状及发展J,科技导报,6/19929孙 华,陈俊风,吴 林.多传感器信息融合技术及其在机器人中的应用J.传感器技术, 2003, 22原程序#include MF12_LIB.hfloat tim_1=0.0f;float bat_1=0.0f;int mic_1=0;int gi_1=0;int gi_2=0;int gi_3=0;int ma_1=0;int ma_2=0;int ma_10=0;int eye_1=0;void SubRoutine_1();void SubRoutine_2();void SubRoutine_3();void SubRoutine_4()

25、;void SubRoutine_5();void SubRoutine_6();void SubRoutine_7();void SubRoutine_8();void SubRoutine_9();void SubRoutine_10();void SubRoutine_11();void SubRoutine_12();void SubRoutine_13();void SubRoutine_14();void SubRoutine_15();/*前右墙走*/void SubRoutine_1( ) ma_1 = AI(5); ma_2 = AI(6); if(ma_1 300) Set

26、Moto(0,34); SetMoto(1,90); else if(ma_2 300) SetMoto(0,80); SetMoto(1,100); else SetMoto(0,100); SetMoto(1,80); /*后右墙走*/void SubRoutine_2( ) ma_1 = AI(10); ma_2 = AI(11); if(ma_1 300) SetMoto(0,-90); SetMoto(1,-30); else if(ma_2 300) SetMoto(0,-100); SetMoto(1,-80); else SetMoto(0,-80); SetMoto(1,-1

27、00); /*后左墙走*/void SubRoutine_3( ) ma_1 = AI(8); ma_2 = AI(7); if(ma_1 300) SetMoto(0,-30); SetMoto(1,-90); else if(ma_2 300) SetMoto(0,-80); SetMoto(1,-100); else SetMoto(0,-100); SetMoto(1,-60); /*前左墙走*/void SubRoutine_4( ) ma_1 = AI(3); ma_2 = AI(2); if(ma_1 300) SetMoto(0,90); SetMoto(1,34); else

28、 if(ma_2 300) SetMoto(0,100); SetMoto(1,80); else SetMoto(0,80); SetMoto(1,100); /*前追光*/void SubRoutine_5( ) eye_1 = EyeChMaxEx(EYE_0); if(eye_1 = 0) SetMoto(0,60); SetMoto(1,-10); else if(eye_1 = 1) SetMoto(0,60); SetMoto(1,0); else if(eye_1 = 2) SetMoto(0,60); SetMoto(1,15); else if(eye_1 = 3) Set

29、Moto(0,60); SetMoto(1,25); else if(eye_1 = 4) SetMoto(0,60); SetMoto(1,35); else if(eye_1 = 5) SetMoto(0,60); SetMoto(1,60); else if(eye_1 = 6) SetMoto(0,35); SetMoto(1,60); else if(eye_1 = 7) SetMoto(0,25); SetMoto(1,60); else if(eye_1 = 8) SetMoto(0,15); SetMoto(1,60); else if(eye_1 = 9) SetMoto(0

30、,0); SetMoto(1,60); else if(eye_1 = 10) SetMoto(0,-10); SetMoto(1,60); /*3号灭火*/void SubRoutine_7( ) eye_1 = EyeInMaxEx(EYE_0); while(eye_1 500) SubRoutine_5 (); eye_1 = EyeInMaxEx(EYE_0); eye_1 = EyeChMaxEx(EYE_0); while(eye_1 != 5) if(eye_1 300) SetMoto(2,100); wait( 1.000000 ); SetMoto( 0 , 0 ); S

31、etMoto( 1 , 0 ); SetMoto( 2 , 0 ); SetMoto( 3 , 0 ); SetMoto( 4 , 0 ); SetMoto( 5 , 0 ); /*3回家走*/void SubRoutine_8( ) ma_1 = AI(7); if(ma_1 300) SetMoto(0,-14); SetMoto(1,-40); else SetMoto(0,-40); SetMoto(1,10); /*后追光*/void SubRoutine_6( ) eye_1 = EyeChMaxEx(EYE_1); if(eye_1 = 0) SetMoto(0,10); Set

32、Moto(1,-60); else if(eye_1 = 1) SetMoto(0,0); SetMoto(1,-60); else if(eye_1 = 2) SetMoto(0,-15); SetMoto(1,-60); else if(eye_1 = 3) SetMoto(0,-25); SetMoto(1,-60); else if(eye_1 = 4) SetMoto(0,-40); SetMoto(1,-60); else if(eye_1 = 5) SetMoto(0,-60); SetMoto(1,-60); else if(eye_1 = 6) SetMoto(0,-60);

33、 SetMoto(1,-35); else if(eye_1 = 7) SetMoto(0,-60); SetMoto(1,-25); else if(eye_1 = 8) SetMoto(0,-60); SetMoto(1,-15); else if(eye_1 = 9) SetMoto(0,-60); SetMoto(1,0); else if(eye_1 = 10) SetMoto(0,-60); SetMoto(1,10); /*2号灭火*/void SubRoutine_9( ) ma_10 = AI(0); while(ma_10 3000) SetMoto(0,-90); Set

34、Moto(1,-40); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); ma_10 = AI(0); eye_1 = EyeInMaxEx(EYE_1); while(eye_1 500) SubRoutine_6 (); eye_1 = EyeInMaxEx(EYE_1); eye_1 = EyeChMaxEx(EYE_1); while(eye_1 != 5) if(eye_1 300) SetMoto(2,-100); wait( 1.000000 ); SetMoto( 0 , 0 ); SetMoto( 1 , 0 )

35、; SetMoto( 2 , 0 ); SetMoto( 3 , 0 ); SetMoto( 4 , 0 ); SetMoto( 5 , 0 ); SetMoto(0,-40); SetMoto(1,-40); wait( 0.250000 ); ma_1 = AI(2); while(ma_1 300) SetMoto(0,30); SetMoto(1,-20); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); ma_1 = AI(2); ma_10 = AI(0); while(ma_10 3000) SubRoutine_1

36、0 (); ma_10 = AI(0); ma_10 = AI(1); while(ma_10 3000) SetMoto(0,40); SetMoto(1,13); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); ma_10 = AI(1); /* 延时过门 */ SetMoto(0,40); SetMoto(1,-10); wait( 0.200000 ); ma_1 = AI(3); while(ma_1 300) SetMoto(0,40); SetMoto(1,-10); SetMoto(2,0); SetMoto(3,

37、0); SetMoto(4,0); SetMoto(5,0); ma_1 = AI(3); resettime(); tim_1 =seconds(); while(tim_1 300) ma_1 = AI(3); if(ma_1 300) SetMoto(0,35); SetMoto(1,10); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); else SetMoto(0,10); SetMoto(1,35); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); ma

38、_10 = AI(4); SetMoto(0,-20); SetMoto(1,-20); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); wait( 0.200000 ); ma_10 = AI(1); while(ma_10 3000) SubRoutine_8 (); ma_10 = AI(1); /* 停在家 */ while(1) SetMoto( 0 , 0 ); SetMoto( 1 , 0 ); SetMoto( 2 , 0 ); SetMoto( 3 , 0 ); SetMoto( 4 , 0 ); SetMoto

39、( 5 , 0 ); /*2回家走*/void SubRoutine_10( ) ma_1 = AI(2); if(ma_1 300) SetMoto(0,40); SetMoto(1,15); else SetMoto(0,-10); SetMoto(1,40); /*1号灭火*/void SubRoutine_11( ) ma_10 = AI(1); while(ma_10 3000) SubRoutine_5 (); ma_10 = AI(1); eye_1 = EyeInMaxEx(EYE_0); while(eye_1 500) SubRoutine_5 (); eye_1 = Ey

40、eInMaxEx(EYE_0); eye_1 = EyeChMaxEx(EYE_0); while(eye_1 != 5) if(eye_1 300) SetMoto(2,100); wait( 1.000000 ); SetMoto( 0 , 0 ); SetMoto( 1 , 0 ); SetMoto( 2 , 0 ); SetMoto( 3 , 0 ); SetMoto( 4 , 0 ); SetMoto( 5 , 0 ); ma_1 = AI(2); while(ma_1 300) SetMoto(0,40); SetMoto(1,40); SetMoto(2,0); SetMoto(

41、3,0); SetMoto(4,0); SetMoto(5,0); ma_1 = AI(2); ma_1 = AI(11); while(ma_1 300) SetMoto(0,-30); SetMoto(1,20); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); ma_1 = AI(11); ma_10 = AI(1); while(ma_10 3000) SubRoutine_12 (); ma_10 = AI(1); ma_10 = AI(0); while(ma_10 3000) SubRoutine_12 (); ma

42、_10 = AI(0); SetMoto(0,-45); SetMoto(1,-10); wait( 0.450000 ); ma_1 = AI(11); while(gi_1 = 1) SetMoto(0,-100); SetMoto(1,-4); SetMoto(2,0); SetMoto(3,0); SetMoto(4,0); SetMoto(5,0); ma_1 = AI(11); ma_10 = AI(1); while(ma_10 3000) ma_1 = AI(10); if(ma_1 300) SetMoto(0,-40); SetMoto(1,-12); else SetMo

43、to(0,10); SetMoto(1,-40); ma_10 = AI(1); /* 停在家 */ while(1) SetMoto( 0 , 0 ); SetMoto( 1 , 0 ); SetMoto( 2 , 0 ); SetMoto( 3 , 0 ); SetMoto( 4 , 0 ); SetMoto( 5 , 0 ); /*1回家走*/void SubRoutine_12( ) ma_1 = AI(11); if(ma_1 300) SetMoto(0,-40); SetMoto(1,-12); else SetMoto(0,10); SetMoto(1,-40); /*4号灭火*/void SubRoutine_13( ) if(gi_3 = 1) eye_1 = EyeInMaxEx(EYE_0); while(eye_1 500) SubRoutine_5 (); eye_1 = EyeInMaxEx(EYE_0); eye_1 = EyeChMaxEx(EYE_0); while(eye_1 != 5) if(eye

温馨提示

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

评论

0/150

提交评论