【《基于STM32的自动饮料售货机结构设计》13000字(论文)】_第1页
【《基于STM32的自动饮料售货机结构设计》13000字(论文)】_第2页
【《基于STM32的自动饮料售货机结构设计》13000字(论文)】_第3页
【《基于STM32的自动饮料售货机结构设计》13000字(论文)】_第4页
【《基于STM32的自动饮料售货机结构设计》13000字(论文)】_第5页
已阅读5页,还剩32页未读, 继续免费阅读

下载本文档

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

文档简介

I1绪论11.1自助饮料售货市场发展现状11.2自助饮料售货机技术研究现状11.3本文研究的内容和组织框架22.自助饮料售货机的系统设计方案32.1主控芯片方案32.2触摸屏选择方案32.3射频芯片选择方案42.4电机驱动模块方案42.5存储模块设计方案52.6上位机软件方案62.7语言芯片选择方案73系统硬件设计93.1STM32F103ZEF6单片机介绍93.1.1电源电路93.1.2晶振电路93.1.3复位电路103.2导购界面设计103.2.1LCD界面设计113.2.2GUI环境移植123.2.3触摸屏123.3RC522射频电路设计123.3.1RC522芯片电路123.3.2天线及其滤波匹配电路133.4存储模块电路设计143.4.1AT24C02芯片简介143.4.2AT24C02存储电路设计153.5电机驱动电路153.6语音播报模块174系统软件设计184.1导购界面软件程序设计184.2RCC522射频模块软件设计184.3存储模块软件设计194.4电机驱动软件设计204.5语音模块软件设计214.5.1语音串口初始化214.5.2程序流程图214.6上位机软件设计224.6.1界面设计224.6.2利润统计设计234.6.3商品的增删改操作244.6.4上位机与存储模块之间的数据传输命令244.6.5销售数据存储设计245系统调试265.1硬件调试265.1.1触摸屏调试265.1.2支付系统调试265.2数据测试275.2.1触摸测试276结论与展望286.1结论286.2存在问题286.3展望28参考文献30

引言自动贩卖机的出现,也算是技术改变生活的一种体现,它的出现极大地方便了消费者,对消费环境也产生了一些影响。伴随着中国老龄化社会的到来,劳动力会成本增长,在未来社会,自动售卖机一定会有很大市场。自动售卖机可以实现24小时不停机运行,最大化的提高了效率,对于深夜加班回家的人,在路边,在楼下贩卖机可以在极端是的时间内选择自己想要的东西,最大程度的方便了人们的生活。同时自动贩卖机可以实现极低成本的运行,并且相比于超市或者市场售卖,自动售卖机不需要高昂的房租,同时经营所需的地方也做到了最小化,可以在楼下,可以在电梯口等任意地方。绪论自助饮料售货机市场发展现状二十世纪后期,自助售卖机就在西方发达国家就已出现,并开始了大范围普及。到了二十一世纪初,售卖机的普及率已经相当高,其凭借着操作便捷,且较为低廉的人工成本,得到了迅速发展,且售卖机的外壳还可以张贴广告,可以起到较好的宣传作用。在欧美日韩等发达国家,到处都是自助饮料售货机的身影。在国土面积稀少的日本,约莫2000年,在市场上自助售卖机就达到了将近五百五十万台。这种市场保有量就相当于在当时每二十个个人就会配备一台自助售卖机,可见其普及率之高。但相比于西方的发达国家,我国的起步就相对较晚,一方面是因为我们的劳动力成为相对较低廉,另一方面也跟当初的社会发展状况息息相关。随着时代的发展,中国也慢慢步入老龄化社会,劳动力资源更加珍贵,尤其是我们的老龄化人口增加的数量是恐怖的。所以传统超市以及商场的经营成本会大幅上升,利润下降,这也促使了自助行业的发展。加之近年来电商行业的蓬勃发展也对传统行业造成了不小的冲击,所以说,我们在这一行业的市场是较为广阔的。自助饮料售货机技术研究现状时代的进步,科技的发展带给人们的是技术发展的红利,尤其是在新兴行业。人民群众的生活越来越智能,越来越方便,越来越多的智能设备在生活中频繁出现。在发达国家,自助售卖模式正在逐步占据零售行业的发展空间。由于自助售卖机可以实现24小时无人售卖,非常便捷,且当下的售卖机可以实现的功能是非常丰富的,大多数传统售卖机只能实现硬币的识别后或纸币的识别,这种支付方式本身就限制了传统售卖机的发展,尤其是复杂的找零装置,成本极高,普及起来有难度。但是在中国,我们的电子支付平台的发展,让自助售卖机的发展有了更高的平台,可以利用支付宝或微信等平台进行支付,抑或直接刷卡支付,快速便捷的支付方式极大促进了自助售卖机行业的发展。上述的两种方案我们进行研究,一种是新型的电子支付,另一种是刷卡支付。本设计主要研究的是刷卡支付。客户不用掏币,机器不用找零,方便至极。本文研究的内容和组织框架本设计主要研究了一种基于STM32微处理器的支持RFID射频支付的自助饮料售货机控制系统,可以通过上位机查找到自助饮料售货机实时的售卖信息,并可以在上位机上修改商品数量、价格以及销售利润等。本设计完成了自助饮料售货机控制系统主控制板、硬件电路设计和软件的编写工作,并完成了自助饮料售货机功能的调试。本文主要分为五个部分,主要安排内容如下:第一章:对以往自助售卖机的发展状态进行了回顾,并结合我国现状,对系统的设计方向进行阐释,同时对全文的写作结构进行确认。第二章:对系统的设计方案选型进行介绍,并且对选型的原因进行阐述,并介绍了每个模块所实现的功能。第三章:系统硬件设计方面主要是对硬件电路进行了相应的介绍,包括所需要的电路设计以及相对应实现的功能。第四章:自助饮料售货机软件设计,编写了触摸屏、RC522、电机驱动、外扩存储的驱动和语音提示程序。第五章:对硬件电路和软件电路进行调试,并介绍了测试步骤以及相应的结果。第六章:结论与展望,对于自助饮料售货机目前存在的一些问题以及后期的发展进行了简略描述。

