《基于C51单片机的灭火机器人设计与实现.docx》由会员分享,可在线阅读,更多相关《基于C51单片机的灭火机器人设计与实现.docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、仲恺农业工程学院毕业设计基于C51单片机的灭火机器人设计与实现姓 名 林嘉洁院(系) 信息科学与技术学院专业班级 电子信息工程152班学 号 201510214819指导老师 杨灵 余仕杰(校外)职 称 教授 高级工程师论文答辩日期2019年5月11日仲恺农业工程学院教务处制Design of fire fighting robot based on C51 single chip microcomputerLin Jia-JieCollege of Information Science and Technology Zhongkai University of Agriculture an
2、d Engineering Guangzhou,ChinaSupervisor: Associate Rrofessor Yang LingSenior Engineer Yu ShiJie(Extramural Tutor)学生承诺书本人郑重承诺: 所呈交的毕业论文(设计)是本人在导师的指导下独立进行研究所取得的成果。除了文中已用特别标志加以标记的引述内容之外,本设计不含有任何其他个人或集体已经发表或撰写的研究成果。对本设计研究做出过重要贡献的个人或集体,均已在文中以明确的方式标明。若在毕业论文(设计)的各项检查、评比中被发现有抄袭、剽窃或其他的违规行为,本人愿按学校有关规定接受处理,并承担
3、相应的法律责任。 学生(签名):_ 年 月 日 摘 要众所周知,在恶劣的环境下工作(如灭火、救援等环境),有时难免会造成人员伤亡。为了避免人员伤亡,采用智能机器人去现场替代工作人员完成相应的工作是非常妥当的方案。因此研究和开发智能机器人有十分重要的意义。本机器人采用STC89C51单片机作为控制主芯片,设计开发了一款PC端上位机实时监控与控制机器人在模拟火灾发生现场完成灭火工作。本机器人由单片机控制模块、风扇模块、火焰传感器模块、电机驱动模块、舵机模块与摄像头模块等组成。单片机开发语言采用的是C语言,上位机开发语言为C#,IDE方面主要使用Visual Studio。实践应用表明,此款机器人小
4、车能实时监控现场环境,操作人员可以根据小车回传回来的实时图像信息,操作PC端上位机给小车发出相应的指令使其完成灭火工作。关键词:C51单片机 机器人小车 灭火 实时成像 AbstractAs is known to all, working in harsh conditionssuch as fire fighting, rescue and other environment. In order to avoid casualties, it is a very appropriate plan to use intelligent robot to replace workers to
5、complete the corresponding work. So it is very important to research and develop intelligent robots. The robot adopts STC89C51 single-chip microcomputer as the main control chip, and designs and develops a PC-side host computer real-time monitoring and control robot to complete the fire extinguishin
6、g work at the simulated fire occurrence site.The robot is composed of MCU control module, fan module, flame sensor module, motor drive module, steering gear module and camera module. MCU development language is C language, host computer development language is C #, IDE mainly uses Visual Studio. The
7、 practical application shows that this robot car can monitor the scene environment in real time. The operator can operate the PC-side host computer to send the corresponding instructions to the car to complete the fire-fighting work according to the real-time image information returned by the car.Ke
8、ywords: C51 MCU; robot car; fire fighting; real-time imaging目 录1 前言41.1 研究背景41.2 国内外研究现状41.2.1 国外机器人发展现状41.2.2 国内机器人发展现状41.2.3 我国灭火机器人的发展51.3 研究的内容和意义51.4 本文的章节安排62 相关技术72.1 硬件方面72.1.1 系统硬件的构成72.1.2 主控制器STC89C5172.1.3 摄像头与云台模块82.1.4 火焰传感器82.1.5 WiFi通信模块82.1.6 风扇模块92.1.7 USB物理接口92.1.8 SBUF串行数据缓冲器92.2
9、 PC端上位机应用技术92.2.1 .NET Framework与C#92.2.2 INI配置文件92.3 本章小结93 系统可行性及需求分析103.1 可行性分析103.1.1 传统技术分析103.1.2 当前技术可行性分析103.1.3 操作可行性103.1.4 可行性分析结论113.2 应用需求分析114 系统设计114.1 系统总体设计简介114.2 系统架构设计124.3 系统功能设计134.3.1 网络通信系统的设计流程134.3.2 模块隔离设计144.3.3 系统服务开发环境145 硬件模块参数优化145.1 灭火机器人速度调节优化145.2 灭火机器人火焰传感器测试及优化16
10、5.3 WiFi通信模块175.3.1 OpenWRT175.3.2 mjpg-streamer程序185.3.3 WiFi有效通信距离测试186 系统具体功能实现196.1 灭火机器人工作流程196.2 灭火机器人的行走实现196.3 摄像头舵机转动功能实现216.3.1 功能实现216.4 风扇启动功能实现246.5 机器人硬件测试情况246.5.1 火焰传感器测试情况246.6 PC端上位机具体实现256.6.1 PC端上位机与WiFi模块实现连接256.6.2 更改机器人配置信息功能实现276.6.3 获取实时图像功能实现286.6.4 PC端上位机测试请况296.7 系统设计成品31
11、7 总结及结语31参考文献33致谢341 前言1.1 研究背景机器人技术的发展是一个国家工业制造水平和科研能力的重要体现,也是综合国力发展的必然结果。正是有机器人行业的不断发展以及其在现代生产生活应用领域不断拓宽,其种类也日益增多。人类在认识自然、改造自然的过程中,需要一种替代人们劳动的工具,这便是各种功能的机器人。电子技术、计算机技术以及制造技术等相关技术的发展给现代各式各样的机器人研究提供了强大的理论与技术的保证。而灭火机器人可以把救援人员从有毒、有害、高温或危险的环境中解放出来,可以有效的避免人员伤亡。各国也在类似的特种机器人方面上投入大量的研究。1.2 国内外研究现状1.2.1 国外机
12、器人发展现状国外机器人发展起步较早,相关技术的积累成熟,其中以英美为首的发达国家根据自身的科学技术水平以及发展的需要,设计与研制出了各色各样的机器人。现在机器人已经发展成为一个产业,在生活生产方面都需要机器人的参与。小到家庭生活,大到航天航空工程都受机器人的迅速发展的影响。它不仅可以带来便利,还能提升当下生产力。 第二次世界大战结束后,美国的工业能力、制造业水平得到大力发展。在经济方面美国经济长居世界首位且有强大的经济能力支撑科学技术的发展。美国研发的好奇号火星车已经在探索火星了。时间往前推到20世纪60年代末,那时美国与前苏联已经有探测月球的机器人技术了。所见国外的机器人技术已经非常成熟了而
13、且还在不断发展。欧洲国家也非常重视机器人的发展,其中欧盟的“SPARC”研发计划正是最好的体现。欧盟在机器人研发上面投入了大量资金,并且创造了大量的就业岗位。这对于经济发展乏力的欧洲国家来说是极其有利的。放眼亚洲,日本的机器人技术可以说是世界一流水平,特别是服务类机器人更是得到世界的认同。可想而知,机器人的发展将会成为未来经济发展的重要因素与综合国力比拼的重要指标。1.2.2 国内机器人发展现状在中国,机器人技术起步较晚,但是发展迅速。改革开放后,中国更加大和外国的交流,汲取他人先进的经验,工业机器人的设计研究与工业制造水平开始有了稳步展。20世纪80年代末,我国政府不断出台有关机器人发展的政
14、策。工业制造机器人是比较快应用于制造业的,比如汽车组装流水线机器人的加入,大大提升了汽车的生产力水平。在冶金、运输等方面大量的工业化机器人投入使用,为我国的工业化发展打下坚实基础,提高国家经济实力,为接下来的技术资金投入奠定了良好的经济支撑。从2010年后,外国的几大机器人公司都看好中国机器人市场的发展前景,多数在中国设立分公司,从机器人的各领域开启了全面铺设。反观我们国家,机器人品牌起步晚,基本依靠技术引进,企业并购等方式步入机器人行业。伴随人工智能的热潮,机器人的设计研发更加智能。从媒体上我们看到了百度公司研发的“小度”人工智能机器人在人脸识别与语音识别上的惊人表现。在天猫的库房里,我们更
15、是惊叹于其机器人有条不紊分拣货物的能力。2017年,中国科学技术大学公布了他们研发的人形机器人,还有人类首次登陆月球背面的月球探测机器人更是说明了我国在机器人方面取得举世瞩目的进步。从物流、工业生产再到航天研究,都有机器人的应用。从上面分析可以得出我国机器人行业发展前景良好,但是在核心技术、市场份额等方面我国在国际上还处于劣势。1.2.3 我国灭火机器人的发展我国消防部队于2004年开始装备消防机器人。经过十几年的发展越来越多的消防机器人列装消防部队,其机器人技术也是达到了世界一流水平。不过,消防机器人真正参与火灾救援的频率不多,主要由于现成的技术与当下的应用程度还未达到参与火灾救援的需求水平
16、。总的来说我国在消防灭火这块特种机器人的投入还达不到应用的需求,因此必须加大对灭火机器人的研究投入。1.3 研究的内容和意义本课题要求实现基于C51单片机的灭火机器人。此灭火机器人可以实时回传模拟火灾现场画面到操作者的PC端上位机。操作者可以根据回传的实时图像,操作上位机给机器人发送工作指令使其完成相应的灭火工作。此款灭火机器人上的摄像头安装在一个可以上下左右活动180的舵机,这样设计可以更好的观测模拟火灾现场画面,给操作人员提供更多有用的信息。所以总的来说,研究灭火机器人的意义有以下几点:一是灭火机器人可以代替人类做有生命危险的灭火工作,如在有毒的、有害的、高温的或危险的环境下工作,机器人更
17、适合。二是灭火机器人能做人类不能做的事,比如机器人可以全程录下整个救灾的过程及采集相关数据。而这些信息可以给后期专家们去研究,提出更好的方案去应对每种灾害场景。1.4 本文的章节安排本文有六部分,大致内容概括如下:第一章大体介绍了机器人的研究历史以及现阶段的情况,以及研究灭火机器人的必要性。第二章介绍了灭火机器人所用到的硬件情况,软件工具以及相关技术,并对此展开了叙述。第三章对灭火机器人进行了可行性分析、应用需求分析,讨论其设计与实现是否可行。第四章阐述了系统的总体设计、架构设计、功能设计等。第五章阐述了怎么对机器人所用到的传感器进行参数优化以及各模块的测试数据情况。第六章对灭火机器人系统设计
18、做了详细的说明,对其代码实现做出了详尽的解释,并进行了相关的测试。第七章为此论文内容做了大致的总结。2 相关技术2.1 硬件方面2.1.1 系统硬件的构成本灭火机器人主要元器件是STC89C51单片机,由它完成控制机器人工作。外部有摄像头、火焰传感器、风扇模块、WiFi通信模块等器件。各模块关系如图所示:图1 灭火机器人各模块硬件关系图2.1.2 主控制器STC89C51STC89C51是采用8051核的ISP可编程芯片,凭借其体积小,质量轻且灵活性高,所以广泛应用于中小型控制系统5。采用C语言编程,可以针对单片机的接口芯片编制通用的驱动函数。从开发速度与结构的严谨性等方面,C语言绝对是首选编
19、程语言。 STC89C51系列单片机是高速低功耗低成本的新一代8051单片机,拥有精简指令集结构,内部集成MAX810专用复位电路。图2 89C51芯片图2.1.3 摄像头与云台模块摄像头是灭火机器人的“眼睛”,是灭火机器人获取外部环境信息最重要的模块。本机器人所用的摄像头像素为720P,可手动调焦,其工作电压为5V,而且通过USB数据线免驱动与WiFi模块连接并实现图像数据的传输。输出方式为Mjpeg格式。此款摄像头的优点在于其可调焦、像素高且成像清晰稳定,为机器人的工作提供准确的实时图像信息。云台模块:此云台由两个舵机组成Y轴方向舵机与X轴方向舵机,可以实现固定在云台上的物体完成上下180
20、的转动动作与左右180的转动动作。灭火机器人上的摄像头配上云台,可以大大扩大机器人的观测视野。2.1.4 火焰传感器火焰传感器是用于探测火源的,判断火源方向。此次用的火焰传感器是五路火焰探测传感器。只要火焰发出的波段范围为710-1090nm的短波红外线都能被此款火焰探测器探测到并通过电信号进行输出。采用五路火焰传感器设计可以使得探测范围广,此外本火焰传感器的探测范围可调节,使得应用范围更广。2.1.5 WiFi通信模块WiFi通信模块可以与单片机进行通信,可以在上位机上发送指令给单片机串口,再经过单片机控制IO口的电平,实现对小车的控制。除此之外,该WiFi模块已经烧写好系统固件,可以把摄像
21、头的视频进行编码,然后返回给上位机控制软件,也就是灭火机器人所用到的手机APP。这样便能在PC端上位机实时监控灭火机器人的环境。2.1.6 风扇模块风扇模块用于灭火工作。本款机器人用的风扇模块产生的风有效的工作范围为可以达到20cm以外,也就是说火源在20cm范围左右都可以由风扇模块吹灭。2.1.7 USB物理接口USB通用串行总线,它是将计算机系统连接到外部设备的外部总线标准,该接口支持输入和输出。USB接口支持热插拔。USB通信协议有USB2.0与USB3.0两种。本次使用的USB协议为USB2.0,主要用于摄像头与WiFi模块的通信。2.1.8 SBUF串行数据缓冲器SBUF全名是串行数
22、据缓冲区。SBUF既是接收缓冲区也是发送缓冲区,它的地址在微控制器中重叠,如果明确使用其读数据功能或写数据功能则取决于读写指令。当指令是串行传输时,微控制器SBUF写入数据;当指令是串行接收时,微控制器从SBUF读取数据。所以当灭火机器人与PC端上位机通信建立,我们就可以通过SBUF这个串行口数据缓冲寄存器读取PC端上位机给机器人发来的指令,完成指令要求的工作。2.2 PC端上位机应用技术2.2.1 .NET Framework与C#C#是一种面向对象的高级编程语言,带有.NET Framework和.NET Core。它继承了C和C+优秀特性并抛弃了一些复杂特性,由于其可视化操作和高效的运行
23、效率,使其非常适合Windows系统下的桌面程序开发1。因为其便捷的面向组件编程的支持,方便用于开发灭火机器人PC端上位机。.NET Framework它结合了强大的功能和新技术,用于开发具有优良用户体验的应用程序。.NET是C#程序的开发与运行环境,其包含三大主要组成部分,它为.NET应用程序提供内存管理、垃圾收集、安全服务、编译运行等服务。2.2.2 INI配置文件INI配置文件是初始化文件,是Windows操作系统配置文件所使用的存储格式,可用于管理各种Windows配置。INI文件通常用来保存一些配置参数,一般而言用户使用具有图形界面的各种相应软件来实现相同的配置。2.3 本章小结本章
24、对灭火机器人涉及的基本知识以及所用到的硬件设备、软件工具以及涉及的技术进行了简要的概述。重点介绍了STC89C51主控制器的特点及所用到的传感器外部设备的大体情况。阐述了每一个硬件设备在灭火机器人身上所负责的任务。正是有这些设备的协调工作,才能保证灭火机器人正常工作。3 系统可行性及需求分析3.1 可行性分析可行性分析是对该项目的主要内容和支持条件进行调查研究和分析比较,在该项目实施后评估项目的各效益及其各方面,以确定该项目是否值得研究实施和最终是否可以实现,从而对项目进行全面分析。为了设计该灭火机器人,我们需要做多方面的考虑及可行性的分析。因此可以对比传统技术、当前技术和操作可行性进行分析,
25、并最终得出该设计机器人的可行性。3.1.1 传统技术分析假如采用传统的灭火设备,比如灭火器、高压水枪等,再加上专业人员参与救援工作。可能耗时耗力甚至是造成一定程度的人员伤亡。而本灭火机器人虽然是一款小型模拟灭火的机器人,但是对其研究有助于给后期实际应用的灭火机器人灭火方案做参考。本机器人可以深入火源处,并不需要专业人员陪同工作。操作人员只需要在一个安全地带就可以操控这款机器人,可以有效的避免人员伤亡。同时,正因为其可以深入火源附近,那么对扑灭火灾是极其有效的。从以上几点来看,此项研究可以有效的改善传统灭火工作的缺点,因此可行性高。3.1.2 当前技术可行性分析当前技术可行性分析在于考虑此项目在
26、硬件、软件上是否可行,是否达到此项目所需要的要求,从而保证此项目可以正常进行下去和最终完成。硬件条件上,主控制器STC89C51芯片技术成熟,在各种小型控制系统中应用广泛,而且成本低、功耗低。市场上可利用的传感器种类很多,很多传感器都是集成各种功能而且技术都非常成熟。这给硬件系统上的组件提供了很大的保证。软件开发上,此次采用PC端应用程序做上位机,工具用的是Visual Studio2010,编程语言用的是C#。一方面,用C#开发Windows系统桌面程序技术现在已经相当成熟了。另一方面,对我来说由于接触与学习过C#编程方面的知识,比较熟悉C#方面的开发。所以在软件方面上采用此方案,可行性大。
27、3.1.3 操作可行性本系统操作简单,操作端为图像化操作界面,可视化效果好。系统易于应用在实际情况,适应性强。综上所述,本设计具有很高的实际应用价值,操作门槛低,简单易用,操作可行性高。3.1.4 可行性分析结论综合以上对硬件、软件以及应用需求方面的分析可知:此系统的设计可行性高,实际应用意义大,在技术实现层面来说可行性高,很有研究的必要性。3.2 应用需求分析在城市化日益发展迅速的今天,各种各样的高楼大厦、地下室、仓库等建筑不断涌现。若是在这些地方发生火灾,面对复杂的、未知的火灾环境,普通的灭火器和现有的灭火车并不一定能有效的,有时灭火行动还会危及灭火人员的生命安全。假如用有特定功能的设备去
28、替代专业人员做相应的工作就会有效地避免人员伤亡及财产损失。总所周知,在火灾现场造成人员伤亡的最主要的原因并不是直接与火源接触造成的,而是由于火灾产生的黑烟、有害气体、有害物质等侵害受困人员与救援人员。当然,单单靠仪器设备自主去处理复杂的灾害环境这在技术来说是解决不了的,面对各种各样的突发情况还是需要专业人士来处理。面对上述需求,此灭火机器人大体分为三个大模块:控制机器人工作的PC端桌面上位机程序,实现上位机与机器人通信的WiFi模块与以STC89C51为主控芯片的机器人硬件平台。硬件平台上有图像采集摄像头与火焰传感器等外设,旨在实现不仅代替人去做简单的灭火工作还要实现对现场情况的实时采集。此设
29、计实现了人与机器的结合,对现场实时情况的图像回传更有利于后续救援人员了解灾害情况制定出更有效的处理方案。从应用需求来说,此款机器人的基本功能完全满足火灾救援工作的需求。其应用价值很大。4 系统设计4.1 系统总体设计简介为了解决救援人员的生命安全问题以及高效的应对各种火灾环境,便有了这个设计。此机器人是包括火源方位探测、实时图像数据采集、自主或人工操作灭火等应用于处理模拟火灾险情的机器人。此系统设计分为三大主要部分:PC端控制平台,WiFi通信模块以及机器人完整的硬件平台。机器人硬件平台负责利用装备在其身上的摄像头采集现场图像数据以及火源方位,然后通过WiFi通信模块回传给PC端操控平台,由P
30、C端操控人员对机器人发送相应的工作指令。此系统基本实现了图像采集,数据传输,图像展示,火源位置判断,控制灭火模块启动的一体化系统,具备简单易用的特点。图像采集,摄像头通过USB接口与WiFi模块进行连接,WiFi模块中的mjpeg-streamer视频解析软件对摄像头采集的图像数据进行解析后通过WiFi无线通信将图像信息传到PC端显示并保存于相关文件上,完成对实时图像地采集。数据传输,主要用在PC机与WiFi模块的网络通信、PC机与机器人的串口通信。PC端与WiFi模块是利用TCP协议通过Socket编程方式进行通信连接,而PC机与机器人的串口通信是借助WiFi模块已经烧录的Ser2net串口
31、转发软件来实现它们之间的串口通信。视频显示,主要是为了呈现整个实时图像请况,通过实时图像来对机器人的环境进行预估并发出对应的动作指令,实现与机器人的交互。4.2 系统架构设计图3 系统架构图现在对上图进行介绍:(1)火焰传感器、驱动电机、风扇模块是通过STC89C51的IO端口连接并传输数据与发送指令,因为它们与主控制器之间的信息传递是二进制,所以只靠接收IO端口的高低电平就能得知其通信信息,而不需要串口等方式通信。(2)WiFi模块:本WiFi模块可以看做是一个小型的Linux系统,因为它拥有OpenWRT固件,并已经设置为随机启动。WiFi本身有可调用的函数,可以看做一个小型的计算机。它主
32、要负责解析摄像头传回来的图像信息并发送给PC端上位机,与PC机建立网络连接,与机器人建立串口通信。PC端上位机发送的指令信息都是通过WIFI模块以串口通信的方式发送给机器人,以实现各项工作。所以此模块对于灭火机器人的成功实现至关重要。(3)PC端上位机的开发用的是C#语言,用Socket通信方式以TCP协议与WIFI模块建立连接。它们两者主要是完成图像数据与控制指令的传输任务并把回传的视频保存下来。作为机器人的控制平台,其操作界面设计必定要简洁易用。4.3 系统功能设计本机器人系统功能主要包括以下三大模块,如图4所示图4 系统功能设计4.3.1 网络通信系统的设计流程对于网络通信这方面来说,为
33、了对接PC端上位机与机器人的硬件系统,必定会有中间转换设计。中间就用到了WiFi模块。PC端上位机与WiFi模块采用TCP协议通信,因为STC89C51的串口通信要对SCON,PCON,TMOD三个寄存器进行模式设定还要设置定时器中断,所以实现起来比较复杂。 而WiFi模块里已安装了Ser2net串口转发软件,也就是说可以实现用TCP协议传回来的控制指令通过Ser2net串口转发软件发送给机器人。这样就实现了软硬件之间的通信。网络通信系统设计流程示意图如图5所示图5 网络通信系统设计流程图4.3.2 模块隔离设计机器人与PC端控制上位机交互是通过WiFi建立起来的,做到了三者分隔又交互,每个模
34、块都可以单独重写。虽然相互分离但是又互相关联。这样设计的好处是易于各模块的维护,大大降低维护的成本与精力。三个模块的关系如图6所示。图6 模块隔离关系简图4.3.3 系统服务开发环境系统开发中,该系统开发环境是在Windows 10操作系统平台下搭建的,PC端上位机软件的开发使用的IDE为Visual Studio2010开发,编程语言用的是C#。硬件开发方面使用Keil 4软件开发。机器人的程序下载用的是STC-ISP烧写工具。5 硬件模块参数优化5.1 灭火机器人速度调节优化灭火机器人拥有适当的整体运行速度,是提高灭火机器人稳定运行及有效完成灭火工作的基础。同时要协调火焰传感器的反应速度等
35、外部设备才能调试出最优化的机器人运行速度。电路中用微处理机来实现脉宽调制,通常方法有两种:一为用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来。产生脉宽调制信号,设置不同的延时时间得到不同 的占空比。二为硬件实验自动产生PWM信号,不占用CPU处理的时间2。本机器人没有采用硬件调速,而是借助程序实现调整机器人速度,即脉冲宽度调制。对于电机的转速调整,我采用脉冲宽度调制(PWM)的办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能8。要在C51单片机上产生两个PWM,需要求两个PWM波形占空都为80/256,两个波形之
36、间要错开,不能同时为高电平。高电平之间相差 48/256,虽然在C51上产生PWM比较麻烦.但是可以用定时 器T0来控制频率,定时器T1来控制占空比。调节机器人运行速度的目的是为了其能稳定行走,在工作的时候减小电机的震动影响机器人的整体性能。更改push_val_left与push_val_right两个变量的值就能实现调节速度。速度调节变量范围为0-9,赋值为9时速度最小,赋值为0时速度最大。具体代码实现如下:(1)变量定义unsigned char pwm_val_left =0;/变量定义unsigned char push_val_left =0;/ 左电机占空比N/10unsigne
37、d char pwm_val_right =0;unsigned char push_val_right=0;/ 右电机占空比N/10(2)TIMER0中断服务子函数产生PWM信号void timer0()interrupt 1 using 2 TH0=0XFc; /1ms定时 TL0=0X18; time+; pwm_val_left+; pwm_val_right+; pwm_out_left_moto(); pwm_out_right_moto(); (3)调节push_val_left的值改变电机转速,占空比。实现左右电机调速 void pwm_out_left_moto(void)
38、/左电机调速,右电机调速同理不在赘述 if(Left_moto_stop) if(pwm_val_left=10) pwm_val_left=0; else Left_moto_pwm=0; Left_moto_pwm1=0; 5.2 灭火机器人火焰传感器测试及优化火焰传感器回传的数据是机器人靠近有效灭火范围内自主启动风扇进行灭火的重要依据,所以把火焰传感器灵敏度优化到最适合的情况是很重要的工作。为了达到最佳的效果,我们对火焰传感器做了以下测试,根据以下测试的结果才能更好的优化机器人程序与硬件设备。表1 阳光与日光灯对火焰传感器影响测试数据表序号环境风扇启动环境风扇启动环境风扇启动1正常正常正
39、常2正常不正常正常3正常不正常正常4正常不正常正常5正常不正常正常6不正常正常正常7正常不正常正常8正常不正常正常9正常正常正常10正常不正常正常11正常正常正常12正常不正常正常13正常正常不正常14正常不正常正常15正常不正常正常注:为白天室内有日光灯;白天室外有阳光;晚上有日光灯上表格中提到的的风扇正常启动意味着机器人在发现蜡烛接近火源且在有效灭火范围内时启动,风扇启动不正常意味着机器人的风扇可能随时启动,即没有接触到火源就自动启动,所以我们就得朝着机器人正常启动方向进行优化3。经过上述试验可以得出结论:在室外阳光的情况下,火焰传感器易受阳光照射影响,导致灭火机器人误判火源位置无法启动风
40、扇完成灭火工作。其他两种请况,火焰传感器都能正常探测火源方位。根据火焰传感器的特性,在不影响探测准确性的情况下我们调低了火焰传感器上的感应灵敏度调节电阻,使其能在测试的三个环境里准确判断火源方位并且自主启动风扇进行灭火。我们把火焰传感器的感应到火焰的距离调节到了10cm到20cm左右范围。5.3 WiFi通信模块5.3.1 OpenWRTOpenWRT是一个拥有网络组件和扩展性的嵌入式系统,它通常被用于小型机器人、智能家居和路由器设备,它还提供编译软件,更简化了软件开发的过程 9。OpenWRT它是一个功能齐全的、容易修改的路由器操作系统。也就是说我们可以直接使用里面提供的功能而不需要重新编程
41、设计。5.3.2 mjpg-streamer程序mjpg-streamer可以访问具有UVC驱动的摄像头。mjpg-streamer需要很少的CPU和内存资源就可以工作,大部分编码工作都有摄像头内部完成,所以对于内存和性能都有限的WiFi设备十分适用。5.3.3 WiFi有效通信距离测试测试WiFi与PC的有效通信距离是保证灭火机器人能在已知的工作范围内正常工作的必要保证,所以进行这项WiFi有效通信距离测试是非常有必要的。这次测试主要了解WiFi模块的通信有效距离、信号强度和网络连接性能。表2 WiFi有效距离通信测试数据表序号距离信号强度工作情况123正常243正常363正常483正常51
42、02正常6122正常7142正常8162正常9181不正常10201不正常以上表格中所说的距离指的是通信的有效半径,单位为米。信号强度指的是Windows系统下显示的与WiFi模块连接时的信号强度情况,3表示连接信号最强,以此往下类推,1表示连接信号弱。工作请况指的是机器人与PC计算机的距离测试范围内,机器人是否正常受PC端控制。以上数据表明,计算机与机器人的硬件距离半径在10米以内,通信请况是最好的,10米外通信信号开始衰减,硬件距离半径到18米后已经不适合用计算机来控制机器人工作了。6 系统具体功能实现6.1 灭火机器人工作流程通过STC89C51芯片来控制灭火机器人外部各种设备准确有效的
43、完成各项工作是本系统设计的核心。整个系统利用加装在机器人平台上的各种传感器回传的数据来判断机器人接下来应该完成的动作,实现最后灭火的总目标。所以加装在灭火机器人身上的各种设备与其控制系统的正常通信至关重要。以下为机器人简要工作流程图:图7 机器人简要工作流程图6.2 灭火机器人的行走实现因为机器人要运动必须接收PC端上位机发送对应的指令才能触发电机工作使其运动,为了保证各模块协调工作,我们采用串行口中断的方式实现这一功能,即串行通信完成一帧数据发送或接受时引起的中断。也就是说当上位机发送过来机器人行动的指令时,触发C51单片机的串行口中断,此时C51单片机就放下当前的工作而是去处理接受的指令要
44、求的行走工作调用对应的行走功能函数,由此可以实现控制机器人行走。串行口中断以及指令读取代码实现如下:void ser() interrupt 4if(RI=0) return;ES=0; /关闭口中断RI=0;/清除口接收标志位command=SBUF;/读取指令字符电机启动部分实现代码如下:switch(command)case 0x61 : /向前:左右轮同时正转 Left_moto_go ; /左电机往前走 Right_moto_go ; /右电机往前走 break; 串行口中断实现功能函数调用流程图8如下:图8 串行口中断实现功能函数调用流程图6.3 摄像头舵机转动功能实现6.3.1 功能实现由于摄像头端机转动是上位机控制的,控制原理与机器人行动功能实现一样,所以这里就不在赘述。现在说明怎么把舵机的转动幅度控制在180范围内。采用的方案是:(1) 采用脉冲宽度调制(PWM)方式控制舵机转动速度(2) 借助定时器1中断控制舵