智能化的点菜机是当今世界上众多餐饮企业的潮流服务模式,并且有越来越多的就餐地方设置了点菜机设备,而不再使用传统的纸质型的菜单和工作人员用笔手写记录顾客的点菜信息的古老的方式了。现在人们越来越致力于追求便捷智能化的生活方式,而触摸液晶显示屏是当今人机交互通道设计的流行技术,其形象逼真的文字和图片信息显示、直截了当的点击输入操作使得带触摸屏的液晶显示屏越来越被人们所喜爱。
1、智能点菜机概述
1.1、智能点菜机系统
智能点菜系统采用现在流行的TFT液晶显示技术和电阻式触摸屏技术完成顾客与点菜机器的信息交互,SD卡中存储要显示的图片信息。该系统包括点菜终端和接收终端,点菜终端用来完成顾客浏览菜谱、点菜、结账等功能,包括主控器、触摸液晶屏、SD卡存储器、无线传输收发器以及射频刷卡器。接收终端完成餐厅人员接收点菜的菜名,份数等信息,确认结账应付的交易金额等功能,包括控制器、触摸液晶屏和无线收发器件。点菜终端的系统组成框图如图1所示。
图1:点菜终端的组成框图
智能点菜系统的人机交互通道的设计主要包括液晶模块的驱动界面制作、触摸屏输入模块的驱动和设计。
1.2、点菜机的主控器件
智能点菜机采用STC12LE5A60S2增强型51单片机,该单片机为1T单片机,执行指令只需要1个时钟/机器周期,速度比12T的普通51单片机快6-12倍。单片机新增加了P4口,其中P4.0-P4.3这四个引脚可以直接作为通用输入输出口,但是剩下的四个引脚和单片机的其他功能引脚是复用的。需要设置P4SW寄存器中的相应位为1使能I/O功能。点菜机采用C51编写程序,它和一般的C语言用法及编写规则基本一样,但是需要注意编写时根据单片机的存储器结构和内部资源来设置变量。
2、驱动带触摸的液晶显示屏
2.1、液晶显示屏驱动方法
液晶显示屏、控制器和驱动器一起组成液晶显示模块(LCM),现在采用将液晶驱动控制芯片内嵌在模块内部,使用时将模块的外部接口和主控制器连接好,将驱动控制IC的命令写入模块的数据线上来实现各种功能。来自存储器件或者MCU缓冲区的文字或图像信息先存放在控制IC的帧缓冲区中,然后在送到屏幕相对应的位置上驱动显示。本文采用控制芯片ILI9341,它能驱动显示262,144色的240RGB&TImes;320像素的TFT液晶显示屏,它有172800字节的用来存储显示数据的GRAM。液晶显示模块和单片机主控器采用8位并行数据接口传输数据及命令。驱动液晶显示屏还需要将屏后的荧光管背光源打开,才可以正常显示信息。
2.1.1、液晶显示屏显示文字信息
液晶显示器屏幕上显示的基本单位就是像素,显示汉字或者字符时要先转换成显示屏能处理的点阵字模数据。对于16位的真彩色显示,屏幕上的每个显示单元对应帧存储区中的两个字节,以5-6-5格式来存储,将这两个字节的数据反应到屏幕上就是一个彩色点,每个显示单元可以显示65535种颜色。显示西文或者阿拉伯数字的字符和显示汉字是基于不同的字库的,常规的timesnewroman字符的点阵字模为16×8的,也就是对应屏幕上的128个显示点,需要16个字节存储;而常规的宋四号汉字尺寸为16×16点阵,需要32个字节存储。点阵图形式液晶显示文字的原理为,将要显示信息的字模数据按照一个矩形的点阵来处理,对于点阵的每个点进行判断,也即每个二进制位,判断为高电平还是低电平,汉字笔画所占据的点即为高电平,其他都为低电平,控制所要送入的颜色码值,这样就可以画出一个汉字的形状。文字的点阵字模数据是用取模软件来完成的,设置好取模选项就可以逐行的取出文字信息的字模数据,将其存储按字节送入显示缓存就可以在屏幕上显示信息了。
2.1.2、液晶显示屏显示图片信息
液晶显示屏显示图片时,需要根据屏幕的水平和垂直分辨率选择合适的图片大小。但是大部分的图片都是大尺寸图片,所以需要用处理软件将其裁剪到合适尺寸。图片处理好后,因为它的格式都不一样,有JPEG、BMP、PNG等等,图片的特性都不一样,所以我们需要用一个图片格式转换软件来将图片转换成合适的格式,可以转换为C语言数组格式,也可以转成二进制格式,如果只将图片数据放在MCU的ROM中的话就使用C语言形式,如果要用SD卡这类外置的存储器件的话就使用二进制形式。在进行图片的取模时,需要设置一些参数,扫描设为水平扫描方式,输出灰度可选择16位真彩色、单色、256和24位真彩色,这些都视需要而定。决定图片能不能显示出来的一个设置就是最大宽度和最大高度,要根据自己裁剪的图片大小设置,要不然会出现颜色乱码的现象。
2.2、触摸屏原理和控制
2.2.1、触摸屏校准原理
点菜机的人机交互通道采用电阻触摸屏实现信息输入,控制显示屏的显示。电阻类型的触摸屏是由两层复合薄膜组成的,两层的薄膜内侧都涂有氧化物阻型导电材料,平常状态是绝缘的,但是一旦有了按压动作,就会触发触摸屏控制器在其中一个面的电极对上加电压,那么在另一面的接触位置就会形成电压信号,将这个电压信号引出到A/D转换器就可以得到转换后的坐标值,一般控制器会进行两次切换电压到不同的电极对上,两次的模数转换才能得到触摸位置的X和Y坐标。MCU检测到坐标值后就可以执行相应的功能。在使用触摸屏之前必须要进行触摸屏坐标的校准,触摸屏和液晶显示屏幕的位置坐标不吻合。液晶显示器的显示屏幕是基于像素显示的,坐标系的原点是屏幕的左上角。而对于触摸屏上的坐标平面来说,它具有绝对的特性,接触到哪里就检测输出哪里的值。而且它的的坐标方向是和显示屏幕不一致的右下角为坐标原点,而且并不是基于像素的。触摸屏和液晶显示屏幕的坐标值存在着一定的偏移和缩放。校准就是要得到偏移因子和缩放因子,可以采用四点校准的算法,也就是在屏幕上显示四个已知坐标值的点,然后触摸相应点区域。进行四次点击触摸,就可以得到四组模数转换值,计算得到横纵坐标的缩放因子和偏移差值,可以多取几组值,确保参数的准确性。得到最终的缩放因子和偏移量后,每次测量到触摸位置的A/D转换值时就可以将其转换为液晶屏幕上的具体位置坐标。
2.2.2、控制驱动触摸屏
触摸屏控制器和单片机采用模拟的SPI通信,将触摸屏控制器XPT2046的引脚线接到单片机的通用I/O口。触摸屏控制器的引脚线包括:数据输入引脚DIN和数据输出引脚DOUT,代表SPI通信的主机输入从机输出线(MISO)和主机输出从机输入线(MOSI)线,在时钟信号上升沿数据输入,在下降沿数据输出;时钟信号输入引脚DCLK由单片机的I/O引脚提供同步时钟;片选线作为单片机选择触摸屏通信的使能信号。时钟信号提供主从机通信能够步调一致的同步信号,一般传一次数据要八个时钟,在时钟的高低电平跳变处数据传输;笔中断引脚,但是一旦有了触摸动作时就会变为低电平,作为向单片机申请中断的信号。单片机接到触摸屏的中断信号后,处理中断,向xpt2046发控制字,在不同的电极对上加电压采集X和Y坐标值,XPT2046再将最后的模数转换值送到单片机,单片机根据具体的坐标值判断位于哪个区域,进而选择相应的功能。驱动触摸屏控制器采集触摸点的位置坐标算法流程如图2所示。
图2:触摸屏控制器采集触摸点坐标算法流程图
3、结语
智能点菜机的人机交互设计包括点菜终端和接收终端的液晶屏幕的控制驱动显示和触摸屏模块的校准和驱动。按照汉字及图片的显示原理在液晶屏幕上制作相应的显示界面,设计好每一个信息和显示位置,画出相应的触摸有效区域;触摸屏和液晶屏幕校准好后,点击屏幕上相应的有效区域,触发选择不同的功能,切换信息显示,提示顾客的操作。本设计能很好的完成顾客的点菜流程,触摸输入直接便捷的实现了按键控制的功能,彩色液晶显示能将菜品的外观形象的展示给顾客,吸引顾客选择相应的菜品。