自助饮料售货机的系统设计方案主控芯片方案选用的是stm32f103zet6单片机运行速度快,内存大,引管脚和偏上资源都比较丰富,可以扩展很多外设,应用范围非常广泛。触摸屏选择方案方案一:电阻式触摸屏电阻式触摸屏相对于传统的显示器,就是在显示器的基础上添加了一层电阻薄膜层,他的主要材料是玻璃和柔性电阻薄膜层,中间是特殊的导电化合物,电阻式触摸屏造价相对便宜。这种屏幕仅仅会针对压力做出反馈,只要有压力就会有反馈,因为它是双层结构,因此看上去会有朦胧感,并且这种屏不支持滑动触摸操作,所以使用起来可能不太方便。如图2-1所示:图2-1触摸介绍用手指或者其他硬质物给屏幕一个压力,两种导电的介质便会互相接触,这一点位电阻值改变,在X和Y两个方向上产生信号,产生的信号会传送到控制器,控制器计算出该点的坐标值,然后将图标显示到计算出来的坐标点位。这类屏幕需要一个模拟数字转换器,因此驱动屏幕需要一个控制器芯片。电阻式触摸屏触摸精度基本够用,一般来说性价比比较高,稳定程度相比于其他产品较好,但因为材质问题可能会出现屏幕划痕。方案二:电容式触摸屏所谓的电容式触摸屏是在可以不用手指去按压屏幕的情况下就可以实现对屏幕的操作。其原理就是在手指触摸屏幕时会产生很小的电流,同时还能感应人体在操作过程中产生的微弱电流,这类屏幕分为单点触控和多点触控,多点触控的则可以实现滑动操作,但成本较为昂贵。本文我们采用的是性价比较高且具有一定抗干扰能力的电阻式触摸屏,这种屏幕是通过按压的方式使得控制器得到一个位置坐标,然后将光标显示在这个坐标点上,通过这种方式来模拟鼠标的效果。射频芯片选择方案方案一:采用RC522芯片,这是一种高集成度的射频芯片,在读卡电路设计中采用这种芯片,相对使用成本较低,直接将本芯片放入读卡器中使用,操作简单。模块采用电压为3.3V,通过SPI接口简单的几条信号线就可以直接与用户任何CPU主板相连接通信,可以保证模块稳定可靠的工作,RC522经过调试,距离可达8cm。方案二:PN532的固件为了满足各种需要,拥有待机模式、低电量模式、虚拟卡模式、发起者/PCD模式、目标/PICC模式。通过固件或引脚切换5种不同模式,或根据内部的状态及主控器的命令切换模式。PN532由NXP出品,是一款高度集成的载波的13.56MHz传输模块,基于80C51内核有40KROM、1KRAM。使用不同的固件支持13.56MHz频段的无线协议。与单片机通过帧格式进行半双工通信,有4种帧类型,通信成功率高。我们采用的是RC522芯片作为射频模块芯片,因为其接口简单,外围电路设计简单,通讯速度极快,同时价格相对便宜,读卡距离远,使用的场景丰富。所以本设计采用方案一即能实现相应功能。电机驱动模块方案对于电机模块的选择,考虑到工作状况,我们会选择相对而言噪声小,精准度较高的电机,故选择性价比较高的步进电机。方案一:ULN2003驱动步进电机28BYJ-48。它是一种主要可以承受电机启动时所产生的瞬间大电流的达林顿晶体管,若采用控制器控制驱动电机,成本无疑是巨大的。我们使用的电机是具有4组线圈5根连接线的四相五线步进电机,在实际测试中,不论公共端抽出几根线,实际和一根线状态一致。我们将这4组线圈记为1相、2相、3相和4相。4相5线步进电机一般采用单极性的直流电源供电,只需对步进电机的各相绕组按对应的时序通电,即能使步进电机步进转动。方案二:42步进电机主要是在低速运行的场所使用,这种场所通常要求低速扭矩大,而该类电机恰好能满足其要求。该类电机的输入电压一般为24V直流,且这种电机在2700转时力矩比较小,即转速越高,力矩越小。在此选型的过程中,首先要考虑的是低速运行的工况,在这种运行工况中我们不需太高的转速,太高的转速会导致力矩过小,导致电机的寿命变短,从而会使系统后期的维护成本增加,不符合我们设计的初衷。因此在这种工况下,我们会选择ULN2003驱动步进电机28BYJ-48,这种电机可以实现精准的角度控制,且采用这种驱动芯片也会将成本进一步降低,加上本次设计不需要高速旋转,且为成本考虑,选择方案一更适合。存储模块设计方案方案一:使用STM32F103单片机内部Flash存储信息:优点:我们在进行一些程序的开发或者是编写的过程中,需要经常对一些系数进行调整修正,而这些数据相对较少,且这种数据又不能被定义为变量,因此需要将这种数据找一个区域进行存储,能够在使用的过程中随时读取,所以用STM32F103单片机内部Flash存储信息更简单高效。在数据较少的场景中用一个专门的存储器进行存储,性价比不高,可以考虑优先使用单片机自带的存储器,此单片机自带的内部存储容量比较大,且有相应的函数支持,并且大容量的存储空间,我们可以进行分区管理,使用更加便捷。缺点:Flash存储数据是先擦除块后写入数据,当擦除区块数据时,如发生瞬间断电的情况,则会造成数据的丢失。方案二:使用外部存储模块存储信息主要特点:STM32与AT24C02通信方式为IIC通信;AT24C02为带电可擦可编程只读储存器,可以实现数据的掉电保存;向AT24C02写入和读出数据只需对AT24C02的地址写入和读出即可;4、读出的数据,可以保存在数组里,操作时仅需对数组进行操作。缺点:需要单独的存储单元模块,需要增加一定的成本。综合上述两种方案的优缺点,选择方案二。常规使用的数据存储芯片一般为AT24Cxx系列的芯片,尾数代表的是存储容量的不同,本次设计存储的主要是初始化信息:单价、剩余数量、售出数量,以及近日的交易记录,AT24C02可以存储2Kbit的信息,采用AT24C02便可满足需求。上位机软件方案方案一:选择Qt平台进行图形界面开发。Qt是一个能够跨平台使用的C++应用程序开发框架,具有跨平台IDE的集成开发工具,且为开源软件,在用于GUI开发的情况下又被称为部件工具箱,其也可用于开发非GUI程序,如控制台工具和服务器。方案二:选择Visualstudio2017软件下的.NET类库开发。NET

