基于μCOSⅡ实时操作系统的电子画板的设计
2020-05-06唐俊龙刘远治禹智文邹望辉吴丽娟谢海情
唐俊龙 刘远治 禹智文 邹望辉 吴丽娟 谢海情
摘 要:基于UCOS-II实时操作系统完成了触摸屏传感器的程序驱动设计、触摸屏与LCD坐标的校准等工作,设计了一款嵌入式系统电子画板。实现人机交互菜单式的用户界面设计,电子菜单选择绘图背景,印花图案,画笔颜色、粗细、形状等参数,RGB调色按钮定义用户需要的画笔颜色,在绘图区域绘出用户需要的图案,书写文字。经过实验调试,电子画板功能完整,用户界面友好,操作简便。
关键词:电子画板 嵌入式 触屏技术 μCOSⅡ
Abstract: In this paper, an embedded electronic drawing board based onμCOSⅡreal-time operating system, LCD and touch screen is designed. The touchscreen sensor driven program is written. Calibration work of the touch screen and LCD coordinate is done. The man-machine interactive menu style of user interface is designed. The drawing background can be changed. The printing and the painting brush with colors, thickness and shape, etc. can be selected by electronic menu. The brush color based on RGB color button is defined by the user's own needs to draw the pattern and the text in the drawing area. Finally test experiment is done. GUI is friendly, full-functional. It is easy to operate.
目前以數字化为代表的消费类电子整合产品呈现出了高速增长的趋势,数字家庭很大程度上改变人们的生活和娱乐方式,触摸屏技术是一种新型的人机交互输入方式。触摸屏技术在一些大尺寸屏幕上,能够让多人在同一块屏幕上共同完成一些协同工作,如游戏、绘图、工程设计、影像处理及利用电容笔进行签名、画图、标记等应用领域,提高了使用效率,改善了用户使用环境。本文结合触摸屏技术与LCD显示屏技术,基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性的ucos-II实时操作系统,实现了一款人机交互式界面友好的电子画板[1]。
1 方案设计
硬件设计基于ARM9开发板,采用S3C2410X 处理器,64M 的NANDFLASH 和64M RAM,8寸640x480分辨率的265色真彩LCD(Liquid Crystal Display)显示屏,电阻触摸屏等[2]。触摸传感器是ADS7843,屏体部分是与LCD表面配合的多层复合薄膜,直接用2410内部ADC构成的转换电路接口,触摸反应速度快,数据准确[3-4]。嵌入式电子画板方案设计如图1所示,由菜单和绘图两大功能组成。菜单功能主要包括画笔颜色、粗细变换、“印花”动态变换、画布背景更换等操作,绘图功能主要是画直线、画圆,确定多点画多边形,画笔实时动态作画等绘画。多种绘画方式,接近真实画板的体验,使电子画板具有实用性和趣味性,既保留传统画板的精华之处,也凸显电子画板使用便捷的优势[5]。
2 电子画板系统的软件设计
2.1 触摸屏坐标校准
电子画板触摸屏的精准控制需要对触摸屏的触摸与LCD显示的坐标及两者间吻合性进行校准。
(1)初始坐标获取。
LCD与触摸屏的点通过公式(1)转换得到相对应的坐标值。
其中,T_Xmax、T_Xmin、T_Ymax 和T_Ymin 是触摸屏返回电压值x、y轴的范围值,LCDW、LCDH是触摸屏的宽度和高度(触摸屏的宽度*高度=640×480像素)。
(2)坐标校准。
触摸屏与LCD贴合度需要校准补偿,使操作更精准、更快速。本文采用在触摸屏上的左上角L1、右下角L2和触屏正中L3获得三点的三点校准法,这三点之间最为分散,有利于提高校准精度。将三点坐标确定之后,利用公式(2)可求出A、B、C、D、E、F的值。
电子画板绘图界面操作范围排列紧密,绘图画笔流畅,均匀出墨,要求触摸屏具有较高的精准度及对坐标有较快的处理速度,但较高的触摸屏精准度就需要对坐标进行多次的判断和计算,会降低坐标的处理速度。本文采用触摸屏的消息机制与API函数两种方法解决精准度与处理速度的问题。
2.2 主程序流程图
如图2所示,程序启动之后,主任务定义了系统参数的初始化,进入主函数,Init函数对系统进行画笔颜色参数、画笔模式参数等初始化设置。菜单任务通过调用触摸屏驱动程序,来判断触摸屏是否被按下,没有按下,继续检测触摸屏状态,如果检测到触摸屏被按下则执行更换背景图片、更换画笔颜色等相应的操作。如果菜单区域没有被按下,就检测绘图区域是否被按下,如果绘图区域也没有被按下,则返回到菜单区域检测,完成一次循环。
2.3 触摸式菜单的程序设计
触摸式菜单设计主要采用了两级菜单,如图3,图4所示。系统启动,主函数进行switch()的循环,判断菜单的标志位Level,根据不同的Level值进入不同的菜单区域,一级菜单的Level值等于0x01如图3。Level值等于0x02,进入了二级菜单如图4所示,二级菜单增加了是否返回一级菜单的判断。
3 调试
3.1 图片加载
启动UCOS-II系统,通过“mkdir BMP”命令,在/sys系统文件夹下创建文件夹名BMP,输入“cd BMP”进入到该文件夹中,输入“dl Main.bmp -d”命令,按下回车键,传送指定图片到BMP文件夹中。声明一个char型的数组存储图片地址信息char Main[]="/sys/BMP/Main.bmp",然后调用ShowBmp(pdc,Main,0,0)函数即可在指定坐标显示图片,如图5。图片的分辨率横轴为10的偶数倍,160×120分辨率的图片能够正常显示。
3.2 菜单程序的调试
主任务中启用了一个switch(level)来选择不同层级的菜单,主绘图界面是主菜单,其余各项操作如改变画笔颜色、改变画笔模式、改变背景图案等均为次级操作项目。通过编译之后将程序下载到开发板中,电子画板的主界面如图6所示。经过调试,用户界面更改了绘图背景为“牛皮纸纹理”,画笔颜色为“红色”,画笔粗细为“中等粗细”等,完整地实现了画板功能。
4 结语
基于μCOSⅡ实时操作系统的电子画板的设计编程采用标准C语言,利用μCOSⅡ操作系统在2410-S处理器上的移植,正确调用GUI函数,主要完成了触摸屏传感器的程序驱动设计、触摸屏与LCD坐标的校准等工作,实现了人机交互菜单式的用户界面设计,通过电子菜单更换绘图背景,选择印花图案,选择绘画画笔的固定颜色、粗细、形状等参数,也可通过RGB调色按钮定义用户自己需要的画笔颜色,在绘图区域绘出用户需要的图案,书写文字。经过实验反复调试,用户界面友好,功能完整,操作简便,具有一定的实际应用价值。
參考文献
[1] 周立功著.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,1979.
[2] 潘巨龙著.ARM&Linux嵌入式系统构建与应用[M].北京:北京航空航天大学出版社,1989.
[3] 吴明辉著.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社,2001.
[4] (美)Jean J.Labrosse著.嵌入式实时操作系统UC/OS-II(第2版)[M].北京:北京航空航天大学出版社,2006.
[5] 田泽.嵌入式系统开发与应用[M].北京:航空航天大学出版社,2005.