基于STM32自动售货机控制系统设计(源码+万字报告+讲解)(支持资料参考_相关定制)
确认按键”的键值为0x0F,用于进行商品种类和数量选择确认操作。开始自主研发,近年来在“移动支付”、“人工智能”、“大数据”等新型技术的推动下,国内自动售货机快速发展,其技术水平已处于世界领先水平,尤其在支付方式上得到革命性发展,越来越多的自动售货机均支持移动支付,部分售货机支持人脸识别支付等,且自动售货机的货物数量和销售情况均通过后台进行大数据统计管理,可以实现缺货时的自动提醒,同时根据不同区域
21世纪以来,自动应用技术快速发展,目前在社会生活的方方面面都能看到自动应用技术的影子,其中自动售货机是自动应用技术的典型案例。近年来,随着人们物质生活水平的不断提高,对于自动售货机的功能、性能都提出更加严格的要求,在功能方面人们希望自动售货机的功能更加丰富,如支付方式的多样性扩展、缺货时自动补货提醒等:在性能方面人们希望自动售货机的性能更加稳定,如避免出货通道堵塞、正常货币无法识别等。
基于上述情况,本文设计一种基于STM32单片机的自动售货机控制系统。系统采用STM32单片机进行整体控制和处理,采用4*4矩阵键盘模拟商品选择和投币操作,采用液晶显示屏进行界面显示,同时对找零过程进行模拟,采用多种LED灯模拟不同货物,通过点亮LED灯表示货物售出过程。本文设计的系统可以实现对自动售货机全套流程的仿真模拟,可以为售货机的深入研究提供一定的参考价值。
关键词:自动售货机,STM32单片机,主控模块
Since the 21st century, the rapid development of automatic application technology, in all aspects of social life can be seen the shadow of automatic application technology, vending machine is a typical case of automatic application technology. In recent years, with the continuous improvement of people's material living standards, the functions and performance of vending machines have been put forward more stringent requirements. In terms of functions, people hope that the functions of vending machines are more abundant, such as the expansion of the diversity of payment methods, automatic replenishment reminder when out of stock, etc. : In terms of performance, people hope that the performance of vending machines is more stable, such as to avoid the blockage of shipping channels, normal currency can not be recognized.
Based on the above situation, this thesis designs a vending machine control system based on STM32 microcontroller. The system uses STM32 microcontroller for overall control processing, uses 4*4 matrix keyboard to simulate commodity selection and coin operation, uses LIQUID crystal display screen for interface display, and simulates the change process at the same time, uses a variety of LED lights to simulate different goods, by lighting LED lights to represent the process of goods sold. The system designed in this thesis can realize the simulation of the whole process of vending machine, which can provide some reference value for the further study of vending machine.
Keywords: Vending machine, STM32 microcontroller,Main control module
快节奏、高效率是现代生活的显著特征,在该种社会特征的驱动下,人们对于节约时间的观念意识不断增强,尤其在大城市中省时意识更为强烈,由此人们越来越希望在极短的时间内选购到满意的需求商品,商家为了提高经济效益,也希望在最短的时间内向客户售出其最心仪的商品,商品交易双方均想尽可能地缩短交易时间,提高商品满意度,这是商品交易过程的基本目标[1]。由此无人售货方式被提出且逐步适用于现实生活,其中,自动售货机更为成功、且发展较为成熟的一种无人售货方式。经过多年发展,自动售货机的应用场所种类不断丰富、范围不断扩大,从早期的高级办公区逐步发展到商场、学校、图书馆等各种人员密集的室内场所,后续在港口、游乐园等室外场所也大量安装自动售货机[2]。
目前自动售货机作为自动应用技术的最为典型的成功案例,在全国范围内大规模普及推广,且为更加适应城市化建设需求,自动售货机的外形不断进行美化设计,不再简单地局限于笨重的机械外壳,参照周围环境和建筑风格进行优化改造,成为城市建设的一种点缀风格,甚至在某些角度可以从自动售货机的发展水平去衡量一座城市的现代化发展程度[3]。
自动售货机是一种结合电子信息学、工程设计学、机械工程学、经济应用学等多种学科的商业机械,具有许多传统交易方式无法比拟的优势。例如自动售货机凭借无人销售的商业理念,可以实现最优销售时间目标,且从商品选择到支付整个销售过程由用户自主操作,极大程度地减少了销售过程中的人力资源使用,在人力成本昂贵的大型城市中,自动售货机的这种优势体现更为突出:而且自动售货机支持7*24小时全天候的销售方式,可以根据用户需求进行个性化设计,满足用户随时随地的购物需求:在某些私密商品的销售过程,自动售货机避免了客户和销售员之间的交流沟通,可以最大程度地保证客户的隐私:同时自动售货机由于仅需提供商品摆放空间,所占用的空间区域较小,从空间角度考虑安装布置十分便利,且有利于实现建筑物碎片式的空间管理,提高建筑物空间利用率[4]。总而言之,自动售货机具有许多独特的优势,顺应我国城市现代化建设的潮流,因此针对自动售货机的研究具有较高的现实意义[5]。
-
- 国内外现状及发展趋势
“无人售货”一直是零售行业努力发展的热点领域,自动售货机作为无人售货的典型代表案例,自研制至今,在国内外都得到了飞速发展[6]。国外对于自动售货机的研究起步较早,经过多年的商业实践和选代更新,自动售货机行业已较为成熟,具体表现为:
(1)自动售货机型号众多,仅在日本的大型售货机生产厂商便拥有超过2000种不同型号的自动售货机产品。
(2)自动售货机销售商品种类丰富,除了基本的食品、饮料、生计用品等,甚至一些衣物、工业元器件均可在自动售货机中进行销售,据有关机构不完全统计,截止2020年全美自动售货机销售的商品种类已达到8000种。
(3)支付方式多样,除支持硬币、纸币等现金结算方式,还可通过银行卡、信用卡等无现金结算方式[7]。
(4)行业发展成熟,具有大量稳定的供应商,从物资采购、物流运输、财务结算等方面均实现稳定长期的闭环管理。
我国对于无人售货机的研究起步较晚,早期大量依赖于从国外厂家直接进口,国内商家负责商业代理,后续随着市场规模的不断扩大[8]。开始自主研发,近年来在“移动支付”、“人工智能”、“大数据”等新型技术的推动下,国内自动售货机快速发展,其技术水平已处于世界领先水平,尤其在支付方式上得到革命性发展,越来越多的自动售货机均支持移动支付,部分售货机支持人脸识别支付等,且自动售货机的货物数量和销售情况均通过后台进行大数据统计管理,可以实现缺货时的自动提醒,同时根据不同区域的商品销售情况,对货物种类进行动态调整,推动自动售货机朝着智能化、人性化的方向高速发展[9]。
-
- 本课题研究的主要内容
本文主要设计一种基于STM32单片机的自动售货机控制系统,系统采用STM32单片机为核心进行整体控制和处理,采用4*4矩阵键盘模拟商品购买过程中的选择和投币等一系列操作,采用液晶显示屏进行界面显示,同时对找零过程进行模拟,采用多种LED灯模拟不同货物,通过点亮LED灯表示货物售出过程[10]。本文设计的系统可以实现对自动售货机全套流程的仿真模拟,可以为售货机的深入研究提供一定的参考价值。
本文主要基于以下四方面内容开展课题研究:
(1)查阅文献资料,理清课题研究背景和意义,表明本文课题研究价值,同时整理分析课题研究现状,在学习借鉴前人研究成果的基础上,开展后续研究设计。
(2)依据课题设计要求进行总体方案设计,对比不同硬件优缺点,在充分考虑各方面因素的条件下,完成硬件器材选型,并完成系统硬件电路设计。
(3)根据系统所需实现功能,完成系统软件程序设计,编写完整的C语言代码。
(4)将软硬件设计方案结合,完成系统硬件调试,调试成功后在protues8仿真环境中对系统进行测试实验,从而验证本文系统是否满足课题设计要求,证明课题研究的有效性。
通过对课题设计任务书进行分析可得,本课题设计要求主要包括:
(1)完成基本消费者自动购物功能。
(2)可显示商品售价等货品信息。
依据上述设计要求,本文按照模块化的设计思想完成基于STM32的自动售货机控制系统的设计,下图2-1是系统整体设计方案。从图表中可以看到,本论文的设计主要包括四个模块:主控模块、按键模块、显示模块和商品输出模块。其中,主控模块主要是对整个系统进行全流程的控制,该模块是系统的核心控制单元按键模块是用来选择物品的类别和数目,并进行模拟的投币,按键模块是系统的输入单元,将多种信号发送到主控模块中进行后续处理。显示模块用于显示投币金额、找零金额和其他提示字符信息;商品输出模块用于模拟不同商品的售出处理过程;显示模块和商品输出模块共同作为系统的输出单元,由主控模块控制展示输出信号[11]。下文将根据不同模块的功能特性,完成系统子模块方案设计及论证。
图2-1 基于STM32的自动售货机控制系统整体设计方案
根据整体设计方案,主控模块主要用于对系统整体流程进行控制,同时负责系统各模块间的信号交换和处理,课题设计要求使用STM32系列单片机,从功能要求角度考虑,由于本文系统外部接口数量较少,需要使用的内存较小,且对系统工作性能无较高要求,STM32系列中的单片机均可满足设计要求,因此在硬件选型过程中,主要从经济成本考虑,从而避免硬件资源浪费。在MCU选择时选用高性价比的F高性能系列,在子系列选择时选用103基础系列,在引脚选择时选用较少引脚R系列(64引脚),在内存容量时选择较小容量C系列(256KB),在封装选择时选用较为经济的T系列(LQFP封装),在工作温度选择时选用最小范围温度6系列(-40至85摄氏度),综上所述,综合考虑各种因素,本文主控模块采用STM32F103RCT6型号单片机[12]。
根据整体设计方案,按键模块主要进行商品选择和投币模拟。基于上述功能特性,本文提出三种设计方案,具体方案如下:
方案一:采用独立按键作为按键模块,独立按键是一种典型的非编码式机械键盘,通过机械接触实现电路导通,每个独立按键都需要占用一个单独I/O端口,按键不能对端口进行复用。
方案二:采用矩阵键盘作为按键模块,矩阵键盘与独立按键同属于非编码式机械键盘,工作原理相似,但可以通过键盘行列实现I/O端口复用,大大减少占用I/O端口数量。
方案三:采用编码键盘集成芯片作为按键模块,该类键盘芯片将按键、处理电路和编码电路集成到芯片内部,自动完成消除按键抖动等操作,且根据不同按键的码值完成输入,极大地扩展输入内容范围。目前键盘芯片发展迅速,一些较为先进的键盘芯片添加数据存储器和显示屏,可以完成输入数据防掉电保存和数据显示,但其价格一般随着功能的增加而倍增。
从功能要求角度考虑,由于本文按键需要完成的功能设置较多,最少需要12个按键才可满足该模块所有功能要求,方案一每一个按键都需占用一个I/O端口,因此为减少对单片机I/O端口资源占用,同时尽可能降低设计成本,本文采用方案二的矩阵键盘作为按键模块[13]。
依据整体设计方案,显示模块主要用于对投币金额、找零金额和其他提示字符信息进行陈列,根据以上功能特性,本文设计了以下三种方案。
方案一:采用LED数码管作为显示模块, LED数码管主要通过行列的拼凑组合实现字符显示,通常采用的8位数码管可以显示数字、字母、一些简单的符号,16*16数字管能实现部分汉字的显示。LED数字管所需的1/0口数量多,而STM32芯片的电流驱动性能差,所以必须在 LED数字管上附加一个驱动电路来完成LED数码管显示。
方案二:采用LCD1602的液晶显示器充当显示模块,通过不同显示单元(点)的组合排列实现字符显示,由于显示单元数量增多,因此可以显示数字、字母、简单符号、简单汉字等多种字符,且显示的字符更加美观舒适。LCD1602可以显示16*2个字符,且显示器不需要外接驱动电路,可通过单片机I/O端口直接进行控制。
方案三:采用LCD12864液晶显示器作为显示模块,该类显示器的工作原理和使用方案与LCD1602基本相同,仅显示字符容量不同,LCD12864可显示128*64个字符,显示容量得到明显扩充,因此可显示些简单图形图像。
从功能要求的角度考虑,由于本文系统仅需显示数字、字母、点三种类型的字符,因此上述三种方案均满足要求,但系统需要显示的最小字符数量为24个,方案一虽然也可满足要求,但需添加占用大量的数据端口,同时需要设计较为复杂的驱动电路,其硬件电路设计难度和系统成本均大幅提升[14]。从经济成本的角度考虑,LCD1602在满足基本功能要求的前提下,具有最高性价比, LCD12864显示容量略有浪费,因此本文采用方案二。
依据整体设计方案,商品输出模块主要用于展示不同货物的售出过程,根据上述功能特性,本文设计以下两种方案。
方案一:采用多个LED指示灯表示不同种类的货物,通过LED点亮表示货物售出,通过LED点亮次数表示货物售出数量,该方案模拟过程简单清晰。
方案二:采用多个继电器控制直流电机转动模拟货物售出过程,当货物售出时,对应商品继电器吸合,控制直流电机正向转动,通过控制电机转动时间长短表示货物售出数量,该方案与实际过程较为契合。
从功能要求的角度考虑,本文仅需对货物售出过程进行模拟仿真,只需清楚地表明货物售出种类和数量即可,因此上述两种方案均可满足设计要求,但方案二需要通过继电器进行控制,单片机的驱动电流较小,无法直接驱动继电器工作,因此需要添加额外的三极管驱动电路,且多个电机转动需要增加系统能耗,因此为降低设计难度和节约成本,本文选择方案一。
本章节首先根据课题设计要求完成整体设计方案,然后对整体设计方案中各个模块进行硬件器材选型,从功能要求、经济成本、开发难度和安全性等方面综合考虑,最后,选定采用STM32F103RCT6型号单片机作为主控模块,采用矩阵键盘作为按键模块,采用LCD1602液晶显示屏作为显示模块,采用多个LED指示灯作为商品输出模块。
本文主控模块采用STM32F103RCT6型号单片机,为保证单片机正常工作,需要配置必需的外围电路,通常外围电路包括电源电路、时钟电路、复位电路,外围电路与主控芯片组合共同构成最小系统,具体设计如图3-1所示。下面将对最小系统中的各个组成部分进行介绍。
图3-1 主控模块硬件电路设计
(1)STM32F103RCT6单片机芯片:单片机芯片作为一种微型计算机系统,主要包括中央处理单元、运算单元、存储单元、输入输出单元,各个单元相互独立,共同协作实现控制处理功能[15]。
(2)供电电路:所有电子元件都需要稳定可靠的供电电路提供工作能源,本文为减少电源数量,在硬件选型时便综合考虑各个模块硬件所需电压,最终统一采用5V供电电压。
(3)时钟电路:为了保证系统时钟的稳定性,单片机通常需要设计时钟电路,为系统提供时钟信号。时钟电路的晶体振频率越高,单片机的处理速度越快,但过高的晶振也会导致能耗增大,因此在设计时钟电路时要综合考虑处理速度和芯片能耗,STM32单片机通常采用两个外部晶振,分别为8MHz和32.768KHz。8MHz晶振作为正常工作时使用的晶振,32.768KHz晶振作为系统待机,低功耗时使用的晶振[16]。但本次程序设计中不包括RTC时钟的使用,所以只需接入8MHz的晶振即可,同时添加两个30PF的电容进行滤波处理,保证系统时钟稳定。
(4)复位电路:单片机复位主要是用于对单片机进行重启恢复,使其程序及数量变量均恢复到初始状态,在程序“跑飞”、死锁或系统发生异常状况,复位是最为直接有效地处理方式。单片机大多采用上电、程序和手动按键三种复位方式。其中上电复位在上电瞬间自动完成,一般不需人工干预设置;程序复位通常是通过“看门狗电路”实现,在系统需要恢复性保护时,通过需要添加该种复位方式;手动复位是由人工设定的复位按钮来完成的。这篇论文系统只在硬件电路设计中需考虑了手动复位方式。该复位键与 RESET管脚相连,利用电容充放电来完成复位触发[17]。
按键是人机交互的重要实现手段之一,在需要用户操作的电子系统中,通常采用按键完成系统控制输入,主控模块通过识别按键输入信息,完成相应控制流程。本论文采用4*4矩阵键盘12个键来实现系统的按键功能,矩阵键盘的R1~R4管脚分别与PC6~PC9接口相连,列线C1-C4管脚与PB12~PB15接口相连。不按按键时,单片机I/O口维持高电平;按下按钮时,单片 I/O口与地相连,显示出低电平,而单片机则根据与该键相应的端口电平状况来判定是否按下了一个键[18]。
具体硬件电路设计如图3-2所示。矩阵键盘通过识别按键码值来识别具体按键位置,下面将对12个按键的键值和实际含义进行介绍。
“商品价格增加按键”的键值为0x00,“商品价格减少按键”的键值为0x01,上述两个按键用于选择货物类型;“商品数量增加按键”的键值为0x02,“商品数量减少按键”的键值为0x03,上述两个按键用于选择货物数量;“一元投币按键”的键值为0x04,“五元投币按键”的键值为0x05,“十元投币按键”的键值为0x06,“二十元投币按键”的键值为0x07,“五十投币按键”的键值为0x08,“百元投币按键”的键值为0x09,上述6个按键用于模拟投币操作;“取消按键”的键值为0x0E,用于进行取消返回操作;“确认按键”的键值为0x0F,用于进行商品种类和数量选择确认操作。
图3-2 按键模块硬件电路设计
本文采用LCD1602液品显示屏构建系统显示模块,根据其型号名称可以看出,该显示屏可以完成2*16字符显示。LCD1602显示屏硬件电路设计通常采用直接和间接两种设计方式,顾名思义,直接连接设计方式就是将显示屏数据端口与单片机I/O口直接对应一一连接,显示屏每个数据引脚都需要占用单片一个I/O口,该种设计方式接线方便,但占用I/O口较多,适用于单片机I/O口资源较为充足的情况;间接连接设计方式就是为避免占用过多I/O口,将显示屏数据引脚连接到数据总线转换芯片上,如此操作便可实现通过少量的I/O口完成对多个数据引脚的信号传输。本文为简化电路设计,同时降低硬件电路构建成本,采用直接连接方式完成显示模块硬件电路设计。显示屏的D0~D7数据引脚与单片机PB0~PB7端口连接,实现不同模块间的数据指令信号交互。EN使能引脚与单片机PA11端口连接,用于完成显示屏使能控制; R/W读写引脚与单片机PA12端口连接,主要用于完成数据读写信号控制; RS复位引脚与单片机PA15端口连接,主要用于完成显示屏复位触发操作; VEE显示偏置引脚通过电位器与5V供电电源连接,通过调节电位器改变电压差实现显示屏对比度控制。显示模块硬件电路设计如图3-4所示。
图3-3 显示模块硬件电路设计
商品输出模块采用8个LED指示灯代表8中商品,商品1指示灯~商品8指示灯分别与单片机PD0~PD7端口连接,同时为避免过流损坏LED指示灯,在LED指示灯并联支路上添加保护电阻。本论文所述的商品输出模块中的 LED都是在低电平时工作,而在高电平时则是断开的,详细的硬件电路设计见图3-4。
图3-4 商品输出模块硬件电路设计
本章节完成系统各个重要组成模块的硬件电路设计工作,从硬件的工作原理和连接模式两个方面进行了详细的硬件设计,并在此章中进行了详细的设计与分析。加深了对系统各模块硬件电路的掌握。
更多推荐
所有评论(0)