Framework

类库是一个由

Microsoft

.NET

Framework

SDK

中包含的类、接口和值类型组成的库。该库提供对系统功能的访问,是建立

.NET

Framework

应用程序、组件和控件的基础。Microsoft.CSharp包含支持用C#语言进行编译和代码生成的类。System包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、属性和处理异常的基础类和基类。两种方案都是市面上常见的上位机开发软件并满足设计要求,Qt平台具有出色的跨平台开发的特点、提供丰富的API函数,同时平台提供大量的开发文档供开发者学习。但对于未曾有开发上位机的经验的人来说,熟悉开发环境不太容易,相对于方案一,方案二所用的NET

Framework类库对初学者更加友好和容易上手,使用其带有的类库,界面可以自由自动生成,仅需要写触发事件的接口函数即可,可以大大减少应用程序的开发难度。所以方案二更适合本次设计。语言芯片选择方案语音芯片在本设计中的作用是可以引导消费者进行相对应的操作步骤,以便在操作过程中更好的服务于消费者,语音芯片的选择要求即具有高性价比、声音清楚。我们提供语音支持也便于提高我们产品的人性化,方便更多的消费人群。方案一:OTP语音芯片是一种只可单次编程的语言芯片,顾名思义这种芯片只可利用一次,且程序不可擦除不可再次修改,因此于新手而言使用难度较大,可能存在较高的使用报废率。但它依然是目前市场的主流,如“倒车请注意”就是OTP的语音芯片完成的。该类芯片更多的被应用在儿童玩具、汽车电子或者智能安防等领域。方案二:闪存语音芯片,分为芯片内置闪存,和外挂闪存两种。其原理都是小型的音频内核+闪存芯片,闪存芯片负责记录语音。比较有代表的WT588D和ISD系列都采用wav的编码方式。闪存语音芯片经常被应用到MP3、报警器、停车场验证通道、智能锁门铃等需要经常更换语音目录的产品中。方案三:语音合成芯片,又称中文TTS芯片,是一种专业的将文字数据实时转化为标准的语音播放出来,类似于给设备装上了人工嘴巴。通过串行通讯接口UART或SPI等,接收CPU传送的文本数据,实现文本到语音的转换。SYN6288芯片支持多种编码格式,每次合成的文本量最多可达200字节。SYN6288中文语音合成IC具有智能的文本分析处理算法、可正确识别数值、号码、日期时间、多音字处理,并且支持休眠功能可降低能耗。方案对比如表2-1所示。表2-1芯片分类分类特点是否推荐OTP语音芯片1.优点:成本低且数据不易丢失2.缺点:时间短,音质较差,且不能更换语音不推荐Flash语音芯片1.优点:可重复使用2.缺点:语音录入不便利,需专用设备,且音质较差不推荐TTS语音芯片1.优点:直接CPU串口发送汉字库信息播报,语音播报较智能2.缺点:合成语音较机械推荐使用综上选择SYN6288芯片,优点如下:该语音芯片支持多种格式的文本,使用过程中较为便捷,单次合成的文本量多。通讯方式支持串口通讯,支持9600,19200,38400等多种波特率。支持16级音量调节,声音音量可以随意控制,控制更灵敏。内部自带的提示音种类多,并支持休眠功能。

