Come misurare la latenza di panoramica tocco
In questo argomento vengono fornite istruzioni e procedure dettagliate per misurare la latenza di panoramica del tocco in base alla certificazione hardware per Windows 8.1. Presuppone che il lettore abbia familiarità con i touch screen, comprenda il concetto di latenza del touch screen e abbia una conoscenza di base dell'ingegneria elettrica e software.
Panoramica
La latenza è una misura del ritardo di tempo riscontrato nel sistema di digitalizzatore tocco. La latenza touch down è il tempo tra il dito o lo stilo (attuatore) toccando lo schermo e il sistema operativo host che riceve il contatto (in genere tramite un report HID). La latenza di panoramica è leggermente più complessa perché il contatto si sposta lungo un percorso continuo, ma i report arrivano in intervalli di tempo discreti. Di conseguenza, la latenza di panoramica viene definita solo in termini di intervalli di tempo discreti per i quali sono disponibili i dati di tocco segnalati. La misurazione della latenza di panoramica viene quindi ridotta a conoscere il ritardo di tempo tra il momento in cui si verifica effettivamente il tocco e quando il sistema operativo riceve l'evento di tocco.
Metodologia
In questo argomento vengono descritte le procedure e la configurazione per misurare la latenza di panoramica di un dispositivo hardware touch usando un motore passo e un foto-interrupter. Il motore passo guida un braccio meccanico per guidare un attuatore che simula un dito umano. L'attuatore disegna un cerchio sul dispositivo testato e il circuito foto-interrupter rileva quando l'attuatore si trova in un determinato punto di controllo. Queste informazioni vengono inviate al computer host usando un microcontroller e l'applicazione di test calcola la latenza in base al momento in cui il dispositivo segnala un evento di tocco e quando l'attuatore effettua effettivamente il contatto. Il diagramma seguente illustra il concetto complessivo.
Requisiti hardware
Questa sezione descrive i componenti hardware necessari per misurare la latenza di panoramica.
Motore passo e foto-interrupter
Lo strumento di misurazione è costituito da un motore passo, un foto-interrupter, un braccio rotante e un attuatore, e una scatola di controllo, che è visibile sullo sfondo della figura seguente.
La casella di controllo ha tre interruttori di controllo e un interruttore di alimentazione.
Motore: per accendere e spegnere il braccio motore passo.
Calibra: non usata per la latenza di panoramica: disattivarla. (Usato solo per il tocco della latenza.
Modalità: passare da Tach (fa riferimento al foto-interrupter usato per la misurazione della latenza di panoramica) e dal microfono (microfono usato per la misurazione della latenza di tocco).
Per la misurazione della latenza di panoramica, le impostazioni iniziali devono essere le seguenti:
Cambia nome | Provincia |
---|---|
Power |
Disattivato |
Motore |
Disattivato |
Calibrare |
Disattivato |
Modalità |
Tach |
Accendere la casella di controllo dopo aver collegato l'USB al computer. L'alimentazione tramite USB dopo l'alimentazione nella casella di controllo può comportare uno stato imprevedibile del microcontroller.
Impostazioni motore passo per passo
Il motore stepper può essere programmato per funzionare in diversi modi. Per impostazione predefinita, il motore stepper viene programmato per l'esecuzione in modalità di calibrazione automatica. Questa modalità è illustrata in modo più dettagliato nella sezione "Modalità di calibrazione automatica" più avanti nel documento. La modalità di calibrazione automatica è progettata per ridurre al minimo gli errori di calibrazione e le variazioni di latenza tramite calibrazione manuale.
Durante le fasi di acquisizione e raccolta, il motore funziona a una velocità costante di 0,75 rivoluzioni al secondo. Le impostazioni del motore stepper usate per le fasi di acquisizione e raccolta sono le seguenti:
AC (accelerazione) = 0,167
DE (decelerazione) = 0,167
VE (velocità) = 0,75
Utilizzando queste impostazioni, il motore passo cerchi una volta ogni 1,33 secondi.
Lunghezza braccio
La velocità angolare varia, a seconda del raggio del braccio. Ad esempio, se il raggio del cerchio è di circa 5 cm, la velocità è di circa 25 cm al secondo. Per standardizzare la procedura di test, la lunghezza del braccio deve avere un raggio di 5 cm per raggiungere la velocità di 25 cm al secondo. È consentita una tolleranza di ±1, ovvero da 24 a 26 cm al secondo.
Nel caso di tablet più piccolo che è fino a 10'' dimensioni di visualizzazione diagonale, il raggio consigliato è 3 cm invece di 5 cm.
Posizionamento braccio
Idealmente, dovresti coprire il maggior numero possibile di aree dello schermo eseguendo il test più volte in diverse parti dello schermo. La latenza in qualsiasi parte del digitalizzatore dovrebbe essere uguale o inferiore alla latenza di destinazione (15 ms).
Testare il dispositivo con una tastiera: se si usa un dispositivo tablet, sarà necessaria una tastiera esterna per completare le procedure di test.
Posizionare il dispositivo di test su una superficie non scivolata: posizionare il dispositivo di test in modo che non si sposti durante i test. Per un dispositivo di piccole dimensioni, una soluzione semplice consiste nel posizionarlo sopra un riquadro non scivolato, come illustrato nella figura seguente. Un altro modo consiste nell'avere una parentesi graffa per tenere il dispositivo saldamente sul posto.
Livellare il dispositivo di prova: l'attuatore è progettato per ridurre al minimo l'effetto del livellamento in modo che il livellamento non deve essere perfetto. Tuttavia, è necessario assicurarsi che la superficie dell'attuatore (~9 mm di diametro) tocchi il dispositivo in modo uniforme e non in piedi su un bordo.
Chiudere eventuali processi non necessari dal dispositivo di test: poiché si misurano le prestazioni del sistema, chiudere eventuali processi non necessari dal dispositivo di test.
Requisiti software
Il software necessario deve essere installato e configurato dal controller logo e dal client. Se è in esecuzione come autonomo, copiare stepmotor.exe, wlklogannotation.dll e WTTLog.dll in una cartella locale.
Procedura di test per lo strumento Triex RA
La procedura di test è costituita da tre passaggi: calibrazione, acquisizione e raccolta. Prima di iniziare il test, tuttavia, è necessario livellare il dispositivo. Il punto di livellamento è allinearlo al livello del motore che ruota in cerchi. Se non è livellato correttamente, l'attuatore non farà buoni contatti con il digitalizzatore e i cerchi disegnati dal motore passo diventerà irregolare e influirà notevolmente sui numeri di latenza alla fine. I metodi di verifica sono inclusi per non riuscire il test se il dispositivo non è allineato o livellato correttamente.
Calibrazione
Quando si avvia stepmotor.exe, verrà visualizzata una schermata vuota. Premere il tasto spazio per avviare la calibrazione. Lo scopo della calibrazione è individuare la posizione segnalata di un tocco all'interno di una stima di errore tollerabile quando viene segnalato l'interrupter foto. Poiché i risultati della calibrazione possono influire notevolmente sui numeri di latenza, è importante calibrare attentamente.
Impostazioni
Connessione il microcontroller al computer.
Attivare l'interruttore di alimentazione della casella di controllo.
Cambia nome Provincia Power
Attivato
Motore
Disattivato
Calibrare
Disattivato
Modalità
Tach
Assicurarsi che l'interruttore motore sia spento.
Assicurarsi che il foto-interrupter non segnali (la luce del foto-interrupter è spenta). Lo slot del disco deve essere posizionato circa 2-3 mm oltre il fascio di segnale foto-interrupter.
Ci sono due motivi per il posizionamento. Prima di tutto, quando si accende il motore, il braccio motore si instabilità leggermente. Quando lo fa, non si vuole attraversare il fascio e quindi fare il segnale foto-interrupter. In secondo luogo, quando si esegue uno script di calibrazione automatizzata, questa è la posizione in cui inizia il ciclo e si vuole assicurarsi che la fine del ciclo (all'inizio della calibrazione) sia allineata correttamente sotto l'interrupter foto. Se si sta calibrando manualmente, questa è ancora una buona posizione per iniziare in questo modo, non è necessario modificare nulla.
Non spostare o abbassare il braccio fino a quando non si entra nella fase di calibrazione.
Eseguire stepmotor.exe. Se si esegue il programma tramite il controller Windows HLK, selezionare il computer e il test di latenza di panoramica per avviare il test.
Viene visualizzato il messaggio di testo seguente:
Premere la barra spaziatrice per avviare il processo di calibrazione.
Premere la barra spaziatrice. La parola CALIBRAZIONE viene visualizzata sullo schermo.
Abbassare l'attuatore sulla superficie dello schermo.
Passaggi di test (automatizzati)
Accendere il motore. Il motore stepper verrà eseguito in modalità di calibrazione nove volte.
Alla fine della modalità di calibrazione, si arresterà per cinque secondi. Seguire le istruzioni nella sezione Acquisizione di questo argomento.
Passaggi di test (manuale)
Ruota lentamente il braccio nella stessa direzione di quella in cui il motore si muoverà quando è acceso.
Diminuire la velocità quasi al punto di un arresto completo quando l'ago (o il foro) passa attraverso il foto-interrupter. Si noti che la velocità massima non deve superare il 1% della velocità di acquisizione/raccolta, ovvero se la velocità di acquisizione/raccolta è di 25 cm/s, la velocità di calibrazione quando lo slot passa attraverso l'interrupter foto deve essere inferiore a 0,25 cm/s.
Ruota attentamente il braccio per passare attraverso l'interrupter foto.
Ripetere i passaggi da 1 a 2 almeno sei volte.
Quando il segnale viene interrotto, si dovrebbe vedere il foto-interrupter lampeggiante e la finestra di test segnalerà la posizione esatta dello schermo in cui l'attuatore sta facendo un contatto. Di seguito è riportato un risultato di esempio:
Touch Pointer Update count=0, x=508,y=110 Touch Pointer Update count=1, x=512,y=113
Risultati previsti
Se la calibrazione viene eseguita correttamente, non verranno visualizzati messaggi di errore.
Acquisizione
Durante il passaggio di acquisizione, la velocità del motore passo e la forma del cerchio vengono calcolate.
Impostazioni
Assicurarsi che lo slot sia posizionato il più lontano possibile dal foto-interrupter.
Passaggi di test
Premere la barra spaziatrice e accendere l'interruttore Motore contemporaneamente. Il testo sullo schermo deve essere modificato in ACQUISIZIONE.
Consentire l'esecuzione del dispositivo per circa dieci cicli.
Premere di nuovo la barra spaziatrice per passare alla modalità RACCOLTA.
Risultati previsti
La schermata visualizzerà che la modalità COLLECTION è attiva e mostrerà i dati di acquisizione. Mostra un elenco di tempi e velocità calcolati per ogni ciclo. I primi cicli potrebbero essere ignorati se il motore passo si instabilità e ha mostrato risultati scarsi. Di seguito è riportato un testo di esempio:
[4]: t: 1.333 [s] v: 25.456 [cm/s]
Questo indica quanto segue:
[loop number]: t:<loop time in seconds> [s] v:<velocity> [cm/s]
Collezione
La raccolta di dati rappresenta il passaggio finale per il test.
Impostazioni
Assicurarsi che la parola COLLECTION venga visualizzata nella parte superiore della schermata. Se la parola CALIBRAZIONE rimane dopo aver premuto la barra spaziatrice, si è verificato un errore. Sarà necessario eseguire di nuovo il test.
Passaggi di test
Lascia che il motore funzioni circa dieci cicli.
Premere la barra spaziatrice per completare il test.
Spegnere l'interruttore Motore.
Risultati previsti
Verranno visualizzati risultati superati o non superati.
Procedura di test per lo strumento ITRI RA
La procedura per l'esecuzione dello strumento Touch Panning Latency nello strumento ITRI RA è leggermente diversa dall'esecuzione del test con lo strumento Triex RA. Il test stesso rimane invariato e contiene lo stesso set di passaggi di calibrazione, acquisizione e raccolta. I passaggi per l'esecuzione del test con ITRI sono i seguenti:
Chassis RA
Si noti che nel caso dello strumento ITRI RA, l'interruttore di calibrazione ha tre posizioni: on, off e home, che è la posizione centrale.
Per iniziare, le opzioni devono essere le seguenti:
Cambia nome Provincia Power
Attivato
Motore
Disattivato
Calibrare
Disattivato (giù)
Modalità
Panoramica
Zero il sistema cambiando i commutatori al seguente e lasciando che il motore ruota il braccio di 45 gradi. Al termine, accendere il motore su OFF.
Cambia nome Provincia Power
Attivato
Motore
Disattivato
Calibrare
Home (centro)
Modalità
Panoramica (superiore)
Posizionare il dito di prova verso il basso sul dispositivo e premere la barra spaziatrice per immettere la fase di calibrazione. Le opzioni sono ora le seguenti:
Cambia nome Provincia Power
Attivato
Motore
Attivato
Calibrare
Attiva (superiore)
Modalità
Panoramica (superiore)
Consentire l'esecuzione del test oltre il conteggio di 17, quindi disattivare Motore e disattivare l'interruttore Calibrate (posizione più bassa):
Cambia nome Provincia Power
Attivato
Motore
Disattivato
Calibrare
Disattivato (inferiore)
Modalità
Panoramica (superiore)
Premere la barra spaziatrice e riattivare il motore per la fase acquisizione.
Dopo che la schermata mostra un valore di conteggio superiore al 1999, premere la barra spaziatrice. La visualizzazione del test mostrerà il tempo del cerchio motorio e la velocità. Attendere che le informazioni di contatto vengano raccolte nella fase raccolta per circa dieci cicli e quindi premere la barra spaziatrice. A questo punto, il sistema è terminato. Premere di nuovo la barra spaziatrice e spegnere il motore.
Analisi e report
Analisi
In caso di errori di calibrazione o acquisizione, il test avrà esito negativo ed è possibile visualizzare i dettagli relativi all'errore nel report. Verrà visualizzato un errore simile al seguente:
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
Report
Il passaggio o l'esito negativo viene segnalato tramite Windows HLK. Se si esegue manualmente il test, è possibile aprire il file TabletDigitizerOPK.wtl in WTT o in Blocco note. La latenza di panoramica media viene registrata verso la fine. La latenza di destinazione è uguale o inferiore a 15 millisecondi.
Modalità di calibrazione automatica
La modalità di calibrazione automatica è la modalità predefinita per lo strumento ra. Quando si esegue lo script, assicurarsi prima di tutto che il motore del passaggio sia impostato su 20000 passaggi per rivoluzione nelle impostazioni del programmatore Q. Questa configurazione può essere impostata usando lo strumento ST Configurator. Vai a Movimento e I/O e poi Pulse & Direction Control.
Assicurarsi che l'impostazione Passaggi/Rev mostri 20000.
Le impostazioni sul lato destro dovrebbero anche mostrare Passaggi/Rev attualmente impostati per il motore passo.
Se le impostazioni sono corrette, lo script di automazione verrà eseguito in tre modalità in ordine sequenziale:
Modalità di calibrazione: quando si accende per la prima volta il motore, questa è la prima modalità che verrà eseguita. Durante la modalità di calibrazione, il motore passo viene eseguito a una velocità di 0,75 giri al secondo (circa 1,33 secondi per ciclo) per 339 gradi dalla posizione iniziale. Quindi si ferma per 0,5 secondi prima di essere eseguito a una velocità di 0,0042 rivoluzioni al secondo (velocità più bassa possibile per motore stepper) per 21 gradi. Mentre il motore stepper è in esecuzione a una velocità molto bassa, il programma di test (stepmotor.exe) correla le posizioni e i timestamp dai contatti tocco segnalati quando il fascio di interrupter foto viene interrotto.
L'esempio seguente è una schermata di visualizzazione del cerchio. La parte dell'arco in cui la freccia punta a è la posizione in cui il motore passo-passo scorre in una velocità lenta e dove deve essere segnalato l'interrupter foto. È importante che l'operatore allinea correttamente la posizione iniziale del disco: ovvero, lo slot sul disco deve essere di circa 2-3 mm oltre l'interrupter foto.
Come riferimento, di seguito viene descritto come viene progettato l'arco di calibrazione:
Parametro VE in Q-Programmer 0.0042 Lunghezza media dell'arco del segnale di calibrazione
1,85 cm (in base alla circonferenza di 31,26 cm)
Angolo medio del segnale di calibrazione
0,37 radianti (21,20 gradi)
Tempo medio del segnale di calibrazione
12,50 secondi (inclusi 0,5 secondi di tempo di attesa durante la modifica della velocità)
Velocità media del segnale di calibrazione
Cinque secondi di attesa: dopo nove cicli di calibrazione, il motore si fermerà per cinque secondi. Durante questo periodo, l'operatore deve premere la barra spaziatrice per accedere alla modalità acquisizione.
Modalità acquisizione/raccolta: dopo cinque secondi di attesa, il motore verrà eseguito a una velocità di 0,75 rivoluzioni al secondo (1,33 secondi per ciclo) infinitamente.
Risoluzione dei problemi
Calibrazione
Durante la calibrazione, il programma di test non può calcolare la posizione esatta di un evento di tocco quando viene segnalato l'interrupter foto. È quindi importante non introdurre latenza ruotando il braccio troppo velocemente. Se si verifica un errore, verrà visualizzato un messaggio di errore sullo schermo. Ad esempio:
Calibration failed: x11err=3.71 y11err=1.14 x22err=9.14 y22err=1.71.
Arrestare e analizzare la causa prima di riavviare il test. Esistono alcuni motivi comuni per cui si verifica un errore. Si verificano perché il programma di test non può eseguire buoni calcoli del punto di tocco. I motivi di questo includono:
Hai spostato il dito (attuatore) troppo veloce quando l'interrupter foto ha segnalato.
Il dispositivo è stato spostato.
Risolvere questi problemi e riprovare fino a ottenere una buona calibrazione. Altri aspetti da tenere presente sono:
Non girare mai il braccio dall'altra parte.
Spostare il braccio con molta attenzione quando si passa attraverso l'interrupter foto, per ridurre al minimo l'errore e la latenza che si potrebbe introdurre.
Ci dovrebbero essere sempre due segnali quando il foto-interrupter viene interrotto. Il primo segnale si verifica quando la luce passa attraverso lo slot alla fine di un bordo. Il secondo segnale si verifica quando la luce viene bloccata dopo il passaggio attraverso lo slot aperto. Il conteggio degli indici è in base zero. Dopo che si sono verificati due eventi, il conteggio deve essere un numero dispari. Se viene visualizzato il messaggio seguente quando si è appena avviata la calibrazione e non ha nemmeno ruotato il braccio, probabilmente si è girato il braccio (quindi il disco) intorno al foto-interrupter almeno una volta, causando il segnale. Ciò causerà automaticamente l'esito negativo della calibrazione. Arrestare immediatamente il test e riavviarlo.
Touch Pointer Update count=0, x=0, y=0
Acquisizione
Se l'acquisizione non riesce, verrà visualizzato un messaggio di errore simile a uno dei seguenti:
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
Il primo tipo di errore viene generato quando la differenza media tra i tempi del ciclo è superiore a cinque millisecondi. Il secondo tipo di errore si verifica quando i cerchi non vengono disegnati come cerchi perfetti e pertanto comportano variazioni di pixel maggiori di cinque pixel. Le cause comuni di questo comportamento includono quanto segue:
Un dispositivo calibrato in modo non corretto o livellato in modo non corretto.
Il dispositivo è stato spostato.
La velocità del motore passo non è coerente. (Questa non è una spiegazione probabile perché è un dispositivo ben consolidato e ampiamente utilizzato; tuttavia è possibile che il motore sia difettoso nel dispositivo particolare.
Collezione
Durante la raccolta dovrebbero verificarsi alcuni problemi se vengono superati i passaggi di calibrazione e acquisizione. La maggior parte degli errori è dovuta a fattori esterni, ad esempio il dispositivo spostato, altri processi che interrompono il programma di test o il dispositivo stesso ha esito negativo. Gli operatori potrebbero riscontrare i tre problemi comuni seguenti:
Problema 1: Interferenza del campo elettromagnetico
Un errore può derivare dall'effetto della forza elettromagnetica generata dal motore stepper. A seconda del dispositivo, questo può essere manifesto in vari modi: ad esempio, punti di tocco fantasma generati. La soluzione al problema consiste nel fornire un buon terreno.
Problema 2: altri processi interrompono il programma di test
Quando un altro processo interrompe il processo di test, in genere danneggia il risultato del test influenzando negativamente i numeri di latenza.
È possibile diagnosticare questo problema confrontando gli intervalli di segnale dell'interrupter fotografico. Esaminare il file csignal.txt, che contiene i timestamp del photo-interrupter. La seconda colonna mostra i timestamp di sistema e la terza colonna mostra i timestamp del microcontroller. Ad esempio:
[ 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
L'ultima voce nel file mostra l'indice della prima sequenza di segnali valida. Una "sequenza di segnali valida" si riferisce all'inizio delle sequenze di segnali quando il sistema è diventato stabile. Tra acquisizione e raccolta, il programma di test scrive i risultati delle acquisizioni nei file di log e, a seconda delle prestazioni del sistema, potrebbe richiedere del tempo per diventare stabile. Nell'esempio precedente il primo segnale è valido in modo da poter iniziare a confrontare gli intervalli di timestamp.
È possibile prendere intervalli di timestamp notando la differenza tra i due timestamp numerati pari; o, ad esempio, 0, 2, 4, 6 e così via. Come illustrato nella tabella seguente, i segnali 4 e 6 sono molto diversi da altri intervalli di segnale. Pertanto, sappiamo che un altro processo ha interrotto il test durante tale periodo. Nei casi normali, si dovrebbe vedere meno del 1% della differenza.
Indice | Timestamp | Intervallo |
---|---|---|
0 |
431506434557 |
|
2 |
431492585219 |
1731471 |
4 |
431494316516 |
603776 |
6 |
431496047748 |
1127364 |
8 |
431497779297 |
1731354 |
10 |
431499509508 |
1731388 |
12 |
431501240620 |
1731288 |
Problema 3: Modifiche alla frequenza di campionamento
Se un dispositivo modifica la frequenza di campionamento, si verificherà una varianza significativa nei risultati della latenza. È possibile diagnosticare questo problema confrontando le frequenze di campionamento di acquisizione e raccolta.
È possibile usare strumenti esterni per misurare la frequenza di campionamento di un dispositivo prima e dopo l'accensione del motore. Un altro metodo consiste nell'analizzare i log generati da stepmotor.exe.
Aprire Acquisition.txt.
Accettare i timestamp della prima e dell'ultima riga (ultima colonna):
581 660 709 602 199501901480 581 805 512 602 199554132317
Calcolare la frequenza di campionamento dell'acquisizione come indicato di seguito:
(Last timestamp - first timestamp) /number of samples (rows)
Aprire Collection.txt.
Accettare i timestamp della prima e dell'ultima riga (ultima colonna):
581 822 423 602 [199554407006] 581 288 164 602 [199594255626]
Calcolare la frequenza di campionamento della raccolta come indicato di seguito:
(Last timestamp - first timestamp) /number of samples (rows)
Se vengono visualizzate più del 2% delle differenze tra i due, i dati di raccolta non sono affidabili ed è necessario analizzare la causa.
Supporto aggiuntivo
Se è necessario supporto aggiuntivo, contattare uno dei fornitori di jig certificati seguenti:
Triex Technologies, Inc.
+1 (206) 940-0943
Industrial Technology Research Institute
+886 (03) 5743887