通过ADS7846在PDA上实现个性化书法输入
2.4 应用程序
一块触摸屏中并不一定每个点对压力的感应都很准确。另外笔尖在触摸屏上书写时,也会有秚动和干扰。这就造成了用同样的力在触摸屏上画一条线,显现时可能出现粗细不一样的现象。针对这个现象,在应用程序中适当做一些平滑处理。笔者采用算术平均法来平滑曲线,即如果发现采样点的压力值比前一个点大或小很多,则对该点和刚刚输入的前几个点压力值做算术平均,得到的值作为该点正确的压力值。但要注意,用来做平均的点不能取得太少,否则平滑作用不明显;也不能取得太多,否则线条粗细变化太慢,模拟不出书法效果。通过实验,发现取前三个点比较合适。做算术平均的源程序如下:
if(pressure-oldpressurel>50 oldpressurel-pressure >50) //如果发现触点的采样压力值比前一个点大或小很多//
pressure =(pressure+oldpressurel+oldpressure2+oldpressure3)>>2; /则对该点和前三个触点的压力值做算术平均,并把结果作为该点正确的压力值//
3 实验结果
经过实验,在LCD上显示出的结果如图2所示。
图2(a)为使用ADS7843,未采样触点压力值在LCD上的显示效果;图2(b)为使用ADS7846,采样触点压力值后,根据压力大小在LCD上显示出不同粗细曲线的效果。
如果使用多灰度级的LCD显示屏,还可以利用触点的压力大小(Rtouch)和笔尖在屏上接触的时间这两个参数,使画出曲线的顔色呈出出不同深浅。即触点的压力越大、笔尖在屏上相关区域接触的时间越长,这个区域显现的顔色就越深。具体调节公式如下:
式中,graylever为LCD上该点将要显现出的灰度值,(X,Y)为该点坐标,(Xddtime,Yoldtime)为同一笔划中一定时间间隔前触点的坐标。笔者在开发过程中,取时间间隔为100ms。A和B都是用来调整graylever变化范围的常量,可以通过实验根据具体情况设定。
这样,用指尖在触摸屏上作画时,LCD上也会显现出素描和国画的效果。
如果使用彩色LDC,可以结合GUI在LCD上创建一个供用户选择不同色彩的窗口,用户就可以挑选合适的顔色在触摸屏上画图,显示屏上也将会呈现色彩缤纷的作品。因此,本文介绍的方法将会为PDA及相关行业开拓出全新的功能,带来更加明媚的春天。
本文提出的方法已在MOTOROLA公司的DRAGONBALL(龙珠)系列MX1(ARM920T)上实现。该设计使得在PDA的触摸屏上写字时,能显示出毛笔或钢笔写出的书法效果,同时也显现出了书写人笔迹的个性风格,并具有反应速度快、实现成本低、程序编写特简单等突出特点。相信此方法将会在周期入式领域中得到广泛的应用。
电能表相关文章:电能表原理
评论