系统硬件设计STM32F103ZET6单片机介绍该型号单片机的运算速度非常快,运行频率可达72MHZ,内存最多能够达到1MB。可涵盖电动机的外围设备,通讯方面包括CAN总线通讯和USB通讯。该型号的控制器在性能方面能够做到低功耗、适应低电压环境。该型号的单片机平台能够应用PC和游戏,HVAC和工业应用在内的应用,且在这些应用场景都有着不错的表现,具有高度集成化。外围设备和软件兼容性方面内嵌经出厂调教的8MHz的RC振荡器串行单线调试和JTAG接口多达8个定时器、2个看门狗定时器(独立型的和窗口型的),防止程序跑飞,单片机自动复位。STM32F103ZET6有多个GPIO组比如像GPIOA、GPIOB和GPIOC等等,它们都有16个I/O接口,因此在数据传输方面非常便捷,且此型号的单片机能够通过与寄存器相互连接完成不同的功能。CRH和CRL寄存器的每4个字节用来配置一个IO的功能,CRL用来配置低8位I/O的功能,CRH用来配置高8位I/O的功能。电源电路电源电路的电压是通过变压器VCC供电的,电压的大小是3.3V,采用此类电路结构的优点是内部存在一个二极管,因二极管导通性能良好,在二极管两端不会形成电压的偏差,此时BAT的电流便不能够通过二极管。当采用电源变压器进行供电时,此时的电池不会进入输出供电状态。如图3-1所示。图3-1电源电路晶振电路晶振电路是整个电路系统最基础的部分之一,晶振电路的主要作用是给单片机系统提供时钟周期信号,因为时钟周期信号是程序能够正常运行的基础条件,所以此晶振电路设计至关重要。在本次晶振电路设计中有两个33PF的电容,这两个电容的作用是为了建立一个谐振条件。如图3-2所示。图3-2晶振电路复位电路上电复位:在进行程序上电操作时,因复位电路中有电容存在,故不会快速上电。所以在RESET的两端还是会保持低电平信号,这时候便能进行复位。按键复位:按下复位按键时,电路便会直接导通,电容进行放电,而后进入低电平状态,然后进行复位。如图3-3所示。图3-3复位电路导购界面设计本次设计的控制核心是STM32F103ZE单片机,在人机交互方面是通过UC/GUI来设计引导人机交互界面,外围的功能模块与主机之间在这个界面得以交互。整个系统的设计中STM32芯片作为控制核心,外围模块有ADC模块、TFT触摸显示屏以及储存单元。这几个模块相互配合共同完成整个系统的设计整合。如图3-4所示。STM32芯片是控制核心,对整个系统信息进行处理ADC模块完成对数据的收集及传输TFT触摸显示屏进行人机交互以及系统信息的展示图3-4系统框架图LCD界面设计LCD在系统中的作用是完成数据的展示交互,用户能够通过液晶显示器完成人机交互、并且对内部信息进行了解,在人机交互的页面设计上采用的是GUI模块来完成整个系统的设计,该设计采用模块化的形式、可以大大的减少设计难度。系统框架如图3-5所示。图3-5UC/GUI系统框架图GUI环境移植GUI能够给使用者提供设计所需要的各种模块,他的移植主要分为以下三个方面:LCD的底层驱动代码、相关文件的配置、对GUI文件进行修改配置。对显示屏进行驱动程序的配置显示器的驱动程序是对显示器的控制器进行改动,主要是对显示的位置、大小、方向、颜色以及像素等要素进行配置对Config目录下的文件进行实用配置GUI源码中的C文件添加工程,并添加文件的详细路径触摸屏触摸屏的控制核心是XPT2046,其原理是:触摸屏上存在多组电极,进行操作时两组不同的电极上会有不同的电压,而后对另一组电极的电压进行测量,这时即可得出按压点的横坐标值和纵坐标值。当按压触摸屏时,触摸屏的导电层会在按压点位置导通,这时阻值就会产生变化,这个信号会在横坐标和纵坐标两个方向进行传递,这个信号会传送给控制器,控制器会检测到这个位置,然后完成对应的人机交互。RC522射频电路设计RC522芯片电路该型号读卡器的优点是使用方式简单易操作,成本较低,下表是引脚描述。表3-1引脚描述VCC电源接入,但是加在该引脚上的电压应该在2.5V到3.3V左右,当加在该引脚上的电压超过5V的时候,该接口可能会因为过压烧坏。RST引脚复位和断点输入引脚GND接地IRQ中断警告引脚,当RFID标签靠近该设备时,通过此引脚进行触发信号的发射MISO此接口为当SPI(串口外围接口)开启时有效。当使用I2C协议接口时此引脚为串口时钟,当为UART协议接口时,此引脚为串口数据的输出口MOSI该引脚为此模块的SPI(串口外围接口)SCK接收SPI所提供的脉冲信号SDA当SPI启动时,该引脚为输入信号,当为I2C协议接口时为串口数据口,当为UART时为串口输入口图3-6射频模块核心电路天线及其滤波匹配电路在发送部分,引脚TX1和TX2上发送的信号是由网络信号调制的13.56MHz频率的载波能量,经过L1,L2,C4和C5组成的EMC滤波电路以及C3,C7,C8,C9,C10和C11组成的匹配电路,就可直接用来驱动天线,TX1和TX2上的信号可通过寄存器TxSelReg来设置,系统默认为内部米勒脉冲编码后的调制信号。调制系数可以通过调整驱动器的阻抗来设置,同样采用默认值即可。在接收电路部分,使用R3和C2以保证RX引脚的直流输入电压保持在VMID,R4和C3的作用是调整RX引脚的交流输入电压。如图3-7所示。图3-7天线及其滤波匹配接收电路存储模块电路设计AT24C02芯片简介该模块是作为内部存储模块,在功能方面能够实现数据读和写的操作。当在管脚上施加一个高电压信号时,能够实现数据模块的擦写,该型号的存储芯片在数据的存储上能够完成256条信息的储存。AT24C02存储电路设计图3-8存储模块电路图该芯片的管脚描述如表3-2所示:表3-2管脚描述管脚名称功能A0、A1、A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护VCC+1.8V~60V工作电压VSS接地电机驱动电路ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成,可直接驱动继电器等负载。在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原本需要标准逻辑缓冲器来处理的数据。ULN2003在本次设计中就是用来放大电流的,增加驱动电机动力。比如说单片机输出引脚一般输出几毫安电流,是无法完成电机驱动的,让直流电机转动至少需要500mA电流,而经ULN2003放大,可以通过单片机的输出引脚电流直接控制这些设备。如图3-9所示。图3-9ULN2003内部结构图其结构有3个特点:ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连。ULN2003工作电压高、工作电流大、灌电流可达500mA,并且能够在关闭时承受50V的电压,输出还可以在高负载电流并行运行。ULN2003采用DIP-16或SOP-16塑料封装。引脚1-7为CPU脉冲输入端;引脚8为接地脚;引脚9内部拥有7个续流二极管负极的公共端,其二极管正极分别链接各达林顿管的集电极,用于感性负载时,此脚接负载电源正极,实现续流作用,如果此脚接地则达林顿管的集电极对地接通。引脚10-16对应的是7-1输入端的脉冲信号输出端。步进电机是一种将电脉冲信号转化成相应角位移或者线位移的电机。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。我们可以通过控制脉冲信号的数量来控制角位移量,从而达到准确定位的目的;同时我们可以通过控制脉冲信号的频率来控制电机的转动速度和加速度来控制转速。28BYJ-48型步进电机从型号数字上标明其是四相八拍电机,电压为DC5V~DC12V。28表示电机直径28毫米,B表示步进电机,Y表示永磁,J表示带减速箱,48表示四相八拍。如果输入的是高电平的话,ULN2003内部两个三极管导通,于是步进电机的那一相就导通了。低电平,就断开了。如果电机突然停止产生很大的电流,这时由于OUT端接了二极管则可限制电压在5.7V左右。语音播报模块SYN6288是北京宇音天下科技有限公司推出的一款性价比高效果更自然的中高端语音合成芯片。其采用最小SSOP28L贴片封装,具有性价比高、硬件接口简单、低功耗、音色清亮圆润的特点,支持16级的数字音量控制和6级词语语速控制,采用4种主要编码体系:GB2312,GBK,BIG5,Unicode;其与单片机的通讯方式采用异步串口(UART)的通信方式,SYN6288通过异步串口接收待合成的文本,实现文本到声音(TTS)的转换。为了让设备输出声音,SYN6288内置了推挽式(Push-Pull)的DAC,可直接驱动喇叭,进行声音的播报。图3-10主芯片SYN6288内部自带一个推挽模式的DAC可以直接接入小功率喇叭直接播放合成的语音。由于喇叭不分正负极,两个管脚可以任意接如图3-10所示。推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个极管始终保持一个处于截止,另一个处于导通的状态。推挽输出的最大特点是可以真正的输出高电平和低电平,在两种电平下都具有驱动的能力。

