基于STM32的点菜机.docx
- 文档编号:11387035
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:52
- 大小:3.18MB
基于STM32的点菜机.docx
《基于STM32的点菜机.docx》由会员分享,可在线阅读,更多相关《基于STM32的点菜机.docx(52页珍藏版)》请在冰豆网上搜索。
北京理工大学珠海学院2020届本科生毕业论文
北京理工大学珠海学院
本科生毕业设计
基于STM32的点菜机
学院:
信息学院
专业:
自动化
姓名:
林坤鑫学号:
160104105535
指导教师:
刘娇月职称:
教授
中国·珠海
二〇二〇年五月
49
诚信承诺书
本人郑重承诺:
我所呈交的毕业论文《基于stm32的点菜机》是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,论文使用的数据真实可靠。
承诺人签名:
日期:
年月日
摘要
点菜机是用于酒店服务员手持无纸化点菜,采用STM32F103RBT6芯片,这是一款基于CortexM3内核的芯片。
显示器采用2.0寸TFTLCD屏,分辨率220*176。
显示屏的功能实现,利用了SPI协议。
通用定时器具有输出PWM波的功能,利用该功能,我可以调节显示器的亮度。
芯片自带了12位A/D转换,用来监控电池电量,从而达到电量显示的功能。
总共有18个按键,有方向键,还有数字按键,数字按键以九宫格形式排列。
当一段时间不操作点菜机时,将自动息屏进入省电模式,这段时间的长短是可以由用户设置的。
通信方面是采用串口无线通信技术,更新菜谱、发送已点的菜单和餐台号、催菜、接收服务器发送的短信等。
可以显示汉字,汉字库存储在flash芯片W25Q64上,该芯片使用SPI接口。
点菜机的应用,将对现代餐饮企业有较大的影响,为企业节省很大的人力物力。
点菜机操作简单、方便,便于餐厅服务员使用。
关键词:
点菜机;STM32F103RBT6;SPI接口;flash芯片
Abstract
Theorderingmachineisusedforhotelwaiterstohandorderwithoutpaper,andSTM32F103RBT6stmicroelectronicsM3chipisusedasthemaincontrolofthesystem.ThedisplayUSESa2.0-inchTFTLCDscreenwitharesolutionof220*176.ThefunctionofthedisplayscreenisrealizedbyusingtheSPIprotocol.Thedisplaybrightnesscanbeadjustedarbitrarily,usingtimeroutputPWMcontrolbrightnesstechnology.PowerdisplayadoptsM3mastercontrolwith12-bitA/Dconversionmonitoringbatterypower.Jiugonggridentitybutton,whenalongtime(timecanbeset)donotoperateautomaticallyoffthescreenintopower-savingmode.Through433wirelesscommunicationtechnologytoachievethecommunicationwiththeserver(toupdatethemenu,sendthemenuorderedbythediningtable,inquirethediningtableinformation,order,receivetheserversentmessages,etc.).SupportChinesecharacterdisplay,usingSPIinterfaceflashchipW25Q64tostoreChinesecharacterlibrary.
Theapplicationofalacartemachine,willhaveagreaterimpactonthemoderncateringenterprises,fortheenterprisetosavealotofmanpowerandmaterialresources.Theorderingmachineiseasytooperateandconvenientforwaiters.
Keywords:
alacarte;STM32F103RBT6;SPIinterface;flashchip
目录
第一章前言 5
1.1研究背景及意义 5
1.1.1设计背景 5
1.1.2设计意义 5
1.2本设计的目的及应达到的技术要求 6
1.3本设计在国内外的发展概况及存在的问题 6
1.4本设计应解决的主要问题 6
1.4.1内存问题 6
1.4.2显示问题 6
1.4.3通信问题 6
本章小结 7
第二章硬件设计 8
2.1设计原理 8
2.2方案选择 8
2.3主控电路 9
2.4通信电路 11
2.5电源电路 11
2.6复位电路及时钟电路 12
本章小结 13
第三章系统软件设计 14
3.1系统主程序设计 14
3.2按键程序设计 14
3.3键盘灯程序设计 15
3.4系统延时函数程序设计 15
3.5定时器程序设计 15
3.6LCD显示器器程序设计 16
3.7SPI通信程序设计 16
3.8串口通信程序设计 17
3.9CRC校验程序设计 19
本章小结 19
第四章实物效果展示 21
4.1开换餐台 21
4.2点菜流程 22
本章小结 26
第五章总结 27
参考文献 28
致谢 29
附录 30
第一章前言
1.1研究背景及意义
1.1.1设计背景
现在越来越多的人都喜欢去酒店吃饭,特别是亲朋好友的聚餐。
随着经济的发展,餐饮行业也随之发展,大小各异的餐厅酒楼林立起来。
餐厅多了,竞争就存在了,各种行业都向信息科技靠拢,逐渐趋向于互联网+,餐饮企业之间的竞争,从以前的竞争哪家店的店面大,哪家店的价格便宜,到现在竞争哪家店的服务好,哪家店的上菜效率高等等。
如果说餐饮企业不随时代发展,用以前的那种点菜方式,在客人来了入座了,然后服务员再拿纸质菜单过来给客人点菜,客人点好之后,服务员得在空白纸上抄一次菜品,随后再将菜品纸拿到后厨。
这样的点菜流程,将会造成人员资源的浪费和时间的浪费,并且效率低下。
在生意火热的时候,单据多了,容易造成丢单,分单错误,传菜错误等问题的出现,从而影响服务质量,直接造成酒店的经济损失。
如果使用无纸化手持点菜机,这些问题就能得到解决。
客人到店就餐,先在菜单上看菜品,采用可重复利用的菜单。
客人选好菜之后叫来服务员点菜,服务员只需要在无纸化手持点菜机上点菜,每次点菜都能设置餐桌编号,点好的菜能直接通过无线通信,将菜品信息传到后厨,服务员无需到后厨去,在后厨安装接收菜品信息的机器,并且能直接将菜品信息打印出来。
打印小菜单有菜名和餐桌号,这样在分餐传菜的时候,不会出现分错的问题。
现在任何企业之间的竞争都很大,餐饮企业之间的也是如此。
服务质量,上菜效率,管理水平,对于餐厅来说变得越来越重要。
以前的手工点菜方式已经过时了,毕竟这种方式的点菜,会存在很多问题,比如说计算问题,查找问题,更改问题,这些问题的存在,导致了出错率的增加,这样子那服务员的工作效率就会很低,客人体验的感觉也会不好。
因此,一个手持无纸化的点菜机,是现在餐饮企业所不可或缺的。
点菜机的存在,能提高餐厅的服务质量,提高服务员的工作效率和客户满意程度,改善餐厅形象,并最终提高企业竞争力和运营效率。
1.1.2设计意义
社会在发展,人们生活质量变得更好了,随之对餐饮企业的服务的要求也不同以往。
为进一步满足着新兴的市场需求,赶上餐饮行业发展的上升期。
在餐饮企业发展的需求下,企业越来越个性化,企业的特色也逐渐展示出来。
餐饮行业内的竞争,在于人才的培养、管理方式的变化、经营方式的日新月异、还有创新的能力。
点菜机的问世,反映了我国各行业也都在向互联网靠拢,反映了人们生活质量的提高,也反映出了现代餐饮企业与时俱进的特点。
综上所述,对于点菜机的研究具有很大的意义。
1.2本设计的目的及应达到的技术要求
本设计主要为了设计出无纸化手持点菜机,能够应用到餐厅中,从而提高餐厅服务员的工作效率,提升服务质量,减少错误率,从而对企业的发展有促进的作用。
总体目标是实现在点菜机上点菜,加菜,催单,将菜品信息传到后厨。
本设计技术方面要实现以下要求:
手持点菜机功能要全面,能够选菜,加菜,催单,算总价等功能,并且能够正常将已经点好的菜品信息传到后厨接收器。
1.3本设计在国内外的发展概况及存在的问题
根据国家一些权威政府机构,加上一些经济媒体的数据,从中可以了解到点菜机的发展现状,包括点菜机还能发展多长时间,竞争激不激烈。
有一份关于点菜机的市场研究报告从行业市场的占比、行业需求增长幅度、同行的数量规模、行业的生产输出量、利润空间的大小、企业规模、进入和退出壁垒等方面进行全面的调研和分析。
点菜机行业的行业生命周期被定性判断现阶段属于刚开始阶段,具有很好的发展前景。
该研究报告说明,点菜机行业市场的竞争属于很激烈的状态,有很多企业都在研发智能点菜机。
定量比较世界发达国家智能点菜机产业的集中度,重点研究了我国点菜机的市场占有量,综合整个市场的现状来得出我们国内点菜机行业的发展是否稳定的判断。
该研究报告分析了点菜机产业链的情况。
从生产点菜机这个产品所需要的原料公司的发展情况和分销点菜机的渠道的需求量,有针对性地判定对点菜机的发展影响大不大。
综合得到的数据、政府对点菜机发展的帮扶政策,可以得出点菜机未来发展的空间很大的结论。
1.4本设计应解决的主要问题
1.4.1内存问题
内存问题是每一台机器都要解决的问题,内存不足将会影响产品的功能,导致产品研发失败。
在芯片选型的时候,一定要充分考虑好所需内存大小。
内存主要包括所有员工的帐号密码存储,毕竟这台机器不一定仅让一个人使用,那么这些数据要储存在哪个位置。
还有菜品的数据,点菜的时候,已点的菜的数据,这些都需要储存。
为解决此问题,采用SPI接口flash芯片W25Q64来存储。
1.4.2显示问题
显示方面,一个好的显示器,能将产品的美观度提升一个等级,要想产品能畅销,需要选择一些分辨率比较高的显示器。
本设计选择的显示器采用2.0寸TFTLCD屏,分辨率220*176。
驱动芯片为ILI9341。
显示器对电池的消耗很大,为了提高使用效率,用户自然不想机器没用多久就得去充电。
因此我设计了显示器亮度可任意调节,采用定时器输出PWM控制亮度技术。
当长时间(时间可设置)不操作时自动关屏进入省电模式。
1.4.3通信问题
通信上主要运用串口,利用串口来进行与别的部分之间的数据收发,可以实现换菜谱、给厨房发菜品信息的功能。
厨房要是出菜慢了,还能催促厨师。
串口通信有时候会出现丢数据的现象,考虑在串口通信上添加通信协议,以更高程度的保证数据完整性。
本章小结
点菜机对于餐饮企业来说具有很重要的意义,关系到企业的发展,也影响广大民众的生活。
目前,点菜机在国内外的发展势头很好,有很大的发展空间,但发展和竞争共存。
本设计也存在着一些问题,但这些问题,都将得到解决,不会影响整个设计。
第二章硬件设计
2.1设计原理
本系统首先是客户端,这也是本设计的设计重点。
其次是服务端,用来作为连接客户端和后厨端的桥梁。
最后是后厨端,用来接收菜品信息。
服务员在手持点菜机上,也就是客户端上输入密码之后,进入点菜主界面。
服务员点完菜之后,如果有顾客需要催菜,退加菜等,服务员可以直接在点菜机上操作,这些信息会通过无线通信技术发送到服务端,服务端接收到信息后,再把信息发到后厨端。
后厨端接收到信息,会在打印机上将菜单打出来。
然后厨师按照菜单上的信息做菜即可。
菜做好后服务员只需按菜单上的餐桌号有序上菜。
图1手持点菜机系统组成框图
图2手持点菜机系统硬件组成图
2.2方案选择
系统由三部分组成:
客户端,服务器和后厨端。
该服务器由C8051f020简化单片机作为主控板,用来控制整个服务器。
菜品信息,员工信息都能显示在显示屏上,改显示屏是采用12864LCD显示屏。
按键是4行4列的键盘按键,还有反向键,可以控制光标的移动。
服务器作为连接客户端和后厨端的桥梁,肯定需要数据的实时传递,如果没有实时传数据,那将无法达到功能要求。
数据的实时传递,利用了AY_NRF24L01无线模块。
刷卡利用的是RC500刷卡模块,用来给客人结账。
电源关闭时,at24c02存储器芯片数据不会丢失。
小型打印机可以打印客户帐单。
服务器还具有查询空餐台、员工、会员的信息的功能。
实时数据发送和接收,只要靠近刷卡区域,卡能够被自动识别到,刷卡之后还能通过打印机将小票打印出来。
厨房端的组成和客户端的相类似。
只是少了刷卡模块。
能够立即接收从服务器发送过来的信息并打印每个餐台的菜单。
客户端的主控芯片有多种选择,例如STM32F103RBT6、STM32F103ZBT6、STM32F407ZGT6,Cortex-m3芯片比Cortex-m4芯片价格便宜,但频率比Cortex-m4芯片低,Cortex-m3芯片能满足本设计的需求。
最后我决定采用STM32F103RBT6芯片。
本设计采用的显示器的尺寸位2.0寸,型号位TFTLCD。
并且利用串口进行各部分之间的通信,具有点菜、退菜、加菜、催菜功能。
本设计主要完成客户端的软件开发。
图3STM32F103RBT6主控芯片图
2.3主控电路
有几种类型的主控制芯片,如表1所示:
表1主控制芯片类型选择
芯片类型
功能和特点
8位单片机
功能和性能有限,无法满足本设计的要求。
STM32F407
功能满足,但成本较高,并且会造成资源浪费。
STM32F101
STM32F101的时钟频率为36MHz,内置32K到512K的闪存。
STM32F103
STM32F103的时钟频率达到了72MHz,是同类产品中的佼佼者,两个系列都内置32K到512K的闪存
两个STM32F1系列的功能差不多,闪存都是内置了32K到512K。
但是它们之间还是有区别的,主要在于SRAM和外围接口的最大容量的组合还有时钟频率的大小。
因此,我最终决定使用STM32F103RBT6系列。
图4点菜机原理图
2.4通信电路
本设计使用RF1100-232串行无线收发器模块,以CC1101低功耗无线通信芯片为核心,并具有宽电源输入设计,工作电压+2.7V~+5.5V。
RF1100-232无线收发模块特点有:
该芯片的运行,对电池的耗电量很低,属于低功耗类型的芯片。
型号为cc1101,它可以设置调节发射的功率,可以设置到10mw封顶顶可以工作在400mhz的环境下。
对比别的一些通信方式,它具有传递距离远的优秀,在工业上有很多的地方应用到。
并且它有很多个通道供用户选择,多达256个。
图5USB转串口原理图
2.5电源电路
手持式点餐机由两节5号电池供电,电源电路中的开关型DC/DC升压调节器芯片BL8530-33和BL8530-有效利用电池中存储的能量并提高电能使用效率使用50。
芯片功耗的大小,影响电池的使用时长,而BL8530是一款静态功耗非常小的芯片,它能达到小于5.5微安。
之所以能达到这么小的功耗,和它的设计有关,它不仅仅有PFM控制模式的电压型DC-DC转换器电路,还有BOOST结构。
BL8530这一款芯片需要的外部元件不多,电感器是一定要的,还有肖特基二极管,还有一个是输出电容器。
其中最重要的是电感器和肖特基二极管,能量使用效率的提高离不开它们。
有时候纹波的输出也会受电容这个器件的影响。
因此,通过选择合适的电感器,电容器和肖特基二极管,可以实现高转换效率,低纹波和低噪声电压输出。
图6电源电路
2.6复位电路及时钟电路
在STM32F407RBT6的复位输入端RESET接入手动按钮即可形成复位电路。
在STM32F407RBT6外部时钟输入端接入25MHZ晶体震荡电路形成时钟电路。
图7复位电路
图8时钟电路
本章小结
本章主要写了有关硬件的设计,包括设计原理、方案选择、主控电路、电源电路、通信电路和复位及时钟电路。
设计原理主要描述了系统的组成、点菜机的一些使用操作和功能。
方案选择主要是从Cortex-m3和Cortex-m4芯片中选择性价比更高的Cortex-m3芯片。
主控电路主要对STM32F103RBT6这一款芯片进行性能介绍。
电源电路主要写了电池的选型和稳压芯片的选择。
第三章系统软件设计
3.1系统主程序设计
从整个系统的设计功能来看,主要有以下几个界面,分别是菜谱界面,点菜界面,增减菜界面,其他设置界面,登录界面和初始化界面。
在系统上电之后,首先初始化系统时钟,然后再到显示屏和无线模块的初始化,然后初始化界面,再然后刷新界面、进行按键扫描,最后进入菜谱界面、点菜界面、添加/删除菜界面。
图1点菜机主程序流程图
3.2按键程序设计
芯片的按键总共有19个,按键接口分布在GPIOA,GPIOB,GPIOC,GPIOD囗,分别是:
PA0,PB0至PB15,PC10,PD2。
首先得开启这几个IO口的时钟,它们都在APB2总线上,分别是在第2、3、4、5位。
将APB2外设时钟使能寄存器寄存器的这4个位置1即可。
其次分别配置这些口的属性,每个IO口都配置成普通输入模式,上拉/下拉输入模式。
其中PA0设为上拉输入模式,PB0至PB15设为下拉输入模式,PC10和PD2都设为下拉输入。
配置完IO口,程序就要进入按键扫描。
先设一个按键标志,用0来表示按键按下,用1来表示按键未按下。
我采用的是机械按键,按键按下,会有一定时间的抖动,因此本设计加入了延时函数。
一般机械按键按下的抖动信号在5毫秒左右的时间内,我使用了10毫秒的延时,为了能保证抖动完全消除。
之后便是判定按键是否按下。
若有按键按下,IO口从输入转变为推挽输出,并且输出高电平。
3.3键盘灯程序设计
键盘灯仅由一个LED灯组成。
LED灯的程序设计比较简单。
LED灯的硬件接口是PA2,从原理图中看出,当PA2输出高电平时为亮灯,当PA2输出低电平时为灭灯。
进行程序设计首先要开启GPIOA的时钟,时钟不开,IO口是无法工作的。
其次进行PA2的管脚初始化。
将PA2配置为推挽输出模式,无上拉无下拉,输出速率配置为2MHz即可,配置为低速就可以了,LED灯的显示不需要中速或高速。
初始化的时候配置IO口输出低电平,使灯处于灭灯状态。
LED灯不是开机就常亮的,而是有按键按下才亮。
若LED灯亮着,当没有按键按下,LED灯会在2秒后又自动熄灭。
因此在程序设计中,需要先判断是否有按键按下,才能转变PA2的输出状态。
3.4系统延时函数程序设计
系统延时函数的设计是利用系统时钟来设计的。
有毫秒延时,也有微秒延时。
时钟源采用外部时钟源。
系统定时器构成:
时钟源、计数器、存储要的计数值、分频器。
系统滴答定时器属于系统内核,来自于ARM公司,各个厂商都一样。
在以前(08年以前)的处理器上,没有系统滴答定时器;08年以后才开始有,由于操作系统需要心跳节拍,心跳节拍需要用定时器完成,产品一旦升级或换代换了主控芯片,所有程序得重写工作量太大,为了节约时间,ARM公司直接规定了一个专门用来处理操作系统心跳节拍的定时器。
系统滴答定时器信息:
具备两个时钟源,24位的定时器。
想要系统滴答定时器工
作,需要进行如下配置:
要配置关闭自动重装载寄存器,使能更新事件,设置UG位,将计数器清0。
最后还要开启定时器的时钟
3.5定时器程序设计
STM32F103中有8个定时器,通过芯片的框架图就有所了解。
STM32对这8个定时器的类别进行了划分,其中TIM6和TIM7是基本定时器,TIM2,3,4,5是通用定时器,TIM1和TIM8是高级定时器。
每种定时器有相同的特点也有不同的特点。
相同的特点是都有计时功能。
不同的是通用定时器添加了输出信号以及捕获信号。
这些信号都是输入输出到IO口。
高级定时器的功能最多最全,不仅包括其他定时器的所有功能,还添加了死区和中断功能。
伺服电机主要用于工业控制。
除了基本定时器功能外,基本定时器还具有触发其他设备(DAC,ADC,通用定时器,高级定时器)动作的能力。
想要基本定时器工作,操作步骤:
1、开启对应的外设时钟使能。
2、配置预分频器。
3、清空计数器。
4、配置预装载寄存器。
5、配置U事件(利用UG位进行配置)。
6、配置控制寄存器。
图2点菜机定时器实验现象图
为了体现出定时器实验,我设计为1秒定时,通过图10串口打印出来的时间戳可以看出,每打印一次,时间增加1秒。
说明定时器实验是成功的。
3.6LCD显示器器程序设计
LCD显示器的程序设计,首先定义画笔颜色和背景颜色,然后完成写寄存器函数。
写一个读LCD数据的函数,返回值为读到的值,配置GPIOB0到15口都为上拉输入,读取数据的时候,不需要读2次,每读一个数据加上两微秒的延时,读取完之后,GPIOB口全部设成上拉输出。
完成一个写寄存器的函数,该函数只需要提供寄存器编号和读到的值即可。
3.7SPI通信程序设计
SPI是一种接口,是一种高速的,在同一时间可以接收数据也可以发送数据的,有时钟线的通信总线。
主要应用在内存芯片、实时时钟、AD/DA转换器、ID卡刷卡模块、显示屏等器件。
SPI总线的通信方式有两种,一种是同步串行全双工通信,还有一种是同步串行半双工通信。
SPI有时钟线:
同步;只有一条数据线:
串行;能同时收发:
全双工。
SPI总线的通信速度:
10MHz以上~100MHz。
SPI通信数据帧过程:
首先将片选线置0,当时钟线处于高电平,拉低时钟线能产生下降沿,这个时候主机和从机在进办发送数据或接收数据,从低电平拉高成高电平会产生上升沿,这个时候主机和从机在准备数据。
传递数据完成后将片选线置1。
SPI是一个接口,它支持两个功能,一个是支持SPI协议,这个协议是数据传输协议,可以用于显示屏中,还有一个是支持用于传输音频文件的IIS协议。
如果不进行配置,SPI接口默认为支持SPI协议。
如果需要使用IIS协议,就要通过软件来设置。
串行外围设备接口(SPI)可以与外部设备执行半双工/全双工同步串行通信。
该接口可以配置为主模式,在这种情况下,它可以为外部从设备提供通信时钟(SCK)。
该接口还可以在多主模式下配置。
它可以用于许多目的,包括基于两条线路的简单同步传输。
它们中的任何一个都可以用作双向数据线,或者可以使用CRC校验来实现可靠的通信。
SPI基于三条线的全双工同步传输,基于双线的单工同步传输,其中一条可作为双向数据线。
8位或16位传输帧格式选择,主模式或从模式操作,多主模式功能8个主模式波特率预分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 点菜