具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下面参考图5至图6描述根据本发明实施例的用于自电容触摸屏的定位方法。
如图5和图6所示,根据本发明实施例的用于自电容触摸屏的定位方法,包括如下步骤:
S1:接收来自自电容触摸屏的帧数据,并根据帧数据获得自电容触摸屏的横向通道以及纵向通道的电容变化量。该步骤S1进一步包括以下步骤:
S11:接收来自自电容触摸屏的帧数据。
由于触摸屏是由多条通道横竖等间距的排列而成,当有物体(例如手指)触摸自电容触摸屏时,将引起相邻的多个通道的电容值变化。将从自电容触摸屏上检测到的电容值的模拟信号通过模拟-数字转换模块(ADC)转换为数字信号。并将上述表示电容值的数据存放在数组raw_data[MAX]中。通过数组raw_data[MAX]中的数据数组raw_data[i]可以计算出自电容触摸屏每一个通道的电容变化量,包括横向通道以及纵向通道的电容变化量。将上述计算得到的横向通及纵向通道的电容变化量存放在数组differ_data[MAX]中,其中,MAX为自电容触摸屏的通的总数。
S12:判断自电容触摸屏是否被触摸。
根据步骤S11中得到电容变化量数组differ_data[MAX],对自电容触摸屏的横向上的所有通道和纵向上的所有通道进行电容变化量进行判断。具体而言,当一个通道的电容变化量大于第一阈值时,则判断该通道被触摸。当横向上有至少一个通道被触摸且纵向上也有至少一个通道被触摸时,则判断有物体触摸自电容触摸屏。换言之,当有至少一个横向通道的电容变化量大于第一阈值,且有至少一个纵向通道的电容变化量大于第一阈值时,则判断有物体触摸自电容触摸屏,进一步执行步骤S2。
在本发明的一个实施例中,具体地,计算电容变化量大于第一阈值的横向通道数量以及满足该条件的通道中的横向起始通道Xstart和横向结束通道Xstop,并计算电容变化量大于第一阈值的纵向通道数量以及满足该条件的通道中的纵向起始通道Ystart和纵向结束通道Ystop。如果横向和纵向中的至少一个方向的通道没有判断有触摸,则判断没有物体触摸该电容触摸屏。当判断没有物体触摸自电容触摸屏时,返回步骤S11,进一步接收下一帧数据。
S2:获得触摸自电容触摸屏的物体的数量。
当有物体触摸自电容触摸屏时,会引起相邻的多个通道的电容值的变化。通过检测同一方向(横向或纵向)上有电容变化的通道是否连续来判断触摸自电容触摸屏的数量为一个、两个、或两个以上。
S21:当同一个方向(横向或纵向)上,当电容变化量大于第一阈值的多个通道是连续排列的,且形成为一个完整的闭环区域时,则可以判断触摸自电容触摸屏的物体的数量为一个。
当同一个方向(横向或纵向)上,电容变化量大于第一阈值的多个通道不是连续排列,换言之,多个通道中至少两个通道之间有断点,且形成了多个完整的闭环区域时,则可以判断触摸自电容触摸屏的物体的数量为两个或两个以上。
在本发明的一个实施例中,当电容变化量大于第一阈值的多个通道间的断点数量为m个时,则触摸自电容触摸屏的物体的数量为m+1个。更为具体地,如果断点数为1,即在这些通道之间仅出现了一个断点,那么则认为触摸的物体为2个。
当断点的数量大于一个时,则可以判断触摸自电容触摸屏的物体的数量为两个以上,此时返回步骤S11,继续接收下一帧数据。
当断点的数量为一个时,则可以判断触摸自电容触摸屏的物体的数量为两个,进一步执行步骤S3。
当相邻通道间没有断点,即被触摸的通道为连续排列时,判断触摸自电容触摸屏的物体的数量为一个。在本发明的优选实施例中,在计算该物体的坐标之前,还需要对该单点触摸进行误判检测。当两个距离很近的物体触摸自电容触摸屏时,也会导致有触摸的通道连续排列,从而会产生误判。因此,需要进一步检测是否将两个物体误判为一个物体。
在本发明的一个实施例中,根据有触摸的通道的电容变化量来进行误判检测。具体而言,当电容变化量满足以下两个条件时,则判断触摸自电容触摸屏的物体的数量为两个,否则判断物体的数量为一个。
(1)在同一方向(横向或纵向)上,电容变化量大于第一阈值的连续排列的通道的数量大于三个,即有触摸的通道的数量大于三个;
(2)在电容变化量大于第一阈值的连续排列的多个通道中,位于两侧的通道的电容变化量大于位于中间的通道的电容变化量。
当有物体触摸自电容触摸屏时,被触摸通道的自电容会变大,从而形成一个波峰状曲线。如果有两个邻近的物体触摸自电容触摸屏,则会形成两个相邻的波峰,在波峰中间的波谷位置即为两个物体间隔的位置。由此可知,对于有触摸的多个通道,位于两侧的通道(有触摸的通道)的电容变化量大于位于中间的通道(两个物体之间的未被触摸的通道)的电容变化量。
S3:当物体的数量小于等于两个时,计算所述物体的坐标。
根据有触摸的通道的电容变化量对触摸自电容触摸屏的物体的坐标进行计算。
S31:当物体的数量为一个时,计算该物体的坐标。
根据步骤S1中得到通道的变化量、有触摸的通道的数量以及有触摸的通道中的横向起始通道Xstart、横向结束通道Xstop、纵向起始通道Ystart和纵向结束通道Ystop计算物体在自电容触摸屏上的触摸坐标(newx1[n],newy1[n])。
其中,newx1[n]为物体的横坐标;newy1[n]为物体的纵坐标;Xstart为在横向通道上,电容变化量大于第一阈值的起始通道;Ystart为在纵向通道上,电容变化量大于第一阈值的起始通道;Xstop为在横向通道上,电容变化量大于第一阈值的结束通道;Ystop为在纵向通道上,电容变化量大于第一阈值的结束通道;i为当前通道;differdata[i]为当前通道i的电容变化量;n为当前帧的序号,即该坐标为第n帧中数据对应的物体在自电容触摸屏上的坐标。
S32:当物体的数量为两个时,计算两个物体的坐标。
当物体的数量为两个时,所述物体包括第一物体和第二物体,且是第一物体先于所述第二物体触摸电容触摸屏。
计算两个物体中每一个物体的坐标与步骤S31中计算单个物体触摸的方法一致。类似的,可以得到第一物体的横坐标newx11[n]和纵坐标newy11[n],
第二物体的横纵坐标newx12[n]和纵坐标newy12[n]为:
S33:对两个物体的横坐标和纵坐标进行匹配运算。
在本发明的实施例中,为了消除两点触摸时,真实点和鬼影之间的变换,需要对步骤S32中计算得到的两个物体的坐标进行匹配运算。
首先,获得前一帧中检测到的两个物体触摸电容触摸屏时,最先触摸的第三物体的横坐标oldx1和纵坐标oldy1。
然后,分别计算第一物体的横坐标newx11[n]和第二物体的横坐标newx12[n]与第三物体的横坐标oldx1之间的距离。当第二物体的横坐标newx12[n]与第三物体的横坐标oldx1之间的距离大于第一物体的横坐标newx11[n]与第三物体的横坐标oldx1之间的距离时,则将newx11[n]和newx12[n]交换。否则,保持第一物体的横坐标newx11[n]和第二物体的横坐标newx12[n]不变,不做任何处理。
分别计算第一物体的纵坐标newy11[n]和第二物体的纵坐标newy12[n]与第三物体的纵坐标oldy1之间的距离,当第二物体的纵坐标newy12[n]与第三物体的纵坐标oldy1之间的距离大于第一物体的纵坐标newy11[n]与第三物体的纵坐标oldy1之间的距离时,则将newy11[n]和所newy12[n]交换。否则,保持第一物体的纵坐标和第二物体的纵坐标不变,不做任何处理。
由此,通过将当前帧中的坐标与前一帧中先到物体的坐标进行匹配,可以获得两个物体的真实坐标,避免将鬼点坐标误判为真实坐标,提高了坐标定位的精度。可以理解的是,也可以将当前帧中的坐标与前一帧中后到物体的坐标进行匹配已得到两个物体的真实坐标。
S4:对计算得到的坐标进行圆滑处理。
在本发明的一个实施例中,对坐标进行圆滑处理采用可以采用平均的方式。具体而言,圆滑处理后的物体的横坐标为:
圆滑处理后的物体的纵坐标为:
其中,n为当前帧的序号,xnew[i]表示第i帧的物体的横坐标,newpositionx[n]为第i帧的物体圆滑处理后的横坐标;ynew[i]表示第i帧的纵坐标,newpositiony[n]为第i帧圆滑处理后的纵坐标。
通过采用上述圆滑处理的方式,触摸物体在自电容触摸屏上的坐标曲线为一条光滑的直线。
S5:将圆滑处理后的坐标发送到其他处理过程,例如:需要通过坐标定位实现功能的动作。然后返回步骤S1,继续接收下一帧数据。
根据本发明实施例的用于自电容触摸屏的定位方法,具有以下三个优点:
(1)将两点触摸中的两个触摸物体的坐标进行匹配运算以得到稳定且准确的坐标,避免坐标点在真实点和鬼影之间的变化,从而提高了计算坐标的精度。
(2)对坐标进行圆滑处理,从而使得坐标曲线趋于光滑的直线,避免了线条不直,和弯曲的现象。
(3)通过检测有触摸的通道电容变化量的关系,避免了将临近的两个物体误判为一个。
并且,本发明实施例的用于自电容触摸屏的定位方法的计算方法简单、计算速度快。
下面参考图7描述根据本发明实施例的用于自电容触摸屏的定位装置300。
如图7所示,根据本发明实施例的用于自电容触摸屏的定位装置300包括:检测模块310、触摸物体计算模块320和坐标计算模块330。其中,触摸物体计算模块320与检测模块310相连,坐标计算模块330分别于触摸物体计算模块320和检测模块310相连。
检测模块310接收来自自电容触摸屏的帧数据,检测当前帧数据中的自电容触摸屏的横向通道以及纵向通道的电容变化量。将从自电容触摸屏上检测到的电容值的模拟信号通过模拟-数字转换模块(ADC)转换为数字信号,并将上述表示电容值的数据存放在数组raw_data[MAX]中。通过数组raw_data[MAX]中的数据数组raw_data[i]可以计算出自电容触摸屏每一个通道的电容变化量,包括横向通道以及纵向通道的电容变化量。检测模块310将上述计算得到的横向通的及纵向通道的电容变化量存放在数组differ_data[MAX]中,其中,MAX为自电容触摸屏的通的总数。
检测模块310对自电容触摸屏的横向上的所有通道和纵向上的所有通道进行电容变化量进行判断。具体而言,当一个通道的电容变化量大于第一阈值时,则判断该通道被触摸。当横向上有至少一个通道被触摸且纵向上也有至少一个通道被触摸时,则判断有物体触摸电容触摸屏。换言之,当有至少一个横向通道的电容变化量大于第一阈值时,且有至少一个纵向通道的电容变化量大于第一阈值,则检测模块310判断有物体触摸电容触摸屏。
在本发明的一个实施例中,具体地,检测模块310计算电容变化量大于第一阈值的横向通道数量以及满足该条件的通道中的横向起始通道Xstart和横向结束通道Xstop,计算电容变化量大于第一阈值的纵向通道数量以及满足该条件的通道中的纵向起始通道Ystart和纵向结束通道Ystop。
如果横向和纵向中的至少一个方向的通道没有判断有触摸,则检测模块310判断没有物体触摸该自电容触摸屏。当检测模块310判断没有物体触摸自电容触摸屏时,接收下一帧数据。
当有物体触摸自电容触摸屏时,会引起相邻的多个通道的电容值的变化。触摸物体计算模块320通过检测同一方向(横向或纵向)上有电容变化的通道是否连续来判断触摸自电容触摸屏的数量为一个、两个或两个以上。
当同一个方向(横向或纵向)上,当电容变化量大于第一阈值的多个通道是连续排列的,且形成为一个完整的闭环区域时,则触摸物体计算模块320可以判断触摸自电容触摸屏的物体的数量为一个。
当同一个方向(横向或纵向)上,电容变化量大于第一阈值的多个通道不是连续排列,换言之,多个通道中至少两个通道之间有断点,且形成了多个完整的闭环区域时,则触摸物体计算模块320可以判断触摸自电容触摸屏的物体的数量为两个或两个以上。
在本发明的一个实施例中,当电容变化量大于第一阈值的多个通道间的断点数量为m个时,则触摸自电容触摸屏的物体的数量为m+1个。更为具体地,如果断点数为1,即在这些通道之间仅出现了一个断点,那么则认为触摸的物体为2个。
当断点的数量大于一个时,则触摸物体计算模块320可以判断触摸自电容触摸屏的物体的数量为两个以上,此时由检测模块310继续接收下一帧数据。
当断点的数量为一个时,则触摸物体计算模块320可以判断触摸自电容触摸屏的物体的数量为两个。
当相邻通道间没有断点,即被触摸的通道为连续排列时,触摸物体计算模块320判断触摸自电容触摸屏的物体的数量为一个。在本发明的优选实施例中,在计算该物体的坐标之前,还需要对该单点触摸进行误判检测。当两个距离很近的物体触摸自电容触摸屏时,也会导致有触摸的通道连续排列,从而会产生误判。因此,需要进一步检测是否将两个物体误判为一个物体。
在本发明的一个实施例中,触摸物体计算模块320根据有触摸的通道的电容变化量来进行误判检测。具体而言,当电容变化量满足以下两个条件时,则触摸物体计算模块320判断触摸自电容触摸屏的物体的数量为两个,否则判断物体的数量为一个。
(1)在同一方向(横向或纵向)上,电容变化量大于第一阈值的连续排列的通道的数量大于三个,即有触摸的通道的数量大于三个;
(2)在电容变化量大于第一阈值的连续排列的多个通道中,位于两侧的通道的电容变化量大于位于中间的通道的电容变化量。
当有物体触摸自电容触摸屏时,被触摸通道的自电容会变大,从而形成一个波峰状曲线。如果有两个邻近的物体触摸自电容触摸屏,则会形成两个相邻的波峰,在波峰中间的波谷位置即为两个物体间隔的位置。由此可知,对于有触摸的多个通道,位于两侧的通道(有触摸的通道)的电容变化量大于位于中间的通道(两个物体之间的未被触摸的通道)的电容变化量。
坐标计算模块330根据有触摸的通道的电容变化量对触摸自电容触摸屏的物体的坐标进行计算。
坐标计算模块330计算物体在自电容触摸屏上的触摸坐标(newx1[n],newy1[n])为:
其中,newx1[n]为物体的横坐标;newy1[n]为物体的纵坐标;Xstart为在横向通道上,电容变化量大于第一阈值的起始通道;Ystart为在纵向通道上,电容变化量大于第一阈值的起始通道;Xstop为在横向通道上,电容变化量大于第一阈值的结束通道;Ystop为在纵向通道上,电容变化量大于第一阈值的结束通道;i为当前通道;differdata[i]为当前通道i的电容变化量;n为当前帧的序号,即该坐标为第n帧中数据对应的物体在自电容触摸屏上的坐标。
当物体的数量为两个时,所述物体包括第一物体和第二物体,且是第一物体先于所述第二物体触摸电容触摸屏。
坐标计算模块330计算两个物体中每一个物体的坐标与计算单个物体触摸的方法一致。类似的,可以得到第一物体的横坐标newx11[n]和纵坐标newy11[n],
第二物体的横纵坐标newx12[n]和纵坐标newy12[n]为:
在本发明的实施例中,为了消除两点触摸时,真实点和鬼影之间的变换,坐标计算模块330需要对计算得到的两个物体的坐标进行匹配运算。
首先,坐标计算模块330获得前一帧中检测到的两个物体触摸自电容触摸屏时,最先触摸的第三物体的横坐标oldx1和纵坐标oldy1。
然后,坐标计算模块330分别计算第一物体的横坐标newx11[n]和第二物体的横坐标newx12[n]与第三物体的横坐标oldx1之间的距离。当第二物体的横坐标newx12[n]与第三物体的横坐标oldx1之间的距离大于第一物体的横坐标newx11[n]与第三物体的横坐标oldx1之间的距离时,则将newx11[n]和newx12[n]交换。否则,保持第一物体的横坐标newx11[n]和第二物体的横坐标newx12[n]不变,不做任何处理。
坐标计算模块330分别计算第一物体的纵坐标newy11[n]和第二物体的纵坐标newy12[n]与第三物体的纵坐标oldy1之间的距离,当第二物体的纵坐标newy12[n]与第三物体的纵坐标oldy1之间的距离大于第一物体的纵坐标newy11[n]与第三物体的纵坐标oldy1之间的距离时,则将newy11[n]和所newy12[n]交换。否则,保持第一物体的纵坐标和第二物体的纵坐标不变,不做任何处理。
由此,通过将当前帧中的坐标与前一帧中先到物体的坐标进行匹配,可以获得两个物体的真实坐标,避免将鬼点坐标误判为真实坐标,提高了坐标定位的精度。可以理解的是,也可以将当前帧中的坐标与前一帧中后到物体的坐标进行匹配已得到两个物体的真实坐标。
在本发明的一个实施例中,用于自电容触摸屏的定位装置300还包括圆滑处理模块340,圆滑处理模块340与坐标计算模块330相连,用于对坐标计算模块330得到的坐标进行圆滑处理。其中,对坐标进行圆滑处理采用可以采用平均的方式。具体而言,圆滑处理后的物体的横坐标为:
圆滑处理后的物体的纵坐标为:
其中,n为当前帧的序号,xnew[i]表示第i帧的物体的横坐标,newpositionx[n]为第i帧的物体圆滑处理后的横坐标;ynew[i]表示第i帧的纵坐标,newpositiony[n]为第i帧圆滑处理后的纵坐标。
通过采用上述圆滑处理的方式,触摸物体在自电容触摸屏上的坐标曲线为一条光滑的直线。
将圆滑处理模块340圆滑处理后的坐标发送到其他处理过程,例如:需要通过坐标定位实现功能的动作。然后由检测模块310继续接收下一帧数据。
根据本发明实施例的用于自电容触摸屏的定位装置,具有以下三个优点:
(1)将两点触摸中的两个触摸物体的坐标进行匹配运算以得到稳定且准确的坐标,避免坐标点在真实点和鬼影之间的变化,从而提高了计算坐标的精度。
(2)对坐标进行圆滑处理,从而使得坐标曲线趋于光滑的直线,避免了线条不直,和弯曲的现象。
(3)通过检测有触摸的通道电容变化量的关系,避免了将临近的两个物体误判为一个。
本发明的实施例还提出了一种触控系统,包括自电容触摸屏和定位装置,其中定位装置为本发明上述实施例提供的用于自电容触摸屏的定位装置。该定位装置可以根据接收到的所述自电容触摸屏的横向通道以及纵向通道的电容变化量计算触摸所述触摸屏的物体的坐标。
在本发明的一个实施例中,触摸屏为自电容触摸屏,可以用于多种处理设备上。例如:手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、键盘等。
根据本发明实施例的触控系统可以将两点触摸中的两个触摸物体的坐标进行匹配运算以得到稳定且准确的坐标,避免坐标点在真实点和鬼影之间的变化,从而提高了计算坐标的精度。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。