系统软件设计导购界面软件程序设计LCD液晶显示屏在本次系统设计中的作用是完成人机交互,用户可以通过显示页面进行不同的操作,完成页面的切换,同时当系统识别到有人点击物品时,会根据点击的不同图片进行不同信息的显示,当对点击确认购买时,会跳出判断,返回屏幕初始化阶段。如图4-1所示:图4-1LCD显示屏程序框图RC522射频模块软件设计在本设计中,当完成初始化之后,读卡器就会进入应用操作准备阶段,在这个时间周期内读卡器与卡之间会完成寻卡、防碰撞、选卡、以及密码校验等步骤,然后校验密码通过之后就会对卡内数据进行读和写以及后续的扣款。如图4-2所示。图4-2射频卡工作流程图存储模块软件设计软件设计主要分为四个部分:I2C通信配置、读写程序设计、数据初始化存储、实时数据的存储。AT24C02数据存储主要采用I2C通信,首先需要进行端口配置,然后进行读操作及写操作的程序编写。然后在主函数中对商品的单价,剩余数量和销售数量进行初始化定义,然后调用读与写操作函数对实时销售后的信息进行存储。如图4-3所示。图4-3存储模块软件设计流程图电机驱动软件设计步进电机即完成伺服动作的执行机构,它的优点是整体原件比较简单,可靠性高,完成对该机构的控制较为简单。因此在运用上是非常广泛的,如在机器人领域、自动化设计领域、太阳能追光等方面,都是通过步进电机与其他模块结合完成各自的设计目标,在本设计中步进电机系统的主要构成是步进电机、脉冲分配器以及功率放大电路这几个结构共同组成的,本次系统的程序设计的主要任务是:1、判断电机的旋转方向2、按顺序传送控制脉冲信号3、判断所要求的控制步数是否完成传送步进电机控制系统的方框图如图4-4所示:图4-4步进电机控制系统方框图语音模块软件设计语音串口初始化UART的定义是通用的异步收发传输器,他在功能方面与USART的区别是后者能够实现同步方式的序列信号变换,并且支持同步单向通信及半双工单线通信,能够实现域互联网络、能够进行调制解调器操作。使用单字节中断发送,每发送一个字节都会进入中断。异步通讯的数据同步方式是一种通过在数据信号中结合一些信号位来进行实现的,另一种就是将数据进行打包以数据帧的方式进行数据的传输,异步通讯方面常用的波特率有以下几种分别是:4800bps、9600bps、115200bps等。在进行数据传输时发送设备会把数据通过自身的发送接口传输到接收设备的接收口,但是进行数据传输的前提是两者的数据包的格式一致时才能进行整个数据的传输,STM32中的串口进行异步通讯时首先要将以下几个方面的参数进行重新定义。起始位、数据位(8位或者9位)、奇偶校验位(第9位)、停止位(1,15,2位)、波特率的设置。程序流程图图4-5串口流程图上位机软件设计界面设计这里主要介绍上位机开界面设计的实现过程,通过VS2013软件使用C#语言对界面控件编写代码实现对货物信息进行实时查询、删除、修改、添加属性等,对数据进行简单的统计,画出销售数量统计图,以及利润的计算。如图4-6所示。图4-6上位机主界面效果图从图4-6可以看出所设计的界面是比较美观的,下面介绍界面设计的主要过程:首先创建一个Windows窗体应用程序解决方案,然后在软件自带的工具箱添加设计所需要的控件;编辑框用于获取输入数据,添加变量存储数据;添加按钮,添加按钮事件,事件中添加逻辑处理,将存储数据进行数据处理,获取运算结果后,在显示控件上显示所需数据展示的输出。添加控件的过程,底层代码的结构由编译环境自动封装并生成,使用起来非常方便。利润统计设计首先设计画出一个针对所有商品售出数量统计的柱形图,给予后台管理员更直观的感受。1号到5号对应界面上方的商品,通过将售出窗口的数量,通过Convert.ToDouble转化成双精度类型,再生成柱形图,商品销售量柱形图如下图4-7所示。图4-7商品销售量柱形图商品的增删改操作上位机中的其中一个功能就是对商品信息数据库的修改,通过管理系统中的删除、上货、改价控件,可以对商品的数量和价格进行修改。例如:对商品进行添加的程序如上图4-6所示,给一个Button按钮添加一个Click点击事件,objectsender:表示触发事件的控件对象,EventArgse:表示事件数据的类的基类,将添加窗口的值赋给a,a的高四位左移,低四位覆盖,最后将更新的值写入嵌入式系统。删除指令则直接将剩余数量窗口直接进行清零操作,改价操作会将修改后的价格直接显示在售价窗口。在指定的窗口显示修改后的数据,显示窗口程序通过函数privatevoidtextBox2_TextChanged(objectsender,EventArgse)实现。上位机与存储模块之间的数据传输命令上位机与下位机(嵌入式系统)之间的数据传输是通过一系列的指令控制的,下位机首先通过存储芯片AT24C02为TCP的客户端的发送模式,上位机通过serialPort1_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse)接收端口发送的数据,通过网口监听线程,设置标记,CntrlUstCntrl.Listening=true说明已经开始处理数据,声明一个临时数组存放数据,将数据读取存入缓冲队列后,清除字符串构造器的内容,最后将数据逐一进行校验,当CntrlUstReceive.Recfinished=true,则数据成功接收。销售数据存储设计为了方便管理员查询销售记录,将销售信息在上位机界面进行实时显示,并将销售记录存入文档中。通过File.AppendAllLines(@"C:\Users\Administrator\Desktop\1.txt",str0);将销售记录保存到指定路径的文档中。销售记录和所保存到的文本如下图4-8和图4-9所示。图4-8销售记录窗口图4-9数据存储文档

