毕业论文-基于单片机的魔兽密室逃脱系统设计.docx_第1页
毕业论文-基于单片机的魔兽密室逃脱系统设计.docx_第2页
毕业论文-基于单片机的魔兽密室逃脱系统设计.docx_第3页
毕业论文-基于单片机的魔兽密室逃脱系统设计.docx_第4页
毕业论文-基于单片机的魔兽密室逃脱系统设计.docx_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

辽宁科技大学本科生毕业设计(论文) 第V页基于单片机的魔兽密室逃脱系统设计摘 要随着科技的飞速发展,单片机技术逐渐应用到实际生活中,越来越多的娱乐设备需要更加智能化,密室逃脱游戏在各大主流城市继三国杀、狼人杀等桌游之后,是当前最潮的时尚活动。但是,目前运营的密室逃脱还是以全机械化密室为主。虽然也能完成各种机关的设计,但是想要添加或者修改关卡内容,绝大多数的情况下都是把整个房间的机关重新安装,这样不仅让成本大大提高,也加大了维修难度。所以,在单片机技术逐渐成熟的情况下,出现了通过单片机电路控制的方式进行密室逃脱关卡的设计,使用STC系列的51单片机做为本控制电路的主控芯片,这种控制方式成本低、维护方便、效果好。基于单片机的密室逃脱系统主要分为一主机与多从机的组合,主机主要是接收、分析、规整N个从机所传输的数据,每一个从机是采集自身控制的传感器模块的状态,通过无线通讯模块将此反馈给主机,主机接收到从机的消息后进而执行相应的操作,从而完成整个密室逃脱系统的故事情节。关键词:单片机;密室逃脱;CC1101;数据传输ABSTRACTWith the rapid development of science and technology, MCU technology has gradually been applied to real life, more and more entertainment devices need to be more intelligent, and the room escape games is the most fashionable event in major mainstream cities following the three-nation killing, werewolf killing and other table games. However, the escape of the currently operating secret room is still dominated by fully mechanized secret rooms. Although it is possible to complete the design of various institutions, it is necessary to reinstall the entire room in the vast majority of cases to add or modify the contents of the checkpoint. This not only greatly increases the cost but also increases the difficulty of maintenance. Therefore, in the case of the gradual maturity of MCU technology, there has been a design for the escape of the chamber through the control of the MCU circuit, the STC series of 51 single-chip microcomputers is used as the main control chip of the control circuit. This control method is low in cost, easy to maintain, and effective. The MCU-based room escape system is mainly divided into a host and multi-slave combination. The host is mainly to receive, analyze, and regularize the data transmitted by N slaves. Each slave is in the state of collecting its own control sensor module, and this is fed back to the host through the wireless communication module. The host then receives the message from the slave and then performs the corresponding operation, thereby completing the story of the entire chamber escape system.Key words: MCU;room escape;CC1101;data transmission目 录摘 要IABSTRACTII1 绪论11.1系统背景和意义11.2研究现状21.3本系统的研究内容42 原理设计52.1密室整体功能介绍52.2无线数据传输62.3数据识别原理62.3.1数据包头62.3.2数据包尾72.3.3数据进行校验72.4数据通信原理72.4.1SPI协议72.4.2串口83 系统硬件设计103.1系统总体实现的功能103.2系统总体结构图103.3主控电路的设计113.4电源电路设计123.5通讯模块设计153.6音频模块设计163.7数码管显示电路设计163.8继电器电路设计184 系统软件设计194.1音频驱动194.2无线通讯204.3数码管显示214.4视频自动播放224.5开门与跳关设计225 系统功能实现235.1系统功能测试内容235.2系统功能测试过程235.2.1主从机电路板电源测试235.2.2主从机无线通讯测试235.2.3从机数码管显示测试245.2.4主机视频和音频播放测试245.2.5开门和跳关功能测试255.3调试过程出现的问题与解决方案255.3.1数码管乱码显示问题255.3.2CC1101无线通讯模块通讯问题26结 论27致 谢28参考文献29附录A电路原理图与PCB30附录B部分程序32 辽宁科技大学本科生毕业设计(论文) 第35页1 绪论1.1 系统背景和意义密室逃脱,就是把玩家放在一个密封的一个房间里面,玩家必须通过对房间机关的探索,团队配合,依次解开谜题,从而逃离这个密室。最早的真人密室逃脱,起源是2006年硅谷一群系统程序师,根据阿加莎克里斯蒂的小说灵感,设计了一系列的场景,并把它们还原到了现实中,提供给所有员工进行冒险解谜,命名为“origin”。由于难度过高,至今只有23人逃脱成功,这间密室也成为了硅谷的一个景点和传说。密室逃脱游戏在中国大陆真正意义普及推广开来应该说是在2012-2013年左右,因为在这一年的时间里,不但涌现了大量的密室逃脱游戏体验店,而且也培养出来一大批忠实的密室玩家。这帮玩家不再是仅仅局限于为了尝鲜而去玩密室逃脱,而是一批非常专业的密室爱好者,他们思路严谨而挑剔。注重密室的整体故事性、机关的表现形式、环境的体验感和关卡的思路逻辑等。一个个都可以说是密室逃脱中的精英玩家,而这样的一批玩家有相当一大部分人后来都拥有了自己的密室逃脱店面,也正是他们的加入才出现了2013年的繁华市场景象。这一年普通原始的密室逃脱店铺相继停业退出了密室逃脱市场,随之代替的是机关形式更加机械、更加自动化的新型密室,是布景环境更加逼真,灯光音响效果更加绚烂的高科技类型密室。到了2014年,真人密室逃脱游戏开始品牌化发展,市场上不但出现了大量具有一定品牌影响力的密室店铺,而且也出现了一些非常专业的密室逃脱设计制作公司和机构。这些公司的发展也相应带动、提高了密室逃脱行业的整体水平,使密室逃脱成为了真正具有强大生命力的独立行业,也奠定了密室逃脱行业今后的发展基础。密室逃脱真人版一开始所使用的道具是各种密码锁和各种文字谜题,玩家需要解答出该谜题的谜底,找到钥匙或者从所在的环境中找到密码,打开密码锁,之后就是开完数个密码锁之后完成本次密室的挑战,最后打开房门,挑战成功。由于密室逃脱与其他的游戏不同,所以也出现许多忠实的推理爱好者。由于在这些密室爱好者的眼光越来越高,厌烦那时的各种密码锁和文字推理的游戏方式,爱好者们追求更新鲜的游戏方式,这样,在单片机技术的高速反战阶段,从道具密室转化成机械化密室也更适合当前的趋势,让密室逃脱的设备让从简单的密码锁道具转化成智能化设备,加入效果更好的设备,不仅让玩家在游戏过中更能体验到密室故事情节的细节,也进一步的把密室逃脱游戏向新的阶段发展,促进的中国游戏市场的发展。1.2 研究现状 2013年开始,密室逃脱游戏作为时下最热门的娱乐游戏风靡全国,一大批追求新鲜刺激的年轻人迅速被吸引,成为其又一娱乐休闲项目。而真人密室逃脱游戏作为新兴的行业,在国内市场尚正处于起步阶段,拥有相当大的发展空间,更因为其具有投资小,收益高,市场广,回本快的特点,成为想要自主创业者的首选。伴随着这一时期KTV行业、室外运动拓展、桌游等相关行业的没落,密室逃脱文化却是逆流而上,成功接起了青年人娱乐方式变革中的大旗。成为了娱乐潮流中的先锋代表,时尚活动中的代名词。当80后老去,90后成功崛起成为年轻人消费的主力时,恐怕当时作为大导演的文森佐纳塔利,怎么也不会想到他们的一部影片竟然改变了这一代年轻人的娱乐生活。他们不再考虑过去,却对未来种种的神秘、种种的未知和各种突发的状况而着迷。随着密室逃脱的发展,密室逃脱的主题变得越来越多样化,密室逃脱的主题素材从电影、游戏等方面选取,也是为了吸引更多的玩家,开拓自己的市场,为密室逃脱的发展提供新的发展方向。最近比较火爆的游戏魔兽世界,也在被各个密室选择作为新的主题。魔兽世界(World of Warcraft)是由著名游戏公司暴雪娱乐所制作的第一款网络游戏,属于大型多人在线角色扮演游戏。游戏以该公司出品的即时战略游戏魔兽争霸的剧情为历史背景,依托魔兽争霸的历史事件和英雄人物,魔兽世界有着完整的历史背景时间线。玩家在魔兽世界中冒险、完成任务、新的历险、探索未知的世界、征服怪物等。2003年魔兽争霸III:冰封王座发售之后,暴雪娱乐正式宣布了魔兽世界的开发计划(之前已经秘密开发了数年之久)。魔兽世界于2004年在北美公开测试,同年11月23日开始在美国、新西兰、加拿大、澳洲与墨西哥发行。截至2008年底,全球的魔兽世界付费用户已超过1150万人,并成功打进吉尼斯世界纪录大全。2008年4月,魔兽世界在MMORPG市场占有率达62%。截止2014年1月,全世界创建的账号总数已超过一亿(含试玩版账号),人物角色达到5亿。共有244个国家和地区的人在玩魔兽世界,包括南极、巴哈马,圣诞岛,以及托克劳群岛之类。由于游戏的故事情节很有代入感,也吸引了许多魔兽玩家,也让更多的电脑玩家更想体验在现实的打怪与通关过程。1.3 本系统的研究内容本系统主要使用了当前最成熟的技术单片机控制技术。由于单片机的结构和指令都是按工业控制要求设计的,特别适合工业控制及与控制有关的数据处理场合1。根据电影魔兽的故事情节设计了一套与之贴切的密室逃脱系统,根据魔兽密室里面每个关卡的通关思路和密室剧情的发展内容,设计不同的硬件电路,满足剧情的需要。使用无线通讯模块建立一主机与多从机的通讯模式,通过单片机控制各种传感器与继电器,完成各个关卡的通关过程,进而实现该密室所想要表达的主题内容与效果,让每一位玩家在思考通关的过程中真正体验到密室逃脱游戏的真正意义。2 原理设计本系统的工作原理是主从机通过无线通讯模块进行通讯,进而执行相应的操作。本设计的主从机数据采集主要通过无线模块接收数据,是本设计的核心部分,使用的是SPI协议的通讯模式,通过单片机将其他的设备所采集的数据收集起来并进行分析,再通过无线模块把数据发送给主机,是通讯模块采集数据常用的做法。在考虑到各种传感器的协议,使用SPI无线通讯模块不仅预留了串口进行更多的开发,也避免了串口被占用导致的收发数据发生混乱,使系统在工作过程中更加安全稳定。2.1 密室整体功能介绍本密室一共有三个房间,每一个房间的都有许多功能的关卡组成,接下来分别介绍每一个房间的功能关卡,每一个房间的每个关卡都是一个独立的单片机进行控制。第一个房间的功能关卡有:密室开始启动功能,九宫格触摸按键关卡,四位数码管输入坐标关卡;接着是第二个房间:摇杆方向密码关卡,IC射频卡识别关卡,随机亮灯触发按键的打斗机关(通关后会进行一个视频播放);最后第三个房间:九位数码管的消零关卡,扣血机关,随机音频触发按钮的风火雷电关卡,三点同时触发金属感应器的轮盘关卡。其中跳关功能是独立,可以放在任意一个房间里,每一个关卡通过后会播放对应的音频与视频,用来指引玩家进行下一关的挑战。2.2 无线数据传输本系统采用的无线传输技术为433MHz。433MHz无线传输技术是我国免申请的发射接收频率,可直接使用,其穿透性强,通讯距离较远,广泛应用在工业、医疗、等领域中。无线传输技术的信号增益值,此参数表示天线功率的放大倍数,该数值越大,就表明信号的放大倍数就越大,或者说传输质量就越好。一般表示增益的参数有dBd(相对于点源天线的增益)和aBi(相对于对称阵子天线的增益)其三为天线接口,在使用的过程中可以进行拆装和外接天线,针对不同的天线接口选择对应的进行匹配,这样可以加大信号发射的距离。2.3 数据识别原理在嵌入式应用层的通讯协议中,通信双方需要确定通信格式,即主机发送建立的数据包和发送方式,从机通过该方式接收主机的数据包,在此基础上还需要考虑在通信过程中数据的完整性。以下为本系统的数据包格式。2.3.1 数据包头在单片机中,数据传输是以字节为单位的,那么在判断数据的开始时需要一个标志字节,该标志字节起到让接收端知道什么时候该接收数据,什么时候不该接收数据。该标志位叫做包头,做包头的数据不能和其他数据发生冲突,否则会造成混乱。在本设计中,传输的数据范围是0X00到0XFF,因此不能用一个字节的包头,故采用了4字节包头即AA FF 00 55 。在该组包头中0XAA和0X55是互补的关系,0XFF和0X00也是互补的关系,在发送的数据中,出现这组数据的概率几乎为0。所以该组数据相对来说比较安全。2.3.2 数据包尾一般发送的数据格式分为两种,定长数据包和不定长数据包。但都需要有包尾,其目的是确保一帧数据的接收完毕。在本设计中采用定长数据包,并且以0XFF作为包尾。2.3.3 数据进行校验检验包头与包尾可以初步确定数据的接收与发送设备,但是,这种校验方式只是检验数据位的对错,并不能检验数据的对错,因此需要在应用层中添加新的校验,新的检验可以检验或者纠正数据包中出现的错误。这样数据的正确性可以得到更好的保证。在本设计中,在包头之后紧跟着的是两个字节的数据个数 ,在接收时需要验证接收的数据和数据个数是否一致,如果一致,说明数据发送正常,没有丢包的现象。否则放弃掉该组数据重新接收。2.4 数据通信原理在单片机和设备的通信过程用需要用到各种各样的通信协议,其中最常见的有IIC、SPI、串口、RS485、CAN和USB等。本系统所需要的协议有串口、SPI。2.4.1 SPI协议SPI协议,是一种同步串行的通讯协议。其特点有采用主-从模式(Master-Slave) 的控制方式、采用同步方式传输数据和双方向数据交换。一个SPI设备如果想要被主设备控制,必须要通过CS引脚对SPI设备进行片选,在数据传输过程中,每次接收的数据必须在下一帧数据来临之前被采样,如果未采样,则本帧数据被丢弃。SPI接口至少需要4根线,SDO(主设备数据输出)、SDI(主设备数据输入)、SCLK(主设备产生时钟)、CS(从设备片选线)。一般情况下对于主器件来说,数据在时钟的前沿被采集,后沿被输出,而在通信过程中,主机和从机的数据传输是同时间完成的。SPI由两个相位和两个极性共同组成了四种工作模式,如图2-1所示。图2-1 SIP时序图2.4.2 串口串口通信是一种能够在两根双向数据线上进行按位发送或接收的通信协议。数据能够同时在这两根数据线上传输。利用这种设计可以很好的解决单总线协议在通信时低速率、低稳定性的问题。在串口通信中,经常使用到的参数有:波特率、数据位、停止位和奇偶校验,这些参数都是重要的参数。在使用的过程中,必须匹配这些参数才可以使用: 1) 波特率表示了串口通信过程中数据传输速率的快慢。它表示每秒钟传输的字节数的个数。例如在4800波特率的情况下,每秒可在信道中传输的二进制数据个数为4800位。2) 数据位表示了串口通信时每次传输数据的有效数据位。当通过串口传输一个数据包时,实际发送或接收的数据位数不是8位,一般采用5、7和8位制,该值是由传输数据类型决定的。例如,标准的ASCII码个数为128,即0x00到0x7F(一个字节的低7位),扩展型ASCII码个数为256,即0x00到0Xff。 如果通过串口发送或接收的是字符串(标准的ASCII码构成的数组),那么7位数据可满足一个数据包的表达。3) 停止位表示了串口通信时每一个通信数据包的最后一位,一般取值为1,1.5和2位,在串口通信的过程中,停止位有两个功能,第一是做数据停止标志位用,第二是由于两个设备之间可能出现数据不同步的现象,所以需要停止位去检验和同步两个设备的时钟。因此使用越多的停止位,设备之间时钟同步容忍度就会越大,那么就会降低数据传输速率。4) 奇偶校验位表示了串口通信时协议对数据包进行校验的方式。有四种检错方式:奇校验,偶校验,高电平校验和低电平校验。在偶和奇校验的情况下 串口需要发送一位的校验位(数据位的后面一位),该位用来表示数据位中的逻辑高位的奇偶个数。在高低电平校验的情况下,校验位并不是去检测数据逻辑的高低,而是简单的设置最后一位的高低电平。这可,可是使接收设备知道最后一位的电平,从而判断该数据是否出错,该校验模式能够的判断出在传输的过程中是否存在噪声干扰或者数据不同步的现象。3 系统硬件设计 根据每个房间的关卡设计,且每个关卡都是通过一个单片机进行控制,整个密室需要的控制板一共12块,每个关卡进行单独控制主要是为了在绘制控制板原理图与PCB图上更加方便,把每个关卡需要的电路与接口都画在上面,之后根据每个关卡的功能需要焊接对应的元器件,这样绘制一个通用电路板可以节省成本与减少PCB绘制的时间。3.1 系统总体实现的功能本系统主要实现的功能有:1) 主从机都能通过无线模块进行数据的接收和发送2) 主机可以实现音频的播放3) 主机可以实现视频的播放4) 从机可以实现数码管的显示5) 从机可以实现按键的操作6) 从机可以改变继电器的状态3.2 系统总体结构图本系统的硬件结构主要有:电源电路、单片机最小系统、无线通讯模块的接口电路、音频模块的驱动电路、数码管显示电路、按钮电路、继电器电路。如图3-1所示。图3-1 系统硬件功能结构图3.3 主控电路的设计主控电路,顾名思义,是核心控制芯片的外围电路,也可以叫做最小系统,是使用较少元器件搭建而成的电路系统。其中本系统所使用的单片机型号为STC89C52RC,该芯片内部具有强大的功能,加密性强,有超强的抗干扰能力,正常工作时功耗很低,有掉电保护功能,满足本次设计的需要。使用11.0592M晶振和22PF的瓷片电容搭建的晶振电路,让单片机在工作过程中产生的延时和波特率更加准确。外接复位电路是为了在程序运行中发生死机等特殊情况后,可以及时复位程序,重新运行,不需要在重新关电上电。在复位电路中,使用一个电容和一个电阻,它们的大小分别是10uF和10k。根据计算公式,可以计算出电容充能时间为0.1S,也就是说在打开电源后的0.1S内,电容两端的电压为3V左右。这个时候串连上10K电阻,这也缩短了按下复位键单片机重新工作的时间。指示电路是一个简单的工作指示功能,目的就是给人能直观的看到电路是否是正常工作。P0口输出电压低于3V,在使用P0口时要加上拉电阻,保证P0口输出高电平满足信号的电平需要。如图3-2所示。图3-2 单片机最小系统电路图3.4 电源电路设计根据本系统所使用的芯片和模块,也结合了生活中常用的供电方式,本系统电源电路设计了12V转5V和5V转3.3V的电源电路,这些电压值也是我们在电路设计中经常使用的电压值。12V转5V电路采用的芯片是LM7805芯片,LM7805是常用的三端稳压器,LM7805芯片三端稳压IC内部电路具有过压保护、过流保护、过热保护功能,这使它的性能很稳定。输入电压在7-30V范围,能输出稳定的直流5V电压,和能够实现1A以上的输出电流。器件内部具有稳定的集成电路,输出电压的误差精度很小,因此该产品的使用范围很广。如图3-3所示。图3-3 LM7805内部电路图本系统使用LM7805芯片搭建而成的电路,在输入输出端通过大电容进行滤波,不仅降低电源的干扰,使稳压出来的电压更加稳定,由于12V电源在生活中随处可见,所以使用12V电压进行稳压。如图3-4所示。图3-4 LM7805稳压电路图5V转3.3V电路采用的芯片是AMS1117芯片,该芯片作为一款经典的LDO,内部集成了限流电路、过热保护,能够在过流过热的情况下保护芯片不被烧毁。该芯片不需要太多的外围电路,只需要添加输入电容和输出电容以及负载即可得到固定电压值的电路。如图3-5所示。图3-5 AMS1117经典电路图本系统使用AMS1117芯片搭建的稳压电路,输出稳定的3.3V电压,通过LM7805芯片输出的5V电压进行稳压输出3.3V,给需要3.3V电源的芯片和模块进行供电。AMS1117芯片的输入输出两端也是只接电容进行滤波,就能输出稳定的3.3V电压,AMS1117芯片内部也有自动的保护功能,也使得该稳压电路更加稳定。如图3-6所示。图3-6 AMS1117-3.3V稳压电路图3.5 通讯模块设计本系统的通讯方式是采用一主机与多从机的无线通讯方式,使用的是工业级别的极低功率的无线收发器CC1101无线模块。CC1101无线模块高稳定性,绕射性能强,穿墙能力优秀的工业级的无线收发一体数传模块。模块自带定位孔和外螺纹内孔SMA射频座子,采用美国德州仪器公司原装进口的CC1101射频芯片设计开发,自带FEC和交织编码,抗干扰能力强。该模块的发射功率很大,满足本次设计的需要,外围电路的电子元器件都是经过精密的计算的出来的,该模块是工业级产品的标准典范。如图3-7所示。图3-7 CC1101接口图3.6 音频模块设计本音频播放功能采用了一款小巧功能有强大的MP3模块BY8001音频模块。该模块使用的是以BY8001为控制芯片,支持MP3等各种音频格式。模块内置设计有内存卡的卡座,可以通过读卡器放在电脑进行修改内存卡里面的内容。该模块本身内部自带了功放电路,可以直接驱动功率达3W的扬声器。该模块有多种控制方式,为了更方便的播放音频,本次设计通过连接单片机串口来进行控制音频的播放。如图3-8所示。图3-8 BY8001音频模块接口图3.7 数码管显示电路设计密室逃脱最少不了的是数字密码,为了让玩家体验更好的游戏过程,本系统添加了以数码管做为显示密码的装置,通过按钮来改变数码管显示数字,进而输入正确的密码,通过本关。数码管的驱动电路主要由74HC595和ULN2803芯片组成,根据74HC595芯片的内部集成电路,可以进行并行三态输出和8位串行输入。在SCK进入到上升沿的时候,会从SDL端输入串行数据,并进入到8位的位移缓存器进行存储,通过Q7端口进行输出,在LCK进入得到上升沿时进行并行输出,把8位位移缓存器的数据存入到8位并行输出缓存器。当OE控制端口位低电平时,输出缓存器的值等于并行输出的值;当OE控制端口为高电平时,74HC595芯片处于高阻态的状态,也会把输出的功能关闭掉。如图3-9所示。图3-9 74HC595芯片引脚图ULN2803芯片内部集成的电路具有耐压、大电流的特性,电路内部包含八个独立的三极管驱动单路。电路内部的电路设计可以进行驱动继电器、电机等需要大电流的器件,单个驱动电路可以输出很大的电流。如图3-10所示。图3-10 ULN2803芯片引脚图3.8 继电器电路设计本设计通过添加继电器,控制更多的大功率用电器,突出密室逃脱的效果。继电器是一种常用的电子器件,在电子线路中,根据当时的输入量的变化达到不同程度,进行相应的阶跃性变化。继电器可以进行信号的输入控制,也可以进行信号的输出控制。继电器通常使用在有控制回路的电路中,也是通过小电压去控制大电压的一种控制器件。所以,增加继电器,不仅仅只是为了控制大功率用电器,在维护方面也大大降低了难度,懂得基本的电路知识的人都能进行更换。如图3-11所示。图3-11 继电器驱动电路图4 系统软件设计由于每个密室逃脱的关卡功能是需要根据每一个密室逃脱的主题设计者来设计的。由于整个密室的关卡功能过多,工作原理有相似之处,所以,下面重点介绍魔兽密室主题的部分功能。4.1 音频驱动本密室主题与其他主题的密室有很大的区别,在魔兽世界里,设计者把每一位人物角色言行都加入了密码线索的提示,这样他们的提示都能影响到每一位玩家的密室通关思路。为了把玩家迅速带入密室的主题里,使用音频播放的方式,使用了BY8001音频模块进行音频播放,根据音频模块的控制方式,为了不占用单片机过多的IO口,本次设计使用的音频模块通过串口来进行控制。先在电脑把音频做好,把每一个音频都做好序号排列,如001-你好。把内存卡插在音频模块上,接上喇叭,当主机接收到从机发送的执行指令时,就会播放对应的音频,程序上先设置好串口的波特率,如果没有特殊要求,一般波特率设置为9600,初始化串口,在把串口的标志位清零,这样可以防止串口收不到数据。为了方便编写程序,将播放的曲目建立一个二维数组进行保存,需要播放哪个曲目就直接调用数组标号即可。因为播放指定文件的音频,执行函数包一共包含了:起始码、长度、操作码、文件夹号、歌曲名、效验码、结束码。这里为了方便编写程序,定义了一个协议,将起始码、长度、操作码、文件夹号、结束码这几个分别定义为0X7E、0X05、0X42、0X00、0XEF ,把歌曲名和效验码作为变量,“长度”是指长度+操作码+参数的长度+校验码,“校验码”是指长度(异或)操作码(异或)参数的值,按顺序分别异或的值。校验码我们可通过计算器的Xor运算得到。每个歌曲名都有自己对应的效验码,这样不仅可以简单的区分出曲目的名字,也能防止播放错误的音频。这个模块还可以通过其他指令执行对应的功能,如增减音量,设置循环模式,上一曲,下一曲等功能。4.2 无线通讯本系统是通过无线通讯来把每一个关卡建立了联系,也是本系统的核心。在CC1101数据接收发送中,首先要配对CC1101的接收和发送地址,只有接收端和发送端的地址正确了,才能正常发送数据。在使用的过程中CC1101需要进行一系列的设置,其中常见的设置有,接收和发送模式设置、检测寄存器设置、检测应答信号设置。其中在设置接收发送模式中需要的设置项有写入接收和发送地址、数据包传输个数、自动应答、发送或接收功率、发送或接收使能。使用CC1101是不需要制定包头和包尾,因为CC1101内部已经把数据打包,并具有CRC检验。当CC1101处于发送模式时,需要将通道地址和有效数据按照SPI协议写入内部缓冲区中,之后需要将SPI的GDO1引脚设置为高电平并保持至少10us的时间。在此过程中,如果芯片内部的自动应答开启,那么CC1101在数据发送之后就立马进入接收模式,如果收到应答,那么标志着本次数据发送成功,如果此时GDO1为低电平,则芯片会自动进入空闲模式。如果没有应答,芯片会识别为未收到,需要重新发送数据,如果重新发送次数超过发送次数上限,则产中断,并通知MCU发送失败。当CC1101处于接收模式时,需要在设置接收模式之后有130us的延时,其目的是让芯片进入接收数据等待状态。当接收信道中出现有效的地址和CRC检验码时,就将接收到的数据包存入内部FIFO中,同时将接收标志位置为高电平,并产生中断,如果GDO1引脚为低电平,则自动进入空闲模式。如果在此之前自动应答开启,接收数据之后会进入发送模式,将接收状态发送出去。整个系统都需要依靠CC1101来进行推动工作。如图4-1所示。图4-1 CC1101电路图 4.3 数码管显示密室逃脱里离不开寻找密码的关卡,用数码管显示是一种比较常见的方式。根据数码管的驱动电路,数码管的驱动电路是由74HC595和ULN2803芯片搭建而成的,引出的控制引脚可以直接连到单片机的IO口上,程序方面编写了模拟SPI协议的驱动,这两个芯片没有数据锁存的功能,所以每次需要改变数码管显示的时候都需要把一起级联的数码管也要重新写入一遍,但是只要把这个刷新间隔缩短到人眼看不到数码管的闪动就可以了。本系统需要五个按键来改变数码管的数值,其中四个是对应是控制每个数码管的数值变化,另外一个是确认键,在主机给该从机发送启动指令后,本关卡就开始运行,每当玩家正在尝试密码是否是正确时,每次确认都会伴随音频的响起,通过声音的方式给玩家密码正确或者错误的提醒,确认后数码管显示的数值,正确进入下一关,不正确,重新输入,错误次数过多会有一段的等待时间(等待时间需要结合整个密室的挑战时间来确定),之后才能继续挑战。4.4 视频自动播放视频自动播放是本系统的一个功能亮点,以往的密室都是没有视频播放的功能,如果有,也是需要手动去播放的。该功能使用了能通过单片机控制的视频播放模块,这模块需要将视频文件放在U盘或者内存卡里,有五个IO口能与单片机相连,单片机通过改变这五个引脚的电平高低,进而实现播放自己想要的视频。在使用前,需要把投影仪调到电脑播放模式,在主机收到从机的视频指令后,主机就会改变控制视频的五个IO口的电平高低,进而实现视频自动播放。每次播放完之后会进迅速入到初始化模式,也就是黑屏状态,等待下一条的视频指令。本密室特别需要视频播放功能,玩家在闯关过程中,根据视频内容,了解到本密室的主要剧情发展,也能更好的梳理通关思路,减少闯关过程的犯错次数。4.5 开门与跳关设计在密室逃脱游戏中,有些玩家会遇到各种问题,自身与队友都无法解决的情况下,这就需要工作人员提供帮助,开门功能的设计主要是为了让工作人员随时随地进入到密室房间里,及时给玩家提供相应的帮助,一旦房间内出现紧急情况,工作人员也能及时解救房间里面的玩家。跳关功能的设计是为了当遇到特殊情况,当玩家不想挑战本关或者是因为本次挑战人数限制又或者存在特殊人员情况,让玩家跳关,顺利进入到下一关,这也能及时的满足玩家的需要,为玩家提供更多的服务。5 系统功能实现5.1 系统功能测试内容由于本系统的功能过多,也有类似的功能存在,所以本系统功能测试的内容为:主从机电路板电源测试、主从机无线通讯测试、从机数码管显示测试、主机视频和音频播放测试、开门和跳关功能测试。5.2 系统功能测试过程5.2.1 主从机电路板电源测试本系统是通过12V电源通过稳压给单片机与功能模块供电,将12V电源接口结上之后,打开开关,观看电源指示灯是否正常显示,用手触摸单片机是否烫,用万用表测量单片机供电电压是否达到3.8V-5.5V的范围里,在范围里说明LM7805芯片与单片机正常工作,反之没有正常工作;接着是AMS1117转压电路,输出端的电压在2.4V-3.8V的范围里,说明AMS1117芯片正常工作,反之没有正常工作。5.2.2 主从机无线通讯测试提供稳定的3.3V电压时,是进行主从机的通讯测试的最基本条件,电压一旦超过3.3V,会导致无线通讯模块烧掉,无法工作。接着就测试烧录到单片机的程序能否让每一个从机能与主机进行通讯,正常通讯,就可以进行每个关卡的功能测试,如果不行,首先查看通讯部分的程序,SPI协议是否编写正确,CC1101的寄存器是否已经设置好,通讯方式的模式切换是否已经设置好,接着检查模块接口是否与原理图正确对上。这个测试是本系统最重要的测试环节,只有确保通讯成功才能进一步测试。5.2.3 从机数码管显示测试因为数码管模块有两个电源,一个是12V,另一个是5V,首先把数码管电源接上,通过按键进行改变数码管的数值显示变化,把刷新时间调到肉眼无法看出来,这也就实现了单个数码管的变化,在操作过程中是否出现数码管乱码的现象,加上无线通讯模块,测试数码管模块是否会影响到主从机之间的数据传输,如果有,需要进行优化程序。因为数码管是人眼能看出来的,一旦出现乱码问题,会直接影响到玩家的解题思路和体验效果,数码管的效果也是能决定这个密室的效果好坏,所以也是系统测试的重点之一。5.2.4 主机视频和音频播放测试视频播放是了解本密室的重要途径,单片机通过控制视频模块上的五个IO口,进而控制视频的播放,每次打开投影仪,都会进行初始化,在收到从机的视频播放指令,主机改变五个IO口的电平,观看是否播放对应视频;音频播放时通过串口的RX与TX进行数据传输,因为主机是通过SPI协议的通讯模块进行通讯的,所以为了不发生冲突,设置串口中断和定时器0中断,定时器每200MS检测一次是否有从机发送消息,之后在判断串口中断。每挑战每一关卡或者通过每一关卡,都会视频或者音频播放,指引玩家进入到下一关的挑战,是本密室的亮点。5.2.5 开门和跳关功能测试密室里面每一个房间的房门都是通过电磁锁来锁的,在第一个门口接了一个单独开关,提供给工作人员使用的,方便进出给玩家提供帮助。为了检测开门功能是否对其他的关卡有影响,在启动密室之后,在每到一关都会进行一次开关门的测试,模拟每一个关卡需要工作人员进入密室后开关门是否影响到关卡的执行效果。跳关功能是单独接了一个单片机控制,测试方式也是跟开关门一样,每到一关,进行跳关测试,观察本关卡跳关过后会不会再次启动或者出现其他的问题。5.3 调试过程出现的问题与解决方案在模拟调试与现场安装调试有很大的区别,首先是环境不同,模拟调试时在接近于理想的环境下进行调试的,而在现场调试得根据现场的环境因素进行参数的修改与电路的完善,满足设计要求。下面是介绍现场调试过程中主要遇到的问题与问题的解决方案。5.3.1 数码管乱码显示问题由于本系统使用的是以74HC595与NLU2803搭建的数码管驱动电路,给数码管提供的电源是12V,给驱动芯片提供的是5V电源,在使用过多的电源的情况下会对码数管显示产生一定的影响,也导致数码管显示乱码的现象。在四位数码管关卡与九位数码管关卡都出现最后一位数码管乱码的问题。1) 寻找影响的因素首先检测数码管模块是否能正常显示,接着查看编写的数码管驱动程序没有错误的情况下,最后影响的因素是电源对数码管数据传输产生干扰。2) 解决方案在数码管模块的电路上,在12V电源接口与GND接口加一个100UF的电解电容进行滤波,在数码管的三个输入数据口上分别串上10K的电阻进行上拉,提高数据的传输稳定性。5.3.2 CC1101无线通讯模块通讯问题本系统使用的通讯模块是CC1101无线通讯模块,需要的电源电压是3.3V,通讯协议是SPI协议。现在调试的过程中,出现某些关卡接收不到主机发送的启动指令,直接导致在游戏过程中直接中断,这是每个密室逃脱游戏不允许出现的现象。1) 寻找影响的因素首先检测模块是否能正常工作,检查天线是否以接好,在排除硬件问题后,查看模块电路原理图与程序定义的IO口是否正确,最后影响的问题是主机发送的启动指令只有两条,从机在等待的过程中会隔1分钟进入到定时器中断检测,这个过程有3MS的检测时间,在这3MS中不会接收主机的消息,主机发送指令过少导致存在部分从机接收不到消息。2) 解决方案在程序里,在发送函数里每隔1MS给从机发送一次启动指令,等从机接收到之后给主机一个大幅指令后再停止发送,这样可以避免主从机之间通讯中断的问题。结 论本系统使用STC89C52单片机作为主控芯片,通过无线通讯模块CC1101进行数据传输,收到指令后,通过单片机改变控制对应功能模块的IO口的电平变化,使对应的功能模块执行相应的功能,进而完成整个密室逃脱的功能。本系统分为主机和从机,主机控制的功能有:无线通讯模块、音频模块和视频模块,主机通过CC1101判断是否收到从机的指令,进而执行相应的功能,推动密室剧情的发展。从机控制的功能为无线通讯模块、数码管显示、继电器等,从机通过CC1101模块判断是否接收到主机的执行指令,进而启动对应的关卡,完成密室剧情的需要。本系统的维护比较简单,模块损坏只需要购买对应的模块换上即可,需要添加更多大功率用电器只需要在接一个继电器即可完成控制。本系统还可以在各个主题密室使用,因为电路板是通用的,功能只需要购买对应的模块与传感器即可完成。致 谢每年六月都是一个毕业季,许多的学子都将踏上自己崭新的生活,有的换了新的校园生活进一步学习,有的进入到社会里进行磨练。我的大学四年生活即将接近尾声,完成毕业设计,也将预示着我即将离开校园

温馨提示

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

评论

0/150

提交评论