如何测量平移触控延迟

本主题提供详细设置说明和过程,用于根据适用于 Windows 8.1 的硬件认证来测量平移触控延迟。 本主题假定读者熟悉触摸屏,了解触摸屏延迟的概念,并对电气和软件工程有基本的了解。

概述

延迟是触控数字化器系统中所经历的时间延迟的衡量标准。 触摸延迟 是指手指或触笔 (执行器) 触摸屏幕与主机操作系统通常通过 HID 报告) 接收接触 (之间的时间。 平移延迟 稍微复杂一些,因为触点沿连续路径移动,但报告以离散的时间间隔到达。 因此,平移延迟仅根据可使用报告的触摸数据的离散时间间隔进行定义。 于是测量平移延迟会减少到知道触摸实际发生的时间与操作系统收到触摸事件的时间之间的时间延迟。

方法

本主题介绍使用步进电机和光电断路器测量触摸硬件设备的平移延迟的设置和过程。 步进电机驱动机械臂,以驱动模拟人类手指的执行器。 执行器在测试的设备上绘制一个圆圈,光电断路器电路会检测执行器处于特定控制点的时间。 此信息使用微控制器发送到主计算机,测试应用程序根据设备报告触摸事件的时间和执行器实际进行触摸的时间来计算延迟。 下图显示了总体概念。

测量平移延迟

硬件要求

此部分介绍测量平移延迟所需的硬件组件。

步进电机和光电断路器

测量工具由一个步进电机、一个光电断路器、一个旋转臂和一个执行器以及一个控制盒组成,如下图背景所示。

测量工具

控制盒有三个控制开关和电源开关。

  • 电机:用于打开和关闭步进电机臂。

  • 校准:不用于平移延迟 - 将它关闭。 (仅用于向下触摸延迟。)

  • 模式:在“Tach”(指用于平移延迟测量的光电断路器)与“Mic”(用于向下触摸延迟测量的麦克风)之间进行切换。

ra 接口

对于平移延迟测量,初始设置应如下所示:

开关名称 状态

强力

运动

校准

模型

Tach

将 USB 插入计算机后,为控制盒接通电源。 在为控制盒接通电源后插入 USB 可能会导致微控制器的状态不可预测。

步进电机设置

步进电机可以编程为以各种方式运行。 默认情况下,步进电机会编程为在自动校准模式下运行。 (本文档后面的“自动校准模式”部分对此模式进行了更详细的介绍。) 自动校准模式旨在通过手动校准将校准错误和延迟变化降至最低。

在采集和收集阶段,电机以每秒 0.75 转的恒定速度运行。 用于采集和收集阶段的步进电机设置如下所示:

  • AC(加速)= 0.167

  • DE(减速)= 0.167

  • VE(速度)= 0.75

通过使用这些设置,步进电机会每 1.33 秒旋转一次。

臂长

角速度因臂的半径而异。 例如,如果圆的半径大约为 5 cm,则速度大约为每秒 25 cm。 若要标准化测试过程,臂长的半径应为 5 cm,以达到每秒 25 cm 的速度。 允许 ±1 的容错:即每秒 24 到 26 cm。

对于最多 10'' 对角显示器大小的较小平板电脑,建议半径为 3 cm,而不是 5 cm。

臂定位

理想情况下,应通过在屏幕的不同部分中多次运行测试来覆盖屏幕中尽可能多的区域。 数字化器的任何部分的延迟应等于或低于目标延迟 (15 ms)。

  1. 使用键盘测试设备:如果使用平板电脑设备,则需要外部键盘来完成测试过程。

  2. 将测试设备放置在防滑表面上:采用在测试期间不会移动的方式来放置测试设备。 对于小型设备,一个简单的解决方案是将设备放在防滑垫上,如下图所示。 另一种方式是使用支架将设备牢牢固定到位。

  3. 对测试设备进行调平:执行器旨在最大程度地降低调平的影响,因此调平不必完美。 但是,应确保执行器表面(直径大约 9 mm)均匀接触设备,而不是长期在一个边缘。

  4. 关闭测试设备中任何不必要的进程:由于正在测量系统性能,因此请关闭测试设备中任何不必要的进程。

臂定位

软件要求

徽标控制器和客户端应安装和配置所需软件。 如果它独立运行,请将 stepmotor.exe、wlklogannotation.dll 和 WTTLog.dll 复制到本地文件夹。

适用于 Triex RA 工具的测试过程

测试过程由三个步骤组成:校准、采集和收集。 但是在开始测试之前,必须对设备调平。 调平点用于将它与电机绕圆旋转的水平面对齐。 如果未正确进行调平,则执行器不会与数字化器进行良好接触,步进电机绘制的圆圈会变得不规则,并且最终会极大影响延迟数字。 包含验证方法以在设备未正确调平或对齐时使测试失败。

校准

启动 stepmotor.exe 时,会看到一个空白屏幕。 按空格键可开始校准。 校准的目的是在光电断路器发出信号后,在可容忍的误差估算内找到报告的触摸位置。 由于校准结果可能会极大影响延迟数字,因此仔细校准十分重要。

安装

  1. 将微控制器连接到计算机。

  2. 开启控制盒的电源开关。

    开关名称 状态

    强力

    运动

    校准

    模型

    Tach

  3. 确保关闭电机开关。

  4. 确保光电断路器未发出信号(光电断路器指示灯熄灭)。 圆盘槽的位置应超过光电断路器信号光束大约 2-3 mm。

    这样定位有两个原因。 首先,打开电机时,电机臂会略微抖动。 出现这种情况时,你不希望它跨越光束,因而使光电断路器发出信号。 其次,运行自动校准脚本时,这是循环开始的位置,你希望确保在循环结束时(校准开始时)正确对齐,以处于光电断路器下方。 如果进行手动校准,这仍是很好的开始位置,因此无需更改任何内容。

    校准槽

  5. 进入校准阶段之前,请勿移动或降低臂。

  6. 运行 stepmotor.exe。 如果通过 Windows HLK 控制器运行程序,请选择计算机和平移延迟测试以启动测试。

  7. 下面文本消息会出现:

    按空格键启动校准过程。

  8. 按空格键。 “CALIBRATION”一词随即出现在屏幕上。

  9. 将执行器降低到屏幕表面。

测试步骤(自动)

  1. 打开电机。 步进电机会在校准模式下运行九次。

  2. 在校准模式结束时,它会停止五秒。 按照本主题的“采集”部分中的说明进行操作

测试步骤(手动)

  1. 按照与电机打开时的移动方向相同的方向,缓慢地转动臂。

  2. 当针(或孔)穿过光电断路器时,将速度降低到几乎完全停止的程度。 (请注意,最大速度不应超过采集/收集速度的 1%;也就是说,如果采集/收集速度为 25 cm/s,则槽通过光电断路器时的校准速度应小于 0.25 cm/s。)

  3. 小心地转动臂以通过光电断路器。

  4. 重复步骤 1 到 2 至少 6 次。

    当信号中断时,应会看到光电断路器闪烁,测试窗口会报告执行器进行接触的确切屏幕位置。 下面是示例结果:

    Touch Pointer Update count=0, x=508,y=110
    Touch Pointer Update count=1, x=512,y=113
    

预期结果

如果成功执行了校准,则不会看到任何错误消息。

采集

在采集步骤过程中,会计算步进电机的速度和圆圈的形状。

安装

确保将槽置于尽可能远离光电断路器的位置。

测试步骤

  1. 同时按空格键并打开电机开关。 屏幕上的文本应更改为“ACQUISITION”。

  2. 让设备运行大约十个循环。

  3. 再次按空格键以进入收集模式。

预期结果

屏幕会显示收集模式处于活动状态,并显示采集数据。 它会显示为每个循环计算的时间和速度的列表。 如果步进电机抖动并显示不良结果,则可能会跳过前几个循环。 示例文本如下所示:

[4]: t: 1.333 [s] v: 25.456 [cm/s]

这可告诉你:

[loop number]: t:<loop time in seconds> [s] v:<velocity> [cm/s]

收集

数据收集表示测试的最后一步。

安装

确保“COLLECTION”一词出现在屏幕顶部。 如果在按下空格键后仍保留“CALIBRATION”一词,则发生错误。 需要再次运行测试。

测试步骤

  1. 让电机运行大约十个循环。

  2. 按空格键完成测试。

  3. 关闭电机开关。

预期结果

你会看到通过或失败结果。

收集结果

适用于 ITRI RA 工具的测试过程

在 ITRI RA 工具上运行触控平移延迟工具的过程与使用 Triex RA 工具运行测试的过程略有不同。 测试本身保持不变,并包含一组相同的校准、采集和收集步骤。 使用 ITRI 运行测试的步骤如下所示:

  1. RA 机箱

    itri ra 工具

    请注意,对于 ITRI RA 工具,校准开关有三个位置:开、关和原位(即中心位置)。

  2. 首先,开关应如下所示:

    开关名称 状态

    强力

    运动

    校准

    关闭(向下)

    模型

    平移

  3. 将开关切换到以下各项,让电机将臂旋转 45 度,从而使系统归零。 完成后,关闭电机。

    开关名称 状态

    强力

    运动

    校准

    原位(中心)

    模型

    平移(向上)

  4. 将测试手指向下放置在设备上,然后按空格键进入校准阶段。 开关现在如下所示:

    开关名称 状态

    强力

    运动

    校准

    打开(向上)

    模型

    平移(向上)

  5. 允许测试运行计数超过 17,然后关闭电机,并将校准开关转动到关闭(最低位置):

    开关名称 状态

    强力

    运动

    校准

    关闭(向下)

    模型

    平移(向上)

  6. 按空格键,然后重新打开电机以进行采集阶段。

  7. 在屏幕显示的计数值超过 1999 后,按空格键。 测试显示会显示电机循环时间和速度。 在收集阶段中等待收集大约十个循环的接触信息,然后按空格键。 此时,系统已完成。 再次按空格键并关闭电机。

分析和报告

分析

如果校准或采集中出现任何失败,则测试会失败,你可以在报告中查看失败的详细信息。 你会看到错误,如下所示:

Warning multiple touch devices present.
Calibration failed: x11err=3.71 y11err=1.14 x22err=9.14 y22err=1.71
Acquisition failed: Circles are showing variations in pixel= 9.70
[135] 581 451 739 602 [199556137598] > 18 48

报告

通过 Windows HLK 报告通过或失败。 如果要手动运行测试,则可以在 WTT 中或记事本中打开 TabletDigitizerOPK.wtl 文件。 平均平移延迟会记录到末尾。 目标延迟等于或小于 15 毫秒。

自动校准模式

自动校准模式是 RA 工具的默认模式。 运行脚本时,请首先确保在 Q Programmer 设置中,步进电机设置为每转 20000 步。 此配置可以使用 ST 配置器工具进行设置。 依次转到“运动和 I/O”和“脉冲和方向控制”。

st 配置器 (1)

st 配置器 (2)

请确保“步/转”设置显示 20000。

st 配置器 (3)

右侧的设置还应显示当前为步进电机设置的“步/转”。

st 配置器 (4)

如果设置正确,则自动化脚本会按先后顺序在三种模式下运行:

  1. 校准模式:首次打开电机时,这是它会运行的第一种模式。 在校准模式期间,步进电机以每秒 0.75 转的速度(大约每循环 1.33 秒),从开始位置运行 339 度。 它随后会停止 0.5 秒,再以每秒 0.0042 转的速度(步进电机的最低可能速度)运行 21 度。 尽管步进电机以非常低的速度运行,但当光电断路器光束中断时,测试程序 (stepmotor.exe) 会关联来自报告的触摸触点的位置和时间戳。

    下面的示例是圆圈外观的屏幕截图。 箭头指向的弧线部分是步进电机以较慢速度运行的位置,以及光电断路器应发出信号的位置。 操作员必须正确对齐圆盘的开始位置:也就是说,圆盘上的槽应超过光电断路器大约 2-3 mm。

    校准模式圆圈

    作为参考,下面介绍了如何设计此校准弧线:

    Q-Programmer 中的 VE 参数 0.0042

    平均校准信号弧线长度

    1.85 cm(基于 31.26 cm 圆周)

    平均校准信号角度

    0.37 弧度(21.20 度)

    平均校准信号时间

    12.50 秒(在更改速度时包含 0.5 秒的等待时间)

    平均校准信号速度

  2. 等待五秒:校准九个循环后,电机会停止五秒。 在此期间,操作员必须按空格键才能进入采集模式。

  3. 采集/收集模式:等待五秒后,电机会以每秒 0.75 转的速度(每循环 1.33 秒)无限运行。

故障排除

校准

校准期间,测试程序在光电断路器发出信号时无法计算触摸事件的确切位置。 因此,不要因为旋转臂太快而引入延迟,这十分重要。 如果出现错误,你会在屏幕上看到错误消息。 例如:

Calibration failed: x11err=3.71 y11err=1.14 x22err=9.14 y22err=1.71.

停止并调查原因,然后重新开始测试。 出现失败有几个常见原因。 它们出现的原因是测试程序无法很好地计算触摸点。 此问题的原因包括:

  • 当光电断路器发出信息时,移动手指(执行器)的速度太快。

  • 设备已移动。

解决这些问题,然后重试,直到获取良好的校准。 其他需要记住的方面包括:

  • 切勿按相反方向转动臂。

  • 通过光电断路器时,请非常小心地移动臂,以最大程度地减少可能引入的误差和延迟。

  • 当光电断路器中断时,始终应有两个信号。 当光穿过边缘末尾处的槽时,会出现第一个信号。 当光在穿过开口槽后被阻挡时,会出现第二个信号。 索引计数从零开始。 发生两个事件后,计数应为奇数。 如果在刚开始校准,甚至未转动臂时看到以下消息,则可能是围绕光电断路器至少转动了一次臂(因而转动了圆盘),从而使它发出信号。 这会自动导致校准失败。 立即停止测试,然后重新开始。

    Touch Pointer Update count=0, x=0, y=0
    

采集

如果采集失败,则你会看到类似于以下消息的错误消息:

ERROR: Acquisition failed: Loop times not consistent > 6.3
ERROR: Acquisition failed: Circles are showing too many variations in pixels Rcm_error=0.5 xPixelErr=20 yPixelErr=20

第一种类型的错误是在循环时间的平均差异超过五毫秒时生成的。 第二种类型的错误是在未将圆圈绘制为完美圆圈,从而导致大于五个像素的像素变化时生成的。 此行为的常见原因包括以下这些:

  • 设备未正确进行调平或校准。

  • 设备已移动。

  • 步进电机速度不一致。 (这不是一种可能的解释,因为它是一种广泛使用的成熟设备;尽管如此,电机可能会在特定设备上出现缺陷。)

收集

如果通过了校准和采集步骤,则应该是在收集过程中出现了一些问题。 大多数错误是由外部因素引起的,例如移动设备、其他某些进程中断了测试程序或设备本身发生故障。 操作员可能会遇到以下三个常见问题:

问题 1:电磁场干扰

错误可能是由步进电机生成的电磁力效应造成的。 根据设备,这可以通过多种方式表现出来:例如生成虚假触摸点。 该问题的解决方案是提供良好接地。

问题 2:其他进程中断测试程序

当其他进程中断测试进程时,通常会对延迟数字产生负面影响,从而损坏测试结果。

可以通过比较光电断路器信号间隔来诊断此问题。 查看 csignal.txt 文件,其中包含来自光电断路器的时间戳。 第二列显示系统时间戳,第三列显示微控制器的时间戳。 例如:

[ 0:       0] 431506434557 538485264317
[ 1:      10] 431506447610 538485343495
[ 2:    1333] 431508166028 538495929302
[ 3:    1343] 431508178968 538496008565
[ 4:    1797] 431508769804 538499651185
[ 5:    1803] 431508776386 538499652266
[ 6:    2665] 431509897168 538506594116
[ 7:    2675] 431509910127 538506673294
[ 8:    3998] 431511628522 538517258922
[ 9:    4008] 431511641481 538517338232
[10:    5331] 431513359910 538527923775
[11:    5342] 431513372973 538528003038
sfirst =  0

文件的最后一个条目显示第一个有效信号序列的索引。 “有效信号序列”是指系统稳定时的信号序列开头。 在采集与收集之间,测试程序会将采集结果写入日志文件,根据系统性能,可能需要一些时间才能变得稳定。 在以上示例中,第一个信号有效,因此可以开始比较时间戳间隔。

可以通过记录两个偶数编号时间戳之间的差异来计算时间戳间隔;例如,0、2、4、6 等。如下表所示,信号 4 和 6 与其他信号间隔非常不同。 因此,我们知道其他进程在此期间中断了测试。 在正常情况下,应会看到差异小于 1%。

索引 时间戳 时间间隔

0

431506434557

2

431492585219

1731471

4

431494316516

603776

6

431496047748

1127364

8

431497779297

1731354

10

431499509508

1731388

12

431501240620

1731288

问题 3:采样率更改

如果设备更改其采样率,则延迟结果会出现显著差异。 可以通过比较采集和收集采样率来诊断此问题。

可以使用外部工具测量设备在打开电机之前和之后的采样率。 另一种方法是分析由 stepmotor.exe 生成的日志。

  1. 打开 Acquisition.txt。

  2. 获取第一行和最后一行的时间戳(最后一列):

    581   660   709   602   199501901480
    581   805   512   602   199554132317
    
  3. 计算采集的采样率,如下所示:

    (Last timestamp - first timestamp) /number of samples (rows)
    
  4. 打开 Collection.txt。

  5. 获取第一行和最后一行的时间戳(最后一列):

    581   822   423   602 [199554407006]
    581   288   164   602 [199594255626]
    
  6. 计算收集采样率,如下所示:

    (Last timestamp - first timestamp) /number of samples (rows)
    

如果看到两者之间的差异超过 2%,则收集数据不可靠,应调查原因。

其他支持

如果需要额外支持,请联系以下认证的 jig 供应商之一:

  • Triex Technologies, Inc.

    +1 (206) 940-0943

  • Industrial Technology Research Institute

    +886 (03) 5743887