系统调试硬件调试该部分主要介绍硬件调试的主要步骤和遇到的问题。硬件调试的主要步骤如下:首先在焊接系统板其他电路之前,检查电源电路是否能够正常工作,该步骤的作用主要是保证适配的电压不损坏芯片以及元器件等,测试所有模块的电源输入的焊盘正常后,继续后续的焊接工作。当系统板焊接完成后,对其外部时钟进行测试,确保外部时钟能正常工作,然后烧录程序,来确定芯片是否能正常工作,整体硬件调试到此基本完成。触摸屏调试上电后,界面已经显示出所需要的图片,并且还有购物车和确认支付,点击图片后会出现在购物框内,如图5-1所示。图5-1导购界面支付系统调试当选择完商品后,进行刷卡支付操作,成功支付的销售记录实时显示在上位机上,如图5-2所示。图5-2支付成功记录数据测试触摸测试表5-1触摸测试数据由表5-3所示,点击屏幕上的货物,基本上都能加入购物车,触摸效果良好,选择后,语音都能播报,射频和驱动模块都能正常工作,基本达到设计要求。

结论与展望结论本系统为无人自助售货机设计,其实现的产品功能可以应用于各类无需人工服务的商业场所,整个系统包含人机交互界面、自动出货系统和支付系统三个部分。人机交互界面由带有触摸功能的LCD屏及语音模块构成,为顾客提供自助购物服务;该设计中还附带上位机后台数据库管理系统,用于管理整个商品数据库。整个系统基本满足设计要求,但还是存在一系列问题。存在问题本次设计由于时间有限,自助售货机存储模块的缺货信息提示方面做的还不够全面,比如可以设置实时检测自助饮料售货机的货物状态,并当货物不足时,及时准确的向上位机发送缺货信息,准确到哪件商品缺货,同时存储商品信息内容的详情信息还有待提高。展望现在是智能化的时代,自助售货机在我们实际生活中起到了巨大的便民作用,成为了很多人近距离满足少量需求的首选,自助售货机的机体内部组件已经相当完善,影响其普及的关键因素:在现有的各种平台上让自助售货机形成一种品类丰富的销售互联网,为其提供更方便的营销模式和管理机制,能最大限度地降低生产、运营成本。目前基于各类网络平台的自助售货机,其运作的机制都因为成本原因不够丰富,不过这并不影响自助售货机的发展潜力。因此,自助售货机未来的发展趋势是将其纳入到一个市场更大的互联互通的商务网络平台。社会对于一个能够实现资源合理化配置的产品的包容性是很强的,所以自助售卖机在未来的进步空间也将会在这方面有很大幅度提高。节能、环保都是日后产品的发展大方向,自助售卖机的存在意义首先来讲是为这个社会提供便利,其次一定要避免给现代社会带来负面影响。

参考文献[1]梁永馨,王凤越.自助饮料售货机的发展现状及趋势[J].当代经济,2019(2):80-83.[2]刘月,王忠瑞,李钰.我国自助饮料售货机市场发展分析[J].中国市场,2018(20):82-83.[3]刘海刚,王刚,高建彪.一种新型无人售货机的设计与分析[J].食品与机械,2016,32(3):109-112.[4]陶佳鑫.蔬菜自助饮料售货机的控制系统设计[J].科技经济市场,2020(4):11-13.[5]MahmoodiM,JamesLA,JohansenT.Automatedadvancedimageprocessingformicromodelflowexperiments;anapplicationusinglabVIEW[J].JournalofPetroleumScienceandEngineering,2018(167):829-843.[6]宋骋.RFID射频芯片在仓库定位中的应用[J].科技创新与应用,2021,11(12):155-157.[7]杨海效,吴虹,田菀玉,等.基于Wi-Fi指纹与惯性导航的室内定位技术研究[C]//第十一届中国卫星导航年会论文集——S10PNT体系与多源融合导航,2020:146-150.[8]殷福荣.面向物联网的室内短距离环境UWB信号多径传播特性研究[D].南京邮电大学,2015.[9]宋文彬,李宇,刘浩,等.基于Qt的医检仪器的MVC框架模式的研究[J].工业控制计算机,2021,34(4):87-88.[10]沈红卫.STM32单片机应用与全案例实践[M].北京:电子工业出版社,2017:1~11.[11]宁航宇.安全评价工程软件的研究与开发[D].西安电子科技大学,2011.[12]谢希仁.计算机网络(第七版)[M].北京:电子工业出版社,2017:210~212.[13]常青.我国移动电子商务应用研究[D].北京建筑大学,2015.[14]卢静宜.浅谈移动电子商务发展趋势[J].才智,2015,(15):6,8.[15]LiShaoxian,FanWang,ChengRui,HouYanzhao.UWBpositioningenhancementusingMarkovchaininindoorNLOSenvironment[J].TheJournalofChinaUniversitiesofPostsandTelecommunications,2020,27(04):54-58+98.[16]ZouXianyue,WangAnhang,LiShiyu,ShuaiWang.ResearchandAnalysisonUWBIndoorPositioningSystem[J].InternationalJournalofSocialScienceandEducationResearch,2020,3(11):202-207.

附录intmain(void){ unsignedcharstatus;unsignedchari; DJ_Init(); SystemInit();//初始化RCC设置系统主频为72MHZ delay_init(72); //延时初始化 LCD_Init(); //液晶屏初始化usart1_init();//wifi初始化,与上位机通信 USART2_Init();//串口2初始化,与语音模块通信 RC522_Init();//射频模块初始化 PcdReset(); PcdAntennaOff(); delay_ms(10); PcdAntennaOn(); delay_ms(10); I2C_INIT(); //IIC初始化 delay_ms(1); //write_init();//售货机数据初始化read_init();//售货机数据读出 Pic_test();//进入购物主界面 js(); senddata1(); SYN_FrameInfo(2,"[v7][m1][t5]欢迎使用自助售货机"); while(1) { if(rece_flag==0xff)//数据复位 { write_init(); rece_flag=0; delay_ms(100); read_init(); } elseif((rece_flag>>4)==0xb)//删除商品 { switch(rece_flag&0x0f) { case1: sy1=0; show_num(sy1,55,140); break; case2: sy2=0; show_num(sy2,115,140); break; case3: sy3=0; show_num(sy3,175,140); break; case4: sy4=0; show_num(sy4,55,270); break; case5: sy5=0; show_num(sy5,115,270); break; default: break; } rece_flag=0; write_data(); } elseif((rece_flag>>4)==0x1)//商品改价,雪碧 { s1=rece_flag&0x0f; rece_flag=0; show_danjia(s1,55,120);write_data(); } elseif((rece_flag>>4)==0x2)//商品改价,可乐 { s2=rece_flag&0x0f; rece_flag=0; show_danjia(s2,115,120); write_data(); } elseif((rece_flag>>4)==0x3)//商品改价,牛奶 { s3=rece_flag&0x0f; rece_flag=0; show_danjia(s3,175,120); write_data(); } elseif((rece_flag>>4)==0x4)//商品改价,红牛 { s4=rece_flag&0x0f; rece_flag=0; show_danjia(s4,55,250);write_data(); } elseif((rece_flag>>4)==0x5)//商品改价,脉动 { s5=rece_flag&0x0f; rece_flag=0; show_danjia(s5,115,250); write_data(); } elseif((rece_flag>>4)==0x6)//雪碧增加 { sy1+=(rece_flag&0xf); if(sy1>20) { sy1=20; }rece_flag=0; show_num(sy1,55,140); write_data(); } elseif((rece_flag>>4)==0x7)//可乐增加 { sy2+=(rece_flag&0xf); if(sy2>20) { sy2=20; } rece_flag=0; show_num(sy2,115,140); write_data(); } elseif((rece_flag>>4)==0x8)//牛奶增加 { sy3+=(rece_flag&0xf); if(sy3>20) { sy3=20; } rece_flag=0; show_num(sy3,175,140); write_data(); } elseif((rece_flag>>4)==0x9)//红牛增加 { sy4+=(rece_flag&0xf); if(sy4>20) { sy4=20; } rece_flag=0; show_num(sy4,55,270); write_data(); } elseif((rece_flag>>4)==0xa)//脉动增加 { sy5+=(rece_flag&0xf); if(sy5>20) { sy5=20; } rece_flag=0; show_num(sy5,115,270); write_data(); } elseif(rece_flag==0xee) { senddata1(); rece_flag=0; } if(js_flag==1) { js(); } if(card==1) { status=PcdRequest(PICC_REQALL,g_ucTempbuf);//寻卡 if(status!=MI_OK) { } else { if(moneyall>=jine) { SYN_FrameInfo(2,"[v7][m1][t5]刷卡成功请取走商品"); //for(i=0;i<200;i++)//{//

温馨提示

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

评论

0/150

提交评论