Modelado, Diseño, Construcción y Pruebas de un Ratón

Anuncio
cenidet ®
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Mecatrónica
TESIS DE MAESTRÍA EN CIENCIAS
Modelado, Diseño, Construcción y Pruebas de un Ratón
de Computadora para Personas con Tremor en Manos.
presentada por
Omar Alejandro Ruiz González
Ing. en Electricidad el I. T. de Veracruz.
como requisito para la obtención del grado de:
Maestría en Ciencias en Ingeniería Mecatrónica
Director de tesis:
M.C. José Luis González Rubio Sandoval.
Co-Director de tesis:
Dr. Andrés Blanco Ortega.
Jurado:
Dr. Luis Gerardo Vela Valdés – Presidente
M.C. José Martín Gómez López – Secretario
M.C. José Luis González Rubio Sandoval – Vocal
Dr. Andrés Blanco Ortega – Vocal Suplente
Cuernavaca, Morelos, México.
21 de Julio de 2011
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
DEDICATORIA
Dedico este trabajo a mis papás, por contar siempre con su apoyo aún en
momentos difíciles y por haberme brindado la oportunidad de cumplir una de mis
tantas metas.
También lo dedico a mis hermanos, porque son una parte importante en mi
vida, porque sin palabras nos recordamos que debemos luchar siempre para
alcanzar nuestros sueños, sin importar los obstáculos que se presentan.
A mis amigos, ya que sé que cuento con ellos, por el apoyo, cariño y
respeto que nos hemos brindado durante todos estos años, y porque su amistad, a
lo largo de toda mi vida, es y será un regalo invaluable para mí.
Por último y no menos importante, este trabajo está dedicado a mi Taken
que por siempre será mi eterna inspiración, a Minka porque siempre fuiste la más
fiel en la familia... las quiero y las extraño mucho. Y a Zeus y Hera porque ustedes
ya son parte de la familia y por tanto de mi corazón.
i
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
ii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
AGRADECIMIENTOS
Agradezco primeramente a la Sra. Silvia López Aranda, ya que su meritoria
participación en la validación de esta investigación fue fundamental porque
permitió concluir el desarrollo de la misma. También a la Sria. María del Rocío
Salazar Ruiz ya que fue el vínculo necesario para avanzar en la investigación.
A mis asesores el M.C. José Luis González Rubio Sandoval y el Dr. Andrés
Blanco Ortega, por la paciencia y apoyo que me brindaron en los momentos
difíciles de mis estudios.
A mis revisores el Dr. Luís Gerardo Vela Valdés y el M.C. José Martín
Gómez López, porque las observaciones que realizaron a mi tesis fueron de gran
apoyo para que este alcanzara la calidad que merece.
Al Centro Nacional de Investigación y Desarrollo Tecnológico, porque creyó
en mi capacidad y las ganas de triunfar que tengo y me permitió cumplir una de
mis metas personales.
A Dirección General de Estudios Superiores Tecnológicos, por haberme
apoyado con una beca durante mi estancia en CENIDET.
A doña Georgina y don Alfredo, porque me abrieron las puertas de su hogar
durante mis estudios de maestría y estuvieron pendientes de mi bienestar, siendo
una segunda familia para mí.
A todas aquellas personas con las que conviví y de las que he podido
aprender, con sus ejemplos y actitudes he podido tomar las cosas buenas,
desechar las malas y saber día a día lo que quiero y lo que no quiero ser en la
vida.
iii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
iv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
"No temas a la sabiduría, teme a la mediocridad; no temas soñar en grande, teme el nunca haber
soñado; no temas caer, teme al conformismo de vivir en suelo; no temas creer en ti, teme el nunca
haber creído en nada".
Omar A. Ruiz González (2011).
v
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
vi
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
RESUMEN
Esta tesis de investigación contiene información sobre el desarrollo de un
dispositivo computacional que consiste en un ratón genérico USB para
computadora, útil para personas con temblor en manos. El ratón adquiere los
desplazamientos de sí mismo, e implementa un proceso el cual aplica un filtro
digital que identifica la señal de oscilación característica del temblor y la elimina,
enviando a la computadora solamente la señal de desplazamiento del cursor
deseado por el usuario, así como el estado de los botones. Se incluye el análisis
del desempeño del ratón y la comparación con dos programas computacionales
cuyo objetivo es el mismo.
Palabras clave: Temblor, Parkinson, Laplace, Frecuencia, Filtro digital, Ratón,
USB, dispositivo computacional, programa computacional.
vii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
viii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
ABSTRACT
This research thesis contains information about development of a hardware
that consists in a computer USB generic mouse, useful for people with hand
tremor. The mouse acquires its own displacement, and implements a process that
apply a digital filter that identify the characteristic vibration signal of tremor and
eliminate it, sending to the computer only the cursor displacement signal wished by
the user, as the buttons state. It includes performance analysis of mouse and the
comparison with two software applications whose goal is the same.
Key words: Tremor, Parkinson, Laplace, Frequency, Digital Filter, Mouse, USB,
Hardware, Software.
ix
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
x
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Contenido
LISTA DE FIGURAS ..................................................................................................................................... XV
LISTA DE TABLAS ....................................................................................................................................... XIX
SIMBOLOGÍA UTILIZADA. ......................................................................................................................... XXI
ABREVIATURAS Y GLOSARIO DE TÉRMINOS. ................................................................................. XXIII
ESTRUCTURA DEL DOCUMENTO ....................................................................................................... XXVII
CAPÍTULO 1 .............................................................................................................................................. 1
1.1 ANTECEDENTES ....................................................................................................................................... 1
1.2 PLANTEAMIENTO DEL PROBLEMA ............................................................................................................ 3
1.3 ESTADO DEL ARTE ................................................................................................................................... 4
1.3.1 Aplicaciones desarrolladas para el análisis de temblores humanos. .....................................4
1.3.2 Aplicaciones para eliminar el temblor en la mano y/o brazo. ..................................................4
1.3.3 Aplicaciones para manipular el cursor por medios distintos a un ratón
computacional. ...............................................................................................................................7
1.3.4 Aplicaciones para eliminar la oscilación en la señal adquirida por el ratón
computacional. ...............................................................................................................................8
1.4 INTERÉS DEL PROBLEMA ......................................................................................................................... 9
1.5 UBICACIÓN DEL PROBLEMA ................................................................................................................... 10
1.6 OBJETIVOS............................................................................................................................................. 10
1.6.1 Objetivo General: .........................................................................................................................10
1.6.2 Objetivos Particulares: ................................................................................................................11
1.7 HIPÓTESIS ............................................................................................................................................. 11
1.8 PROPUESTA DE SOLUCIÓN .................................................................................................................... 11
1.9 JUSTIFICACIÓN....................................................................................................................................... 12
1.10 METAS ................................................................................................................................................. 12
1.11 ALCANCES Y LIMITACIONES ................................................................................................................. 12
CAPÍTULO 2 ............................................................................................................................................ 15
2.1 INTRODUCCIÓN ...................................................................................................................................... 15
2.2 MODELO MATEMÁTICO DEL TE EN MANOS ............................................................................................ 15
2.3 ANÁLISIS DE SISTEMAS. ......................................................................................................................... 18
2.3.1 Series de Fourier..........................................................................................................................18
2.3.2 Transformada de Laplace. ..........................................................................................................19
2.3.3 Análisis en el dominio de la frecuencia del modelo matemático de la mano. .....................23
2.4 FILTROS DE FRECUENCIA ...................................................................................................................... 24
2.5 DISEÑO DEL FILTRO ............................................................................................................................... 27
2.6 DESARROLLO DEL FILTRO DE FRECUENCIA........................................................................................... 28
2.6.1 Cálculo de un filtro Chebyshev analógico. ...............................................................................30
2.6.2 Digitalización de un filtro a partir de un diseño analógico. .....................................................32
2.6.3 Diseño del filtro Chebyshev utilizado. .......................................................................................34
2.6.4 Análisis del desempeño del filtro. ..............................................................................................36
2.6.5 Digitalización del filtro por medio de la transformación bilineal (tustin). ..............................39
2.6.6 Desarrollo de la etapa 2 del filtro. ..............................................................................................41
2.7 FUNCIONAMIENTO DE UN RATÓN PARA COMPUTADORA. ...................................................................... 42
2.7.1 Ratón de bola. ..............................................................................................................................42
2.7.2 Ratón óptico. .................................................................................................................................43
2.7.3 Ratón Laser. .................................................................................................................................44
2.8 PROTOCOLO DE ENVÍO DE DATOS DE UN RATÓN USB COMPATIBLE CON HID. ................................... 45
xi
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
CAPÍTULO 3 ............................................................................................................................................ 53
3.1 INTRODUCCIÓN ...................................................................................................................................... 53
3.2 DESARROLLO DEL DISPOSITIVO COMPUTACIONAL: RATÓN USB. ......................................................... 54
3.2.1 Investigación y análisis de los componentes internos de un ratón USB
compatible con HID. ....................................................................................................................54
3.2.2 Diseño del módulo electrónico ...................................................................................................56
3.2.3 Adquisición de componentes para el desarrollo del módulo electrónico. ............................56
3.2.4 Desarrollo del circuito electrónico..............................................................................................56
3.2.5 Montaje y pruebas del módulo desarrollado. ...........................................................................58
3.3 ADQUISICIÓN Y TRATAMIENTO DE LAS SEÑALES ELÉCTRICAS EN REODA-MX. .................................. 62
3.3.1 Botón derecho, medio e izquierdo. ............................................................................................62
3.3.2 Palanca. .........................................................................................................................................63
3.3.3 Interruptor de programación. ......................................................................................................64
3.4 LÓGICA DIGITAL DEL FILTRO DESARROLLADO. ...................................................................................... 64
3.4.1 Función: "Inicializar microcontrolador". .....................................................................................65
3.4.2 Función: "Inicializar puerto USB". ..............................................................................................66
3.4.3 Función: "Inicializar sensor de movimiento". ...........................................................................80
3.4.4 Función: "Detectar estado del giro de la rueda media". .........................................................81
3.4.5 Función: "Leer desplazamiento en el eje X". ...........................................................................82
3.4.6 Función: "Leer desplazamiento en el eje Y". ...........................................................................82
3.4.7 Función: "Filtro de movimiento para el eje X". .........................................................................82
3.4.8 Función: "Filtro de movimiento para el eje Y". .........................................................................87
3.4.9 Función: "Detectar estado de los botones". .............................................................................87
3.4.10 Función: "Habilitar puerto USB e interrupciones". ................................................................88
3.4.11 Función: "Enviar datos con protocolo de ratón USB compatible con HID". ......................89
3.4.12 Función: "Esperar 8 ms" ...........................................................................................................91
CAPÍTULO 4 ............................................................................................................................................ 93
4.1 INTRODUCCIÓN. ..................................................................................................................................... 93
4.2 DISEÑO E IMPLEMENTACIÓN DE LA PRUEBAS PARA LA EVALUACIÓN DE REODA-MX. ....................... 93
4.3 COMPARACIÓN DEL DESEMPEÑO DE REODA-MX............................................................................... 95
4.3.1 Steady Mouse. ..............................................................................................................................97
4.3.2 Mouse Cage. ..............................................................................................................................101
4.3.2 REODA-MX .................................................................................................................................105
4.4 ANÁLISIS DE RESULTADOS. ................................................................................................................. 109
CAPÍTULO 5 .......................................................................................................................................... 113
5.1 CONCLUSIONES. .................................................................................................................................. 113
5.2 APORTACIONES. .................................................................................................................................. 115
5.3 TRABAJOS FUTUROS. .......................................................................................................................... 115
BIBLIOGRAFÍA ..................................................................................................................................... 117
ANEXOS
ANEXO 1. ELECCIÓN DEL FILTRO IMPLEMENTADO EN REODA-MX. ........................................................ 121
ANEXO 2. ENTRADA UTILIZADA PARA VALIDAR LOS FILTROS. ................................................................... 131
ANEXO 3. HOJA DE DATOS DEL SENSOR ADNS-2610. ............................................................................ 139
ANEXO 4. CIRCUITO ORIGINAL DEL RATÓN MARCA ATIVA MODELO LYNX-L7R. ................................... 140
ANEXO 5. CIRCUITO ELÉCTRICO DEL MÓDULO DESARROLLADO PARA EL RATÓN MARCA
ATIVA MODELO LYNX-L7R. ................................................................................................... 141
ANEXO 6. HOJA DE DATOS DEL MICROCONTROLADOR 18F2550. ............................................................ 142
ANEXO 7. DISPOSICIÓN FÍSICA DEL MÓDULO DESARROLLADO PARA LA APLICACIÓN
REODA_MX. ........................................................................................................................... 143
xii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
ANEXO 8. LISTA DE MATERIALES USADOS PARA EL DESARROLLAR EL MÓDULO ADHERIDO
AL CIRCUITO ORIGINAL DEL RATÓN MARCA ATIVA MODELO LYNX-L7R. .................................. 144
ANEXO 9. DIAGRAMA ELÉCTRICO DE REODA-MX. ................................................................................. 145
ANEXO 10. CÓDIGO IMPLEMENTADO EN REODA-MX. ............................................................................ 146
ANEXO 11. DOCUMENTO DE PRUEBAS PARA VALIDACIÓN DE REODA-MX. ........................................... 155
11.1. Introducción ................................................................................................................................155
11.2. Explicación a los usuarios sobre funcionamiento de un ratón de
computadora...............................................................................................................................155
Prueba 1.- Adaptación al funcionamiento de un ratón de computadora estándar. ....................158
Prueba 2.- Estabilidad del cursor en un punto fijo. .........................................................................161
Prueba 3.- Velocidad de movimiento del cursor respecto a la velocidad del ratón. ..................163
Prueba 4.- Manipulación del botón secundario del ratón. .............................................................166
Prueba 5.- Manipulación del botón primario del ratón. ..................................................................168
Prueba 6.- Manejo del cursor a través de rutas en el escritorio para ejecutar un
programa............................................................................................................................170
Prueba 7.- Dibujo de una espiral en pantalla por medio del ratón. ..............................................173
Prueba 8.- Manipulación de iconos pequeños en aplicaciones. ...................................................175
xiii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
xiv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Lista de Figuras
1.- Esquema general de funcionamiento de la propuesta de tesis. ....................................... 11
2.- Movimiento del TE en manos. ................................................................................................ 16
3.- Amplitudes del punto de referencia de la mano. ................................................................. 16
4.- Triángulo resultante para conocer el valor de la magnitud B. ........................................... 17
5.- Clasificación general de filtros analógicos. ........................................................................... 25
6.- Clasificación general de filtros digitales. ............................................................................... 26
7.- Parámetros a tomar en cuenta en el diseño de un filtro analógico. ................................. 28
8.- Respuesta de un filtro ideal y un filtro real............................................................................ 29
9.- Relación entre la frecuencia de corte y la frecuencia de paro. ......................................... 29
10.- Respuesta general de un filtro Chebyshev pasa-bajas. ...................................................30
11.- Respuesta en amplitud y fase de un filtro Chebyshev inverso. ......................................32
12.- Transformación del plano S al plano Z. ..............................................................................33
13.- Diagrama de bloques de un filtro IIR. ..................................................................................34
14.- Respuesta del filtro ante una entrada escalón más una señal seno de 4
Hz y 50 pixeles de amplitud. .................................................................................................37
15.- Respuesta del filtro ante una entrada rampa en suma con una señal seno
de 4 Hz. de 50 pixeles de amplitud. ....................................................................................38
16.- Modo adquisición de desplazamiento de un “ratón de bola”. ..........................................42
17.- Modo de adquisición de desplazamiento de un ratón óptico de 1ra
generación...............................................................................................................................43
18.- Modo de adquisición de desplazamiento de un ratón óptico de 2da
generación...............................................................................................................................44
19.- Secuencia de imágenes que el sensor de un ratón óptico de 2da
generación...............................................................................................................................44
20.- Modo de adquisición de desplazamiento de un ratón laser. ...........................................44
21.- Interfaz del programa computacional WinDriver. ..............................................................46
22.- Adquisición de la señal que envía un ratón estándar bajo el protocolo
USB. .........................................................................................................................................47
23.- Adaptador para analizar la comunicación USB entre el ratón y la
computadora. ..........................................................................................................................48
24.- Captura instantánea del osciloscopio durante la transmisión de datos. ........................49
25.- Captura instantánea del osciloscopio durante la transmisión de datos 2. ....................50
26.- Trama de datos en síncronos en binario y codificación NRZI. ........................................50
27.- Diagrama de bloques general del sistema propuesto. .....................................................53
28.- Ratones USB para computadora, utilizados para conocer su circuitería. .....................54
29.- Sensor elegido para detectar el movimiento del ratón. ....................................................55
30.- Circuito original del ratón marca Ativa, sustituyendo el sensor por unos
postes.......................................................................................................................................57
31.- Placa diseñada para montaje sobre la placa original. ......................................................57
32.- Diagrama de las señales contenidas en el sistema de un ratón USB
compatible con HID enlazadas al módulo electrónico desarrollado. .............................58
33.- a) Vista superior, b) Vista lateral del circuito final del prototipo de ratón
USB. .........................................................................................................................................58
34.- Programación de microcontrolador del prototipo de ratón . a) prototipo de
ratón listo para programación. b) Módulo de programación Pickit2. ..............................59
xv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
35.- Interfaz para programación del microcontrolador 18f2550 con Pickit2. .........................59
36.- Sistema de censado para emular el giro de la rueda media del ratón...........................60
37.- Palanca adherida a la carcasa del ratón. ...........................................................................60
38.- Vista del circuito final para el ratón: a) desmontado; b) montado en la
carcasa. ...................................................................................................................................61
39.- REODA-MX. ............................................................................................................................62
40.- Resistencia de tensión positiva (Pull-Up). ..........................................................................63
41.- Resistencia de tensión negativa (Pull-Down). ...................................................................63
42.- Diagrama de bloques de las funciones realizadas por el microcontrolador. .................65
43.- Diagrama de bloques de las subfunciones de la función "Inicializar
microcontrolador". ..................................................................................................................66
44.- Diagrama de bloques de las subfunciones de la función "Inicializar puerto
USB". ........................................................................................................................................66
45.- Captura de transferencia de datos del ratón de marca Microsoft. ..................................71
46.- Captura de transferencia de datos del ratón de marca Genius. .....................................76
47.- Diagrama de flujo de la función "Detectar el estado de giro de la rueda
media". .....................................................................................................................................81
48.- Diagrama de bloques de la función "Filtro de movimiento para el eje X". .....................83
49.- Diagrama de flujo de la función "Filtro de movimiento para el eje X". ...........................84
50.- Estructura de la rutina "PromedioX". ...................................................................................85
51.- Diagrama de flujo de la subfunción "RegresoX". ...............................................................86
52.- Diagrama de flujo de la función "Detectar estado de los botones".................................88
53.- Diagrama de flujo de la función " Enviar datos con protocolo de ratón
USB compatible con HID ". ...................................................................................................89
54.- Secuencia de envío de datos del estado de un ratón USB compatible con
HID............................................................................................................................................90
55.- Firma del usuario que participó en la validación de REODA-MX. ..................................94
56.- Zonas de la pantalla evaluadas durante la realización de la prueba 3. .........................96
57.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con el
programa computacional Steady Mouse. ...........................................................................97
58.- Zonas de convergencia entre el eje X y el eje Y en la zona B y C
utilizando el programa computacional Steady Mouse. .....................................................98
59.- Ruta de trayectoria del cursor para posicionarlo en el punto D durante la
prueba 3 con el programa computacional Steady Mouse. ..............................................99
60.- Zona de convergencia entre el eje X y el eje Y en la zona D. .......................................100
61.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con el
programa computacional Mouse Cage. ............................................................................101
62.- Zona de convergencia entre el eje X y el eje Y en la zona B y C
utilizando el programa computacional Mouse Cage.......................................................102
63.- Ruta de trayectoria del cursor para posicionarlo en el punto D durante la
prueba 3 con el programa computacional Mouse Cage. ...............................................103
64.- Zona de convergencia entre el eje X y el eje Y en la zona D. .......................................104
65.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con
REODA-MX. ..........................................................................................................................105
66.- Zona de convergencia entre el eje X y el eje Y en la zona B y C utilizando
REODA-MX. ..........................................................................................................................106
67.- Ruta de trayectoria del cursor para posicionarlo en el punto D durante la
prueba 3 con REODA-MX. .................................................................................................107
68.- Zona de convergencia entre el eje X y el eje Y en la zona D. .......................................108
xvi
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
A1.- Interfaz de FDATOOL para el diseño de filtros digitales. ..............................................121
A2.- Respuesta del filtro Rectangular. ......................................................................................128
A3.- Respuesta del filtro Butterworth.........................................................................................128
A4.- Respuesta del filtro Chebyshev I. ......................................................................................128
A5.- Respuesta de filtro Chebyshev II.......................................................................................128
A6.- Respuesta del filtro Rectangular. ......................................................................................129
A7.- Entrada utilizada para evaluar los filtros analizados. .....................................................131
A8.- Diagrama eléctrico original del ratón marca ATIVA modelo LYNX-L7R. ....................140
A9.- Diagrama eléctrico de REODA-MX.. .................................................................................141
A10.- Vista PCB (layout) del módulo desarrollado para REODA-MX. .................................143
A11.- Vista PCB de los componentes montados en los lados: a) superior; b)
inferior. .................................................................................................................................143
A12.- Diagrama eléctrico de REODA-MX.................................................................................145
A13.- Fondo de pantalla utilizado para desarrollar la prueba 1. ...........................................160
A14.- Fondo de pantalla utilizado para desarrollar la prueba 2. ...........................................162
A15.- Fondo de pantalla utilizado para desarrollar la prueba 3. ...........................................164
A16.- Fondo de pantalla utilizado para desarrollar la prueba 4. ...........................................167
A17.- Fondo de pantalla utilizado para desarrollar la prueba 5. ...........................................169
A18.- Fondo de pantalla utilizado para desarrollar la prueba 6. ...........................................171
A19.- Fondo de pantalla utilizado para desarrollar la prueba 7. ...........................................173
A20.- Fondo de pantalla utilizado para desarrollar la prueba 8. ...........................................178
xvii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
xviii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Lista de tablas
1.- Número de usuarios de algún equipo de cómputo entre el año 2001-2010. .................... 3
2.- Dispositivos y sistemas desarrollados para la atenuación del temblor en
manos........................................................................................................................................... 5
3.- Dispositivos para posicionar el cursor en la pantalla sin el uso de las
manos........................................................................................................................................... 7
4.- Sistemas y dispositivos desarrollados para filtrar oscilaciones de la señal
adquirida por un ratón manipulado por una persona con TE en manos. .......................... 9
5.- Datos que contiene cada byte que envía el ratón a la PC. ................................................ 45
6.- Datos del protocolo correspondiente a la primer línea de la figura 22. ............................ 47
7.- Componentes internos dentro de los ratones adquiridos. .................................................. 55
8.- Componentes adquiridos para el desarrollo del ratón USB. .............................................. 56
9.- Descriptor de reporte HID para un ratón USB compatible con HID. ................................ 69
10.- Configuración total del dispositivo del ejemplo 1. ............................................................. 72
11.- Descriptor del dispositivo del ejemplo 1. ............................................................................ 73
12.- Descriptor del fabricante del ejemplo 1............................................................................... 74
13.- Descriptor del reporte HID del ejemplo 1. .......................................................................... 74
14.- Descriptor de marca del producto del ejemplo 1. .............................................................. 75
15.- Configuración total del dispositivo del ejemplo 2. ............................................................. 77
16.- Descriptor del dispositivo del ejemplo 2. ............................................................................ 78
17.- Descriptor del fabricante del ejemplo 2............................................................................... 79
18.- Descriptor del reporte HID del ejemplo 2. .......................................................................... 79
19.- Descriptor de marca del producto del ejemplo 2. .............................................................. 80
20.- Tiempo transcurrido durante el desarrollo de la prueba. ............................................... 109
21.- Parámetros evaluados durante la realización de la prueba 3. ...................................... 109
A1.- Comparación del tiempo de establecimiento al 5% y 2% de los filtros
evaluados ante una entrada tipo escalón unitario. ......................................................... 124
A2.- Comparación del tiempo de retardo entre la señal de entrada y la señal
de los filtros evaluados en modo de funcionamiento común. ....................................... 125
A3.- Comparación de la variación absoluta de la respuesta de cada filtro
evaluado ante una entrada constante de tipo senoidal de 4Hz a 12 Hz
con incrementos de 1 Hz y amplitud 50 pixeles (100 pico a pico). .............................. 126
A4.- Calificación final de cada filtro evaluado. ......................................................................... 127
A5.- Tiempo de retardo imperceptible y tolerable entre el movimiento del
ratón-cursor. .......................................................................................................................... 130
A6.- Lista de materiales necesarios para el módulo de REODA-MX ................................... 144
A7.- Funciones de los botones de un ratón para computadora. ........................................... 156
A8.- Parámetros evaluados durante la aplicación de las pruebas. ...................................... 179
xix
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
xx
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Simbología utilizada.
Símbolo
Descripción
α
Magnitud, en decibelios, de la atenuación de un filtro.
𝜀
Constante de ajuste en el denominador de la respuesta en magnitud
de un filtro Chebyshev I.
θ
Ángulo de giro de una mano.
𝑘𝑑
Parámetro de discriminación para el diseño de un filtro Chebyshev I.
𝑘𝑠
Parámetro de selectividad para el diseño de un filtro Chebyshev I.
𝜎𝑘
Parte real de la raíz K del denominador de un filtro Chebyshev I.
t
Variable del tiempo.
ω
Frecuencia angular de una oscilación.
𝜔𝑘
Parte compleja de la raíz K del denominador de un filtro Chebyshev I.
𝜔𝑃
Frecuencia angular de corte de un filtro Chebyshev I.
𝜔𝑆
Frecuencia angular de paro (stop) de un filtro Chebyshev I.
A
Amplitud de desplazamiento lineal de un punto de la mano en el eje X.
𝐴𝑚𝑖𝑛
Valor mínimo en decibelios de atenuación en la banda de rechazo.
𝐴𝑚𝑎𝑥
Valor máximo en decibelios de atenuación en la banda de paso.
B
Amplitud de desplazamiento lineal de un punto de la mano en el eje Y.
D
Distancia entre el origen del movimiento de la mano y un punto de la
misma donde se desea conocer la amplitud de la misma.
𝐹𝑠𝑡𝑜𝑝
Frecuencia de paro (stop).
𝐹𝑐𝑜𝑟𝑡𝑒
Frecuencia de corte.
K
Constante de proporcionalidad usada en la transformada de Laplace.
mx
Ruido blanco de la mano en el eje X producido por contracciones de
músculos.
my
Ruido blanco de la mano en el eje Y producido por contracciones de
músculos.
xxi
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
S
Variable compleja usada en la transformada de Laplace.
x
Posición deseada de un punto de la mano en el eje X.
Xm(t)
Posición en el eje X de un punto en la mano con TE y movimiento
deseado.
XTm(t)
Posición en el eje X de un punto de la mano con TE.
y
Posición deseada de un punto de la mano en el eje Y.
Ym(t)
Posición en el eje Y de un punto en la mano con TE y movimiento
deseado.
YTm(t)
Posición en el eje Y de un punto en la mano con TE.
xxii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Abreviaturas y glosario de términos.
Acelerómetro.- Es cualquier dispositivo que mide la aceleración a la que está
siendo sometido.
Actígrafo.-
Es un dispositivo electrónico pequeño, para uso personal. Este
graba y reporta los niveles de actividad así como las calorías
consumidas, movimientos de los miembros, niveles del sueño y
muchos datos más. Proveen información objetiva de la actividad
diaria para la determinación, por ejemplo, de estados patológicos
relacionados con el movimiento, ya sea un trastorno de
hiperactividad, inactividad en ancianos, trastornos de sueño, etc.
Discinesia.-
Término usado para designar los movimientos anormales e
involuntarios en las enfermedades nerviosas.
Distonía.-
Trastorno del movimiento donde las contracciones sostenidas
del músculo causan torceduras y movimientos repetitivos o
posturas anormales. Estos movimientos, que son involuntarios y
a veces dolorosos, pueden afectar a un solo músculo, a un grupo
de músculos tales como los de los brazos, piernas o cuello, o al
cuerpo entero.
Encoder.-
Es un codificador rotatorio, también llamado codificador del eje o
generador de pulsos, el cual suele ser un dispositivo
electromecánico usado para convertir la posición angular de un
eje a un código digital.
Esclerosis
múltiple.-
Es una enfermedad consistente en la aparición de lesiones
desmielinizantes, neurodegenerativas y crónicas del sistema
nervioso central. Puede tener como consecuencia una movilidad
reducida e invalidez en los casos más severos.
Filtro
Chebyshev.-
Es un tipo de filtro diseñado por el matemático Pafnuti
Chebyshev; tiene la característica de presentar una caída de la
respuesta en frecuencia más pronunciada en frecuencias bajas
debido a que permiten rizado en alguna de sus bandas (paso o
rechazo) ya que los polos de este filtro se presentan sobre una
elipse y sus ceros se encuentran en el eje imaginario.
xxiii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Frecuencia
angular.-
Es la frecuencia del movimiento senoidal. Se define como el
ángulo girado por unidad de tiempo, expresado en radianes por
segundo.
Frecuencia
neperiana.-
También llamado coeficiente de amortiguamiento exponencial,
es una medida de la rapidez con la que decae o se amortigua la
respuesta natural hacia su estado final permanente
Función
Escalón.-
Es una función matemática que tiene como característica el
tener un valor de 0 para todos los valores negativos de su
argumento y un número real para todos los valores positivos de
su argumento.
Función
Signo.-
También conocida como función Heavyside; es una función
matemática especial que obtiene el signo de cualquier número
real que se tome por entrada.
Giroscopio.-
Es un objeto esférico, o en forma de disco, montado en un
soporte cardánico, de forma que puedan girar libremente en
cualquier dirección. Es utilizado para medir la orientación o para
mantenerla, al estar basado su funcionamiento en el principio de
conservación del momento angular.
HID.-
Human Interface Device (Dispositivo de Interfaz Humana); son
todos aquellos dispositivos computacionales con los que el ser
humano tiene un uso de ellos directamente, ya sea para enviar o
recibir datos; ejemplos de estos son el ratón, el teclado, trackball,
tapete táctil, tableta gráfica, joystick, dispositivos simuladores de
manejo y de vuelo, nintendo power globe, tapete de danza y WII
Remote.
ICSP.-
In Circuit Serial Programming. Es una técnica de programación
en circuito implementada en los microcontroladores de la marca
Microchip que permite programarlos en la propia placa de
aplicación mediante una señal síncrona de datos serie y una
señal de reloj.
LED.-
Light Emissor Diode (Diodo emisor de luz); es un dispositivo
semiconductor (diodo) que emite luz cuando se polariza de
forma directa la unión PN del mismo y circula por él una corriente
eléctrica.
xxiv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Músculos
antagonistas.-
Es una clasificación utilizada para describir un conjunto de
músculos que actúan en oposición a la fuerza y movimiento que
genera otro músculo.
PCB
Placa de Circuito Impreso (Printed Circuit Board). Es una placa
desarrollada para brindar soporte mecánico a componentes
eléctricos y electrónicos y así poder realizar las conexiones
eléctricas, comúnmente aplicando soldadura a las terminales de
estos, a través caminos o pistas conductores hechos de cobre
laminado montado sobre una superficie no conductora.
Ruido Blanco.- Es una señal aleatoria (proceso estocástico) que se caracteriza
por el hecho de que sus valores de señal en dos tiempos
diferentes no guardan correlación estadística. Como
consecuencia de ello, su densidad espectral de potencia (psd,
siglas en inglés de power spectral density) es una constante, es
decir, su gráfica es plana.1 esto significa que la señal contiene
todas las frecuencias y todas ellas muestran la misma potencia.
TE.-
Temblor esencial. Es una enfermedad que genera trastornos de
movimiento en distintas partes del cuerpo, siendo estos
movimientos rítmicos constantes con una frecuencia de
oscilación encontrada entre 4 y 12 Hz.
Track-ball
Tipo de ratón computacional donde se hace girar una rueda con
los dedos para desplazar el cursor eliminando así el
desplazamiento del dispositivo para el mismo fin.
Temblor
Cinético.-
Estos temblores ocurren al final de un movimiento intencional
(intencionado), como escribir, presionar un botón o alcanzar un
objeto. El temblor generalmente desaparecerá mientras la parte
del cuerpo afectada esté en reposo.
Temblor de
reposo o
estáticos:
Estos temblores se presentan cuando los músculos están en
reposo. El temblor puede desaparecer o hacerse menos notorio
cuando se mueven los músculos involucrados.
Temblor por
enfermedad
de Parkinson
Es una enfermedad neurológica que se asocia a rigidez
muscular, dificultades para andar, temblor en reposo entre 4 y 6
Hz, alteraciones e inestabilidad en la coordinación de
movimientos y postura, y pérdida de reflejos, entre otros.
xxv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Temblor
Postural.-
Es un temblor que ocurre cuando se está sosteniendo la mano o
la pierna en una posición durante un período de tiempo en contra
de la gravedad. Esto puede suceder cuando uno está
escribiendo, extendiendo los brazos o al pararse erguido.
USB.-
Universal Serial Bus (Bus de Serie Universal). Es un puerto que
sirve para conectar periféricos a un ordenador.
xxvi
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Estructura del documento
Este documento de investigación presenta una estructura de temas y subtemas
ordenados de acuerdo a la secuencia de actividades que fueron requeridas para la
culminación del mismo.
En el capítulo 1 se plantea la problemática a la que se enfrentan las
personas con TE en manos al momento de utilizar el ratón de un equipo de
cómputo para posicionar el cursor de la pantalla. Posteriormente se enuncian
algunas de las aplicaciones desarrolladas para la solución de problemas similares
y se plantea la propuesta de solución, así como también los alcances que tendrá,
las limitaciones que conlleva y los objetivos que se requieren alcanzar.
En el capítulo 2 se aborda la teoría requerida para desarrollar la
investigación. Se realiza una recopilación de información acerca de los sistemas
utilizados para identificación y eliminación de señales y se plantea el diseño del
mismo, de acuerdo a las condiciones demandadas por el padecimiento a atacar.
Se incluye el modelo matemático del sistema analizado y el sistema desarrollado.
También se incluye la teoría sobre el funcionamiento de un ratón para
computadora.
En el capítulo 3 se explica con detalle el proceso para el desarrollo del ratón
USB para personas con TE en manos; se describe el proceso del sistema
desarrollado y su implementación en un ratón USB genérico.
En el capítulo 4 se presentan las evaluaciones obtenidas tras aplicar una
serie de pruebas al prototipo desarrollado. Se genera una lista de las
características de la aplicación y se identifican las ventajas y desventajas. Se dan
a conocer las observaciones correspondientes al diseño final del prototipo.
En el capítulo 5 se presentan los resultados obtenidos así como las
conclusiones derivadas de esta investigación. También, se mencionan las
aportaciones del trabajo realizado sobre el ratón desarrollado para personas con
xxvii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
TE y se dan algunas recomendaciones como trabajos futuros para continuar
afrontando el problema de la eliminación de las oscilaciones producidas por el TE
en el uso de una PC.
Al final del documento se enlistan los documentos que se utilizaron para el
desarrollo de la misma, referenciados en la sección de anexos.
xxviii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
CAPÍTULO 1
Introducción
1.1 Antecedentes
"El Temblor es una discinesia caracterizada por oscilaciones rítmicas, producidas
por
contracciones
involuntarias
de
músculos
antagonistas
inervados
recíprocamente, las cuales pueden ser síncronas o alternantes" [1].
El temblor esencial (TE), en forma similar a los temblores y en particular al
temblor originado por la enfermedad de Parkinson, tiene tendencia a la simetría y
a la generalización [2]. Es el más frecuente de todos los temblores, presente hasta
el 22% de la población mayor a 65 años, con prevalencia 5 a 20 veces mayor a la
enfermedad de Parkinson. Tiene variabilidad racial e incidencia estimada en 18
por 100,000 habitantes [3]. En México, casi 500,000 habitantes padecen la
enfermedad de Parkinson, en Europa 1.475.000, en Estados Unidos más de un
millón y en Japón 729.000 habitantes tienen la enfermedad de Parkinson [4].
El TE es típicamente una combinación de temblor postural y temblor
cinético, aunque también puede ocurrir de forma aislada. El TE casi siempre
afecta las manos (≈95% de los afectados), pero también afecta la cabeza (~34%),
cara (≈5%), la voz (≈12%), el tronco (≈5%), y extremidades bajas (≈20%). La
condición del TE es que tiene una frecuencia de 4 a 12 Hz [5].
En las formas infantil y juvenil su frecuencia oscila en 8 Hz; en el adulto el
promedio es de 10 Hz, y vuelve a frecuencias menores desde la quinta década
alcanzando los valores más bajos en la séptima década: 5 a 6 Hz [2]. La
frecuencia del TE en manos oscila en 5-7 Hz, siendo el promedio más habitual
registrado de 6-6.5 Hz [1].
1
INTRODUCCIÓN
La incapacidad laboral es poco frecuente, apareciendo una cifra inferior al
5% de los afectados por TE. Las personas que padecen esta enfermedad tienen
dificultad para escribir, tomar los alimentos y realizar actividades que dependan
directamente del uso de las manos, como ejemplo la manipulación adecuada de
un ratón para computadora, debido a que se tiene muy poco o nulo control sobre
dicho dispositivo para trasladar y mantener el cursor de la pantalla en una posición
deseada, representando un problema serio en el uso de esta tecnología que se ha
convertido en una herramienta fundamental en la vida cotidiana.
Las computadoras son el motor fundamental de la comunicación a nivel
mundial, haciendo uso de ella para actividades sencillas como elaborar un
documento de texto escolar o comprar cosas por internet, o bien destinadas a
realizar actividades complejas como transmitir información de acontecimientos en
distintas partes del mundo, controlar grandes procesos industriales e incluso
desarrollar procesos matemáticos complicados y a velocidades que el ser humano
simplemente no podría desarrollar.
Las primeras computadoras, aparecidas en 1947 (ENIAC), eran complejas y
difíciles de manipular; la aparición del primer ratón de computadora en 1968,
llamado por su patente “X-Y Position Indicator for a Display System”, logró ser un
intermediario directo entre una persona y la computadora, facilitando el uso de la
computadora e iniciando así la aplicación de entornos gráficos con el sistema de
ventanas, que luego adoptarían prácticamente la totalidad de los sistemas
operativos modernos [6]. De tal modo que hoy en día es indispensable el ratón de
computadora para la manipulación de la misma.
De acuerdo a las cifras que el INEGI obtuvo con el censo que realizó
titulado “Encuesta Nacional sobre Disponibilidad y Uso de las Tecnologías de la
Información en los Hogares”, en el año 2010 alrededor del 40.1% de la población
en México utiliza algún equipo de cómputo [7], esto es alrededor de 39 millones de
habitantes mayores de 6 años (ver tabla 1).
2
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tabla 1.- Número de usuarios de algún equipo de cómputo entre el año 2001-2010.
1.2 Planteamiento del problema
Al analizar los párrafos anteriores, se encuentra un problema principal, el cual
radica en que una persona con TE en manos puede presentar un grado de
complicación al realizar actividades en equipos de cómputo utilizando un ratón
para computadora, ya que dependiendo de la severidad del TE, puede llegar al
grado de no ser capaz de posicionar y mantener el cursor de la pantalla en un
punto deseado, utilizando dicho dispositivo.
3
INTRODUCCIÓN
1.3 Estado del arte
El temblor humano ha sido el centro de diversas investigaciones con el propósito
de atacar dificultades que se derivan del mismo. Para esto es necesario conocer
completamente las características del temblor y así contrarrestar los efectos que
repercuten en el objeto de estudio. De este modo, se han desarrollado distintas
aplicaciones que permiten el análisis de estos temblores.
1.3.1 Aplicaciones desarrolladas para el análisis de temblores humanos.
"La frecuencia del temblor únicamente puede ser determinada instrumentalmente"
[1], por lo que se han diseñado diversas aplicaciones para analizarlo; los principios
de funcionamiento varían, utilizando acelerómetros [8], actígrafos [9] y giroscopios
[10] entre otros; se han hecho evaluaciones para comparar las características de
estas mediciones [11].
Por otra parte, se han implementado técnicas para analizar las señales
obtenidas de las mediciones, algunas utilizan filtros como el Kalman [12], [13],
redes neuronales [14] y realizar comparaciones de las mediciones obtenidas [15].
Posteriormente se evalúan y clasifican estas mediciones en diversos tipos de
temblores, como el originado por la enfermedad de Parkinson, TE y Distonía [16],
[17], [18], [19].
1.3.2 Aplicaciones para eliminar el temblor en la mano y/o brazo.
Con el objetivo de eliminar el temblor en la zona afectada, se han desarrollado
distintas aplicaciones que permiten atenuar o eliminar el temblor en la zona
afectada. La tabla 2 contiene algunas de estas aplicaciones:
4
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tabla 2.- Dispositivos y sistemas desarrollados para la atenuación del temblor en manos.
Estabilizador ajustable y regulable para
temblor en manos [20].
Método para el tratamiento de temblores
[21].
Aplicación que utiliza un giroscopio para
atenuar el temblor en manos.
Aplicación que utiliza una pulsera que ejerce
presión a tendones y músculos de la mano
para atenuar el temblor en manos.
Dispositivo para el control de temblor [22].
Aplicación montada a una silla de ruedas que
solo permite desplazar la mano en un eje
perpendicular al del brazo.
Dispositivo de uso para la supresión del
temblor esencial [24].
Aplicación que utiliza un amortiguador viscoso
para absorber el temblor de la mano.
Órtesis portable para la supresión del
temblor [23].
Aplicación que utiliza un amortiguador para
atenuar el temblor en manos.
Dispositivo Ortésico Dinámico para la
monitorización, diagnóstico y supresión
del temblor patológico [25].
Aplicación que utiliza un giroscopio, un motor y
sensores para contrarrestar los movimientos
de temblor del brazo y mano.
5
INTRODUCCIÓN
Método y dispositivo biomecánico de
cancelación de temblor patológico [26].
Método y dispositivo electrónico e
informático de supresión y valoración de
temblor y movimiento espástico en
periféricos de entrada y de mando [27].
Aplicación que utiliza sensores para reconocer
temblores y por medio de un actuador
contrarrestar estos.
Aplicación que adquiere la señal de
movimiento de la mano a través de un joystick
y digitalmente eliminar la señal de temblor.
Abrazadera para el control del temblor /
Órtesis para amortiguación de temblor [28].
Diseño desarrollo y validación de
dispositivo robótico para la supresión del
temblor patológico [29], [30].
Aplicación que utiliza algún sensor para
identificar el temblor y por medio de un
actuador cancelar el movimiento involuntario.
Aplicación que utiliza sensores y actuadores
que evitan movimientos involuntarios por la
acción del temblor del usuario.
Control activo de temblor para desordenes de movimiento humano [31].
Aplicación que utiliza sensores para identificar movimientos involuntarios y por medio de
actuadores contrarrestar estos movimientos.
6
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
1.3.3 Aplicaciones para manipular el cursor por medios distintos a un ratón
computacional.
Se han desarrollado diversas aplicaciones para posicionar el cursor en la pantalla
que, en lugar de utilizar la mano, utilizan otra parte del cuerpo, tal como la cara, la
voz o los pies.
Tabla 3.- Dispositivos para posicionar el cursor en la pantalla sin el uso de las manos.
Headdev [32].
Head Mouse [33].
Programa computacional que detecta
movimientos y gestos de la cara para controlar
la posición del cursor y las pulsaciones de
botones del ratón, utilizando una cámara web.
Programa computacional que detecta
movimientos y gestos de la cara para controlar
la posición del cursor y las pulsaciones de
botones del ratón, utilizando una cámara web.
Smart Nav [34].
Eye Point [35].
Equipo computacional que detecta
movimientos de cabeza para controlar la
posición del cursor.
Equipo computacional que detecta la reflexión
de la retina del ojo para controlar la posición
del cursor.
7
INTRODUCCIÓN
Mouse Vision [36].
Vocal Joystick [37].
Equipo computacional que detecta la reflexión
de la retina del ojo para controlar la posición
del cursor.
Programa computacional que detecta el tono
de la voz y así controlar la posición del cursor
y las pulsaciones de los botones un ratón.
Foot Mouse [38].
Equipo computacional que detecta el movimiento de un pie para posicionar el cursor y detectar
las pulsaciones de los botones con el otro pie.
1.3.4 Aplicaciones para eliminar la oscilación en la señal adquirida por el
ratón computacional.
Otras aplicaciones se han enfocado en atenuar las oscilaciones adquiridas por el
ratón de la computadora, permitiendo al usuario continuar utilizando la mano para
maniobrar el ratón y posicionar el cursor de pantalla. La tabla 4 contiene algunas
de estas aplicaciones.
8
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tabla 4.- Sistemas y dispositivos desarrollados para filtrar oscilaciones de la señal adquirida
por un ratón manipulado por una persona con TE en manos.
Mouse Cage [39].
Steady Mouse [40].
Programa computacional que adquiere los
incrementos del ratón y aplica un algoritmo de
filtración para posicionar el cursor. Costo
comercial USD $39.95
Programa computacional que adquiere los
incrementos del ratón y aplica un algoritmo de
filtración para posicionar el cursor. Costo
comercial: Gratuito.
IBM Mouse Smoothing Software - Assistive
Mouse Adapter [41].
TechFilter [42].
Equipo computacional que adquiere los
incrementos del ratón y aplica un algoritmo de
filtración para posicionar el cursor. Costo
comercial UK = £113.00 - in
USA/Canada/Rest of world = US$184.00
- in Europe = €174.00.
Equipo computacional que adquiere los
incrementos del ratón y aplica un algoritmo de
filtración para posicionar el cursor. Costo
comercial: Desconocido.
En el capítulo 4, Pruebas y Resultados, se realiza una comparación del
prototipo del ratón desarrollado en esta investigación con los programas
computacionales Mouse Cage y Steady Mouse, con el fin de contrastar el
desempeño de las tres aplicaciones.
1.4 Interés del problema
Se requiere analizar y comprender la enfermedad del TE en manos para realizar
un modelo del comportamiento de dicho padecimiento, y utilizarlo para desarrollar
9
INTRODUCCIÓN
un equipo computacional que pueda ser operado por cualquier usuario con TE en
manos, para manipular el cursor de pantalla de una computadora, incorporando al
usuario a la utilización de esta herramienta indispensable.
Un reto particular al que se enfrenta esta tesis de investigación es que ya
existen diversas aplicaciones que intentan solucionar el problema mencionado, sin
lograr un desempeño satisfactorio, de tal modo que se pretende resolver el
problema con una nueva aplicación que tenga un mejor desempeño que las
aplicaciones ya desarrolladas.
1.5 Ubicación del problema
La situación de la problemática social que abarca el tema de esta investigación
lleva a pensar en la posibilidad de alcanzar 2 objetivos fundamentales:

La integración de las personas que padecen TE en manos al uso de las
tecnologías de la información; en concreto, al uso de un equipo de cómputo.

Mejora de la calidad de vida de estas personas ya que lograrán desarrollar
actividades computacionales como cualquier usuario común, ya sea con fines
personales, escolares o profesionales.
1.6 Objetivos
1.6.1 Objetivo General:

Implementar un sistema que permita a las personas con TE en manos
poder trasladar y posicionar de forma adecuada el cursor de pantalla de un equipo
de cómputo.
10
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
1.6.2 Objetivos Particulares:

Diseñar, construir y validar un prototipo de ratón que permita trasladar y
posicionar adecuadamente el cursor de la pantalla de una computadora,
manipulado por una persona con TE en manos.

Comparar el prototipo final con otras aplicaciones desarrolladas para
objetivos similares.
1.7 Hipótesis
“ Es posible atenuar o eliminar la señal de temblor adherida al movimiento
deseado de un ratón de computadora, manipulado por una persona con TE en
manos, por medio de un ratón de computadora, con el fin de posicionar el cursor
de pantalla en la zona deseada ".
1.8 Propuesta de solución
De las diferentes aplicaciones que se han desarrollado, se puede establecer una
propuesta de solución al problema (ver figura 1) utilizando un filtro en el ratón para
computadora que permita atenuar o eliminar la oscilación adquirida por el TE.
Figura 1.- Esquema general de funcionamiento de la propuesta de tesis.
Es viable desarrollar un sistema basado en un ratón de computadora que
integre, a la lógica de procesamiento de datos, una etapa de tratamiento digital de
señales que permita reducir o eliminar la oscilación inyectada por un usuario con
11
INTRODUCCIÓN
TE en manos y así enviar la información correspondiente al movimiento deseado
por el usuario para el posicionamiento del cursor de pantalla.
1.9 Justificación
Los puntos que justifican el desarrollo de este proyecto son:



La contribución hacia las personas que padecen TE en manos y necesitan
utilizar un equipo de cómputo.
La creación de un producto que, al integrarlo a un sistema computacional,
ofrezca mayores prestaciones.
Sentar las bases para el desarrollo de investigaciones futuras que aborden
problemas similares al de esta investigación.
1.10 Metas
La meta es atenuar al menos un 90% de las oscilaciones transmitidas al cursor de
pantalla, producto de la manipulación de un ratón de computadora operado por
una persona con TE en manos. El criterio utilizado para evaluar el desempeño del
ratón propuesto se describe en el anexo 1.
1.11 Alcances y limitaciones
La investigación se limita a eliminar la oscilación en la señal adquirida por el
movimiento del ratón, producida por el TE en manos del usuario. Este acotamiento
deja fuera otros problemas de señales vibratorias producidas por otras
enfermedades u otros factores físicos (superficie de desplazamiento irregular,
defectos en el sensor de movimiento, diseño físico del ratón), así como también
deja fuera la eliminación del problema desde el origen, es decir, eliminar el temblor
en la mano.
12
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
El alcance principal del sistema desarrollado consiste en que lo puede
utilizar cualquier persona con TE en manos, ya que el filtro permite identificar y
eliminar las oscilaciones incluidas en todo el rango de frecuencia del TE que es
entre 4 y 12 Hz.
Otro alcance del sistema desarrollado es que se puede utilizar con cualquier
sistema operativo ya que solo se necesita el controlador genérico (que
generalmente incluyen todos los sistemas operativos) para un ratón compatible
con HID.
Una limitación es que el sistema desarrollado probablemente no funcione
de forma adecuada para otros problemas similares como lo son la enfermedad de
Parkinson, Esclerosis Múltiple o Distonía, entre otros, así como tampoco tenga un
desempeño adecuado con un grado de temblor que impida mantener el ratón
siempre en contacto con la superficie de desplazamiento por que se pueden
producir errores en la adquisición de desplazamiento.
13
INTRODUCCIÓN
14
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
CAPÍTULO 2
Marco Teórico
2.1 Introducción
Todos los sistemas que nos rodean tienen un comportamiento que depende de las
variables con las que interactúa. Estos comportamientos pueden ser traducidos
como señales y pueden proporcionar información del sistema, misma que es
posible representar con modelos matemáticos.
Para el caso de estudio, se requiere identificar el comportamiento que tiene
la mano de un usuario con TE en manos, con el fin de diseñar una solución
adecuada la problemática planteada.
2.2 Modelo matemático del TE en manos
El TE tiene una trayectoria en el tiempo que puede aproximarse a una señal
sinusoidal [43]; el modelo matemático del TE en manos utiliza como referencia un
plano de coordenadas en dos ejes, donde el movimiento en cada eje se puede
aproximar a una función seno [44]; dependiendo de la distancia que existe entre el
eje de origen del movimiento y el punto de la mano donde se desea medir el
desplazamiento, está función puede adoptar la siguiente forma:
𝑋𝑇𝑚(𝑡) = 𝐴 ∗ sin 𝜔𝑡
(1)
𝑌𝑇𝑚(𝑡) = 𝐵 ∗ sin 𝜔𝑡
(2)
15
MARCO TEÓRICO
donde "XTm(t)" es la posición de un punto de la mano en el eje "X" donde se
desea medir el desplazamiento de la misma; "YTm(t)" es la posición del mismo
punto de la mano en el eje "Y ". "A" y "B" son las amplitudes de los movimientos
en sus respectivos ejes; "ω" es la frecuencia angular del movimiento de la mano.
Para ejemplificar las ecuaciones anteriores, se recurre a la figura 2.
Eje Y
Punto de referencia de la mano para
conocer la amplitud de movimiento.
2A
2B
Distancia entre la referencia
y el origen del movimiento.
D
Origen del movimiento
de la mano.
Eje X
Figura 2.- Movimiento del TE en manos.
El movimiento del temblor se origina aproximadamente en la articulación de
la muñeca; el desplazamiento en el eje "X" y en el eje "Y" que tiene el punto de
referencia en la mano depende de la amplitud del movimiento en cada eje.
Estas amplitudes, A y B, se pueden calcular a través del triángulo formado
por el desplazamiento angular de la mano, la distancia entre el origen del
movimiento de la mano y el punto de referencia en la misma, como se muestra en
la figura 3.
Eje Y
2A
2B
D
D
D
θ
Eje X
Figura 3.- Amplitudes del punto de referencia de la mano.
Conociendo el ángulo de movimiento de la mano (theta) y la distancia (D)
entre el origen del movimiento y el punto de referencia en la mano, se pueden
conocer las amplitudes A y B. En la figura anterior se puede identificar un triángulo
16
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
isósceles formado por las 2 aristas externas, que forman el ángulo theta, cuya
magnitud es D, y por la arista 2A; el valor A se puede conocer aplicando la ley de
cosenos. Para conocer en valor B, solo se utiliza la mitad del triángulo formado
anteriormente, como lo muestra la figura 4; se forma un triángulo rectángulo y
aplicando el teorema de Pitágoras se puede conocer el valor de D'.
Eje Y
2B
D'
A
D
Eje X
Figura 4.- Triángulo resultante para conocer el valor de la magnitud B.
El valor 2B es igual al valor D menos el valor de D' (figura 4). De esta forma
se conocen las amplitudes A y B. Por otro lado, el modelo matemático de la mano
de una persona con TE en manos se puede representar con las ecuaciones (3) y
(4):
𝑋𝑚 𝑡 = 𝐴 ∗ sin 𝜔𝑡 + 𝑥 + 𝑚𝑥
(3)
𝑌𝑚 𝑡 = 𝐵 ∗ sin 𝜔𝑡 + 𝑦 + 𝑚𝑦
(4)
donde "x" y "y" son las posiciones deseadas de la mano en cada eje, y "mx" y "my"
son el ruido blanco producido por movimientos naturales de los músculos de la
mano. "Xm(t)" y "Ym(t)" es la posición de un punto en la mano donde se desea
medir el desplazamiento de la misma.
El movimiento de la mano se transmite completamente al ratón y el sensor
de este adquiere todo el movimiento de esta [45], lo que resulta que la ecuación
de movimiento del ratón sea similar a la ecuación de la mano; sin embargo, el
ruido blanco producido por los movimientos naturales de la mano contiene
magnitudes imperceptibles por el sensor del ratón, simplificando las ecuaciones
(3) y (4), resultan en (5) y (6):
17
MARCO TEÓRICO
𝑅𝑋 𝑡 = 𝐴 ∗ sin 𝜔𝑡 + 𝑥
(5)
𝑅𝑌 𝑡 = 𝐵 ∗ sin 𝜔𝑡 + 𝑦
(6)
La posición de la mano en ambos ejes depende de acoplamientos
biomecánicos, como la posición de brazos, hombro y cuerpo; para el modelo
matemático representado por las ecuaciones (5) y (6) del movimiento se
despreciarán estos acoplamientos y se analizará cada eje por separado, por
simplicidad del sistema y análisis del mismo.
Una vez obtenido el modelo matemático se procede a convertir éste a su
representación en el dominio complejo, ya que se requiere para un análisis
posterior en el dominio de la frecuencia, debido a que la teoría utilizada para el
diseño de filtros se basa en este dominio.
2.3 Análisis de sistemas.
En ocasiones es conveniente representar, en diversos lenguajes, las funciones
matemáticas que describen un sistema, con el fin de entenderlos, analizarlos y
manipularlos como convenga.
Para el caso de representaciones de funciones matemáticas,
la
transformada de Fourier es como un segundo lenguaje para describir estas
funciones; su representación tiene algunas ventajas para el análisis de sistemas.
2.3.1 Series de Fourier.
El físico francés, Joseph Fourier (1768-1830), desarrolló una representación de
funciones basada en la frecuencia. Esta teoría propone que mediante la suma de
señales coseno/sinusoidales de diferentes amplitudes, frecuencias y fases, es
posible construir casi cualquier función arbitraria. Dentro de este conjunto de
18
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
señales puede existir una con frecuencia cero, que es un término constante, a
menudo referido como la componente continua (DC). De este modo se puede
decir que la transformada de Fourier es una representación en el dominio de la
frecuencia de una función.
Sin embargo, existen funciones del tiempo que al querer encontrar su
equivalente en Fourier, se encuentra una expresión indeterminada al sustituir los
límites de integración. Algunas de estas funciones son el escalón, signo, etc.
Aunque su equivalente de Fourier si exista y se obtenga a partir de ciertos
resultados básicos, existen ciertas funciones como la exponencial creciente,
señales aleatorias, y otras que no son absolutamente integrales.
Además las técnicas de Fourier no permiten analizar los sistemas a partir
de las condiciones iniciales que éste presenta. Estas dos objeciones se superan al
usar la transformada de Laplace, que además tiene una nomenclatura más
sencilla y una mayor facilidad de manejo.
2.3.2 Transformada de Laplace.
Se dice que cualquier función que puede escribirse en la forma 𝑥 𝑡 = 𝐾𝑒 𝑠𝑡 , donde
k y s son constantes complejas (independientes del tiempo), está caracterizada
por la frecuencia compleja s [46]. Para conocer la frecuencia compleja de una
función dada por inspección, es necesario escribirla de la forma anterior.
Considérese la siguiente función sinusoidal exponencialmente amortiguada (7):
𝑓 𝑡 = 𝑉𝑚 𝑒 𝜎𝑡 𝑐𝑜𝑠 𝜔𝑡 + 𝜃
(7)
donde se sustituye la identidad trigonométrica (8) en (7), resultando en (9):
𝑒 𝑗 Ө + 𝑒 −𝑗 Ө
𝑐𝑜𝑠 Ө =
2
(8)
19
MARCO TEÓRICO
1
𝑓 𝑡 = 𝑉𝑚 𝑒 𝑗𝜃 𝑒
2
𝜎 +𝑗𝜔 𝑡
1
+ 𝑉𝑚 𝑒 −𝑗𝜃 𝑒
2
𝜎−𝑗𝜔 𝑡
(9)
donde:
𝐾1 =
1
𝑉𝑚 𝑒 𝑗𝜃
2
(10)
𝐾2 =
1
𝑉 𝑒 −𝑗𝜃
2 𝑚
(11)
𝐾1 = 𝐾2 ∗
(12)
𝑆1 = 𝜎 + 𝑗𝜔
(13)
𝑆2 = 𝜎 − 𝑗𝜔
(14)
⇒ 𝑆1 = 𝑆2 ∗
(15)
La parte real de s está asociada con la variación exponencial; si es
negativa, la función decrece conforme t aumenta, si es positiva aumenta, y si es
cero, la amplitud de la sinusoidal es constante. Mientras mayor sea la magnitud de
la parte real de s, mayor será la rapidez del aumento o disminución exponencial.
La parte imaginaria de s describe la variación sinusoidal; específicamente,
representa la frecuencia angular. Una magnitud grande de la parte imaginaria
indica una variación más rápida respecto al tiempo. Por lo tanto, valores mayores
de la magnitud de s indican una variación más rápida respecto al tiempo. Se
denota por σ a la parte real, y por ω a la parte imaginaria, ecuación (16):
𝑆 = 𝜎 + 𝑗𝜔
(16)
donde s es la frecuencia compleja, σ es la frecuencia neperiana y ω es la
frecuencia angular.
20
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
La transformada de Laplace se presenta como un desarrollo o evolución de
la transformada de Fourier, aunque se podría definir directamente. El objetivo es
hacer que la variación en el tiempo sea de la forma (17):
𝜎 +𝑗𝜔 𝑡
𝑒
(17)
Para lograrlo, se considerará la transformada de Fourier de 𝑒 −𝜎𝑡 𝑓 𝑡 en vez
de 𝑓 𝑡 , haciendo entonces 𝑔 𝑡 = 𝑒 −𝜎𝑡 𝑓 𝑡
y su respectiva transformada de
Fourier (18):
∞
∞
𝑒 −𝑗𝜔𝑡 𝑒 −𝜎𝑡 𝑓 𝑡 𝑑𝑡 =
𝐺 𝑗𝜔 = 𝐹 𝜎 + 𝑗𝜔 =
−∞
𝑒 − 𝜎+𝑗𝜔 𝑡 𝑓 𝑡 𝑑𝑡
(18)
−∞
Aplicando la transformada inversa de Fourier a (18), se obtiene (21):
1
𝑔 𝑡 =
2𝜋
∞
−∞
1
𝑒 𝑗𝜔𝑡 𝐺 𝑗𝜔 𝑑𝜔 =
2𝜋
1
𝑔 𝑡 =
2𝜋
1
𝑓 𝑡 =
2𝜋
∞
𝑒 𝑗𝜔𝑡 𝐹 𝜎 + 𝑗𝜔 𝑑𝜔
(19)
−∞
∞
𝑒 𝑗𝜔𝑡 𝐹 𝜎 + 𝑗𝜔 𝑑𝜔
(20)
−∞
∞
𝑒
𝜎 +𝑗𝜔 𝑡
𝐹 𝜎 + 𝑗𝜔 𝑑𝜔
(21)
−∞
Ahora se sustituye 𝜎 + 𝑗𝜔 por la variable compleja s, y como σ es constante,
𝑑𝑠 = 𝑗𝑑𝜔, resultando en (22):
1
𝑓 𝑡 =
2𝜋𝑗
𝜎0 +𝑗 ∞
𝑒 𝑠𝑡 𝐹 𝑠 𝑑𝑠
(22)
𝜎0 −𝑗 ∞
donde la constante real 𝜎0 se incluye en los límites para garantizar la convergencia
de la integral impropia. En términos de s se tiene (23):
21
MARCO TEÓRICO
∞
𝑒 −𝑠𝑡 𝑓 𝑡 𝑑𝑡
𝐹 𝑠 =
(23)
−∞
La ecuación (23) define el par de la transformada bilateral de Laplace.
Puede pensarse que la transformada bilateral de Laplace expresa a f (t ) como la
sumatoria (integral) un número infinito de términos infinitesimalmente pequeños
cuya frecuencia compleja es 𝑆 = 𝜎 + 𝑗𝜔. La transformada de Laplace que se toma
con límite inferior 𝑡 = 0− define la transformada unilateral de Laplace, la
transforma inversa sigue inalterada, pero sólo es válida para t > 0, ecuación (24).
∞
𝑒 −𝑠𝑡 𝑓 𝑡 𝑑𝑡
𝐹 𝑠 =
(24)
0−
También se puede usar el símbolo
para indicar la transformada directa o
inversa de Laplace:
𝐹 𝑠 =
𝑓 𝑡 =
𝑓(𝑡)
−1
𝐹(𝑠)
(25)
(26)
2.3.2.1 Características de la transformada de Laplace.
 Una de las ventajas más significativas radica en que la integración y derivación
se convierten en multiplicación y división. Esto transforma las ecuaciones
diferenciales e integrales en ecuaciones polinómicas, mucho más fáciles de
resolver [46].

Debido al exponente negativo en la integral de la Transformada de Laplace su
convergencia es mucho más fuerte que en el caso de Fourier.

La Transformada de Laplace es mejor para resolver problemas de valor inicial
(t=0), La Transformada de Fourier para resolver problemas con condiciones en
22
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
la frontera, en especial cuando se quiere que la solución decaiga a cero a
grandes distancias.

Aunque
𝐹 𝑠 =
regularmente
∞ −𝑠𝑡
𝑒 𝑓
0−
la
definición
de
Transformada
de
Laplace
es
𝑡 𝑑𝑡 con límites de cero a más infinito, no es su única
definición, ésta es considerada la Transformada de Laplace Unilateral. Existe
otra definición que va de menos infinito a más infinito y es llamada
Transformada Bilateral de Laplace. Tomando en cuenta esta última, la
Transformada de Fourier es un caso específico de la Transformada de Laplace
Bilateral cuando s está restringido al eje imaginario. Debido a esto la
Transformada de Laplace puede manejar muchas más funciones que la de
Fourier (si hay polos en el eje imaginario su transformada diverge, cosa que no
sucede con Laplace.

Laplace es unidimensional, Fourier es multidimensional.

La función de la transformada de Laplace vive en todo el espacio complejo, la
función transformada por Fourier vive en el espacio real.

La Transformada Bilateral de Laplace sirve para modelar sistemas no causales
[47].
2.3.3 Análisis en el dominio de la frecuencia del modelo matemático de la
mano.
El modelo matemático del movimiento de una mano con TE, para la dirección X,
se puede expresar en el dominio de la frecuencia aplicando la transformada de
Laplace a la ecuación (5), resultando en (27);
∞
∞
sin 𝜔𝑡 𝑒 −𝑠𝑡 𝑑𝑡 + 𝑋
𝐹 𝑠 =𝐴
0
𝑒 −𝑠𝑡 𝑑𝑡
(27)
0
Parte 1
Parte 2
23
MARCO TEÓRICO
Para desarrollar la parte 1 de la ecuación se recurre a la siguiente sustitución (28),
de acuerdo a la fórmula de Euler, la cual es:
sin 𝑥 =
1 𝑗𝑥
(𝑒 − 𝑒 −𝑗𝑥 )
2𝑗
(28)
Sustituyendo x por 𝜔𝑡 en (28), se obtiene (29):
sin 𝜔𝑡 =
1 𝑗𝜔𝑡
(𝑒
− 𝑒 −𝑗𝜔𝑡 )
2𝑗
(29)
De esta forma la parte 1 de la ecuación (27) resulta en (30):
𝐹 𝑠 =𝐴∗
1
2𝑗
∞
(𝑒 −(𝑠−𝑗𝜔 )𝑡 − 𝑒 −(𝑠+𝑗𝜔 )𝑡 ) 𝑑𝑡
(30)
0
Se desarrolla el proceso de integración y se obtiene la ecuación (31):
𝐹1 𝑠 = 𝐴 ∗
𝑠2
𝜔
+ 𝜔2
(31)
Para la parte 2 de la ecuación (27), se desarrolla de forma similar, resultando en
(32):
𝐹2 𝑠 = 𝑋 ∗
1
𝑠
(32)
Así se tiene que la ecuación del movimiento de la mano para ambos ejes
coordenados, en función del plano complejo, es la suma de la ecuación (31) y
(32), resultando (33):
𝐹 𝑠 =𝐴∗
𝑠2
𝜔
1
+𝑋∗
2
+𝜔
𝑠
(33)
2.4 Filtros de frecuencia
El movimiento de la mano de un usuario con TE en manos está compuesta
por 2 señales fundamentales, una correspondiente al movimiento del temblor y la
24
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
otra al movimiento deseado por el usuario. Se requiere eliminar la señal del
temblor que adquiere un ratón de computadora, con el objetivo utilizar solo la
señal de movimiento deseado del usuario para posicionar el cursor. Esto se puede
lograr por medio de algunos sistemas basados en técnicas de descomposición de
señales llamados filtros de frecuencia; éstos se diseñan de acuerdo a las
características de las señales que componen la señal original. Su función radica
en desarticular la señal de entrada en sus distintas componentes.
Existen diversos filtros de frecuencia; estos presentan características particulares
de acuerdo a diversas clasificaciones. Una forma de catalogarlos consiste en el
procesamiento de señales respecto al tiempo, pudiendo ser de forma continua o
discreta, conocidos como filtros analógicos y digitales, respectivamente. Las
figuras 5 y 6 muestran una clasificación general de estos filtros.
Figura 5.- Clasificación general de filtros analógicos.
25
MARCO TEÓRICO
Figura 6.- Clasificación general de filtros digitales.
26
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Existen variantes de estos filtros que son diseñados para usos específicos;
en el caso de la eliminación de oscilaciones en la mano, se han desarrollado filtros
con distintos objetivos de operación, como escribir en un equipo de cómputo con
un joystick [48], [49], con una pluma digital [50], [51], y micro-cirugías a nivel
médico [52], [53].
2.5 Diseño del filtro
El movimiento que adquiere un ratón de computadora manipulado por una
persona con TE en manos contiene las señales del movimiento de temblor y el
movimiento deseado por el usuario; se requiere eliminar la señal del temblor (4 12 Hz) y utilizar solamente la señal del movimiento deseado para posicionar
adecuadamente el cursor de pantalla de una computadora. Por lo tanto se
requiere un filtro de tipo Pasa-bajos, adquiere las señales cuyas frecuencias sean
menores de una frecuencia elegida, y atenúa o elimina las señales con
frecuencias mayores a la elegida.
Las señales que adquiere un ratón de computadora son digitalizadas por el
sensor de movimiento, por lo que se utilizó un filtro digital, el cual se programó en
un microcontrolador el cual se comunica con el sensor de movimiento, procesa los
datos adquiridos y envía la información del ratón a la computadora utilizando el
protocolo para este tipo de dispositivos. Existen diversos métodos para diseñar
filtros pasa-bajas. La elección del filtro a utilizar se basó en la simulación de una
señal de entrada adquirida por el ratón; se evaluaron diversos filtros que fueron
generados por la herramienta FDATOOL de Matlab [54]. El filtro que obtuvo un
equilibrio entre una respuesta con menor tiempo retardo entre la entrada y la
salida, y una atenuación menor al 10% de la oscilación es el que se implementó
en el ratón (ver anexo 1). El filtro elegido fue del tipo Chebyshev I. Para posicionar
el cursor de pantalla se dividió el proceso anterior en 2 etapas.
27
MARCO TEÓRICO
ETAPA 1.- Esta etapa consiste en aplicar un filtro de frecuencia inicial a la
señal adquirida por el sensor del ratón. Las respuestas todos los filtros evaluados
aun contienen pequeñas oscilaciones,
directamente
esta
respuesta
por lo que no es conveniente utilizar
para
posicionar
el
consiste
en
cursor,
recurriendo
necesariamente a una segunda etapa.
ETAPA
2.-
La
segunda
etapa
aplicar
un
segundo
procesamiento de datos que permite identificar y eliminar datos correspondientes
a "falsos" movimientos obtenidos de la primer etapa, así como desplazar el cursor
con una velocidad lenta o rápida de acuerdo a lo que requiera el usuario.
2.6 Desarrollo del filtro de frecuencia.
Para diseñar un filtro de frecuencia, se deben establecer ciertos criterios del
comportamiento que se requiere en el sistema; pueden ser especificaciones de
amplitud 𝐻(𝜔) y de atenuación α(ω) de la señal a procesar. La relación entre
atenuación y amplitud está dada por (34):
𝛼 𝜔 = 10𝐿𝑜𝑔
1
𝐻(𝜔)
2
= −20𝐿𝑜𝑔 𝐻(𝜔)
(34)
Se requiere un filtro pasa-bajas, por lo que se deben plantear las especificaciones
de diseño, mostradas en las figuras 7 y 8.
𝐻(𝜔)
Hc
Hs
Banda de
paso
Banda de
transición
Hp: Mínima ganancia en la banda de corte.
Banda
atenuada
Hs: Máxima ganancia en la banda de rechazo
ωc: Máxima frecuencia de la banda de corte.
ωs: Mínima frecuencia de la banda de rechazo.
ωc
ωs
ω
Figura 7.- Parámetros a tomar en cuenta en el diseño de un filtro analógico.
28
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
𝐻(𝜔)
Filtro ideal
Hc
Ha
Filtro real
ωc
ωs
ω
Figura 8.- Respuesta de un filtro ideal y un filtro real.
Parámetro de discriminación (Kd) (35) :
𝐾𝑑 =
1
−1
𝐻𝑐 2
=
1
2−1
𝐻𝑠
𝛼𝑐
1010 − 1
𝛼𝑠
1010
(35)
−1
Parámetro de Selectividad (Ks) (36):
𝐾𝑠 =
𝜔𝑐
(≤ 1 𝑝𝑎𝑟𝑎 𝑝𝑎𝑠𝑜 𝑏𝑎𝑗𝑜)
𝜔𝑠
(36)
Nota:

Si el factor Kd es pequeño, el filtro pasa-bajas es de alta calidad.

Si el factor Ks tiende a 1, el filtro pasa-bajas es casi ideal [55].
|H(ω)|
Hc
Ha
ωc
ωs
ω
Figura 9.- Relación entre la frecuencia de corte y la frecuencia de paro.
29
MARCO TEÓRICO
𝐻(𝜔) =
1
1
+ 𝐹(𝜔 2 )
⇒
𝛼 𝜔 = 10𝐿𝑜𝑔 1 + 𝐹 𝜔2
(37)
2.6.1 Cálculo de un filtro Chebyshev analógico.
Una aproximación Chebyshev presenta particularmente rizos en la banda
de paso y una disminución pronunciada de la magnitud a partir de la frecuencia de
corte, como lo muestra la figura 10; no tiene ceros, solamente polos [56].
Magnitud dB
Diagrama de Bode en magnitud
Frecuencia en rad/s.
Figura 10.- Respuesta general de un filtro Chebyshev pasa-bajas.
Se establecen los parámetros de diseño:
𝐴𝑚𝑖𝑛 = 𝑉𝑎𝑙𝑜𝑟 𝑚í𝑛𝑖𝑚𝑜 𝑒𝑛 𝑑𝐵 𝑑𝑒 𝑎𝑡𝑒𝑛𝑢𝑎𝑐𝑖𝑜𝑛 𝑒𝑛 𝑙𝑎 𝑏𝑎𝑛𝑑𝑎 𝑑𝑒 𝑟𝑒𝑐𝑕𝑎𝑧𝑜
𝐴𝑚𝑎𝑥 = 𝑉𝑎𝑙𝑜𝑟 𝑚á𝑥𝑖𝑚𝑜 𝑒𝑛 𝑑𝐵 𝑑𝑒 𝑎𝑡𝑒𝑛𝑢𝑎𝑐𝑖𝑜𝑛 𝑒𝑛 𝑙𝑎 𝑏𝑎𝑛𝑑𝑎 𝑑𝑒 𝑝𝑎𝑠𝑜
𝐹𝑠𝑡𝑜𝑝 = 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑟𝑒𝑐𝑕𝑎𝑧𝑜
𝐹𝑐𝑜𝑟𝑡𝑒 = 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑐𝑜𝑟𝑡𝑒
30
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Para calcular el valor en dB, se recurre a la formula (38):
(38)
𝐴𝑑𝐵 = 20𝐿𝑜𝑔10 (𝐴)
Para obtener el orden de esta aproximación, se aplica la fórmula (39) [57]:
10𝐴𝑚𝑖𝑛 10 − 1
10 𝐴𝑚𝑎𝑥 /10 − 1
𝜔𝑠𝑡𝑜𝑝
𝑎𝑟𝑐𝑐𝑜𝑠𝑕
𝜔𝑐𝑜𝑟𝑡𝑒
𝑎𝑟𝑐𝑐𝑜𝑠𝑕
𝑛≥
(39)
El orden del filtro será el número entero inmediato superior al arrojado por la
ecuación anterior. Para obtener los polos y ceros que definirán la función de
transferencia, se ocupan las ecuaciones (40) a (43):
Polos:
𝜀=
100.1∗𝐴𝑚𝑎𝑥 − 1
(40)
𝑠𝑘 = 𝜎𝑘 + 𝑗𝜔𝑘
(41)
𝜎𝑘 = −𝜔𝑠𝑡𝑜𝑝 𝑠𝑒𝑛𝑕
1
1
𝑎𝑟𝑐𝑠𝑒𝑛𝑕
𝑁
𝜀
𝑠𝑒𝑛
𝜔𝑘 = 𝜔𝑠𝑡𝑜𝑝 𝑐𝑜𝑠𝑕
1
1
𝑎𝑟𝑐𝑠𝑒𝑛𝑕
𝑁
𝜀
𝑐𝑜𝑠
𝜋
(2𝑘 − 1)
2𝑁
𝜋
(2𝑘 − 1)
2𝑁
(42)
(43)
Una vez obtenida la función de transferencia del filtro, se procede a calcular su
ganancia igualándola a 1 y haciendo S= 𝑗𝜔 y 𝜔=0;
Hay que resaltar que para el mismo orden, hay un compromiso entre la
amplitud de las oscilaciones en la banda de paso y la selectividad y la linealidad
de la fase [58], como se muestra en la figura 11:

Si 𝐴𝑚𝑎𝑥 aumenta/disminuye, la atenuación es más/menos rápida.

Si 𝐴𝑚𝑎𝑥 aumenta/disminuye, la fase es menos/más lineal.
31
MARCO TEÓRICO
Figura 11.- Respuesta en amplitud y fase de un filtro Chebyshev inverso.
2.6.2 Digitalización de un filtro a partir de un diseño analógico.
Para poder implementar el filtro en algún sistema digital, se requiere una
transformación de un modelo de sistema continuo a un modelo de sistema
discreto, ya que los sistemas digitales operan bajo este criterio.
Para esto se requiere transformar, al dominio del tiempo discreto, la función
de transferencia del filtro de frecuencia, aplicando una conversión analógicodigital. Existen técnicas que permiten hacer este cambio; algunas de estas son la
transformada invariante al impulso, la transformada invariante al escalón y la
transformación bilineal.
2.6.2.1 Transformación bilineal.
Las fórmulas de respuesta a la frecuencia lineal H(m) pueden ser
convertidas en un equivalente digital usando el impulso invariante, el escalón
invariante o la transformación bilineal. Solo la transformación bilineal brinda una
función de conversión de propósito general de implementación sencilla, que puede
ser usada en respuestas para filtros pasa-bajas, pasa-altas, pasa-banda y parabanda. Las funciones de conversión impulso invariante y el escalón invariante son
muy complejas de aplicar ya que utiliza la representación en fracciones parciales y
32
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
una transformación individual en Z de cada fracción parcial; estas funciones de
conversión no pueden ser usadas para respuestas de filtros pasa-altas o parabanda [59]. Por esta razón solo la transformación bilineal se considera para el
desarrollo del filtro digital requerido.
La transformación bilineal es usada para convertir la respuesta en
frecuencia analógica en una respuesta en dominio digital. La ventaja de la
transformación bilineal es que cualquier respuesta puede ser convertida.
La transformación desde un plano S analógico en un plano Z digital es muy
simple de visualizar en la figura 12. El eje ω, que es la frecuencia del plano S, está
envuelta alrededor de sí misma en el plano Z en forma de círculo. De un lado del
círculo es el punto de frecuencia cero el cual es el origen en el diagrama del plano
S. El otro lado del círculo es donde los puntos de infinito y menos infinito se
encuentran.
Figura 12.- Transformación del plano S al plano Z.
La transformación bilineal es un proceso matemático simple. Comenzando
con una respuesta analógica en frecuencia, H(s), la transformación bilineal
produce H(z) cuando se lleva a cabo la sustitución de la variable S por el operador
𝑧−1
𝑧+1
al diseño analógico del filtro des-normalizado; sin embargo se debe agregar un
factor que incluye el tiempo de muestreo que tendrá el filtro digital, el cual es (44):
𝑠≈
2 𝑧−1
∗
𝑇 𝑧+1
(44)
33
MARCO TEÓRICO
Así, el filtro queda representado en función de la variable Z. Posteriormente
se simplifica la ecuación, resultando el término de mayor orden del denominador
en la unidad. La forma canónica del filtro se debe mostrar cómo (45):
𝐻 𝑧 =
𝑌(𝑧) 𝑏0 + 𝑏1 𝑍 −1 + 𝑏2 𝑍 −2 + ⋯ + 𝑏𝑁 𝑍 −𝑁
=
𝑋(𝑧) 1 + 𝑎1 𝑍 −1 + 𝑎2 𝑍 −2 + ⋯ + 𝑎𝑁 𝑍 −𝑁
(45)
Se Iguala Y(z) con X(z) y se despeja la salida actual Y(z), resultando (46):
𝑌 𝑧 = 𝑋 𝑧 𝑏0 + 𝑏1 𝑍 −1 + 𝑏2 𝑍 −2 + ⋯ + 𝑏𝑁 𝑍 −𝑁 − 𝑌 𝑧 𝑎1 𝑍 −1 + 𝑎2 𝑍 −2 + ⋯ + 𝑎𝑁 𝑍 −𝑁
(46)
Finalmente los coeficientes A y B son los que se utilizan para implementar el filtro
en el sistema digital, recurriendo a entradas presentes y pasadas y salidas
pasadas, como lo indica la figura 13:
Figura 13.- Diagrama de bloques de un filtro IIR.
2.6.3 Diseño del filtro Chebyshev utilizado.
De acuerdo a las ecuaciones anteriores, se establecen los parámetros de diseño.
Para calcular el valor en dB de las magnitudes de diseño, se recurre a (47):
𝐴𝑑𝐵 = 20𝐿𝑜𝑔10 (𝐴)
(47)
Por experimentación, se observó que la magnitud de la oscilación a baja
frecuencia (4 Hz) que se debe atenuar es aproximadamente de 25 pixeles;
34
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
utilizando la fórmula 40, resulta una magnitud alrededor de 28 dB, sin embargo por
cuestiones de simplicidad en el diseño del filtro se eligió una magnitud de 16 dB
para la banda de rechazo con el fin de que el orden del filtro fuera menor, siempre
y cuando su desempeño fuera adecuado.
Mientras menor sea el rizo en la banda de paso, las oscilaciones resultantes
en la respuesta del filtro tendrán magnitudes pequeñas; por esto se eligió una
magnitud de 1 dB. Los parámetros de diseño son los siguientes:
𝐴𝑚𝑖𝑛 = 16 𝑑𝐵
𝐴𝑚𝑎𝑥 = 1 𝑑𝐵
𝐹𝑠𝑡𝑜𝑝 = 3.7 𝐻𝑧
𝐹𝑐𝑜𝑟𝑡𝑒 = 0.3 𝐻𝑧
Para obtener el orden de esta aproximación, se sustituyen los valores anteriores
en la ecuación (39), siendo el orden del filtro el número entero inmediato superior:
𝑛 = 0.9977
𝑛= 1
Para obtener los polos y ceros que definirán la función de transferencia, se ocupan
las ecuaciones 40, 41, 42 y 43 y se sustituyen los parámetros de diseño:
𝜀=
100.1∗1 − 1 = 0.50884713
Polos:
Para K=1
𝜎1 = −3.704365
𝜔1 = 0
La función de transferencia resulta de la siguiente manera:
35
MARCO TEÓRICO
𝐺 𝑠 =
𝐻0
𝑆 + 3.704365
Una vez obtenida la función de transferencia del filtro, se calcula su ganancia.
𝐻0
=1
𝑆 + 3.704365
(48)
Como S= 𝑗𝜔 y 𝜔=0, entonces:
𝐻0 = 3.704365
Donde la función de transferencia el filtro es:
𝐹𝑖𝑙𝑡𝑟𝑜 𝑠 =
3.704365
𝑆 + 3.704365
(49)
2.6.4 Análisis del desempeño del filtro.
F(s) mano
𝐴∗
𝑆𝑎𝑙𝑖𝑑𝑎 𝑠 =
𝑠2
𝜔
𝑥
+
2
+𝜔
𝑠
* F(s) filtro
= F(s) salida
3.7043
= 𝑆𝑎𝑙𝑖𝑑𝑎(𝑠)
𝑠 + 3.7043
𝑆 3 3.7043 + 𝑥 + 𝑆 2 𝐴𝜔 + 3.7043 𝑥 + 3.7043 ∗ 𝑆 𝑥 + 𝐴𝜔 + 1 + 3.7043𝑥𝜔2
𝑆 4 + 𝑆 3 3.7043 + 𝑆 2 𝜔 2 + 𝑆(3.7043𝜔 2 )
(50)
donde:
𝑥 = 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑑𝑒𝑠𝑒𝑎𝑑𝑎 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑛𝑜
𝐴 = 𝑎𝑚𝑝𝑙𝑖𝑡𝑢𝑑 𝑑𝑒𝑙 𝑡𝑒𝑚𝑏𝑙𝑜𝑟 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑛𝑜
𝜔 = 𝑓𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑑𝑒𝑙 𝑡𝑒𝑚𝑏𝑙𝑜𝑟 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑛𝑜 = 2 ∗ 𝑝𝑖 ∗ 𝑓𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝐻𝑧
Para comprobar el desempeño del filtro, se propone evaluarlo con una
función seno (simulación del temblor) en suma con una función escalón de
magnitud 100 (posición fija deseada). A continuación se muestran los comandos
utilizados:
36
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
% se declara el tiempo de simulación en segundos
t=0:0.01:5;
% se declara la función seno con amplitud 25 y frecuencia 4Hz
seno=25*sin(4*2*pi*t);
% se declara la entrada constante
mov=100;
% se declara la entrada completa para el filtro
entrada=seno+mov;
% se declara el numerador del filtro
numfiltro=[3.7043];
% se declara el denominador del filtro
denfiltro = [1 3.7043];
% se inyecta la entrada diseñada y se simula el comportamiento del sistema
lsim(numfiltro, denfiltro, entrada, t)
La respuesta se muestra en la figura 14:
Linear Simulation Results
140
120
100
Pixel
Amplitude
80
60
40
20
0
-20
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Time (sec)
Tiempo (s)
Figura 14.- Respuesta del filtro ante una entrada escalón más una señal seno de 4 Hz y 50
pixeles de amplitud.
37
MARCO TEÓRICO
También se evaluó con una función seno en suma con una función rampa cuya
respuesta se muestra en la figura 15. A continuación el código utilizado:
% se declara el tiempo de simulación en segundos
t=0:0.01:5;
% se declara la función seno con amplitud 25 y frecuencia 4Hz
seno=25*sin(4*2*pi*t);
% se declara la entrada rampa
mov=10*t;
% se declara la entrada completa para el filtro
entrada=seno+mov;
% se declara el numerador del filtro
numfiltro=[3.7043];
% se declara el denominador del filtro
denfiltro = [1 3.7043];
% se inyecta la entrada diseñada y se simula el comportamiento del sistema
lsim(numfiltro, denfiltro, entrada, t)
Linear Simulation Results
80
60
Pixel
Amplitude
40
20
0
-20
-40
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Time (sec)
Tiempo (s)
Figura 15.- Respuesta del filtro ante una entrada rampa en suma con una señal seno de 4 Hz.
de 50 pixeles de amplitud.
38
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
2.6.5 Digitalización del filtro por medio de la transformación bilineal (tustin).
El único paso consiste en realizar la siguiente sustitución:
𝑠=
2 𝑧−1
∗
𝑇 𝑧+1
(51)
Así se tiene la sustitución de (51) en (49):
𝐹𝑖𝑙𝑡𝑟𝑜(𝑧) =
3.7043
2 𝑧−1
∗
+ 3.7043
𝑇 𝑧+1
Desarrollando la ecuación y agrupando en términos de Z, se tiene:
𝐹𝑖𝑙𝑡𝑟𝑜(𝑧) =
𝑧 3.7043 𝑇 + 3.7043 𝑇
𝑧 2 + 3.7043 𝑇 + 3.7043𝑇 − 2
El periodo de muestreo es de T=0.008s (envío de datos un ratón USB):
𝐹𝑖𝑙𝑡𝑟𝑜(𝑧) =
𝑧 0.0296349 + 0.0296349
𝑧 2.0296349 + −1.9703651
Se establece la magnitud del denominador de mayor orden en la unidad.
𝐹𝑖𝑙𝑡𝑟𝑜(𝑧) =
0.0147 + 0.0147 𝑧 −1
1 − 0.9707 𝑧 −1
Donde al comparar con la forma canónica de una función de transferencia en Z
(52), se obtienen los coeficientes del filtro:
𝑌(𝑧) 𝑏0 + 𝑏1 𝑍 −1 + 𝑏2 𝑍 −2 + ⋯ + 𝑏𝑁 𝑍 −𝑁
𝐻 𝑧 =
=
𝑋(𝑧) 1 + 𝑎1 𝑍 −1 + 𝑎2 𝑍 −2 + ⋯ + 𝑎𝑁 𝑍 −𝑁
(52)
𝑏0 = 0.0147
𝑏1 = 0.0147
𝑎1 = −0.9707
39
MARCO TEÓRICO
Para efectos de simplicidad, se utilizó el comando:
[b,a]=cheby1(N,Rs,Fnyquist)
El Teorema de Nyquist establece:
“Para poder replicar con aproximada exactitud la forma de una onda, es
necesario que la frecuencia de muestreo sea superior al doble de la máxima
frecuencia a muestrear.”
De esta forma, para transformar a la frecuencia de Nyquist la frecuencia de
paro, es necesario que se cumpla la condición (53):
𝐹𝑁𝑦𝑞𝑢𝑖𝑠𝑡 =
2 ∗ 𝐹𝑠𝑡𝑜𝑝
≤1
𝐹𝑚𝑢𝑒𝑠𝑡𝑟𝑒𝑜
(53)
Si al sustituir los valores de Frecuencia stop y Frecuencia de muestreo, la
frecuencia de Nyquist es menor o igual a 1, entonces se puede aplicar el comando
en Matlab:
[b,a]=cheby1(1,16,0.0592)
Obteniendo así los coeficientes en Z del filtro digital.
b=
0.0147 0.0147
a=
1.0000 -0.9708
Estos coeficientes son:
𝑏0 = 0.0146
𝑏1 = 0.0146
𝑎1 − 0.9705
40
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
2.6.6 Desarrollo de la etapa 2 del filtro.
Debido a que la respuesta del filtro Chebyshev aun presentaba oscilaciones no
deseadas, este comportamiento impediría al usuario con temblor en manos utilizar
eficientemente un ratón para computadora. Por tal motivo se implementó una
segunda etapa de acondicionamiento de la señal que consiste en reconocer estos
"falsos" movimientos y omitirlos, así como también permitir el posicionamiento fino
del cursor.
El ratón manipulado por una persona con TE en manos no siempre tiene la
misma magnitud de oscilación debido a diversos factores como fricción no
constante entre el ratón y la superficie de desplazamiento, así como movimientos
bruscos aleatorios en la mano, por lo que estas variaciones provocan que el filtro
Chebyshev genere en la respuesta señales identificadas como "falsos"
movimientos. Se comprobó que estos movimientos no deseados no superan una
suma de pixeles en determinada cantidad de eventos de movimiento, por lo que si
esta sumatoria supera la cantidad de pixeles preestablecidos, entonces el
movimiento se identificará como deseado.
Por otra parte, el usuario puede iniciar el movimiento del cursor de forma
lenta o bien puede hacerlo rápidamente. La segunda etapa identifica la moda de
los primeros eventos de movimiento; si estos no fueron mayores a cierta cantidad
de pixeles, al cursor se le asignarán incrementos cortos e intermitentes con un
comportamiento en el tiempo de tipo exponencial. De lo contrario, si la segunda
etapa identifica que la moda de las primeras muestras contiene incrementos
mayores, el posicionamiento del cursor será continuo y con una magnitud similar a
la del desplazamiento del ratón.
Este proceso anterior aplica para ambos ejes de movimiento. Con esta
etapa se permite desplazar incluso a 1 pixel de forma sencilla, y permite el
desplazamiento rápido sin tener que esperar una etapa previa de posicionamiento
lento.
41
MARCO TEÓRICO
2.7 Funcionamiento de un ratón para computadora.
De acuerdo a la tecnología que emplean los ratones para computadora, existen 3
tipos de ratones; estos son:
2.7.1 Ratón de bola.
Este ratón posee, como su nombre lo indica, una bola que se mueve internamente
al desplazar el ratón, y esta mueve dos discos dentados llamados discos
codificadores (Encoder) sobre las cuales se hace incidir dos haces de luz por
medio de dos diodos emisores de luz (LED's) [60].
Los dientes de los discos del ratón permiten que el haz de luz del LED
incida intermitentemente en un fototransistor que está al otro lado del disco, de tal
modo que, cuando el haz de luz pasa por un “hueco” del disco dentado, el
fototransistor recibirá la luz del LED interpretándolo como un estado lógico alto, y
cuando el haz de luz incide sobre un diente del disco, el fototransistor no recibirá
señal alguna, emitiendo un estado lógico bajo. El funcionamiento general para la
detección de movimiento se muestra en la figura 16.
Figura 16.- Modo adquisición de desplazamiento de un “ratón de bola”.
El controlador de ratón, que es normalmente un microcontrolador de uso
especifico, usa el número y secuencia de pulsos de los fototransistores para
determinar la rapidez y sentido de movimiento del ratón.
42
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
2.7.2 Ratón óptico.
La primera generación de este tipo de ratones tiene internamente dos ventanas
que se encuentran en la cara inferior y que hace contacto con la zona de
movimiento. Dos LED's alumbran la superficie sobre la que se mueve el ratón. Uno
de ellos produce una luz roja visible mientras que el otro produce una luz
infrarroja. Estas luces se reflejan y vuelven a entrar por las mismas ventanas,
siendo detectadas por dos fototransistores. La superficie presentaba una rejilla de
líneas oscuras (que apenas reflejaban luz) sobre ella. Al mover el ratón, el haz de
luz es interrumpido un cierto número de veces por las líneas, lo que permite
conocer el desplazamiento y la velocidad [61]. El funcionamiento general se
muestra en la figura 17.
Figura 17.- Modo de adquisición de desplazamiento de un ratón óptico de 1ra generación.
Los ratones ópticos de segunda generación contienen básicamente una
pequeña cámara (que toma unas 1.500 imágenes por segundo) como lo muestra
la figura 18, un diodo emisor de luz roja (LED) y un programa de procesamiento
digital de imagen en tiempo real (DSP). El diodo emisor de luz (LED) ilumina la
superficie sobre la que se arrastra el ratón. La cámara captura imágenes de la
superficie y las envía a un procesador digital de señales (DSP). El programa que
se ejecuta sobre el DSP es capaz de detectar patrones sobre cada imagen
recibida, como lo muestra la figura 19. Estudiando las imágenes sucesivas, el DSP
averigua el patrón de desplazamiento y la velocidad [62].
43
MARCO TEÓRICO
Figura 18.- Modo de adquisición de desplazamiento de un ratón óptico de 2da generación.
Figura 19.- Secuencia de imágenes que el sensor de un ratón óptico de 2da generación.
2.7.3 Ratón Laser.
Estos ratones sustituyen el sensor óptico por un laser de clase 1 que es inofensivo
para el ser humano. Funciona de forma similar al ratón óptico basado en LED,
como se observa en la figura 20. Este tipo de ratones tiene una mayor velocidad
de respuesta y una mejor precisión funcionando bien en superficies suaves y
reflectantes [63].
Figura 20.- Modo de adquisición de desplazamiento de un ratón laser.
44
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Para que las señales que envía el ratón a la computadora puedan ser
reconocidas por la misma, es necesario que el sistema operativo identifique el
protocolo que utiliza el ratón. Desde la aparición del primer ratón de computadora,
han evolucionado distintas interfaces de comunicación de este dispositivo con la
computadora.
2.8 Protocolo de envío de datos de un ratón USB compatible con HID.
En la actualidad, el estándar y protocolo más utilizado para ratones de
computadora es el USB, por lo que se requiere analizar las características de
envío de datos para la implementación del filtro. En concreto, de los ratones USB,
el protocolo más utilizado es el compatible con HID.
El estado de un ratón USB compatible con HID consta de 4 elementos:
Estado del botón derecho (presionado o suelto), estado del botón izquierdo
(presionado o suelto), desplazamiento en el eje X del ratón y desplazamiento en el
eje Y del ratón. Pueden ser mas estados dependiendo del modelo del ratón,
siendo opciones como un tercer botón o una rueda (scroll).
Un ratón USB compatible con HID envía un paquete de 4 bytes los cuales
corresponden a la configuración de la tabla 5:
Tabla 5.- Datos que contiene cada byte que envía el ratón a la PC.
Byte 1 estado de
los botones.
Byte 2 movimiento
en eje x.
Byte 3 movimiento
en eje y.
Byte 4 movimiento
del scroll.
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit2
Bit 1
0
0
0
0
1
Medio
Derecho
Izquierdo.
Bit que indica el sentido de
Cantidad de pixeles de movimiento. El bit 0 indica el valor
movimiento, positivo (valor "0") o
menos significativo. El bit 6 indica el valor más significativo. El
negativo (valor "1").
valor máximo posible, equivalente al sistema decimal, es el 127.
Bit que indica el sentido de
Cantidad de pixeles de movimiento. El bit 0 indica el valor
movimiento, positivo (valor "0") o
menos significativo. El bit 6 indica el valor más significativo. El
negativo (valor "1").
valor máximo posible, equivalente al sistema decimal, es el 127.
0
0
Botó
Botó
Magnitud de giro de la rueda media.
n #5
n #4
Los valores posibles van de -8 a 7.
45
MARCO TEÓRICO
Conociendo la teoría del protocolo de un ratón USB compatible con HID, se
confirmó el envío de estos paquetes de datos con un ratón de estas
características; se utilizó el programa computacional Driver Wizard WinDriver
V10.10 Jungo [64], el cual es un analizador de puertos que permite observar los
paquetes de datos que llegan a los diferentes puertos del equipo de cómputo. La
interfaz se muestra en la figura 21.
Figura 21.- Interfaz del programa computacional WinDriver.
Se corroboró que los datos de entrada al puerto coinciden con la teoría y
con el estado del ratón, como se observa en la figura 22.
46
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Figura 22.- Adquisición de la señal que envía un ratón estándar bajo el protocolo USB.
Para ejemplificar, se analiza la primer línea de la imagen anterior, formada
por 4 grupos de 4 bytes cada uno.
Tabla 6.- Datos del protocolo correspondiente a la primer línea de la figura 22.
Byte 4
Byte 3
Byte 2
Byte 1
Grupo 1.
Sin movimiento
Movimiento eje Y 2
Movimiento eje X, 2
Sin botones
0x00020200
Scroll.
pixeles positivos.
pixeles positivos.
presionados.
Grupo 2.
Sin movimiento
Movimiento eje Y, 6
Movimiento eje X, 14
Sin botones
0x00FA0E00
Scroll.
pixeles negativos.
pixeles positivos.
presionados.
Grupo 3.
Sin movimiento
Movimiento eje Y, 9
Movimiento eje X, 24
Sin botones
0x00F71800
Scroll.
pixeles negativos.
pixeles positivos.
presionados.
Grupo 4.
Sin movimiento
Movimiento eje Y, 8
Movimiento eje X, 21
Sin botones
0x00F81500
Scroll.
pixeles negativos.
pixeles positivos.
presionados.
47
MARCO TEÓRICO
Cuando los movimientos del ratón en sus 3 modalidades, eje "X", eje "Y" y
rueda media son positivos (el valor del bit 8 es "0"), las lecturas se hacen en forma
directa, utilizando el valor del byte en la cantidad de pixeles que se desplazará el
cursor de la pantalla en un intervalo de tiempo de 8 ms (tiempo de muestreo del
ratón). Si los movimientos son negativos (el bit 8 tiene un valor de "1"), al valor del
byte se le aplica la técnica de complemento a dos, es decir, a la lectura obtenida
se le invierten todos los bits (complemento) y a la cantidad obtenida se suma 1 bit,
y la cantidad resultante será la magnitud de desplazamiento negativo de pixeles
que el cursor de pantalla tendrá.
Un ratón convencional USB es un dispositivo de baja velocidad, con una
tasa de transferencia alrededor de 1,5 Mbps (15 millones de bits por segundo), es
decir 192 kB/s (192 mil bytes por segundo). Esta tasa se utiliza en su mayor parte
por dispositivos de interfaz humana (HID) como los teclados, los ratones, las
cámaras web, etc. Un ratón convencional USB envía el paquete de datos a la
computadora con una frecuencia de 125 Hz.
Esta frecuencia se comprobó al analizar la comunicación entre un ratón
USB compatible con HID y un equipo de cómputo; por medio de una conexión que
derivaba las 2 terminales de comunicación USB (D+ y D-, figura 23); se analizó la
trama de datos entre estos dos dispositivos por medio de un osciloscopio. El ratón
se mantuvo en constante movimiento durante el análisis.
Figura 23.- Adaptador para analizar la comunicación USB entre el ratón y la computadora.
48
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Posteriormente se energizó el osciloscopio y una vez calibrado el periodo
por división y el voltaje por división, se tomo una lectura fotográfica (figura 24) de
los valores de voltaje del bus de transmisión USB.
Envío de datos del
estado del ratón.
Periodo de envío de datos:
8 ms.
Figura 24.- Captura instantánea del osciloscopio durante la transmisión de datos.
Durante el análisis visual se observó que aproximadamente cada 8
milisegundos se envían datos del ratón a la computadora, es decir, que la
frecuencia en el envío de datos del ratón a la computadora es alrededor de 125
HZ. Debido a la velocidad de envío de los bytes y a la resolución gráfica del
osciloscopio es imposible observar los cambios en los niveles de voltaje del bus,
correspondientes a un periodo de envío de datos por el ratón. Para visualizar
estos cambios de voltaje, es necesario disminuir la escala de tiempo del
osciloscopio. En la figura 25 se tiene un ejemplo de visualización en el momento
en que se conecta el ratón a un puerto USB; la visualización se realizó calibrando
el osciloscopio a una escala de 5 microsegundos por división.
49
MARCO TEÓRICO
Figura 25.- Captura instantánea del osciloscopio durante la transmisión de datos 2.
Se puede observar que existen cambios de voltaje en el bus de datos USB.
Este bus es síncrono y utiliza el algoritmo de codificación NRZI ("Non Return to
Zero Inverted") ("No retorno a cero invertido"). En este sistema existen dos líneas
de datos, ambas con voltajes opuestos (D+ y D-); una tensión de referencia
corresponde a un "1", pero no hay retorno a cero entre bits, de forma que una
serie de "unos" corresponde a un voltaje uniforme en cada línea; en cambio los
ceros se marcan como cambios del nivel de tensión, de modo que una sucesión
de ceros produce sucesivos cambios de tensión entre los conductores de señal.
Para ejemplificar este sistema de envío se tiene como ejemplo la figura 26.
Figura 26.- Trama de datos en síncronos en binario y codificación NRZI.
50
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
La figura anterior muestra la secuencia de datos enviados utilizando el
código NRZI equivalente de un dato binario. Las tensiones de las líneas D+ y Dintercambian sus valores de voltaje sólo cuando se envía un "0" lógico. Cuando se
envía un "1" lógico, el voltaje de las líneas D+ y D- permanecen constante.
51
MARCO TEÓRICO
52
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
CAPÍTULO 3
Desarrollo
3.1 Introducción
Para implementar el filtro a utilizar, es necesario desarrollar el dispositivo
computacional donde será implementado. En la figura 27 se muestra el diagrama
de bloques general del funcionamiento del sistema propuesto para cancelar la
vibración contenida en la señal utilizada para posicionar el cursor.
Figura 27.- Diagrama de bloques general del sistema propuesto.
El sistema propuesto consiste en diseñar un módulo de adquisición,
procesamiento y envío de datos que se integre a un ratón USB compatible con
HID, con el fin de tratar los datos obtenidos de la manipulación del ratón por parte
del usuario, implementar el filtro digital para la cancelación de la señal del temblor
adquirido por el desplazamiento del ratón y enviar los datos obtenidos con el
protocolo de un ratón USB compatible con HID.
53
DESARROLLO
3.2 Desarrollo del dispositivo computacional: ratón USB.
Se realizaron las siguientes actividades:
a) Investigación y análisis de los componentes internos de un ratón USB
compatible con HID.
b) Diseño electrónico del dispositivo computacional.
c) Adquisición de componentes necesarios para el desarrollo del prototipo.
d) Desarrollo del circuito electrónico.
e) Montaje y pruebas del dispositivo.
3.2.1 Investigación y análisis de los componentes internos de un ratón USB
compatible con HID.
Se adquirieron 3 diferentes ratones USB compatibles con HID (figura 28),
se desarmaron y se observó el circuito interno en cada uno de ellos. Los modelos
elegidos fueron:
1.
2.
3.
Ratón USB óptico, marca Microsoft, Modelo P58-00031.
Ratón USB óptico, marca Genius, Modelo Gm-03021u/a.
Ratón USB óptico, marca Ativa, Modelo Lynx-L7R.
1)
2)
3)
Figura 28.- Ratones USB para computadora, utilizados para conocer su circuitería.
54
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Los ratones para computadora se integran por 3 tipos de sensores:


Sensor para reconocimiento del estado de los botones.
Sensor para reconocimiento del giro de la rueda media.

Sensor para reconocimiento del desplazamiento del ratón.
Tabla 7.- Componentes internos dentro de los ratones adquiridos.
Microsoft
Genius
Ativa
Modelo del ratón.
P58-00031
Gm-03021u/a
Lynx-L7R
Sensor de botones.
Electro-mecánico.
Electro-mecánico.
Electro-mecánico.
Sensor de rotación.
Óptico
Óptico-mecánico
Óptico-mecánico
Sensor de movimiento
S2083
Adns-2610
Controlador.
Cy7c63723
0424f9yp3-dy29
Pan3511dk
Se analizaron las señales eléctricas que envía los botones y el codificador
rotatorio con la finalidad de diseñar el circuito que acoplaría estas señales con el
microcontrolador.
Se investigó el protocolo para entablar una comunicación con los sensores
de movimiento; se eligió el sensor ADNS-2610 (figura 29) (anexo 3) ya que de los
sensores disponibles en el mercado, este sensor fue el más económico.
Figura 29.- Sensor elegido para detectar el movimiento del ratón.
55
DESARROLLO
3.2.2 Diseño del módulo electrónico
De acuerdo al diagrama de conexiones que presenta el circuito original del
ratón (ver anexo 4), se procedió a diseñar un circuito que permite adquirir las
señales de la placa original, acoplarlas al microcontrolador y procesarlas (ver
anexo 5).
3.2.3 Adquisición de componentes para el desarrollo del módulo electrónico.
En la tabla 8 se muestra la lista de los componentes requeridos para el
desarrollo del ratón computacional.
Tabla 8.- Componentes adquiridos para el desarrollo del ratón USB.
Componentes del prototipo de ratón USB.
PIC18F2550 (ver anexo 6).
$72,00
Ratón marca Ativa modelo Lynx-L7R
$79,00
Placa fenólica 15cmx15cm
$23,00
Cable para conexiones UTP (metro)
$10,00
Sensor ADNS 2610
$27.00
Tubo de 20 gramos de soldadura aleación estaño/plomo (60/40
$19,00
Componentes electrónicos diversos
$100,00
TOTAL $360,00
3.2.4 Desarrollo del circuito electrónico.
Se concluyó que se podía utilizar el circuito original del ratón marca Ativa
modelo Lynx-L7R, evitando desarrollar otra placa para el circuito base; el proceso
consistió en retirar el circuito integrado original (que realizaba la función de sensor
y controlador), sustituyéndolo por unos postes (figura 30) que enviarían los datos
contenidos en sus terminales a otra placa que debía ser diseñada.
56
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Retiro del sensor original,
sustitución por postes.
Figura 30.- Circuito original del ratón marca Ativa, sustituyendo el sensor por unos postes.
Se diseñó la placa sobre la cual estarían montados los componentes
electrónicos que enlazarían las señales de la placa original con el microcontrolador
(figura 31). La placa se desarrolló utilizando la máquina de circuitos impresos del
laboratorio de Electrónica de Potencia, CENIDET. El diagrama de la disposición
física del módulo desarrollado se presenta en el anexo 7. La lista de materiales
utilizados se encuentra en el anexo 8.
Figura 31.- Placa diseñada para montaje sobre la placa original.
57
DESARROLLO
En la figura 32 se presenta el diagrama de bloques de las señales
adquiridas, contenidas y generadas dentro de un ratón USB compatible con HID
enlazadas al módulo electrónico desarrollado.
Figura 32.- Diagrama de las señales contenidas en el sistema de un ratón USB compatible
con HID enlazadas al módulo electrónico desarrollado.
3.2.5 Montaje y pruebas del módulo desarrollado.
Se montaron todos los componentes electrónicos para posteriormente
insertar la placa desarrollada en la posición requerida y finalmente soldar los
postes (figura 33).
a)
b)
Figura 33.- a) Vista superior, b) Vista lateral del circuito final del prototipo de ratón USB.
58
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Por último, al microcontrolador se le grabó el código que permite adquirir el
desplazamiento del ratón, el estado de los botones y los giros de la rueda media;
para esto se utilizó el módulo Pickit2 [65] mostrado en la figura 34 y 35.
a)
b)
Figura 34.- Programación de microcontrolador del prototipo de ratón . a) prototipo de ratón
listo para programación. b) Módulo de programación Pickit2.
Figura 35.- Interfaz para programación del microcontrolador 18f2550 con Pickit2.
59
DESARROLLO
Al evaluar el giro de la rueda media, esta presentó complicaciones en su
funcionamiento, por lo que a la placa original del ratón se le sustituyó el sistema
para censar el giro de la rueda, sustituyéndolo por 2 resistencias de 1 KOhm
unidas por un extremo conectadas a tierra y cada una de las terminales de las
resistencias se conectó a 1 poste de aluminio, como se muestra en la figura 36.
Resistencias
unidas a tierra.
2 Postes de aluminio
Figura 36.- Sistema de censado para emular el giro de la rueda media del ratón.
A la carcasa inferior del ratón se le agregó una palanca unida a un resorte
de compresión sujetado a la base. Esta palanca puede tener movimientos, cuyos
desplazamientos están delimitados por el orificio de la superficie del ratón donde
originalmente se deslizaba la rueda, siendo los movimientos de la palanca
posibles solo hacia adelante y hacia atrás (figura 37). La palanca tiene un perno
que la atraviesa horizontalmente y, al energizar el ratón, este se energiza a 5 volts.
Palanca
Resorte de compresión
Orificio limitador
de movimiento
Perno
energizado
Figura 37.- Palanca adherida a la carcasa del ratón.
60
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Cuando la palanca se desplaza hacia adelante o hacia atrás, el perno que
lo atraviesa hace contacto con alguno de los postes de aluminio, energizando la
resistencia conectada a ese poste. La figura 38 muestra el módulo final
implementado en el ratón.
Cable de alimentación
del perno de la palanca
Zona de contacto
del perno
a)
b)
Figura 38.- Vista del circuito final para el ratón: a) desmontado; b) montado en la carcasa.
El código se desarrolló con la compilador PIC C E Compiler PCWHD
V.4.104 [66]. El código implementado procesa los datos de movimiento del ratón
por medio del filtro digital seleccionado y envía los datos con el protocolo de un
ratón USB compatible con HID.
El nombre asignado al prototipo final es REODA-MX (Ratón para la
Eliminación de Oscilaciones en el Desplazamiento del Apuntador). La figura 39
muestra el diseño final de REODA-MX.
61
DESARROLLO
Figura 39.- REODA-MX.
3.3 Adquisición y tratamiento de las señales eléctricas en REODA-MX.
A continuación se explican los procesos de adquisición del estado del ratón. En el
anexo 9 se encuentra el diagrama eléctrico de REODA-MX, útil para identificar y
asociar las distintas etapas abordadas en este tema.
3.3.1 Botón derecho, medio e izquierdo.
El microcontrolador 18f2550 tiene una función que permite reconocer un valor
lógico de acuerdo al voltaje al que se encuentra sometido la terminal donde se
realiza la medición; el microcontrolador utiliza la tecnología TTL, por lo que un
voltaje entre 0 y 0.8 volts en una terminal asignará un valor lógico "0" mientras que
un voltaje entre 2 y 5 volts en la terminal asignará un valor lógico "1".
Cuando se presiona cualquiera de los 3 botones, mecánicamente se cierra
un circuito eléctrico configurado con una resistencia de tensión positiva (pull-up)
en el cual la terminal del microcontrolador, en estado normal, se encuentra a una
tensión de 5 volts. Cuando el botón se presiona, cierra un circuito conectado a
tierra el cual incide directamente sobre la terminal del microcontrolador. Para evitar
62
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
un corto-circuito, se emplea una resistencia conectada entre la fuente de 5 volts, la
terminal del microcontrolador y el botón que cierra el circuito a tierra, como se
observa en la figura 40.
Figura 40.- Resistencia de tensión positiva (Pull-Up).
3.3.2 Palanca.
Para detectar el estado de la palanca, se emplea un sistema mecánico el cual
consta en una palanca metálica energizada a 5 volts. Existen 2 elementos de
contacto que se encuentran en una configuración de tensión negativa (pull-down)
conectados a 2 terminales del microcontrolador. Cuando la palanca hace contacto
con alguna de los 2 elementos de contacto, el voltaje en la terminal del
microcontrolador cambia a 5 volts. Para evitar un corto-circuito, se coloca una
resistencia conectada entre tierra, la terminal del microcontrolador y el elemento
de contacto que cierra el circuito a 5 volts, como se observa en la figura 41.
Figura 41.- Resistencia de tensión negativa (Pull-Down).
63
DESARROLLO
3.3.3 Interruptor de programación.
Este interruptor sirve para programar el microcontrolador. Debido a que algunas
de las terminales del microcontrolador involucradas en el circuito eléctrico también
se utilizan para cargar el programa por medio del puerto ICSP, se requiere abrir el
circuito de esta terminal cuando se inicia el modo de grabación; en modo de
funcionamiento normal, se requiere cerrar el circuito por medio del interruptor. Se
realizó esto debido a que el programador no reconocía el microcontrolador ya que
la terminal utilizada tiene comunicación con el sensor ADNS-2610 y esto causó
una doble comunicación creando un conflicto en los datos enviados y recibidos.
3.4 Lógica digital del filtro desarrollado.
El microcontrolador 18F2550 inicia la comunicación con el equipo de cómputo
para el reconocimiento del dispositivo y posteriormente comunicarse con los
botones, rueda media y el sensor de movimiento, procesa los datos obtenidos y
los envía. Para esto requieren distintas funciones en el microcontrolador; a
continuación se enlistan las funciones que realiza el microcontrolador.
1. Inicializar microcontrolador.
2. Inicializar puerto USB.
3. Inicializar sensor de movimiento.
4. Detectar estado del giro de la rueda media.
5. Leer desplazamiento en el eje X.
6. Leer desplazamiento en el eje Y.
7. Filtro de movimiento para el eje X.
8. Filtro de movimiento para el eje Y.
9. Detectar estado de los botones.
10. Habilitar puerto USB e interrupciones.
11. Enviar datos con protocolo de ratón USB compatible con HID.
12. Esperar 8 ms.
64
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
En la figura 42 se presenta el diagrama de bloques de las funciones del
microcontrolador. El código implementado se encuentra en el anexo 10.
Figura 42.- Diagrama de bloques de las funciones realizadas por el microcontrolador.
La figura anterior muestra la secuencia de funciones desarrolladas por el
microcontrolador. Al energizar el microcontrolador se realizan por única vez las
primeras 3 funciones (bloque de línea discontinua) y se continúa con las siguientes
funciones. Al concluir la función "esperar 8 ms", la siguiente función a realizar es la
"detección de giro de rueda media" generando un ciclo infinito con las 9 funciones
involucradas.
3.4.1 Función: "Inicializar microcontrolador".
Esta función carga las rutinas que se utilizarán durante las distintas funciones que
ejecutará el microcontrolador; su finalidad es identificar e interpretar el lenguaje de
programación con el lenguaje del microcontrolador utilizado, comunicar y enlazar
las instrucciones utilizadas durante la ejecución del programa. Define las
subfunciones que se utilizarán. Define las variables y constantes a utilizar, así
como el tipo de dato que manejarán. Configura los puertos de entrada y salida de
datos del microcontrolador. La figura 43 muestra la secuencia de subfunciones
que lleva a cabo la función "Inicializar microcontrolador".
65
DESARROLLO
Figura 43.- Diagrama de bloques de las subfunciones de la función "Inicializar
microcontrolador".
3.4.2 Función: "Inicializar puerto USB".
Esta función se encarga de inicializar la comunicación del microcontrolador con el
equipo de cómputo, enviando la información de su descriptor (características del
dispositivo), en este caso, está programado para emular el comportamiento de un
ratón USB compatible con HID. Las librerías requeridas para esta función se
utilizaron del programa computacional PCWHD Compiler [66], de la compañía
CCS Inc. Versión 4.104; los nombres de estas se nombran a continuación:
1.
2.
3.
4.
ex_usb_mouse.c
pic18_usb.h
usb_desc_mouse.h
usb.c
La figura 44 muestra la secuencia de subfunciones que lleva a cabo la función
"Inicializar puerto USB".
Figura 44.- Diagrama de bloques de las subfunciones de la función "Inicializar puerto USB".
66
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
1. Configuración total del dispositivo USB. Este campo indica al equipo de
cómputo las características de configuración del dispositivo. Para el caso de
un ratón USB compatible con HID se requieren 34 bytes (=0x22) divididos
en 4 descriptores los cuales son:
a) Descriptor de configuración: Este descriptor indica el dispositivo USB
con el que se realiza la comunicación. Para un ratón HID consta de 9
bytes donde cada uno tiene las características siguientes:




Byte 1: Indica la longitud del tamaño del descriptor (=0x09).
Byte 2: Indica el tipo de configuración (=0x02).
Byte 3 y 4: Indica la longitud de los datos de la configuración (0x22)
Byte 5: Indica el número de interfaces que soporta el dispositivo
(=0x01).
 Byte 6: Indica el identificador para esta configuración (=0x01).
 Byte 7: Indica el índice del descriptor de cadena para la
configuración (=0x00).
 Byte 8: Bit 1 al 5 no se usa. El bit 6=0 si no soporta la función remota
"despertar" (wake up), 1 si lo soporta. Bit 7=0 si el dispositivo no es
autoalimentado de energía, 1 si es autoalimentado. Bit 8=1.
 Byte 9: Indica el máximo poder requerido en el Bus. 2 mA por cada
bit (ejemplo =0x32 para 100 mA).
b) Descriptor de interface: Este descriptor indica el tipo de interfaz
desarrollada. Para un ratón HID consta de 9 bytes donde cada uno
tiene las características siguientes:









Byte 10: Indica la longitud del tamaño del descriptor (=0x09).
Byte 11: Indica la constante de interface (=0x04).
Byte 12: Indica el número que define la interfaz (=0x00).
Byte 13: Indica los parámetros alternativos (=0x00).
Byte 14: Indica el número de puntos finales excepto 0 (=0x01).
Byte 15: Indica el código de clase (=0x03 para HID).
Byte 16: Indica el código de subclase (=0x01).
Byte 17: Indica el código de protocolo (=0x02).
Byte 18: Indica el índice del descriptor de cadena para la interface
(=0x00).
67
DESARROLLO
c) Descriptor de clase: Este descriptor indica la clase de dispositivo USB
conectado. Para un ratón HID consta de 9 bytes donde cada uno tiene
las siguientes características:



Byte 19: Indica la longitud del tamaño del descriptor (=0x09).
Byte 20: Indica el tipo de descriptor (=0x21 para HID).
Byte 21 y 22: Indica el número de versión de la clase HID (=0x0110,
normalmente 1.1).
 Byte 23: Indica el código del país donde se localiza (0x00 para
ninguno).
 Byte 24: Indica el número de descriptores de clase HID que siguen
(=0x01).
 Byte 25: Indica el tipo de reporte de descriptor (=0x22 para HID).
 Byte 26 y 27: Indica la longitud de reporte del descriptor (0x00
normalmente).
d) Descriptor de punto final: Este descriptor indica el punto final que utiliza
el dispositivo USB. Para un ratón HID consta de 7 bytes donde cada
uno tiene las siguientes características:






Byte 28: Indica la longitud del tamaño del descriptor (=0x07).
Byte 29: Indica la constante de punto final (=0x05).
Byte 30: Indica el número y dirección del punto final (=0x81 EP1 IN).
Byte 31: Indica el tipo de transferencia soportada (0x03 para
interrupción).
Byte 32 y 33: Indica el máximo tamaño de paquete soportado
(=0x04).
Byte 34: Indica el intervalo de muestreo (=0xA0, no puede ser menor
de 10 ms para dispositivos de velocidad lenta).
Posteriormente se le indican al equipo de cómputo las características
particulares del dispositivo las cuales son:
2. Descriptor del dispositivo: Este descriptor indica el nombre comercial del
dispositivo, representado en código ASCCI. Dependiendo del tamaño del
nombre es la cantidad de bytes requeridos; el primer byte indica la cantidad
de bytes requeridos + 1.
68
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
3. Descriptor del fabricante: Este descriptor indica el nombre del fabricante del
dispositivo y el modelo del dispositivo. Cabe mencionar que, para ser
reconocido el dispositivo por el equipo de cómputo, es necesario registrar la
marca ante USB.org. Este descriptor requiere de 18 bytes donde cada uno
tiene las siguientes características:



Byte 1: Indica la longitud del tamaño del descriptor (=0x12).
Byte 2: Indica las constante del dispositivo (=0x01).
Byte 3 y 4: Indica la versión USB en código BCD (0x0110,
normalmente).
 Byte 5: Indica el código de clase (=0x00).
 Byte 6: Indica el código de subclase (=0x00).
 Byte 7: Indica el código de protocolo (=0x00).
 Byte 8: Indica el tamaño máximo de paquete para el punto final 0.
(0x08, 8 para dispositivos de baja velocidad).
 Byte 9 y 10: Indica la identificación del vendedor (consultar lista de
Vendor ID).
 Byte 11 y 12: Indica la identificación del producto (Consultar lista de
Product ID).
 Byte 13 y 14: Indica el número de versión del dispositivo.
 Byte 15: Índice del descriptor de cadena del fabricante.
 Byte 16: Índice del descriptor de cadena del producto.
 Byte 17: Índice del descriptor de cadena del número serial (0x00).
 Byte 18: Número de configuraciones posibles (0x00).
4. Descriptor del reporte HID: Este descriptor, en términos generales, se utiliza
para indicarle al equipo computacional que se requiere de un controlador,
en este caso, para un ratón compatible con HID, cuyo descriptor deberá ser
el siguiente:
Tabla 9.- Descriptor de reporte HID para un ratón USB compatible con HID.
Byte.
1y2
3y4
5y6
7y8
9 y 10
11 y 12
13 y 14
15 y 16
Valor
0x0105
0x0209
0x01A1
0x0109
0x00A1
0x0905
0x0119
0x0529
Significado.
Uso de la página (controles genéricos de escritorio).
Uso (ratón).
Colección (Aplicación).
Uso (Apuntador).
Colección (Física).
Uso de la pagina (Botón).
Uso mínimo (1).
Uso máximo (5).
69
DESARROLLO
17 y 18
19 y 20
21 y 22
23 y 24
25 y 26
27 y 28
29 y 30
31 y 32
33 y 34
35 y 36
37 y 38
39 y 40
41 y 42
43 y 44
45 y 46
47 y 48
49 y 50
51
52
0x0015
0x0125
0x0595
0x0175
0x0281
0x0195
0x0375
0x0181
0x0105
0x3009
0x3109
0x3809
0x8115
0x7F25
0X0875
0x0395
0X0681
C0
C0
Mínimo lógico (0).
Máximo lógico (1).
Reporte de cuenta (5).
Tamaño de reporte (1).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Reporte de cuenta (1).
Tamaño de reporte (3).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Uso de la página (controles genéricos de escritorio).
Uso (X).
Uso (Y).
Uso (rueda media).
Mínimo lógico (-127).
Máximo lógico (127).
Tamaño de reporte (8).
Reporte de cuenta (3).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Fin de colección
Fin de colección.
5. Descriptor de marca del producto. Este descriptor indica la marca del
producto; la cantidad de bytes es variable para cada marca y, a diferencia
de los primeros 3 descriptores, en este el primer byte no reporta la cantidad
de bytes necesarios.
A continuación se muestran ejemplos del protocolo de 2 ratones USB
compatibles con HID donde se identifican los parámetros anteriores. Para esto se
utilizó el programa computacional USBlyzer V1.6 [67] el cual es una herramienta
que permite analizar los datos que transitan por diversos puertos de algún equipo
computacional, con el fin de identificar el dispositivo conectado, así como para
depurar el código de dispositivos desarrollados, logrando identificar errores en el
protocolo.
Para el primer ejemplo se analizó el puerto USB de un equipo
computacional al cual se conecto al puerto USB un ratón óptico, marca Microsoft,
Modelo P58-00031. El programa computacional USBlyzer muestra, en la figura 45,
la captura de la interfaz en el instante de tiempo en que se conecta el ratón USB.
En esta imagen se manifiestan los tiempos en que se realiza la comunicación y los
datos obtenidos de del dispositivo.
70
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Figura 45.- Captura de transferencia de datos del ratón de marca Microsoft.
71
DESARROLLO
A continuación se realiza el análisis de los 5 descriptores del dispositivo
computacional.
Tabla 10.- Configuración total del dispositivo del ejemplo 1.
Descriptor de configuración.
Byte
1
2
3y4
5
6
7
8
Valor
0x09
0x02
0x0022
0x01
0x01
0x00
0xA0
9
0x32
Significado
Longitud del tamaño del descriptor: 9 bytes.
Tipo de configuración.
Longitud de los datos de la configuración: 34 bytes
Número de interfaces que soporta el dispositivo: 1.
Identificador para la configuración.
Índice del descriptor de cadena para la configuración.
Bit 6 = 1 el sistema soporta la función remota despertar (wake up). Bit 7 = 0 el sistema
no es autoalimentado.
Máximo poder requerido en el Bus: 100 mA.
Descriptor de interfaz
10
11
12
13
14
15
16
17
18
0x09
0x04
0x00
0x00
0x01
0x03
0x01
0x02
0x00
Longitud del tamaño del descriptor: 9 bytes.
Constante de interfaz: 4.
Número que define la interfaz: 0.
Parámetros alternativos: 0.
Número de puntos finales: 1.
Código de clase: 3.
Código de subclase: 1.
Código de protocolo: 2.
índice del descriptor de cadena para la interface: 0.
Descriptor de clase.
19
20
21 Y 22
23
24
25
26 y 27
0x09
0x21
0x0110
0x00
0x01
0x22
0x0034
Longitud del tamaño del descriptor: 9 bytes.
Tipo de descriptor: 33.
Número de versión de la clase HID: 1.1.
Código del país donde se localiza: 0.
Número de descriptores de clase HID que siguen: 1.
Tipo de reporte de descriptor: 34.
Longitud de reporte del descriptor: 34.
Descriptor de punto final.
28
29
30
31
32 y 33
34
0x07
0x05
0x81
0x03
0x0004
0x0A
Longitud del tamaño del descriptor: 7.
Constante de punto final: 5.
Número y dirección del punto final: 129.
Tipo de transferencia soportada: 3.
Máximo tamaño de paquete soportado: 4.
Intervalo de muestreo: 10 ms.
La configuración total del dispositivo corresponde a la de un ratón USB HID.
72
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tabla 11.- Descriptor del dispositivo del ejemplo 1.
Byte
1
Valor
0x28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
0x03
0x42
0x00
0x61
0x00
0x73
0x00
0x69
0x00
0x63
0x00
0x20
0x00
0x4F
0x00
0x70
0x00
0x74
0x00
0x69
0x00
0x63
0x00
0x61
0x00
0x6C
0x00
0x20
0x00
0x4D
0x00
0x6F
0x00
0x75
0x00
0x73
0x00
0x65
0x00
Significado
Longitud del tamaño del
descriptor: 40 bytes.
Fin de texto.
Letra: B
Carácter nulo.
Letra: a
Carácter nulo.
Letra: s
Carácter nulo.
Letra: i
Carácter nulo.
Letra: c
Carácter nulo.
Espacio
Carácter nulo.
Letra: O
Carácter nulo.
Letra: p
Carácter nulo.
Letra: t
Carácter nulo.
Letra: i
Carácter nulo.
Letra: c
Carácter nulo.
Letra: a
Carácter nulo.
Letra: l
Carácter nulo.
Espacio
Carácter nulo.
Letra: M
Carácter nulo.
Letra: o
Carácter nulo.
Letra: u
Carácter nulo.
Letra: s
Carácter nulo.
Letra: e
Carácter nulo.
Texto obtenido: " Basic Optical Mouse ".
73
DESARROLLO
Tabla 12.- Descriptor del fabricante del ejemplo 1.
Descriptor de configuración.
Byte
1
2
3y4
5
6
7
8
9 y 10
11 y 12
13 y 14
15
16
17
18
Valor
0x12
0x02
0x0110
0x00
0x01
0x00
0x08
0x045E
0x0084
0x0000
0x01
0x02
0x00
0x01
Significado
Longitud del tamaño del descriptor: 18 bytes.
Constante del dispositivo: 2
Versión USB: 1.1
Código de clase: 0.
Código de subclase: 1.
Código de protocolo: 0.
Tamaño máximo de paquete para el punto final 0: 8.
Identificación del vendedor: 045E = Microsoft Corp.
Identificación del producto: 0084. = Basic Optical Mouse.
Versión del dispositivo: 0.
Descriptor de cadena del fabricante: 1.
Descriptor de cadena del producto: 2.
Descriptor de cadena del número serial: 0.
Número de configuraciones posibles: 1.
Tabla 13.- Descriptor del reporte HID del ejemplo 1.
Byte.
1y2
3y4
5y6
7y8
9 y 10
11 y 12
13 y 14
15 y 16
17 y 18
19 y 20
21 y 22
23 y 24
25 y 26
27 y 28
29 y 30
31 y 32
33 y 34
35 y 36
37 y 38
39 y 40
41 y 42
43 y 44
45 y 46
47 y 48
49 y 50
51
52
74
Valor
0x0105
0x0209
0x01A1
0x0109
0x00A1
0x0905
0x0119
0x0529
0x0015
0x0125
0x0595
0x0175
0x0281
0x0195
0x0375
0x0181
0x0105
0x3009
0x3109
0x3809
0x8115
0x7F25
0X0875
0x0395
0X0681
C0
C0
Significado.
Uso de la página (controles genéricos de escritorio).
Uso (ratón).
Colección (Aplicación).
Uso (Apuntador).
Colección (Física).
Uso de la pagina (Botón).
Uso mínimo (1).
Uso máximo (5).
Mínimo lógico (0).
Máximo lógico (1).
Reporte de cuenta (5).
Tamaño de reporte (1).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Reporte de cuenta (1).
Tamaño de reporte (3).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Uso de la página (controles genéricos de escritorio).
Uso (X).
Uso (Y).
Uso (rueda media).
Mínimo lógico (-127).
Máximo lógico (127).
Tamaño de reporte (8).
Reporte de cuenta (3).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Fin de colección
Fin de colección.
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tabla 14.- Descriptor de marca del producto del ejemplo 1.
Byte
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Valor
0x14
0x03
0x4D
0x00
0x69
0x00
0x63
0x00
0x72
0x00
0x6F
0x00
0x73
0x00
0x6F
0x00
0x66
0x00
0x74
0x00
Significado
Dispositivo de control 4.
Fin de texto.
Letra: M
Carácter nulo.
Letra: i
Carácter nulo.
Letra: c
Carácter nulo.
Letra: r
Carácter nulo.
Letra: o
Carácter nulo.
Letra: s
Carácter nulo.
Letra: o
Carácter nulo.
Letra: f
Carácter nulo.
Letra: t
Carácter nulo.
Texto obtenido: " Microsoft ".
Se puede observar, con los datos obtenidos de las 5 tablas anteriores, que
la información que envía el ratón USB compatible con HID al equipo de cómputo
corresponde completamente con las características del mismo. Las tablas 10 y 13
muestran las configuraciones de base de un ratón de computadora. La tabla 12
muestra las características propias del producto, siendo los identificadores clave
los bytes 9 al 14 que indican el vendedor, el producto y la versión del producto.
Las tablas 11 y 15 muestran las características del modelo del producto,
mostrando el modelo del producto y la marca del mismo, respectivamente.
Para el segundo ejemplo se analizó el ratón USB óptico, marca Genius,
Modelo Gm-03021u/a. El programa computacional USBlyzer muestra en la figura
46 los instantes de tiempo en que se realiza la comunicación y los datos obtenidos
de del dispositivo.
75
DESARROLLO
Figura 46.- Captura de transferencia de datos del ratón de marca Genius.
76
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
A continuación se realiza un análisis con los 5 descriptores del dispositivo
computacional.
Tabla 15.- Configuración total del dispositivo del ejemplo 2.
Descriptor de configuración.
Byte
1
2
3y4
5
6
7
8
Valor
0x09
0x02
0x2200
0x01
0x01
0x00
0xA0
9
0x32
Significado
Longitud del tamaño del descriptor: 9 bytes.
Tipo de configuración.
Longitud de los datos de la configuración: 34 bytes
Número de interfaces que soporta el dispositivo: 1.
Identificador para la configuración.
Índice del descriptor de cadena para la configuración.
Bit 6 = 1 el sistema soporta la función remota despertar (wake up). Bit 7 = 0 el sistema
no es autoalimentado.
Máximo poder requerido en el Bus: 100 mA.
Descriptor de interfaz
10
11
12
13
14
15
16
17
18
0x09
0x04
0x00
0x00
0x01
0x03
0x01
0x02
0x00
Longitud del tamaño del descriptor: 9 bytes.
Constante de interfaz: 4.
Número que define la interfaz: 0.
Parámetros alternativos: 0.
Número de puntos finales: 1.
Código de clase: 3.
Código de subclase: 1.
Código de protocolo: 2.
índice del descriptor de cadena para la interface: 0.
Descriptor de clase.
19
20
21 Y 22
23
24
25
26 y 27
0x09
0x21
0x0110
0x00
0x01
0x22
0x0034
Longitud del tamaño del descriptor: 9 bytes.
Tipo de descriptor: 33.
Número de versión de la clase HID: 1.1.
Código del país donde se localiza: 0.
Número de descriptores de clase HID que siguen: 1.
Tipo de reporte de descriptor: 34.
Longitud de reporte del descriptor: 34.
Descriptor de punto final.
28
29
30
31
32 y 33
34
0x07
0x05
0x81
0x03
0x0004
0x0A
Longitud del tamaño del descriptor: 7.
Constante de punto final: 5.
Número y dirección del punto final: 129.
Tipo de transferencia soportada: 3.
Máximo tamaño de paquete soportado: 4.
Intervalo de muestreo: 10 ms.
La configuración total del dispositivo corresponde a la de un ratón USB HID.
77
DESARROLLO
Tabla 16.- Descriptor del dispositivo del ejemplo 2.
Byte
1
Valor
0x34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
0x03
0x4E
0x00
0x65
0x00
0x74
0x00
0x53
0x00
0x63
0x00
0x72
0x00
0x6F
0x00
0x6C
0x00
0x6C
0x00
0x20
0x00
0x2B
0x00
0x20
0x00
0x4D
0x00
0x69
0x00
0x6E
0x00
0x69
0x00
0x20
0x00
0x54
0x00
0x72
0x00
0x61
0x00
0x76
0x00
0x65
0x00
0x6C
0x00
0x65
0x00
0x72
0x00
Significado
Longitud del tamaño del
descriptor: 52 bytes.
Fin de texto.
Letra: N
Carácter nulo.
Letra: e
Carácter nulo.
Letra: t
Carácter nulo.
Letra: S
Carácter nulo.
Letra: c
Carácter nulo.
Letra: r
Carácter nulo.
Letra: o
Carácter nulo.
Letra: l
Carácter nulo.
Letra: l
Carácter nulo.
Delete
Carácter nulo.
Letra: +
Carácter nulo.
Delete
Carácter nulo.
Letra: M
Carácter nulo.
Letra: i
Carácter nulo.
Letra: n
Carácter nulo.
Letra: i
Carácter nulo.
Delete
Carácter nulo.
Letra: T
Carácter nulo.
Letra: r
Carácter nulo.
Letra: a
Carácter nulo.
Letra: v
Carácter nulo.
Letra: e
Carácter nulo.
Letra: l
Carácter nulo.
Letra: e
Carácter nulo.
Letra: r
Carácter nulo.
Texto obtenido: " NetScroll + Mini Traveler ".
78
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tabla 17.- Descriptor del fabricante del ejemplo 2.
Descriptor de configuración.
Byte
1
2
3y4
5
6
7
8
9 y 10
11 y 12
13 y 14
15
16
17
18
Valor
0x12
0x02
0x0110
0x00
0x01
0x00
0x08
0x0458
0x0036
0x0110
0x02
0x01
0x00
0x01
Significado
Longitud del tamaño del descriptor: 18 bytes.
Constante del dispositivo: 2
Version USB: 1.1
Código de clase: 0.
Código de subclase: 1.
Código de protocolo: 0.
Tamaño máximo de paquete para el punto final 0: 8.
Identificación del vendedor: 0458 = KYE Systems Corp. (Mouse Systems)
Identificación del producto: 0036. = Pocket Mouse LE
Versión del dispositivo: 1.1.
Descriptor de cadena del fabricante: 2.
Descriptor de cadena del producto: 1.
Descriptor de cadena del número serial: 0.
Número de configuraciones posibles: 1.
Tabla 18.- Descriptor del reporte HID del ejemplo 2.
Byte.
1y2
3y4
5y6
7y8
9 y 10
11 y 12
13 y 14
15 y 16
17 y 18
19 y 20
21 y 22
23 y 24
25 y 26
27 y 28
29 y 30
31 y 32
33 y 34
35 y 36
37 y 38
39 y 40
41 y 42
43 y 44
45 y 46
47 y 48
49 y 50
51
52
Valor
0x0105
0x0209
0x01A1
0x0109
0x00A1
0x0905
0x0119
0x0529
0x0015
0x0125
0x0595
0x0175
0x0281
0x0195
0x0375
0x0181
0x0105
0x3009
0x3109
0x3809
0x8115
0x7F25
0X0875
0x0395
0X0681
C0
C0
Significado.
Uso de la página (controles genéricos de escritorio).
Uso (ratón).
Colección (Aplicación).
Uso (Apuntador).
Colección (Física).
Uso de la pagina (Botón).
Uso mínimo (1).
Uso máximo (5).
Mínimo lógico (0).
Máximo lógico (1).
Reporte de cuenta (5).
Tamaño de reporte (1).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Reporte de cuenta (1).
Tamaño de reporte (3).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Uso de la página (controles genéricos de escritorio).
Uso (X).
Uso (Y).
Uso (rueda media).
Mínimo lógico (-127).
Máximo lógico (127).
Tamaño de reporte (8).
Reporte de cuenta (3).
Entrada (Dato, Variable, Absoluto, Bit de campo).
Fin de colección
Fin de colección.
79
DESARROLLO
Tabla 19.- Descriptor de marca del producto del ejemplo 2.
Byte
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Valor
0x0E
0x03
0x47
0x00
0x65
0x00
0x6E
0x00
0x69
0x00
0x75
0x00
0x73
0x00
Significado
Shift Out.
Fin de texto.
Letra: G
Carácter nulo.
Letra: e
Carácter nulo.
Letra: n
Carácter nulo.
Letra: i
Carácter nulo.
Letra: u
Carácter nulo.
Letra: s
Carácter nulo.
Texto obtenido: " Genius ".
Se puede observar, con los datos obtenidos de las 5 tablas anteriores, que
la información que envía el ratón USB compatible con HID al equipo de cómputo
también corresponde a las características del mismo. Las tablas 15 y 18 muestran
las configuraciones de base de un ratón de computadora. La tabla 17 muestra las
características propias del producto, siendo los identificadores clave los bytes 9 al
14 que indican el vendedor, el producto y la versión del producto. Las tablas 16 y
19 muestran las características del modelo del producto, mostrando el modelo del
producto y la marca del mismo, respectivamente.
Se concluye que el protocolo utilizado por ambos dispositivos tiene la
finalidad de identificarse con el equipo computacional, establecer un controlador
adecuado y así iniciar la comunicación correspondiente, en este caso, al envío de
datos del estado del ratón computacional.
3.4.3 Función: "Inicializar sensor de movimiento".
Esta función inicializa al sensor de movimiento, realizando un reinicio del mismo
escribiendo a la dirección 0x00 el valor 0x80. Posteriormente se le indica el modo
de funcionamiento donde trabajará en modo de suspensión después de 1 segundo
de inactividad (el LED rojo disminuirá la intensidad de iluminación), escribiendo a
80
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
la dirección 0x00 el valor 0x00. Para conocer los tiempos de escritura, se
recomienda observar el código adjunto en el anexo 9 y la hoja de datos del sensor,
contenido en el anexo 3.
3.4.4 Función: "Detectar estado del giro de la rueda media".
Esta función detecta el estado de la palanca, conociendo si se encuentra
accionada hacia adelante o hacia atrás, o si no se encuentra en uso, y permite
emular el giro de la rueda media del ratón. La forma de detectar el estado de la
palanca se describe en el tema 3.3.2.
Si la palanca se empuja, el estado lógico en la terminal 0 del puerto B será
de "1", y esto hará que la variable Palanca adopte el valor numérico "1". Si la
palanca se jala, el estado lógico en terminal 1 del puerto B será "1", y esto hará
que la variable Palanca adopte el valor numérico "255". Si la palanca no se
acciona, la variable Palanca adoptará el valor numérico "0". La figura 47 muestra
la rutina para detectar el estado de la palanca.
Figura 47.- Diagrama de flujo de la función "Detectar el estado de giro de la rueda media".
La variable Palanca tiene asignado un valor entero que puede ser, 0, 1, o
255.
81
DESARROLLO
3.4.5 Función: "Leer desplazamiento en el eje X".
Esta función realiza una comunicación con el sensor de movimiento para solicitarle
la información sobre el desplazamiento en el eje X que obtuvo durante los últimos
8 milisegundos. Esto se logra leyendo el registro 0x02 del sensor, de acuerdo a la
disposición física del mismo respecto al eje de movimiento asignado.
El movimiento del ratón en el eje X puede realizarse en 2 sentidos, por lo
que el sensor de movimiento debe detectar la magnitud y el sentido de
movimiento. Para esto utiliza el mismo protocolo que utiliza un ratón USB
compatible con HID, abordado en el tema 2.8. El microcontrolador realiza una
lectura del valor obtenido por el sensor y lo asigna a la variable EntradaX. Esta
cantidad es un entero positivo que puede adoptar los valores de 0 a 255.
3.4.6 Función: "Leer desplazamiento en el eje Y".
Esta función realiza una comunica con el sensor de movimiento para solicitarle la
información sobre el desplazamiento en el eje Y que obtuvo durante los últimos 8
milisegundos. Esto se logra leyendo el registro 0x03 del sensor, de acuerdo a la
disposición física del mismo respecto al eje de movimiento asignado. El valor
obtenido del sensor se asigna a la variable EntradaY.
3.4.7 Función: "Filtro de movimiento para el eje X".
Esta función Implementa el filtro digital utilizado para cancelar las oscilaciones
adquiridas por el sensor de movimiento en el eje X, obteniendo como resultado el
valor de desplazamiento que se utilizará para posicionar el cursor de la pantalla.
La rutina inicia comparando el valor del incremento proveniente del sensor, alojado
en la variable EntradaX. Si el movimiento del ratón fue hacia la derecha, los
valores que puede contener esta variable van de 1 a 127. Si el movimiento fue
82
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
hacia la izquierda, estos valores varían entre 255 y 128, donde un valor de 255 es
traducido como un movimiento de 1 pixel negativo y un valor de 128 se traduce
como un movimiento de 128 pixeles negativos. Por facilidad de tratamiento de
datos, cuando ocurren movimientos negativos, los valores numéricos también se
convierten en negativos. Posteriormente se actualizan los valores pasados del
sensor y las salidas pasadas del filtro; posteriormente se aplica el filtro Chebyshev.
Una vez obtenido el valor a la salida del filtro, se redondea al entero inmediato
inferior. El valor obtenido se limita, de tal modo que la salida nunca superará el
límite establecido de acuerdo al protocolo usado (-128 a 127).
Si el valor adquirido por el sensor es un cero y éste se adquiere por más de
5 veces consecutivas, la salida del filtro se omite y automáticamente adquirirá el
valor de 0, ya que esto se puede traducir como que el usuario dejó de sostener el
ratón con su mano y cualquier respuesta del filtro será debido a la acumulación de
valores que este tipo de filtro utiliza, ya que se trata de un filtro de respuesta
infinita al impulso (IIR).
La figura 48 muestra la secuencia de acciones que lleva a cabo la función
"Filtro de movimiento para el eje X".
Figura 48.- Diagrama de bloques de la función "Filtro de movimiento para el eje X".
La figura 49 presenta el diagrama de flujo de datos de esta función. El valor
introducido a esta función es el adquirido por la variable EntradaX.
83
DESARROLLO
Figura 49.- Diagrama de flujo de la función "Filtro de movimiento para el eje X".
La subrutina PromedioX sirve para mejorar la respuesta de la salida del
filtro. Se comprobó que, a pesar de filtrar la señal con el filtro Chebyshev, la
respuesta aun se presentaban oscilaciones, por lo que fue necesario identificar las
características de estas oscilaciones con el fin de eliminarlas.
Para identificar que existe un desplazamiento deseado por el usuario,
deben existir 25 respuestas del filtro consecutivas cuyo valor sea diferente de "0".
84
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Si esta condición ocurre, la respuesta número 26 se asigna a la variable
Promedio_actualXX. En caso de no cumplirse la condición de 25 respuestas
consecutivas, se reinicia el contador que enumera las respuestas no nulas y el
valor adquirido por la variable Promedio_actualXX es de "0". Si la condición de
25 respuestas consecutivas con incrementos NO NULOS está cumplida y se
adquiere algún incremento nulo, el conteo no se reiniciará inmediatamente; se
continuará utilizando el valor a la salida del filtro, siempre y cuando no supere la
cantidad de 5 incrementos nulos consecutivos. Si esto sucede, se reinicia el
conteo de la cantidad de muestras. En la figura 50 se muestra el diagrama de flujo
de la rutina PromedioX.
Figura 50.- Estructura de la rutina "PromedioX".
La subrutina RegresoX se encarga de asignar un valor de movimiento de
pixel de acuerdo al valor recibido de la rutina PromedioX, cuya variable de salida
es Promedio_actualXX. Esta rutina es la que permite asignar un desplazamiento
corto y e intermitente del cursor, o un desplazamiento largo y continuo, de acuerdo
85
DESARROLLO
al movimiento de la mano del usuario, con la finalidad de posicionar el cursor
incluso con un desplazamiento de 1 pixel de forma sencilla.
La rutina detecta cuando el usuario desea mover el cursor pocos pixeles,
haciendo una posicionamiento intermitente. Si el usuario continúa intentando
mover el cursor con incrementos pequeños, se inicia un posicionamiento
exponencial, que incrementa los desplazamientos. La rutina también permite
detectar que el usuario desea desplazar rápidamente el cursor, por lo que también
permite iniciar el movimiento del cursor de forma
instantanea y con
desplazamientos largos. Después de asignar el valor de desplazamiento del pixel,
convierte el valor de salida al protocolo de un ratón USB compatible con HID, que
va de 0 a 255 y el valor obtenido lo adquiere la variable DeltaXX. El diagrama de
flujo de esta subfunción se muestra en la figura 51.
Figura 51.- Diagrama de flujo de la subfunción "RegresoX".
86
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
3.4.8 Función: "Filtro de movimiento para el eje Y".
Esta función Implementa el filtro digital utilizado para cancelar las oscilaciones
adquiridas por el sensor de movimiento en el eje Y, obteniendo como resultado el
valor de desplazamiento que se utilizará para posicionar el cursor de la pantalla.
Las rutinas y subrutinas son las mismas que para el eje X, por lo cual no se
detallarán.
3.4.9 Función: "Detectar estado de los botones".
Esta función detecta el estado de los 3 botones del ratón, conociendo si se
encuentran accionados por el usuario, o si no se encuentra en uso. La forma de
conocer el estado del botón se abordó en el tema 3.3.1.
El primer botón del que se verifica su estado es el botón izquierdo. Se
identifica el estado lógico en la 4 del puerto B para conocer si este se encuentra
presionado o no. Si se encuentra presionado, el estado lógico de esa terminal será
de "0", por lo cual la variable a adoptará un valor numérico de "1", de lo contrario
adoptará un valor numérico de "0".
El segundo botón del que se verifica su estado es el botón derecho. Se
identifica el estado lógico en la terminal 3 del puerto B para conocer si este se
encuentra presionado o no. Si se encuentra presionado, el estado lógico de esa
terminal será de "0", y la variable b adoptará un valor numérico de "2", de lo
contrario adoptará un valor numérico de "0".
El último botón en verificar su estado es el botón central. Se identifica el
estado lógico en la terminal 2 del puerto B para conocer si este se encuentra
presionado o no. Si se encuentra presionado, el estado lógico de esa terminal será
de "0", y la variable c adoptará un valor numérico de "4", de lo contrario adoptará
un valor numérico de "0". El diagrama de flujo de la función "Detectar estado de
los botones" se muestra en la figura 52.
87
DESARROLLO
Figura 52.- Diagrama de flujo de la función "Detectar estado de los botones".
3.4.10 Función: "Habilitar puerto USB e interrupciones".
Esta función verifica la conexión del bus USB. Si la conexión muestra que el bus
USB está conectado y el periférico no está enlazado, esta función lo enlaza al
periférico USB, logrando que el equipo de cómputo comience el proceso de
enumeración (esto habilitará las interrupciones). Si la conexión muestra que el bus
USB no está enlazado y el periférico USB está funcionando, la función reiniciará el
periférico USB y esperará a que el dispositivo USB se reconecte y sea
enumerado.
88
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
3.4.11 Función: "Enviar datos con protocolo de ratón USB compatible con
HID".
Esta función recibe los datos obtenidos del estado del ratón, que son
representados con las variables a, b, c (estado de los botones), palanca (estado
de la rueda media del ratón), DeltaXX (desplazamiento del cursor eje X) y
DeltaYY (desplazamiento del cursor eje Y) y los agrupa en 4 bytes, utilizando el
protocolo de un ratón USB compatible con HID, visto en el tema 2.8. La función
prepara al puerto USB para indicarle al equipo de cómputo que el ratón se dispone
a enviar información sobre su estado, indicándole el tamaño del paquete de datos
y posteriormente envía estos. La figura 53 muestra el diagrama de flujo de la
función "Enviar datos con protocolo de ratón USB compatible con HID".
Figura 53.- Diagrama de flujo de la función " Enviar datos con protocolo de ratón USB
compatible con HID ".
De acuerdo al tema 2.8, se verificó que el envío de datos de un ratón USB
compatible con HID tiene un protocolo determinado que consta de 4 bytes. La
figura 54 muestra la secuencia de envío de estos datos y la información contenida
en esta secuencia.
89
DESARROLLO
Figura 54.- Secuencia de envío de datos del estado de un ratón USB compatible con HID.
Byte 1: Contiene la información del estado de los botones del ratón. A
continuación se describe la información contenida en cada bit:





Bit 1: Indica el estado del botón izquierdo del ratón.
Bit 2: Indica el estado del botón derecho del ratón.
Bit 3: Indica el estado del botón central del ratón.
Bit 4: Siempre 1.
Bit 5-8: para uso específico del dispositivo (normalmente 0).
Byte 2: Contiene la información del desplazamiento del ratón en el eje X. A
continuación se describe la información contenida en cada bit:


Bit 9-15: Indica la magnitud del desplazamiento del ratón.
Bit 16: Indica el sentido de desplazamiento del ratón. Si el ratón se
movió en sentido positivo en el eje x, el valor de este bit es 0, de lo
contrario será "1" y la magnitud de movimiento contenidos en los bits
9-15 se le aplicará la técnica de codificación de complemento a 2, es
decir, se obtendrá el valor del complemento de cada bit y dato
obtenido se le sumará un "1", y el nuevo valor será la magnitud de
desplazamiento en el eje x en sentido negativo.
Byte 3: Contiene la información del desplazamiento del ratón en el eje Y. A
continuación se describe la información contenida en cada bit:
90
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”


Bit 17-23: Indica la magnitud del desplazamiento del ratón.
Bit 24: Indica el sentido de desplazamiento del ratón. Si el ratón se
movió en sentido positivo en el eje Y, el valor de este bit es "0", de lo
contrario será "1" y la magnitud de movimiento contenidos en los bits
17-23 se le aplicará la técnica de codificación de complemento a 2,
es decir, se obtendrá el valor del complemento de cada bit y dato
obtenido se le sumará un "1", y el nuevo valor será la magnitud de
desplazamiento en el eje x en sentido negativo.
Byte 4: Contiene la información del giro de la rueda central (posición de la
palanca en REODA-MX). A continuación se describen la información contenida en
cada bit:





Bit 25-27: Indica la magnitud del giro de la rueda media.
Bit 28: Indica el sentido de giro de la rueda. Si el giro fué en sentido
positivo, el valor de este bit es 0, de lo contrario será "1" y la
magnitud de movimiento contenidos en los bits 1-3 se le aplicará la
técnica de codificación de complemento a 2, es decir, se obtendrá el
valor del complemento de cada bit y al dato obtenido se le sumará un
"1", y el nuevo valor será la magnitud de giro de la rueda media.
Bit 29: Indica el estado de un 4to botón.
Bit 30: Indica el estado de un 5to botón.
Bit 31 y 32: siempre 0.
3.4.12 Función: "Esperar 8 ms"
Esta función espera a que transcurran 8 ms, con el fin de respetar los tiempos de
envío de datos de un ratón USB compatible con HID. Una vez transcurrido este
tiempo, la función siguiente será la explicada en el tema 3.4.4.
91
DESARROLLO
92
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
CAPÍTULO 4
Pruebas y Resultados
4.1 Introducción.
Este capítulo contiene el proceso de validación de REODA-MX. Existe un
documento donde se proponen pruebas para validar el sistema Tech Filter [42]. En
este documento se proponen 2 pruebas: trazo de una espiral con el cursor y unión
de 9 puntos dispersos por la pantalla del equipo de cómputo, con el fin de evaluar
el porcentaje de atenuación de las vibraciones del cursor.
Con base en este documento se diseñó un protocolo de pruebas basado en
la necesidad de medir 5 parámetros que se requieren analizar durante el proceso
de posicionamiento del cursor, y que son útiles para la validación de REODA-MX.
Estos parámetros son:

Estabilidad del cursor (porcentaje de atenuación de la vibración)

Posicionamiento deseado del cursor.


Traslado deseado del cursor.
Relación de movimiento ratón-cursor.

Uso de botones.
4.2 Diseño e implementación de la pruebas para la evaluación de
REODA-MX.
Las pruebas se describen en un documento adicional titulado documento de
pruebas, disponible en el anexo 11. Cabe mencionar que al usuario que evaluó
las 3 aplicaciones computacionales (REODA-MX, Mouse Cage y Steady Mouse)
93
PRUEBAS Y RESULTADOS
solo se le aplicaron las pruebas 1, 2 y 3, ya que las pruebas 4, 5 y 6 requerían el
uso de los botones del ratón y, de acuerdo a lo observado al aplicar las primeras 3
pruebas, el usuario presentaba algunas pulsaciones involuntarias de los botones,
por lo que se omitieron estas pruebas. También se omitieron las pruebas 7 y 8 ya
que son un complemento de las pruebas 2 y 3, y la duración total de las primeras
3 pruebas alcanzó una un tiempo alrededor de 45 minutos, ya que el usuario no
había utilizado un equipo de cómputo y la familiarización con el dispositivo fue
tardada, aunado al tiempo requerido para explicar el funcionamiento del dispositivo
y corregir posturas de la mano y explicar instrucciones durante la realización de
las pruebas.
Las pruebas 1, 2 y 3 se aplicaron a la Sra. Silvia López Aranda con 54 años de
edad, quien no tenía un conocimiento previo del funcionamiento de un ratón para
computadora y que al momento de la prueba tenía a lo menos 5 años con la
enfermedad de Parkinson.
La figura 55 muestra la caligrafía de la persona a la que se le aplicaron las
pruebas. Se aprecia que, a pesar de ser legible, presenta alteraciones en la
trayectoria de escritura, producto de la enfermedad de Párkinson que padece el
usuario.
Figura 55.- Firma del usuario que participó en la validación de REODA-MX.
94
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Las pruebas no se pudieron aplicar a más personas con temblor en manos
debido a que fue muy difícil contactar gente con este padecimiento y con
experiencia en el uso de una computadora mediante el ratón, que permitiera
entender las pruebas. Hay que resaltar que este padecimiento se presenta en
mayor proporción en personas mayores a 65 años; al visitar lugares como asilos y
centros recreativos para personas de la tercera edad, las personas que
presentaron temblor en manos también presentaban problemas mentales
degenerativos que impidieron el entendimiento de las pruebas. Se recurrió a visitar
centros de neurología donde se pidió el apoyo de los médicos especializados para
contactar personas con este padecimiento, sin embargo no se tuvo éxito.
4.3 Comparación del desempeño de REODA-MX.
Para comparar el desempeño de REODA-MX, también se evaluaron 2 programas
computacionales que adquieren los datos enviados por el ratón de computadora,
los procesan y utilizan los valores de salida para posicionar el cursor; estos
programas son Mouse Cage y Steady Mouse y el objetivo de ambos consiste en
cancelar las oscilaciones que presenta el cursor, producto de la enfermedad de
Parkinson del usuario que manipula el ratón computacional.
Debido a la naturaleza de las pruebas que permiten cuantificar los 5
parámetros que se desean evaluar, se requiere conocer el posicionamiento del
cursor en la pantalla cada vez que el ratón envía información al equipo de
cómputo; para esto se desarrolló un programa computacional que adquiere las
posiciones del cursor aproximadamente cada 8 milisegundos, el cual es el tiempo
en el que el ratón envía información a la computadora. Este programa
computacional se creó utilizando el compilador DEV-C++ [68] de la compañía
BloodShed Software, cuya licencia es gratuita. A continuación se delimitan las
zonas de la pantalla utilizadas en las pruebas implementadas (figura 56).
95
PRUEBAS Y RESULTADOS
Figura 56.- Zonas de la pantalla evaluadas durante la realización de la prueba 3.
La zona rectangular de la letra B se delimita por los siguientes pixeles (x, y):

Esquina superior izquierda: pixeles (364, 345).

Esquina superior derecha: pixeles (381, 345).

Esquina inferior derecha: pixeles (381, 358).

Esquina inferior izquierda: pixeles (364, 358).
La zona rectangular de la letra C se delimita por los siguientes pixeles (x, y):

Esquina superior izquierda: pixeles (3, 646).

Esquina superior derecha: pixeles (21, 646).

Esquina inferior derecha: pixeles (21, 658).

Esquina inferior izquierda: pixeles (2, 658).
La zona rectangular de la letra D se delimita por los siguientes pixeles (x, y):

Esquina superior izquierda: pixeles (1346, 689).

Esquina superior derecha: pixeles (1363, 689).

Esquina inferior derecha: pixeles (1363, 702).

Esquina inferior izquierda: pixeles (1346, 702).
A continuación se presenta el análisis de los resultados de la aplicación de
la prueba 3, que consiste en trasladar el cursor entre las zonas delimitadas con
anterioridad y mantener el cursor dentro de la zona indicada en la prueba (Anexo
11). Las posiciones del cursor fueron obtenidas y la prueba fue video-grabada
para corroborar las posiciones adquiridas con el video.
96
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
4.3.1 Steady Mouse.
La figura 57 muestra la ruta que tuvo el cursor durante el desplazamiento de
la zona B a la zona C durante la realización de la prueba 3 utilizando el programa
computacional Steady Mouse.
Pixel de pantalla en el eje Y.
Pixel de pantalla en el eje X.
Figura 57.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con el
programa computacional Steady Mouse.
Se observa que el cursor tuvo una trayectoria de la zona B a la zona C con
oscilaciones de hasta, producto de la ganancia utilizada en el filtro implementado
en Steady Mouse. No se presentan vibraciones producto de la enfermedad de
Párkinson del usuario, sin embargo las oscilaciones resultantes impidieron un
trayecto directo entre ambas zonas, teniendo desviaciones de hasta 130 pixeles.
El tiempo de traslado desde el momento en que el cursor abandona la zona B y
entra por primera vez a la zona C es alrededor de 19.33 segundos.
En la figura 58 se describe la misma trayectoria para cada eje (X y Y)
respecto al tiempo expresado en muestras; las muestras fueron obtenidas cada 8
ms, periodo de envío de datos del ratón a la computadora.
97
PRUEBAS Y RESULTADOS
Muestra 0, 100,200,300,400,500,600,700
Pixel de pantalla en el eje X.
Zona delimitada
por la letra B
Zona delimitada
por la letra C
Pixel de pantalla en el eje Y.
Muestras con
periodo de 8 ms
Zona delimitada
por la letra B
Zona delimitada
por la letra C
Figura 58.- Zonas de convergencia entre el eje X y el eje Y en la zona B y C utilizando el
programa computacional Steady Mouse.
Las barras de color verde indican que solo durante ese tiempo el cursor se
mantuvo dentro de la zona B y C. Una vez que el cursor entró por primera vez a la
zona C, se adquirieron 750 muestras (6 segundos)
para conocer el
comportamiento del cursor en esta zona. Las 750 muestras inician en la muestra
2440 de la gráfica.
Al observar el video de la grabación de la prueba, se observó que el
usuario, al ingresar el cursor a la zona C, dejó de sostener firmemente el ratón de
manera que las oscilaciones de su mano dejaron de transmitirse al ratón, por lo
98
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
que las estabilidad del cursor dentro de esta zona se debe a esta condición de
manipulación del ratón y no a la funcionalidad del programa computacional Steady
Mouse.
En la figura 59 se muestra otra ruta que tuvo el cursor durante un intento
por posicionar y mantener el cursor dentro de la zona D.
Pixel de pantalla en el eje Y.
Pixel de pantalla en el eje X.
Figura 59.- Ruta de trayectoria del cursor para posicionarlo en el punto D durante la prueba
3 con el programa computacional Steady Mouse.
En la gráfica anterior se observa que el cursor tuvo oscilaciones que le
impidieron mantener una posición estática dentro de la zona D. Se cuantificó el
error (distancia máxima existente entre la posición del cursor fuera de la zona D y
la zona D) durante las primeras 810 muestras, mismas que inician su conteo
cuando el cursor ingresa por primera vez a la zona rectangular D. Las 810
muestras inician en la muestra 240 de la gráfica mostrada en la figura 60. En esta
figura se presenta la misma ruta de la figura 59, separando la posición del cursor
en cada eje de movimiento, medida con respecto al tiempo de muestreo.
99
PRUEBAS Y RESULTADOS
Muestra 0,
100,
200,
300,
400,
500,
600,
700,
800
Pixel de pantalla en el eje X.
Zona delimitada
por la letra D
Pixel de pantalla en el eje Y.
Muestras con
periodo de 8 ms
Zona delimitada
por la letra D
Figura 60.- Zona de convergencia entre el eje X y el eje Y en la zona D.
Las barras de color verde muestran los instantes de tiempo en que el cursor
se mantuvo dentro de la zona rectangular D. Se observa que el cursor nunca se
mantiene estable dentro de la zona D, debido al desempeño del programa
computacional Steady Mouse, impidiendo ubicar el cursor dentro de la zona
deseada. Después de alrededor de 7 segundos de intento, se finalizó la prueba sin
conseguir el objetivo. De acuerdo a la prueba 3, el desempeño de este programa
computacional permite eliminar las oscilaciones del cursor, producto de la
enfermedad de Párkinson del usuario, sin embargo agrega otras oscilaciones al
cursor, impidiendo realizar trayectos directos y ubicar el cursor dentro de zonas
requeridas.
100
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
4.3.2 Mouse Cage.
La figura 61 muestra la ruta que tuvo el cursor durante el desplazamiento de
zona B a la zona C durante la realización de la prueba 3 utilizando el programa
computacional Mouse Cage.
Pixel de pantalla en el eje Y.
Pixel de pantalla en el eje X.
Figura 61.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con el
programa computacional Mouse Cage.
Se observa que el cursor tuvo una trayectoria más directa entre la zona B y
la zona C a diferencia del desempeño del programa computacional Steady Mouse.
Sin embargo, al intentar posicionar el cursor dentro de la zona rectangular junto a
la letra C, el cursor presenta oscilaciones que impiden ubicarlo dentro de esta
zona, producto del temblor del Párkinson del usuario. El tiempo de traslado desde
el momento en que el cursor abandona la zona B y entra por primera vez a la zona
C es alrededor de 4.34 segundos.
En la figura 62 se describe la misma trayectoria para cada eje (X y Y) respecto al
periodo de muestreo (8 ms) el cual es el periodo de envío de datos del ratón a la
computadora.
101
PRUEBAS Y RESULTADOS
Pixel de pantalla en el eje X.
Muestra 0, 100,200,300,400,500,600,700
Zona delimitada
por la letra B
Zona delimitada
por la letra C
Pixel de pantalla en el eje Y.
Muestras con
periodo de 8 ms
Zona delimitada
por la letra B
Zona delimitada
por la letra C
Figura 62.- Zona de convergencia entre el eje X y el eje Y en la zona B y C utilizando el
programa computacional Mouse Cage.
Las barras de color verde indican que solo durante ese tiempo el cursor se
mantuvo dentro de la zona B y C. Una vez que el cursor entró por primera vez a la
zona C, se adquirieron 750 muestras (6 segundos)
para conocer el
comportamiento del cursor en esta zona. Las 750 muestras inician en la muestra
2111 de la gráfica.
Se observa que el cursor nunca se mantiene estable dentro de la zona C, debido
al desempeño del programa computacional Mouse Cage, ya que a pesar de lograr
un trayecto del cursor más directo, no es posible ubicar el cursor dentro de la zona
C. Después de alrededor de 7 segundos de intento, se finalizó la prueba sin
conseguir el objetivo. De acuerdo a la prueba 3, el desempeño de este programa
102
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
computacional no elimina todas las oscilaciones del cursor, producto de la
enfermedad de Párkinson del usuario impidiendo mantener el cursor dentro de
zonas deseadas.
En la figura 63 se muestra la ruta que tuvo el cursor durante intento por
posicionar y mantener el cursor dentro de la zona D.
Pixel de pantalla en el eje Y.
Pixel de pantalla en el eje X.
Figura 63.- Ruta de trayectoria del cursor para posicionarlo en el punto D durante la prueba
3 con el programa computacional Mouse Cage.
En la gráfica anterior se observa que el cursor tuvo oscilaciones que le
impidieron mantener una posición estática dentro de la zona D. Se cuantificó el
error (distancia máxima existente entre la posición del cursor fuera de la zona D y
la zona D) durante las primeras 810 muestras, mismas que inician su conteo
cuando el cursor ingresa por primera vez a la zona rectangular D. Las 810
muestras inician en la muestra 515 de la gráfica mostrada en la figura 64. En esta
figura se presenta la misma ruta de la figura 63, separando la posición del cursor
en cada eje de movimiento, medida con respecto al tiempo de muestreo.
103
PRUEBAS Y RESULTADOS
Muestra 0,
100,
200,
300,
400,
500,
600,
700,
800
Pixel de pantalla en el eje X.
Zona delimitada
por la letra D
Pixel de pantalla en el eje Y.
Muestras con
periodo de 8 ms
Zona delimitada
por la letra D
Figura 64.- Zona de convergencia entre el eje X y el eje Y en la zona D.
Las barras de color verde muestran los instantes de tiempo en que el cursor
se mantuvo dentro de la zona rectangular D. Se observa que el cursor nunca se
mantiene estable dentro de la zona D, debido al desempeño del programa
computacional Mouse Cage, impidiendo ubicar el cursor dentro de la zona
deseada. Después de alrededor de 7 segundos de intento, se finalizó la prueba sin
conseguir el objetivo. De acuerdo a la prueba 3, el desempeño de este programa
computacional no elimina completamente las oscilaciones del cursor, producto de
la enfermedad de Párkinson del usuario, y aunque los trayectos son más directos
que con el uso de Steady Mouse, las oscilaciones restantes del cursor impiden
posicionar el cursor dentro de zonas requeridas.
104
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
4.3.2 REODA-MX
La figura 65 muestra la ruta que tuvo el cursor durante el desplazamiento de
la zona B a la zona C durante la realización de la prueba 3 utilizando REODA-MX.
Pixel de pantalla en el eje Y.
Pixel de pantalla en el eje X.
Figura 65.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con REODAMX.
Se observa que el cursor tuvo una trayectoria segmentada entre la zona B y la
zona C, definida por trazos rectos y semi-rectos, sin oscilaciones presentes
durante el trayecto, a diferencia del desempeño del programa computacional
Mouse Cage y Steady Mouse. logrando ubicar el cursor dentro de la zona C. El
tiempo de traslado desde el momento en que el cursor abandona la zona B y entra
por primera vez a la zona C es alrededor de 80 segundos. Cabe mencionar que se
alcanzó este tiempo debido a que un buen desempeño de REODA-MX implica un
periodo de reconocimiento y adaptación en las funciones del mismo, factor que no
se tuvo con el usuario.
En la figura 66 se describe la misma trayectoria para cada eje (X y Y) respecto al
periodo de muestreo (8 ms) el cual es el periodo de envío de datos del ratón a la
computadora.
105
PRUEBAS Y RESULTADOS
Muestra 0, 750
Pixel de pantalla en el eje X.
Zona delimitada
por la letra B
Zona delimitada
por la letra C
Muestras con
periodo de 8 ms
Pixel de pantalla en el eje Y.
Zona delimitada
por la letra B
Zona delimitada
por la letra C
Figura 66.- Zona de convergencia entre el eje X y el eje Y en la zona B y C utilizando REODAMX.
Las barras de color verde indican que solo durante ese tiempo el cursor se
mantuvo dentro de la zona B y C. Una vez que el cursor entró por primera vez a la
zona C, se adquirieron 750 muestras (6 segundos)
para conocer el
comportamiento del cursor en esta zona. Las 750 muestras inician en la muestra
11718 de la gráfica.
Se observa que el cursor se mantiene estable dentro de la zona C, debido al
desempeño del dispositivo computacional REODA-MX, ya que elimina las
oscilaciones del cursor, producto de la enfermedad de Párkinson del usuario, así
como la detección y omisión de movimientos involuntarios, permitiendo ubicar y
106
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
mantener el cursor dentro de la zona C. Después de alrededor de 7 segundos de
intento, se finalizó la prueba consiguiendo el objetivo.
En la figura 67 se muestra la ruta que tuvo el cursor durante intento por
posicionar y mantener el cursor dentro de la zona D.
Pixel de pantalla en el eje Y.
Pixel de pantalla en el eje X.
Figura 67.- Ruta de trayectoria del cursor para posicionarlo en el punto D durante la prueba
3 con REODA-MX.
En la gráfica anterior se observa que el cursor no presentó oscilaciones durante el
trayecto y posicionamiento del cursor dentro de la zona D. Se cuantificó el error
(distancia máxima existente entre la posición del cursor fuera de la zona D y la
zona D) durante las primeras 810 muestras, mismas que inician su conteo cuando
el cursor ingresa por primera vez a la zona rectangular D. Las 810 muestras
inician en la muestra 240 de la gráfica mostrada en la figura 68. En esta figura se
presenta la misma ruta de la figura 67, separando la posición del cursor en cada
eje de movimiento, medida con respecto al tiempo de muestreo.
107
PRUEBAS Y RESULTADOS
100
200
300
Pixel de pantalla en el eje X.
Muestra 0
400
500
600
700
800
Zona delimitada
por la letra D
Pixel de pantalla en el eje Y.
Muestras con
periodo de 8 ms
Zona delimitada
por la letra D
Figura 68.- Zona de convergencia entre el eje X y el eje Y en la zona D.
Las barras de color verde muestran los instantes de tiempo en que el cursor se
mantuvo dentro de la zona rectangular D. Se observa que el cursor se mantiene
estable dentro de la zona D, debido al desempeño del dispositivo computacional
REODA-MX., permitiendo ubicar el cursor dentro de la zona deseada. Después de
alrededor de 7 segundos, se finalizó la prueba consiguiendo el objetivo. De
acuerdo a la prueba 3, el desempeño de este dispositivo computacional
aparentemente elimina las oscilaciones del cursor, producto de la enfermedad de
Párkinson del usuario, pudiendo realizar trayectos directos y segmentados, así
como detectar movimientos involuntarios del usuario, permitiendo posicionar y
mantener el cursor dentro de zonas requeridas.
108
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
4.4 Análisis de resultados.
A continuación se presenta un resumen con las características de la prueba
3, evaluando las aplicaciones Steady Mouse, Mouse Cage y REODA-MX.
Tabla 20.- Tiempo transcurrido durante el desarrollo de la prueba.
Traslado del cursor de la zona rectangular
junto a la letra B a la zona rectangular junto
a la letra C.
Tiempo requerido en segundos.
Steady Mouse.
Mouse Cage.
REODA-MX
19.33
4.34
80
Con el programa computacional Mouse Cage se logra un tiempo de 4.34
segundos, a diferencia del programa computacional Steady Mouse en el cual se
requirió de 19.33 segundos, esto debido a la alta ganancia del filtro implementado,
lo cual reflejó que con un ligero desplazamiento del ratón se obtuviera un amplio
desplazamiento del cursor, logrando poco control en la posición del cursor.
Por otra parte, REODA-MX alcanzó un tiempo de 80 segundos, mucho
mayor que las otras 2 aplicaciones, sin embargo esto se debió a que el usuario no
tuvo un tiempo suficiente para adaptarse al funcionamiento del ratón, ya que este
presenta ganancias programadas para cada velocidad que adopta el ratón y como
los desplazamientos del ratón con la mano del usuario fueron lentos, el cursor se
desplazó de forma lenta haciendo que su recorrido se lograra en un tiempo mayor.
Tabla 21.- Parámetros evaluados durante la realización de la prueba 3.
Estabilidad del cursor en la zona
rectangular junto a la letra C.
Steady Mouse.
Tiempo evaluado
Mouse Cage.
REODA-MX
750 muestras = 6 segundos
Número de veces que el cursor salió de la
zona:
1
5
1
Promedio en pixeles de la distancia de
error máxima entre el cursor y la zona:
22
28
3
Distancia en pixeles del error máximo entre
el cursor y la zona:
22
86
3
Promedio en pixeles del error durante las
750 muestras:
2
13
<1
109
PRUEBAS Y RESULTADOS
Estabilidad del cursor en la zona
rectangular junto a la letra D.
Steady Mouse.
Tiempo evaluado
Mouse Cage.
REODA-MX
810 muestras = 6.48 segundos
Número de veces que el cursor salió de la
zona:
6
7
2
Promedio en pixeles de la distancia de
error máxima entre el cursor y la zona:
20
9
7
Distancia en pixeles del error máximo entre
el cursor y la zona:
33
20
8
Promedio en pixeles del error durante las
810 muestras:
9
4
3
De acuerdo a las tablas 20 y 21, la aplicación en la que el cursor abandonó
una menor cantidad de veces la zona rectangular junto a la letra C y junto a la letra
D fue REODA-MX debido a que este absorbió estas oscilaciones a diferencia de
los programas computacionales que presentaban oscilaciones que impedían
mantener el cursor estable. Cabe mencionar al evaluar este parámetro en la zona
C con el programa computacional Steady Mouse se observó, en el video grabado
de la prueba, que el usuario al llegar a la zona rectangular junto a la letra C dejó
de sostener firmemente el ratón, de manera que las oscilaciones de su mano ya
no se transmitieron al ratón, por lo que los datos de esta zona específicamente
para este programa computacional no son válidos.
Por otra parte, se observa que la distancia de error máxima entre el cursor y
la zona evaluada es menor con el uso de REODA-MX, así como también el
promedio de la distancia de error máxima entre el cursor y la zona, esto se debe a
que el usuario logró mantener la posición del cursor más cercana a la zona donde
requería posicionarlo a diferencia de los programas computacionales que, por las
mismas oscilaciones que contenían, lograban un alejamiento mayor de la zona de
posicionamiento requerido.
El promedio de error también fue menor en REODA-MX, ya que al tener
una cantidad menor de momentos fuera de la zona de posicionamiento requerido
durante el periodo de valuación, repercutió en tener un bajo promedio de este
110
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
parámetro, a diferencia de los programas computacionales, ya que estos en buena
parte el periodo evaluado obtuvieron oscilaciones que mantuvieron al cursor fuera
de la zona asignada, por lo que acumularon un mayor valor de este parámetro.
La evaluación del desempeño de REODA-MX solo pudo ser comparada con
2 aplicaciones, Mouse Cage y Steady Mouse, ya que estas aplicaciones fueron
encontradas en internet y ambas permiten ser descargadas para un periodo de
prueba y uso libre respectivamente.
Cabe mencionar que a pesar que existen aplicaciones donde se requiere un
traslado del cursor por una ruta requerida, la principal utilidad de REODA-MX
consiste en posicionarse en un lugar deseado y mantener el control de dicha
posición, por lo que se hace hincapié en que esta es la característica más
importante que hay que resaltar y cuyo desempeño es mejor comparado con los
programas computacionales evaluados.
No hay que olvidar que el usuario con temblor en manos que evaluó las
pruebas no tenía conocimiento sobre el uso de el equipo de cómputo y con otro
padecimiento no considerado, por lo que esto derivó en un tiempo mayor para la
realización de las mismas, a diferencia del usuario que tenía experiencia con el
uso de un equipo de cómputo, por lo que logró desarrollar las pruebas en mucho
menor tiempo y con una mayor precisión.
Para tener un mejor criterio sobre el desempeño de REODA-MX en
comparación con los programas computacionales, es recomendable aplicar las
pruebas diseñadas a una mayor cantidad de personas con temblor en manos y
con experiencia en el uso de equipos de cómputo.
111
PRUEBAS Y RESULTADOS
112
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
CAPÍTULO 5
Conclusiones
5.1 Conclusiones.
Se cumplió el objetivo principal de la investigación, el cual consiste en desarrollar
un sistema que permite, a las personas con TE en manos, desplazar y mantener el
cursor en un punto deseado de la pantalla de un equipo de cómputo, utilizando un
ratón para computadora.
Inicialmente la meta fue filtrar cuando menos un 90% del ruido proveniente
de la mano de una persona con TE en manos. Sin embargo este porcentaje se
incrementó alrededor del 99%, ya que las oscilaciones que presenta el cursor son
imperceptibles, como se puede observar en los videos de las gráficas obtenidas
de las pruebas aplicadas para la validación de REODA-MX, permitiendo posicionar
y mantener el cursor de pantalla en un punto deseado.
Se ha desarrollado un producto altamente redituable ya que el costo NETO
de fabricación es de $360.00 MXN, mismo que es un costo bajo en relación al
beneficio que aporta, ya que hay que recordar que ninguna de las aplicaciones
evaluadas logró este beneficio, aunado al costo de estos productos que pueden
alcanzar un valor de hasta $40.00 USD.
Hay que tener en cuenta que REODA-MX es un prototipo derivado de un
ratón USB modificado; su elaboración se puede mejorar, ya que al sistema
electrónico original se le está adhiriendo otro módulo electrónico, encareciendo el
desarrollo del producto. Sería conveniente desarrollar un único módulo que integre
todas las funciones de REODA-MX con el fin de abaratar costos de producción y
113
CONCLUSIONES
disminuir problemas de conexiones o sustituciones de componentes. Así mismo es
conveniente elegir un microcontrolador cuyo costo sea el menor, siempre y cuando
soporte las funciones requeridas por REODA-MX, e inclusive desarrollar un
circuito integrado de uso específico.
REODA-MX cumple con las características de traslado y posicionamiento
en el lugar deseado, a diferencia de los programas computacionales. Para lograr
un óptimo desempeño en el funcionamiento del ratón, es conveniente tener un
periodo de práctica con el fin de aprender cómo responde el cursor ante diversos
movimientos del ratón, ya que este fue diseñado para desplazar el cursor en la
unidad de desplazamiento del cursor, es decir, 1 pixel.
A continuación se dan a conocer las observaciones realizadas a la
aplicación REODA-MX.
Ventajas:

Se pueden realizar las tareas básicas con el ratón.

El retraso en el tiempo es imperceptible y justificado, ya que el sistema
permite eliminar la oscilación del cursor y desplazar el mismo inclusive a 1 pixel de
distancia manteniendo el control total del cursor.

Es un dispositivo computacional que logra lo que los otros programas
computacionales no hacen y cumple el objetivo que es trasladar el cursor al punto
deseado y mantenerlo en esa posición.

El posicionamiento es continuo en comparación con el programa
computacional Mouse Cage cuyo posicionamiento es intermitente.

El control sobre el cursor es total en comparación con los 2 programas
computacionales evaluados (Mouse Cage y Steady Mouse).
Puntos de mejora:
114
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”

Se recomienda que REODA-MX responda con una mayor incremento de
pixeles, por ejemplo 7 u 8 pixeles, cuando existan movimientos del ratón mayores
a 15 cm/s.

Se necesita asignar una zona trabajo para el movimiento del ratón mayor a
la delimitada por un tapete para ratón estándar (24cm x 20cm aproximadamente)
para evitar tener que levantar el cursor y ubicarlo en la zona contraria donde se
reiniciará el movimiento. Este problema también se puede resolver utilizando la
tecnología de ratones laser, ya que éstos no necesitan una superficie específica,
eliminando así el uso de un tapete para ratón, y operando el ratón directamente
sobre el escritorio de trabajo.
5.2 Aportaciones.
La principal aportación principal de REODA-MX es que permite manipular el
cursor de forma completa y sencilla, algo que las aplicaciones Mouse Cage y
Steady Mouse no permiten, de acuerdo al análisis de resultados. Es la primera
aplicación conocida que alcanza el objetivo (posicionar adecuadamente el cursor
de un equipo de cómputo), y cuyo propósito lograría que las personas con temblor
esencial en manos y enfermedad de Párkinson, con una capacidad mental apta
para manipular un equipo de cómputo, se reintegre fácilmente al uso de este
dispositivo.
5.3 Trabajos futuros.
Consideraciones para trabajos futuros:

Los botones son un parámetro que es conveniente evaluar con un usuario con
temblor esencial en manos para observar la facilidad o dificultar que tiene al
presionarlos, así como también si es necesario agregar un filtro que detecte
cuando hay presión en los botones de forma involuntaria.
115
CONCLUSIONES

El botón central y el giro de la rueda no se evaluaron debido a que su uso es
similar al de los botones, sin embargo es conveniente evaluarlos para conocer
si se requiere un sistema distinto para llevar a cabo las mismas tareas.

El traslado por una ruta deseada es una actividad que cuesta trabajo realizarla
a velocidades altas. Se puede lograr siempre y cuando sea con una velocidad
menor, por lo cual quizás se pueda mejorar este parámetro ya que puede
afectar en actividades que incluya la manipulación del cursor a velocidades
mayores y con precisión en la ruta de traslado, como programas
computacionales de juegos y diseño gráfico.

El ratón solo sirve para temblor esencial en manos. Si el temblor se presenta
desde el brazo, es posible que las magnitudes de oscilación en el ratón sean
de un grado mucho mayor y el filtro no funcione adecuadamente, se propone
como trabajo futuro.

Se propone comparar el desempeño de otros productos .

Se propone ampliar el alcance de REODA-MX, incluyendo la eliminación de
temblores como la enfermedad de Parkinson, esclerosis múltiple y otras.

Se propone el desarrollo de un equipo computacional intermedio entre el ratón
y el equipo de cómputo que tenga la misma función que el filtro implementado
en el ratón, para que el usuario pueda trabajar con el ratón que brinde le
mayor comodidad al trabajar. El aproximado es de $ 300.00 MX.

Se propone el desarrollo de un programa computacional que realice la misma
función que REODA-MX,

Se propone diseñar un dispositivo equivalente cuya función sea emular un
ratón USB.
116
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
BIBLIOGRAFÍA
1. Formación Médica Continuada. Urra, Dr. Fernando García. 39, Madrid : s.n., 1990, Vol. 39, págs.
105-118.
2. Revista médica del Uruguay. El temblor esencial. Chouza, Dr. Carlos. 3, 1986, Vol. 2, págs. 251258.
3. Temblor Esencial. Eric de la Cruz Estrada, Enrique Otero Siliceo. 3, s.l. : Medigraphic, Artemisa
en Linea, 2006, Archivos de Neurociencia, Vol. 11, págs. 194-204.
4. Martinez, Ángeles Cruz. Casi 500 mil mexicanos padecen el mal de Parkinson; es progresivo e
incurable. La Jornada. Sábado 26 de marzo, 2011.
5. Kelly E. Lions, Rajesh Pahwa, [ed.]. HANDBOOK OF ESSENTIAL TREMOR AND OTHER TREMOR
DISORDERS. pág. 79.
6. Wikipedia. [En línea] 15 de 12 de 2010. [Citado el: 2 de 1 de 2011.]
http://es.wikipedia.org/wiki/Ratón_(informática).
7. INEGI. [En línea] [Citado el: 2 de 1 de 2011.]
http://www.inegi.org.mx/sistemas/sisept/default.aspx?t=tinf211&s=est&c=19432.
8. DISEÑO Y CONSTRUCCIÓN DE UN DISPOSITIVO PARA LA MEDICIÓN DEL. Osorio, Jimmy
Alexander Cortés Osorio / Francisco Alejandro Medina A. / José Andrés Chaves. 37,
Colomboa : s.n., 2007, Scientia Et Technica, Vol. XIII, págs. 139-144. 0122-1701.
9. Human Tremor Analysis Using Particle Swarm Optimization. Heberhart, Rusell C. [ed.] IEEE.
Washington DC : s.n., 1999. Congress on Evolutionary Computation.
10. Real-Time Estimation of Pathological Tremor Parameters from Gyroscope Data. Juan A.
Gallego, Eduardo Rocon, Javier O. Roa, Juan C. Moreno and Jos´e L. Pons. 10, s.l. : Open
Access, Vol. Sensor 2010, págs. 2129-2149. 1424-8220.
11. Neurological Tremor: Sensors, Signal Processing and Emerging Applications. Manto, Giuliana
Grimaldi and Mario. 10, s.l. : Oppen Acces, Vol. Sensors 2010, págs. 1399-1422. 1424-8220.
12. Tracking Tremor Frequency in Spike Trains Using the Extended Kalman Filter. McNames,
Sunghan Kim and James. Shangai, China : IEEE, 2005. Engineering in Medicine and Biology
27th Annual Conference. Vol. Septiembre.
13. Tracking Tremor Frequency in Spike Trains Using the Extended Kalman Smoother. McNames,
Sunghan Kim and James. 8, s.l. : IEEE, Agosto de 2006, IEEE TRANSACTIONS ON BIOMEDICAL
ENGINEERING, Vol. 53, págs. 1569-1577. 0018-9294.
14. Higher Order Statistics and Neural Network for Tremor Recognition. Jacek Jakubowski,
Krzystof Kwiatos, Augustyn Chwaleba, and Stanislaw Osowski. 2, febrero de 2002, IEEE
TRANSACTIONS ON BIOMEDICAL ENGINEERING,, Vol. 49, págs. 152-159. 0018–9294.
15. Comparison of Phase-Coupling Indices for Tremor. Sunghan Kim, James McNames and Kim
Burchiel. Arlington, Virginia : s.n., 2005. 2nd International IEEE EMBS Conference on Neural
Engineering. 0-7803-8709-0.
16. Spiral analysis—Improved clinical utility with center detection. Hongzhi Wanga, Qiping Yua,
Mónica M. Kurtis a, Alicia G. Floyda, Whitney A. Smitha, Seth L. Pullmana,. 2, s.l. : ELSEVIER,
30 de JUNIO de 2008, Journal of Neuroscience Methods, Vol. 171. 0165-0270.
17. Validity of Spiral Analysis in Early Parkinson’s Disease. Rachel Saunders-Pullman, Carol Derby,
Kaili Stanley, Alicia Floyd, Susan Bressman, Richard B. Lipton, Amanda Deligtisch, Lawrence
Severt, Qiping Yu, Mo´nica Kurtis, Seth L. Pullman. [ed.] Wiley InterScience. 4, 2008,
Movement Disorders, Vol. 23, págs. 531-537.
18. Axis Is a Feature of Handwritten Spirals in Essential Tremor. 8, s.l. : Wiley InterScience, 3 de
Mayo de 2006, Movement Disorders, Vol. 21, págs. 1294-1295.
117
BIBLIOGRAFÍA
19. Spiral Analysis: a New Technique for Measuring Tremor with a Digitizing Tablet. Pullman., Seth
L. 3, 1998, Movement Disorders, Vol. 13, págs. 85-89.
20. KALVERT., Michael A. Adjustable and tunable hand tremor stabilizer. 6730049 Estados Unidos,
5 de 4 de 2004.
21. ASATOURIAN, Anton, HYUN, Benjamin y LIPAZ, Gil. Method for treating tremors. 6361549
Estados Unidos, 26 de 3 de 2002.
22. TIEDEKEN., Edwin T. Tremor control device. 4996977 Estados Unidos, 26 de 5 de 1989.
23. A wearable tremor-suppression orthosis. Jack Kotovsky, MS and Michael J. Rosen. 1998,
Journal of Rehabilitation Research and Developmen, Vol. 25, págs. 373-387.
24. Jason Winters, ET. AL. Essential Tremor Suppression via Viscous Damping. Biomedical
Engineering, University of Florida, Florida. 2006.
25. José Luis PONS Rovira, Et. Al. Dispositivo ortésico dinámico para la monitorización, diagnóstico
y supresión de temblor patológico. WO 2006/064074 A1 España, 20 de 6 de 2006.
26. —. Método y dispositivo biomecánico de cancelación de temblor patológico. 2222819 España, 1
de 2 de 2005.
27. —. Método y dispositivo electrónico e informático de supresión y valoración de temblor y
movimiento espástico en periféricos de entrada y de mando. 2253077 España, 16 de 5 de 2006.
28. —. Órtesis para amortiguación del temblor. WO 2008/096031 A1 España, 14 de 8 de 2008.
29. Diseño desarrollo y validación de dispositivo robótico para la supresión del temblor patológico.
E. Rocon, Et. Al. 2, 4 de 2008, Revista iberoamericana de automática e informática industrial,
Vol. 5, págs. 79-92.
30. Lima, Eduardo Rocon de. Reducción activa del temblor patológico de miembro superior
mediante exoesqueletos robóticos. Universidad Politécnica de Madrid. Madrid : s.n., 2006.
Tesis de Doctorado en Ciencias.
31. Hall, Gary Ellis. Active tremor control of human motion disorder. Instituto Tecnológico de
Massachusetts. Cambridge : s.n., 2001. Tesis de Maestría en Ciencias.
32. Baleares, Universidad de. [En línea] Fundación Vodafone España. [Citado el: 2 de 1 de 2011.]
http://fundacion.vodafone.es/PortalVodafone/fundacion/es/Innovacion/Accesibilidad/Historic
o/ProyectoHeadDev/;jsessionid=yQR12C0Dn6ZBwfBPkq1PvPUxWbQGWrESwdai9dAPRvhieow6z0re!9460
99909.
33. Lleida, Universidad de. [En línea] 10 de 2007. [Citado el: 2 de 1 de 2011.]
http://robotica.udl.cat/headmouse/headmouse.html.
34. Point, Naturall. [En línea] 2001. [Citado el: 2 de 1 de 2011.]
http://www.naturalpoint.com/smartnav/.
35. University, Stanford. [En línea] 2006. [Citado el: 2 de 1 de 2011.]
http://hci.stanford.edu/research/GUIDe/index.html.
36. 5th Iberoamerican Meeting on Optics and 8th Latin American meeting on Optics, Lasers, and
Their Applications. Miranda, David, Silva, E. y Patino, A. s.l. : SPIE, 2004.
37. Washington, University of. [En línea] 2005. [Citado el: 2 de 1 de 2011.]
http://ssli.ee.washington.edu/vj/.
38. Li, TH. Bili Inc, Tapping your full talent™. [En línea] [Citado el: 2 de 1 de 2011.]
http://www.bilila.com/.
39. Tunic Software. [En línea] 1 de 8 de 2005. [Citado el: 2 de 1 de 2011.]
http://www.sharewareconnection.com/mousecage.htm.
40. Gottemoller, Ben. SteadyMouse.com. [En línea] 2005. [Citado el: 2 de 1 de 2011.]
http://www.steadymouse.com/.
118
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
41. Levine, James. Monstrose Secam Limited. [En línea] 14 de 3 de 2005. [Citado el: 2 de 1 de
2011.] http://www.montrosesecam.com/index.html.
42. TechNaid. TechFiler. [En línea] [Citado el: 21 de febrero de 2011.]
http://www.technaid.com/index.php/products/techfilter.html.
43. Adaptive Filtering of Physiological Tremor for Real-time Compensation. K. C. Veluvolu, U-X.
Tan, W. T. Latt, C. Y. Shee and W. T. Ang. [ed.] IEEE. Bangkok, Thailand : s.n., 2008.
International Conference on Robotics and Biomimetics. págs. 524-529. 978-1-4244-2679-9.
44. Hall, Gary Ellis. Active tremor control for human tremor disorder. Departmen of Mechanical
Engineering, University of Rochester. 1998. pág. 142, Tesis de maestría.
45. Antonio Padilha Lanari Bo, Philippe Poignet. Tremor Attenuation Using FES-based Joint
Stiffnes control.
46. Ogata, Katsuiko. Ingeniería de Control Moderna. [trad.] Miguél ángel Martinez Sarmiento. 3.
Naucalpan de Juarez : Pearson-Prentice Hall, 1998. pág. 997. 970-17-0048-1.
47. NC. Laplace versus Fourier. [En línea] Jueves 6 de Octubre de 2005. [Citado el: Lunes 18 de
Abril de 2011.] http://unanue.blogspot.com/2005/10/laplace-versusfourier.html?seenIEPage=1.
48. A customized optimal filter for eliminating operator's tremor. Juan G. González, Edwin A.
Heredia, Tariq Rahman, Keneth E. Barner, Gonzalo R. Arce. Phildelphia, PA. : s.n., 1995.
International Simposium on Intelligent Systems and Advanced Manufacturing Telemanipulator and Telepresence Technologies II.
49. Filtering Involuntary Motion of People With Tremor Disability Using Optimal Equalization. Juan
G. González, Edwin A. Heredia, Tariq Rahman, Keneth E. Barner, Gonzalo R. Arce. [ed.] IEEE.
Vancouver, BC, Canada. : s.n., 1995. International Conference of Systems, Man and
Cybernetics.
50. Adaptive Human Machinne Interface for Persons With Tremor. Cameron N. Riviere, Nitish V.
Takor. [ed.] IEEE-EMBC and CMBEC. 1995. Tema 5: Neurologial Systems/Biomechanics. págs.
1993-1994. 0-7803-2475-7.
51. Modeling and Cancelling Tremor in Human-Machinne Interfaces. Cammeron N. Riviere, Nitish
V. Takor. [ed.] IEEE. 1996. Engineering in Medicine and Biology. págs. 29-36. 0739-5175.
52. Adaptive Canceling of Physiological Tremor for Improved Precision in Microsurgery. Cameron
N. Riviere, R. Scott Rader, and Nitish V. Thakor. [ed.] IEEE. 7, 1998, TRANSACTIONS ON
BIOMEDICAL ENGINEERING, Vol. 45, págs. 839-846. 0018–9294.
53. Toward Active Tremor Canceling in Handheld Microsurgical Instruments. Cameron N. Riviere,
Wei Tech Ang, Pradeep K. Khosla. [ed.] IEEE. 3, Octubre de 2003, TRANSACTIONS ON
ROBOTICS AND AUTOMATION, Vol. 19, págs. 793-800. 1042-296X.
54. The MathWorks. Filter Design Toolbox User’s Guide. s.l. : The MathWorks, Inc., 2002. 2.
55. Universidad Miguel Hernandez de Elche . Análisis de Circuitos y Sistemas Lineales. [En línea]
[Citado el: 2 de 1 de 2011.]
http://repositorio.innovacionumh.es/Proyectos/P_19/Tema_5/UMH_06.htm.
56. Roa, Lucio David Torres de. Realización Activa en Matlab. Ingenieria Electrónica y
Comunicaciones, UDLA. 2007. Tesis de Maestría.
57. Paarmann, Larry D. Design and Analysis of Analog Filters. s.l. : Kluwer Academic Publishers,
2003. 0-7923-7373-1.
58. Escuela Técnica Superior de Ingenieros de Telecomunicación. Síntesis de circuitos eléctricos y
electrónicos. [En línea] curso 2004/2005. [Citado el: 3 de 1 de 2011.]
http://www.tsc.uvigo.es/BIO/Docencia/SCEE/Clases/Clase_07.pdf.
59. Winder, Steve. Analog and Digital Filter Design. Segunda. s.l. : Newnes, 2002. pág. 450.
119
BIBLIOGRAFÍA
60. Wikipedia. Ratón (informática). [En línea] 15 de 12 de 2010. [Citado el: 3 de 1 de 2011.]
http://es.wikipedia.org/wiki/Mouse.
61. Gabriel Gartensztern, Alejandra Szuster, Nicolás Yanco. Trabajo práctico de sistemas y
soportes de la información. 2007.
62. TERRA.COM. Ratones Ópticos. [En línea] 1 de 1 de 2008. [Citado el: 3 de 1 de 2011.]
http://www.terra.es/tecnologia/articulo/html/tec8216.htm.
63. Computer Audio Video System Integrator. ¿Qué es un mouse o ratón? [En línea] [Citado el: 3
de 1 de 2011.] http://www.cavsi.com/preguntasrespuestas/que-es-un-mouse-raton/.
64. Rom, Eran. Windriver V10.1. s.l. : Jungo Ltd .
65. Software, PICkit 2 Development Programmer/Debugger. PicKit2. s.l. :
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocNa
me=en023805.
66. Systems, CCS Custom Computer. PCWH IDE Compiler for Microchip PIC® PIC10 Through PIC18
MCUs. s.l. : http://www.ccsinfo.com/product_info.php?products_id=PCWH_full.
67. USBlyzer. USBlyzer - Professional Software USB Protocol Analyzer. s.l. :
http://www.usblyzer.com/.
68. Software, Bloodshed. Dev C++. s.l. : http://www.bloodshed.net/devcpp.html.
120
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
ANEXOS
Anexo 1. Elección del filtro implementado en REODA-MX.
Para elegir el filtro a utilizar, se realizó un proceso de selección que implicó
la generación de varios filtros, la simulación de una entrada similar a una mano
con temblor y un movimiento deseado (ver anexo 2), se analizó el desempeño de
cada filtro. El filtro que mejor desempeño obtuvo fue el que se eligió.
Para generar distintos filtros, se utilizó la herramienta FDATOOL (figura A1),
de MATLAB, la cual brinda la posibilidad de diseñar filtros digitales de tipo FIR e
IIR con los respectivos diseños que trae por default programados dicha
herramienta.
Figura A1.- Interfaz de FDATOOL para el diseño de filtros digitales.
A continuación se presenta la lista de los filtros evaluados.
121
ANEXOS
Filtros FIR por el método de ventanas.


Bartlett.
Bartlett-hanning.


Blackman.
Blackman-harris.


Bohman.
Chebyshev.


Flat-top.
Gaussian.


Haming.
Han.


Káiser.
Nutall.


Parsen.
Rectangular.


Tylor.
Triangular.

Tukey.
Filtros IIR.

Butterworth.


Chebyshev 1.
Chebyshev 2.

Elíptico.
Por otra parte se diseñaron filtros de acuerdo al comportamiento de la señal
de entrada observada. A continuación se explican cada uno de ellos.
Otros filtros.

Resta algebraica.
Este filtro consiste en realizar una etapa de reconocimiento del patrón de
movimiento del temblor esencial en manos, aproximando a una función seno una
122
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
serie de muestras adquiridas durante un proceso de entrenamiento, reconociendo
así la amplitud y frecuencia de movimiento.
Esta función seno se utiliza como referencia para restarla algebraicamente
a la señal adquirida por el ratón. Debido a que puede presentarse el problema de
adquirir N muestras menos ó N muestras más durante un ciclo de movimiento del
ratón, el filtro re-calcula el número de muestras asignadas a la función seno de
referencia, por lo cual en ninguna ocasión el código presentará problemas de
carencia o exceso de muestras para llevar a cabo la resta algebraica. Para llevar a
cabo este proceso se requiere un retraso en la señal de salida de 1 periodo de
ciclo de temblor.

Desfase de 180º de la señal de entrada.
Este filtro consiste en realizar una etapa de reconocimiento de la cresta y el
valle de la señal adquirida por el ratón. El filtro guarda en un arreglo las muestras
adquiridas de la señal, cuando indica un movimiento del valle a la cresta e
Identifica la diferencia de magnitudes. Posteriormente adquiere, en otro arreglo,
las muestras adquiridas cuando el movimiento va de la cresta al valle. Re-calcula
la primer señal adquirida para que tenga el mismo número de muestras que la
segunda señal y realiza un promedio algebraico de la N muestra de la primer señal
con la N muestra de la segunda señal. Para llevar a cabo este proceso se requiere
un retraso en la señal de salida de 1 periodo de ciclo de temblor.

Media móvil.
Este filtro consiste en realizar un promedio de las N muestras anteriores
adquiridas por el ratón. El retraso de la señal depende del número de muestras
promediadas.
Se realizaron las comparaciones con las respuestas que mejores resultados
proporcionaron por observación. Se aplicó un criterio evaluando 3 factores
básicos:
123
ANEXOS
1.- Retraso en el tiempo de la señal de salida respecto a la señal de entrada.
2.- Porcentaje de atenuación de la oscilación.
3.- Relación de movimiento ratón-cursor similar a la de un ratón USB convencional.
A continuación se presentan tablas comparativas de cada filtro comparando
los parámetros antes mencionados.
Para medir el retraso en el tiempo se utilizó una entrada escalón y se midió
el tiempo de retardo en que la señal alcanza un valor estable con un error del 5% y
2% respecto a la unidad. Los resultados se muestran en la tabla A1.
Tabla A1.- Comparación del tiempo de establecimiento al 5% y 2% de los filtros evaluados
ante una entrada tipo escalón unitario.
Filtro
Barttlet
Barttlet-hanning
Blackman
Blackman harris
Bohman
Chebyshev Sidelobe=100
Flat-top
Gaussian
Hamming
Hann
Kaisser
Nutall
Parzen
Rectangular
Taylor
Triangular
Tukey
Butterworth
Chebyshev I
Chebyshev 2
Elíptico
Error 5% ms
160
160
152
144-152
144
144
136
160
160
152
176
152
144
184
168
160
168
328
464
424
472
Error 2% ms
176
168
160
160
160
160
152
168
176
168
184
160
160
192
184
176
176
664
600
536
616
Sobre-impulso
No
No
No
No
No
No
2.88%
No
No
No
No
No
No
No
No
No
No
4.32%
No
5.29%
No
Sin embargo, debido a que los incrementos en los movimientos del ratón
generalmente no son bruscos (escalón), el tiempo de retardo disminuye en la
práctica, teniendo otros valores de acuerdo a la magnitud del incremento. En la
124
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
tabla A2 se presentan los valores aproximados de retraso en el tiempo de la
respuesta de los filtros evaluados con la entrada propuesta.
Tabla A2.- Comparación del tiempo de retardo entre la señal de entrada y la señal de los
filtros evaluados en modo de funcionamiento común.
Filtro
Barttlet
Barttlet-hanning
Blackman
Blackman harris
Bohman
Chebyshev Sidelobe=100
Flat-top
Gaussian
Hamming
Hann
Kaisser
Nutall
Parzen
Rectangular
Taylor
Triangular
Tukey
Butterworth
Chebyshev I
Chebyshev 2
Elíptico
Tiempo de
retardo ms
112
104
96
112
104
104
104
96
104
112
120
104
96
96
104
112
112
152
160
144
128
Para el filtro de resta algebraica, desfase de 180° y media móvil, el retraso
de la respuesta es de 1 periodo de ciclo de temblor, que va desde 250
milisegundos hasta 83 milisegundos.
Evaluando los filtros por el retraso en el tiempo
de la señal de salida
respecto a la señal de entrada:



En los filtros FIR, los filtros Blackman, Gaussian, Parsen y Rectangular son
los que tienen un menor retraso, siendo este de 96 ms.
En los filtros IIR, el Chebyshev 2 y el Elíptico son los que menor retraso
tienen en la respuesta con respecto a la entrada, siendo de 144ms y 128ms
respectivamente.
En otros filtros, todos requieren al menos 250 ms de retraso para una
entrada de 4 Hz.
125
ANEXOS
Para medir el grado de atenuación de la oscilación en la respuesta del filtro,
se utilizó una entrada constante de tipo senoidal montada en 0, de 4 a 12 Hz con
incrementos de 1 Hz y amplitud 50. Se mide el valor absoluto de la magnitud
existente entre el valle y la cresta de la señal resultante.
Tabla A3.- Comparación de la variación absoluta de la respuesta de cada filtro evaluado ante
una entrada constante de tipo senoidal de 4Hz a 12 Hz con incrementos de 1 Hz y amplitud
50 pixeles (100 pico a pico).
Filtro
Barttlet
Barttlet-hanning
Blackman
Blackman harris
Bohman
Chebyshev
Flat-top
Gaussian
Hamming
Hann
Kaisser
Nutall
Parzen
Rectangular
Taylor
Triangular
Tukey
Butterworth
Chebyshev I
Chebyshev 2
Elíptico



126
4 Hz
64
68
76
80
76
78
96
68
66
70
38
78
78
36
56
62
54
12
14
10
24
5 Hz
50
54
64
70
66
68
94
54
50
56
16
68
68
16
40
46
38
8
12
2
20
6 Hz
36
40
54
58
54
54
90
42
36
42
2
58
56
0
24
34
20
6
10
2
16
7 Hz
24
28
40
48
42
46
86
30
26
30
8
46
46
8
14
22
6
4
8
4
14
8 Hz
14
18
30
38
34
36
78
20
16
20
10
38
34
10
6
12
4
4
8
6
12
9 Hz
8
10
22
28
24
26
72
14
8
12
6
28
26
6
2
6
10
2
6
6
10
10 Hz
4
6
14
22
16
20
64
8
4
6
2
20
18
2
0
4
12
2
6
6
10
11 Hz
2
2
8
16
10
14
54
4
2
2
2
14
12
4
0
2
10
2
6
8
8
12 Hz
2
0
6
10
6
8
30
2
0
0
6
10
8
6
0
2
8
2
4
8
8
Suma
180
198
274
322
286
304
578
212
182
208
82
314
300
80
128
168
156
38
66
48
108
En los filtros FIR, los que mejor desempeño tuvieron fueron los filtros Káiser
y Rectangular. Si se aumenta la beta del filtro Kaiser a un número mayor a
0.5, comienza a adherirse mayor ruido. Sin embargo, si se disminuye no
sufre cambios visibles.
En los filtros IIR, los mejores filtros fueron el Butterworth y el Chebyshev II.
Los filtros por resta algebraica, desfase de 180° y media móvil tienen una
magnitud de atenuación de oscilación es de 0 debido a la condición ideal de
la entrada.
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Para poder elegir el filtro que responda adecuadamente a las condiciones
de operación es necesario realizar una comparación de los 2 factores que se
evaluaron con anterioridad, los cuales son el tiempo de retraso y la atenuación de
la señal no deseada.
Para esto se realizó la tabla A4, la cual se compone de:
 La columna 1 indica el filtro evaluado.
 La columna 2 corresponde a la última columna de la tabla 15.
 La columna 3 indica el factor de peso utilizado para multiplicarlo por el valor
de la columna anterior.
 La columna 4 corresponde a la última columna de la tabla 14.
 La columna 5 indica el factor de peso utilizado para multiplicarlo por el valor
de la columna anterior.
 La columna 6 indica el resultado obtenido para cada filtro que corresponde
a la siguiente ecuación: resultado f1 = (suma f1 * factor a) + (retardo f1 *
factor b).
Tabla A4.- Calificación final de cada filtro evaluado.
Filtro
Barttlet
Barttlet-hanning
Blackman
Blackman harris
Bohman
Chebyshev
Flat-top
Gaussian
Hamming
Hann
Kaisser
Nutall
Parzen
Rectangular
Taylor
Triangular
Tukey
Butterworth
Chebyshev I
Chebyshev 2
Elíptico
Suma
180
198
274
322
286
304
578
212
182
208
82
314
300
80
128
168
156
38
66
48
108
Factor a
0.8
Retardo
112
104
96
112
104
104
104
96
104
112
120
104
96
96
104
112
112
152
160
144
128
Factor b
0.2
Resultado
166.4
179.2
238.4
280
249.6
264
483.2
188.8
166.4
188.8
89.6
272
259.2
83.2
123.2
156.8
147.2
60.8
84.8
67.2
112
127
ANEXOS
El factor "a" se eligió de 0.8 debido a que este valor evaluará la capacidad
del filtro por mantener una estabilidad en la filtración de oscilaciones, durante toda
la banda de frecuencias características del temblor esencial, por esto se asignó un
valor alto ya que este factor se consideró de prioridad. El factor "b" se eligió de 0.2
debido a que el tiempo de retardo es similar en todos los filtros y no existe una
diferencia considerable entre los filtros evaluados, así la evaluación de este
parámetro resultó poco significante debido a que los tiempos de retardo no sobre
pasan los límites identificados en la tabla A5.
Como resultado, se tiene que los filtros con mejor desempeño (resultado
menor a 85) son el Butterworth, Chebyshev 2, Rectangular y Chebyshev 1. A
continuación se presentan las respuestas de estos 4 filtros.
Figura A2.- Respuesta del filtro Rectangular.
Figura A3.- Respuesta del filtro Butterworth.
Figura A4.- Respuesta del filtro Chebyshev I.
Figura A5.- Respuesta de filtro Chebyshev II.
128
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Figura A6.- Respuesta del filtro Rectangular.
Se puede observar que el filtro que elimina de mejor forma las oscilaciones
transitorias es el Chebyshev 2 (inverso) y el retraso en el tiempo de la respuesta
es aceptable. Sin embargo se implementó el filtro en REODA-MX y se observó
que, al mover el ratón en un sentido durante un tiempo e inmediatamente
detenerlo, el cursor continuaba desplazándose durante un tiempo considerable, lo
que hacía muy difícil posicionar el cursor en un lugar deseado, por lo que habría
que estar "atinando" al momento exacto para dejar de mover REODA-MX.
Por este motivo se procedió a implementar el segundo mejor filtro el cual
fue el Butterworth. Al evaluarlo, se observó que la ganancia de este filtro era
pequeña, por lo que se debía mover el ratón en una área de trabajo grande para
que el cursor se desplazará una zona pequeña, y, al modificar la ganancia del
filtro, se incrementaba la magnitud de las oscilaciones, por lo que se volvió una
opción no viable.
Finalmente se implementó el tercer filtro que mejor desempeño obtuvo, el
cual fue el filtro Chebyshev 1. Al evaluarlo se observó una buena atenuación de la
oscilación y su ganancia era ideal para la relación movimiento ratón-cursor. Por
este motivo este fue el filtro que se eligió.
129
ANEXOS
Cabe mencionar que la respuesta directa del filtro no es la que se utiliza
para posicionar el cursor; se requirió a la implementación de etapas de
acondicionamiento de la señal, ya que se requiere que el usuario sea capaz de
desplazar el cursor 1 pixel, por lo que se utilizó un acondicionamiento para
posicionamiento fino del cursor.
Adicionalmente se realizó un experimento el cual consistió en retrasar la
señal que adquiere el prototipo de ratón desarrollado, con el fin de conocer 2
parámetros.
1. El máximo tiempo de retardo que un usuario no alcanza a percibir.
2. El máximo tiempo de retardo que un usuario alcanza a tolerar sin perder la
paciencia por el retardo en la adquisición de la señal de movimiento del
ratón.
Para esto se realizaron pruebas con 2 personas. A continuación se presentan los
resultados en la tabla A5.
Tabla A5.- Tiempo de retardo imperceptible y tolerable entre el movimiento del ratón-cursor.
Usuario
Edad
Srta. Scarlett Grisell Ruiz González.
Sr. Omar Alejandro Ruiz González.
22 años
25 años
Máximo retardo
imperceptible
(muestras)
10 muestras = 80 ms
7 muestras = 56 ms
Máximo retardo
tolerable (ms)
20 muestras = 160
20 muestras = 160
Con esta tabla se puede validar que el filtro elegido (Chebyshev 1) cumple con el
requerimiento de máximo retardo tolerable.
130
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Anexo 2. Entrada utilizada para validar los filtros.
La figura A7 muestra la entrada que se utilizó para evaluar el desempeño
de los filtros. El eje X de la gráfica indica la muestra con respecto al tiempo, cuyo
periodo de muestreo
es aproximadamente de 8 ms. El eje Y de la gráfica
corresponde a los pixeles correspondientes al eje X de la pantalla de un equipo de
cómputo configurada con una resolución de 1024 x 768 pixeles.
entrada
1025
975
Pixel del eje X
925
875
825
775
entrada
725
675
625
575
0
200
400
600
800
1000
Muestra (Ts=8ms)
Figura A7.- Entrada utilizada para evaluar los filtros analizados.
131
ANEXOS
A continuación se presentan los valores de las posiciones del cursor obtenidas en
cada muestra y el número de muestra correspondiente.
Mue. Valor
1
663
2
657
3
653
4
650
5
649
6
649
7
652
8
658
9
665
10
674
11
683
12
691
13
699
14
705
15
707
16
708
17
707
18
704
19
699
20
691
21
682
22
671
23
659
24
650
25
641
26
634
27
630
28
628
29
628
30
628
31
628
32
631
33
636
34
642
35
651
36
659
37
667
38
673
39
679
40
681
41
681
42
680
43
677
44
672
45
663
46
654
47
642
48
630
49
619
50
611
51
604
132
Mue. Valor
52
601
53
600
54
600
55
603
56
608
57
614
58
624
59
634
60
646
61
656
62
665
63
672
64
676
65
679
66
679
67
679
68
677
69
673
70
667
71
659
72
651
73
643
74
635
75
630
76
626
77
623
78
623
79
625
80
628
81
632
82
632
83
637
84
644
85
650
86
655
87
658
88
661
89
663
90
663
91
661
92
658
93
654
94
648
95
641
96
634
97
627
98
622
99
619
100
618
101
618
102
620
Mue.
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
Valor
626
634
643
655
667
677
687
693
698
699
698
695
689
681
671
659
648
639
632
626
625
625
627
633
641
651
665
676
688
699
706
712
715
715
714
711
706
700
691
683
677
671
668
668
668
672
680
690
702
717
731
Mue. Valor
154
743
155
753
156
761
157
765
158
765
159
765
160
765
161
762
162
756
163
748
164
738
165
726
166
716
167
707
168
700
169
694
170
692
171
692
172
693
173
697
174
702
175
710
176
720
177
728
178
736
179
741
180
744
181
744
182
743
183
742
184
740
185
737
186
734
187
731
188
728
189
726
190
724
191
724
192
724
193
726
194
731
195
739
196
747
197
758
198
766
199
774
200
779
201
782
202
783
203
781
204
778
Mue. Valor
205
772
206
763
207
752
208
740
209
731
210
722
211
716
212
712
213
712
214
712
215
716
216
722
217
730
218
740
219
749
220
758
221
765
222
765
223
770
224
773
225
773
226
772
227
768
228
762
229
754
230
744
231
735
232
727
233
719
234
715
235
713
236
712
237
712
238
716
239
720
240
726
241
733
242
740
243
747
244
751
245
753
246
753
247
752
248
749
249
744
250
736
251
728
252
720
253
713
254
708
255
704
Mue. Valor
256
703
257
703
258
704
259
708
260
714
261
723
262
731
263
740
264
747
265
752
266
756
267
758
268
758
269
755
270
751
271
746
272
739
273
731
274
724
275
718
276
715
277
713
278
713
279
716
280
721
281
729
282
739
283
739
284
751
285
763
286
774
287
782
288
789
289
792
290
792
291
791
292
786
293
776
294
764
295
751
296
737
297
723
298
711
299
703
300
699
301
698
302
699
303
703
304
711
305
720
306
732
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Mue. Valor
307
745
308
756
309
765
310
772
311
777
312
780
313
780
314
780
315
778
316
775
317
773
318
771
319
770
320
769
321
769
322
770
323
774
324
779
325
787
326
795
327
805
328
812
329
818
330
821
331
823
332
823
333
823
334
820
335
814
336
809
337
802
338
796
339
790
340
786
341
785
342
785
343
786
344
791
345
799
346
808
347
819
348
831
349
840
350
847
351
852
352
855
353
855
354
853
355
849
356
844
357
836
358
826
359
817
360
809
361
804
Mue. Valor
362
801
363
799
364
799
365
801
366
808
367
816
368
824
369
832
370
840
371
846
372
849
373
850
374
849
375
846
376
840
377
832
378
823
379
812
380
803
381
796
382
791
383
789
384
789
385
790
386
795
387
795
388
803
389
813
390
824
391
835
392
844
393
852
394
858
395
860
396
860
397
858
398
854
399
846
400
838
401
829
402
820
403
812
404
805
405
801
406
799
407
799
408
800
409
804
410
808
411
815
412
820
413
825
414
830
415
833
416
834
Mue.
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
Valor
833
831
826
819
811
802
794
787
782
779
779
779
782
787
795
803
812
820
827
832
834
835
834
831
826
820
820
805
805
798
793
790
790
790
793
799
806
814
822
830
836
840
843
843
842
839
834
828
821
814
809
803
800
800
800
Mue. Valor
472
802
473
807
474
814
475
822
476
830
477
838
478
845
479
848
480
849
481
849
482
846
483
839
484
830
485
821
486
809
487
797
488
788
489
781
490
775
491
774
492
774
493
774
494
776
495
789
496
789
497
797
498
808
499
816
500
824
501
829
502
833
503
834
504
833
505
830
506
825
507
817
508
808
509
797
510
787
511
777
512
769
513
764
514
763
515
763
516
765
517
769
518
777
519
786
520
797
521
807
522
817
523
825
524
830
525
833
526
834
Mue. Valor
527
833
528
830
529
825
530
821
531
816
532
812
533
807
534
805
535
805
536
805
537
809
538
814
539
822
540
830
541
839
542
849
543
855
544
861
545
864
546
864
547
863
548
860
549
855
550
850
551
844
552
844
553
832
554
830
555
830
556
829
557
830
558
834
559
840
560
853
561
864
562
879
563
893
564
907
565
917
566
925
567
928
568
928
569
926
570
921
571
913
572
903
573
891
574
879
575
869
576
861
577
855
578
852
579
852
580
852
581
856
Mue. Valor
582
862
583
870
584
880
585
890
586
900
587
906
588
913
589
916
590
917
591
917
592
915
593
912
594
908
595
903
596
897
597
892
598
888
599
885
600
884
601
884
602
885
603
885
604
896
605
896
606
905
607
915
608
924
609
932
610
939
611
943
612
944
613
944
614
941
615
935
616
929
617
919
618
909
619
899
620
891
621
885
622
881
623
878
624
878
625
879
626
882
627
887
628
894
629
900
630
908
631
914
632
919
633
921
634
922
635
921
636
918
133
ANEXOS
Mue. Valor
637
912
638
904
639
894
640
883
641
872
642
863
643
855
644
849
645
847
646
847
647
849
648
854
649
863
650
874
651
886
652
900
653
912
654
923
655
932
656
937
657
940
658
940
659
940
660
939
661
936
662
931
663
925
664
916
665
907
666
899
667
894
668
888
669
885
670
884
671
884
672
885
673
887
674
891
675
895
676
899
677
903
678
907
679
910
680
911
681
911
682
910
683
907
684
903
685
898
686
892
687
886
688
880
689
876
690
873
691
872
134
Mue. Valor
692
872
693
874
694
877
695
882
696
888
697
895
698
902
699
907
700
913
701
915
702
915
703
914
704
912
705
908
706
904
707
898
708
898
709
893
710
889
711
886
712
884
713
884
714
884
715
887
716
892
717
898
718
905
719
913
720
920
721
927
722
930
723
931
724
931
725
929
726
925
727
919
728
910
729
901
730
892
731
885
732
878
733
874
734
873
735
873
736
875
737
881
738
887
739
895
740
905
741
913
742
919
743
925
744
928
745
928
746
927
Mue.
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
Valor
925
920
913
905
895
884
873
864
857
852
848
846
846
846
847
847
849
851
853
853
852
848
843
834
823
810
794
779
767
757
749
744
743
743
745
751
757
764
772
777
783
784
785
783
778
770
760
748
733
719
704
692
682
674
668
Mue. Valor
802
666
803
666
804
666
805
670
806
676
807
686
808
695
809
706
810
714
811
720
812
724
813
727
814
727
815
724
816
717
817
708
818
697
819
685
820
674
821
663
822
654
823
649
824
647
825
647
826
647
827
648
828
653
829
661
830
670
831
680
832
690
833
698
834
705
835
709
836
711
837
711
838
708
839
704
840
698
841
688
842
678
843
666
844
655
845
646
846
638
847
632
848
629
849
629
850
629
851
632
852
637
853
643
854
653
855
661
856
669
Mue. Valor
857
674
858
680
859
681
860
681
861
679
862
674
863
667
864
658
865
649
866
639
867
631
868
624
869
622
870
620
871
620
872
623
873
629
874
638
875
638
876
647
877
659
878
670
879
679
880
687
881
693
882
695
883
696
884
694
885
691
886
685
887
678
888
669
889
660
890
650
891
642
892
637
893
634
894
633
895
633
896
633
897
637
898
642
899
649
900
657
901
665
902
673
903
678
904
682
905
684
906
684
907
681
908
677
909
671
910
664
911
655
Mue. Valor
912
645
913
637
914
631
915
626
916
624
917
624
918
625
919
628
920
633
921
641
922
649
923
657
924
665
925
670
926
674
927
676
928
676
929
673
930
669
931
664
932
656
933
648
934
640
935
640
936
632
937
626
938
623
939
622
940
622
941
625
942
630
943
636
944
646
945
656
946
667
947
675
948
682
949
686
950
688
951
688
952
686
953
682
954
676
955
667
956
658
957
648
958
640
959
633
960
627
961
625
962
625
963
625
964
628
965
633
966
641
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Mue. Valor
967
650
968
661
969
670
970
679
971
686
972
690
973
692
974
692
975
690
976
686
977
680
978
671
979
665
980
657
981
650
982
647
983
646
984
647
985
653
986
662
987
662
988
677
989
697
990
721
991
751
992
779
993
801
994
815
995
826
996
832
997
834
998
833
999
829
1000
821
1001
811
1002
800
1003
790
1004
780
1005
775
1006
773
1007
773
1008
776
1009
786
1010
800
1011
816
1012
841
1013
866
1014
888
1015
904
1016
917
1017
924
1018
927
1019
927
1020
923
1021
914
Mue.
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
Valor
904
892
879
867
856
851
849
849
853
861
873
887
903
918
931
942
950
953
954
953
953
950
945
941
937
933
930
929
929
931
936
943
951
959
967
974
977
978
978
975
971
965
958
951
944
940
938
938
939
943
951
960
971
983
993
Mue.
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
Valor
1003
1009
1012
1012
1010
1004
995
983
970
956
944
935
935
930
928
928
930
935
943
952
963
973
983
989
993
995
994
991
985
976
967
955
944
936
931
928
928
930
935
943
955
967
977
988
996
1000
1002
1001
998
992
983
972
960
950
940
Mue. Valor
1132
932
1133
929
1134
929
1135
930
1136
936
1137
944
1138
956
1139
969
1140
982
1141
982
1142
994
1143 1004
1144 1012
1145 1015
1146 1015
1147 1012
1148 1006
1149
996
1150
985
1151
973
1152
960
1153
949
1154
941
1155
937
1156
936
1157
936
1158
940
1159
946
1160
956
1161
965
1162
976
1163
985
1164
993
1165
998
1166 1001
1167 1001
1168
999
1169
995
1170
987
1171
976
1172
965
1173
955
1174
944
1175
936
1176
932
1177
930
1178
930
1179
932
1180
938
1181
947
1182
958
1183
969
1184
981
1185
992
1186 1000
Mue. Valor
1187 1005
1188 1008
1189 1008
1190 1005
1191
998
1192
989
1193
977
1194
965
1195
952
1196
941
1197
933
1198
933
1199
929
1200
928
1201
928
1202
931
1203
938
1204
947
1205
958
1206
970
1207
980
1208
988
1209
995
1210 1001
1211 1002
1212 1002
1213
999
1214
995
1215
989
1216
981
1217
971
1218
962
1219
954
1220
949
1221
944
1222
942
1223
942
1224
943
1225
948
1226
955
1227
963
1228
971
1229
980
1230
988
1231
993
1232
996
1233
997
1234
996
1235
993
1236
987
1237
980
1238
971
1239
963
1240
955
1241
948
Mue. Valor
1242
944
1243
943
1244
943
1245
944
1246
948
1247
956
1248
964
1249
975
1250
987
1251
996
1252 1004
1253 1004
1254 1011
1255 1014
1256 1016
1257 1016
1258 1013
1259 1008
1260 1002
1261
994
1262
983
1263
972
1264
963
1265
955
1266
948
1267
945
1268
945
1269
945
1270
948
1271
953
1272
959
1273
968
1274
977
1275
984
1276
990
1277
995
1278
997
1279
997
1280
996
1281
994
1282
989
1283
982
1284
974
1285
965
1286
957
1287
949
1288
943
1289
940
1290
940
1291
940
1292
941
1293
946
1294
953
1295
961
1296
969
135
ANEXOS
Mue. Valor
1297
977
1298
984
1299
989
1300
992
1301
993
1302
993
1303
990
1304
985
1305
978
1306
970
1307
961
1308
951
1309
945
1310
945
1311
939
1312
936
1313
936
1314
936
1315
938
1316
943
1317
950
1318
959
1319
969
1320
977
1321
983
1322
989
1323
992
1324
992
1325
991
1326
988
1327
982
1328
974
1329
966
1330
957
1331
949
1332
942
1333
938
1334
937
1335
937
1336
940
1337
945
1338
954
1339
965
1340
975
1341
985
1342
994
1343
999
1344 1004
1345 1004
1346 1002
1347
997
1348
988
1349
975
1350
960
1351
944
136
Mue.
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
Valor
922
903
888
876
867
862
860
860
860
863
870
880
889
898
908
912
912
910
905
897
884
871
855
838
822
808
798
788
784
782
782
784
789
795
802
809
814
816
816
813
809
803
793
784
775
767
760
755
753
753
755
759
764
769
775
Mue.
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
Valor
780
784
786
786
786
783
779
770
749
737
725
715
707
707
701
698
697
697
699
702
707
712
719
726
731
734
737
738
738
735
730
723
714
703
691
679
669
661
655
652
652
652
654
659
667
675
686
695
702
709
712
714
714
712
708
Mue. Valor
1462
703
1463
695
1464
685
1465
675
1466
664
1467
656
1468
656
1469
649
1470
644
1471
642
1472
642
1473
643
1474
648
1475
655
1476
664
1477
675
1478
685
1479
696
1480
704
1481
709
1482
711
1483
712
1484
711
1485
707
1486
702
1487
694
1488
685
1489
674
1490
665
1491
655
1492
649
1493
645
1494
642
1495
641
1496
641
1497
643
1498
648
1499
655
1500
664
1501
674
1502
684
1503
692
1504
698
1505
703
1506
704
1507
704
1508
702
1509
697
1510
690
1511
681
1512
670
1513
657
1514
647
1515
647
1516
637
Mue. Valor
1517
631
1518
625
1519
623
1520
622
1521
623
1522
627
1523
634
1524
643
1525
652
1526
663
1527
674
1528
680
1529
687
1530
690
1531
691
1532
691
1533
688
1534
683
1535
677
1536
669
1537
658
1538
647
1539
638
1540
631
1541
626
1542
623
1543
622
1544
622
1545
624
1546
628
1547
637
1548
645
1549
654
1550
663
1551
671
1552
678
1553
683
1554
685
1555
686
1556
684
1557
681
1558
676
1559
670
1560
660
1561
648
1562
638
1563
627
1564
619
1565
619
1566
614
1567
611
1568
610
1569
610
1570
614
1571
620
Mue. Valor
1572
630
1573
640
1574
651
1575
661
1576
671
1577
678
1578
682
1579
685
1580
686
1581
685
1582
683
1583
678
1584
671
1585
663
1586
654
1587
643
1588
633
1589
625
1590
619
1591
616
1592
616
1593
616
1594
618
1595
623
1596
631
1597
642
1598
652
1599
662
1600
670
1601
677
1602
681
1603
683
1604
683
1605
680
1606
674
1607
666
1608
656
1609
645
1610
633
1611
623
1612
613
1613
607
1614
604
1615
604
1616
602
1617
602
1618
605
1619
610
1620
618
1621
627
1622
638
1623
647
1624
655
1625
662
1626
666
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Mue. Valor
1627
668
1628
668
1629
666
1630
661
1631
654
1632
645
1633
634
1634
623
1635
611
1636
601
1637
593
1638
589
1639
587
1640
587
1641
588
1642
592
1643
598
1644
608
1645
618
1646
630
1647
641
1648
650
1649
657
1650
661
1651
663
1652
663
1653
662
1654
658
1655
652
1656
644
1657
634
1658
624
1659
614
1660
606
1661
601
1662
598
1663
597
1664
597
1665
600
1666
606
1667
606
1668
614
1669
624
1670
647
1671
656
1672
664
1673
670
1674
672
1675
673
1676
671
1677
668
1678
668
1679
662
1680
653
1681
644
Mue.
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
Valor
632
621
613
606
602
601
601
602
606
612
621
631
642
652
662
668
674
677
677
675
671
665
655
643
630
618
607
599
593
591
590
591
596
602
612
624
636
649
660
668
674
678
681
681
678
673
673
667
657
645
633
621
611
603
597
Mue.
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
Valor
594
594
594
597
605
614
625
638
650
661
670
677
681
683
683
681
676
669
660
648
634
620
609
599
592
588
588
588
592
599
609
620
634
647
658
667
672
676
676
677
676
672
666
656
644
630
615
603
593
585
579
576
576
577
582
Mue. Valor
1792
590
1793
600
1794
611
1795
623
1796
634
1797
643
1798
650
1799
653
1800
653
1801
653
1802
649
1803
644
1804
634
1805
624
1806
612
1807
600
1808
588
1809
579
1810
572
1811
568
1812
566
1813
566
1814
568
1815
575
1816
583
1817
595
1818
607
1819
620
1820
632
1821
641
1822
649
1823
653
1824
656
1825
657
1826
656
1827
652
1828
647
1829
640
1830
632
1831
623
1832
614
1833
607
1834
601
1835
597
1836
596
1837
596
1838
598
1839
598
1840
603
1841
609
1842
616
1843
625
1844
635
1845
642
1846
648
Mue. Valor
1847
652
1848
654
1849
654
1850
653
1851
651
1852
647
1853
643
1854
637
1855
632
1856
628
1857
624
1858
623
1859
623
1860
625
1861
629
1862
634
1863
642
1864
650
1865
658
1866
666
1867
672
1868
675
1869
676
1870
676
1871
673
1872
668
1873
663
1874
655
1875
647
1876
637
1877
631
1878
625
1879
621
1880
619
1881
619
1882
620
1883
624
1884
631
1885
637
1886
647
1887
656
1888
656
1889
664
1890
672
1891
676
1892
679
1893
679
1894
676
1895
672
1896
667
1897
660
1898
652
1899
644
1900
636
1901
630
Mue. Valor
1902
625
1903
622
1904
621
1905
622
1906
625
1907
630
1908
638
1909
647
1910
656
1911
666
1912
674
1913
679
1914
682
1915
684
1916
684
1917
681
1918
677
1919
671
1920
661
1921
652
1922
640
1923
631
1924
621
1925
614
1926
610
1927
608
1928
608
1929
608
1930
612
1931
616
1932
621
1933
628
1934
636
1935
643
1936
648
1937
653
1938
656
1939
657
1940
658
1941
658
1942
658
1943
656
1944
654
1945
650
1946
646
1947
640
1948
634
1949
630
1950
626
1951
624
1952
623
1953
623
1954
624
1955
629
1956
635
137
ANEXOS
Mue. Valor
1957
643
1958
653
1959
662
1960
670
1961
676
1962
680
1963
682
1964
682
1965
681
1966
678
1967
673
1968
667
1969
658
1970
650
1971
642
1972
636
1973
630
1974
628
1975
628
1976
628
1977
632
1978
638
1979
648
1980
658
1981
670
1982
681
1983
690
1984
698
1985
704
1986
706
1987
706
1988
704
1989
700
1990
692
1991
683
1992
672
1993
660
1994
660
1995
638
1996
638
1997
630
1998
624
1999
622
2000
621
138
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Anexo 3. Hoja de datos del sensor ADNS-2610.
139
ANEXOS
Anexo 4. Circuito original del ratón marca ATIVA modelo LYNX-L7R.
Figura A8.- Diagrama eléctrico original del ratón marca ATIVA modelo LYNX-L7R.
140
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Anexo 5. Circuito eléctrico del módulo desarrollado para el ratón
marca ATIVA modelo LYNX-L7R.
Figura A9.- Diagrama eléctrico de REODA-MX.
Nota: En las terminales de color verde se insertan los postes provenientes de la
placa original, en sustitución del sensor PAN3511DK.
141
ANEXOS
Anexo 6. Hoja de datos del microcontrolador 18F2550.
142
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Anexo 7. Disposición física del módulo desarrollado para la aplicación
REODA_MX.
Figura A10.- Vista PCB (layout) del módulo desarrollado para REODA-MX.
a)
b)
Figura A11.- Vista PCB de los componentes montados en los lados: a) superior; b) inferior.
143
ANEXOS
Anexo 8. Lista de materiales usados para el desarrollar el módulo
adherido al circuito original del ratón marca Ativa modelo Lynx-L7R.
Tabla A6.- Lista de materiales necesarios para el módulo de REODA-MX
Material
Placa fenólica de 20cmx20cm
Microcontrolador 18f2550
Sensor ADNS-2616
Puerto ICSP de 5 terminales
Postes para soldar
Interruptor de línea de 1 polo 1 tiro
Transistor 2N3906
Capacitor cerámico de 22 pF
Capacitor electrolítico de 2.2 uF
Capacitor electrolítico de 1 uF
Resistencia de carbón de 1 kOhm
Resistencia de carbón de 100 kOhms
Cristal oscilador de 20 MHz
Resonador cerámico de 24 MHz
Cable UTP calibre 28 AWG
Estaño para soldadura 60/40
144
Cantidad
1
1
1
1
22
1
1
2
1
1
6
1
1
1
1 metro
1 metro
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Anexo 9. Diagrama eléctrico de REODA-MX.
Interruptor para programación
Figura A12.- Diagrama eléctrico de REODA-MX.
145
ANEXOS
Anexo 10. Código implementado en REODA-MX.
// DECLARACION DE TODAS LAS LIBRERIAS
#include <18F2550.h>
#fuses
HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VRE
GEN
#use delay(clock=20000000)
#use rs232(baud=9600)
#define __USB_PIC_PERIF__ 1
#if __USB_PIC_PERIF__
#include <pic18_usb.h> //Microchip PIC18Fxx5x hardware layer for
usb.c
#endif
#include <pic18_usb.h> //Microchip PIC18Fxx5x hardware layer for
usb.c
#include <usb_desc_mouse.h> //USB Configuration and Device
descriptors for this UBS device
#include <usb.c>
//handles usb setup tokens and get descriptor
reports
////// DECLARACION DE TODAS LAS FUNCIONES
void WriteSensor(int,int);
Int ReadSensor(int);
void PulseClock();
void usb_debug_task(void);
int filtroX(int8);
int promedioX(signed int);
int regresox(signed int);
int filtroY(int8);
int promedioY(signed int);
int regresoY(signed int);
////// DECLARACION DE TODAS LA VARIABLES Y
CONSTANTES GLOBALES
float
float
float
float
yunosiete= 0.047579378 ;
yunoocho= 0.04753124 ;
yunonueve= 0.047476726 ;
ydoscero= 0.047415839 ;
//VARIABLES DE LA FUNCION FILTROX
int8 Entradax=0;
signed int Entradaxayuda=0;
signed int DiferenciaX=0;
signed int salidaxcero=0;
signed int16 entradaXdos=0;
signed int16 entradaXuno=0;
signed int16 entradaXcero=0;
signed int16 SalidaX=0;
signed int salidaxdos=0;
signed int salidaxuno=0;
float salidaxactual=0;
int8 contadorxayuda=0;
//VARIABLES DE LA FUNCION PROMEDIOX
signed int promedio_actualxx=0;
signed int promedio_actualxxx=0;
int contadorx=0;
int8 validax=0;
int8 reiniciotodox=0;
int8 exponencialx=0;
int8 aumentoxuno=0;
int8 aumentoxdos=0;
int8 aumentoxtres=0;
int8 aumentoxcuatro=0;
int8 aumentoxfinal=0;
int8 asignadox=0;
int8 delayx=0;
//VARIABLES PRINCIPALES
int Data=0;
int Address=0;
Signed Int DeltaY=0;
signed int DeltaYY=0;
signed int DeltaX=0;
int8 Deltaxx=0;
//chebyshev 1 para eje x
float bunox=-0.970797;
float bdosx=0;
float acerox=0.01460138;
float aunox=0.01460138;
float adosx=0;
// Rectangular para eje Y
float ycero = 0.047415838 ;
float yuno= 0.04741583 ;
float ydos= 0.047531243 ;
float ytres= 0.047579378 ;
float ycuatro= 0.047621119 ;
float ycinco= 0.047656455 ;
float yseis= 0.047685378 ;
float ysiete= 0.047707882 ;
float yocho= 0.047723959 ;
float ynueve= 0.047733607 ;
float yunocero= 0.047736823 ;
float yunouno= 0.047733607 ;
float yunodos= 0.047723959 ;
float yunotres= 0.047707882 ;
float yunocuatro= 0.04768553 ;
float yunocinco= 0.047656455 ;
float yunoseis= 0.047621119 ;
146
//VARIABLES DE LA FUNCION FILTROY
int EntradaY=0;
signed int EntradaYayuda=0;
signed int salidaYcero=0;
signed int16 SalidaY=0;
float salidaYactual=0;
signed int Ydiferenciadoscero=0;
signed int Ydiferenciaunonueve=0;
signed int Ydiferenciaunoocho=0;
signed int Ydiferenciaunosiete=0;
signed int Ydiferenciaunoseis=0;
signed int Ydiferenciaunocinco=0;
signed int Ydiferenciaunocuatro=0;
signed int Ydiferenciaunotres=0;
signed int Ydiferenciaunodos=0;
signed int Ydiferenciaunouno=0;
signed int Ydiferenciaunocero=0;
signed int Ydiferencianueve=0;
signed int Ydiferenciaocho=0;
signed int Ydiferenciasiete=0;
signed int Ydiferenciaseis=0;
signed int Ydiferenciacinco=0;
signed int Ydiferenciacuatro=0;
signed int Ydiferenciatres=0;
signed int Ydiferenciados=0;
signed int Ydiferenciauno=0;
signed int Ydiferenciacero=0;
signed int promedio_actualYY=0;
signed int contadorY=0;
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
else
if ( input(PIN_B1)) //si la entrada de b0 está en alto
{
palanca=255;
}
else
if (!input(pin_b0) && !input (pin_b1))
{
palanca=0;
}
}
//VARIABLES DE LA FUNCION PROMEDIOY
int8 contadoryayuda=0;
int8 reiniciotodoy=0;
int8 exponencialy=0;
int8 validay=0;
signed int promedio_actualyyy=0;
int8 aumentoyuno=0;
int8 aumentoydos=0;
int8 aumentoytres=0;
int8 aumentoycuatro=0;
int8 aumentoyfinal=0;
int8 asignadoy=0;
int8 delayy=0;
/////// DECLARACION DE LA FUNCION PRINCIPAL
void main(void) {
set_tris_C(0x00);// PARA EL LED QUE ESTÁ SOLDADO
set_tris_B(0x3F);// todo entrada menos SCK Y SDIO
int8 out_data[4];
int8 count=0;
char a=0;
char b=0;
char c=0;
char palanca=0;
printf("\r\n\nRaton Anti-Tremor CENIDET");//CCS USB Mouse
Example
#ifdef __PCH__
printf("\r\nPCH: v");
printf(__PCH__);
#else
printf("\r\n\PCM: v");
printf(__PCM__);
#endif
usb_init_cs(); // se inicializa el puerto USB.
ReadSensor(0x03); // lee el registro 3 Delya X que para mi ratón
será Delta Y
EntradaY=Data;
ReadSensor(0x02); // lee el registro 2 Delya Y que para mi ratón
será Delta X
EntradaX=Data;
FiltroX(EntradaX);
FiltroY(EntradaY);
{
if (input(PIN_B4)) //comparamos boton izquierdo
a=0;
else
a=1;
if (input(PIN_B3)) // comparamos boton derecho
b=0;
else
b=2;
if (input(PIN_B2)) // comparamos botón medio
c=0;
else
c=0;
}
usb_task(); // habilita el puerto USB y sus interrupciones.
usb_debug_task(); // Muestra la información de depuración en
serie para la enumeración y los estados de conexión.
#if !(__USB_PIC_PERIF__)
printf("\r\nUSBN: 0x%X", usbn_get_version());
#endif
printf("\r\n");
output_low(PIN_B6);// SCK=0;
output_low(PIN_B7);// SDIO=0;
output_high(PIN_C1);// SDIO=0;
delay_cycles(50); // 1 ciclo son 200 ns, total 10us
output_low(PIN_C1);// LED
WriteSensor (0x00, 0x80); // configura al sensor en funcionamiento
normal
delay_cycles(250); //50us entre dato de una escritura y direccion de
otra escritura deben pasar 100us
delay_cycles(250); //50 us
WriteSensor (0x00, 0x00); // mantiene el led rojo siempre encendido,
0 lo apaga despues de 1 segundo
delay_cycles(250); // 50us
delay_cycles(250); // 50us entre dato de una escritura y direccion de
una lectura deben pasar 100us
while (TRUE)
{
{// Aquí se harán las comparaciones para saber si giró hacia arriba o
abajo
if ( input(PIN_B0)) //si la entrada de b0 está en alto
{
palanca=1;
}
if (usb_enumerated()) {
out_data[0]=a+b+c+8; //button state goes here
out_data[1]=deltaxX;
out_data[2]=DeltaYy;
out_data[3]=0;//palanca; //wheel state goes here
if (usb_put_packet(1,out_data,4,USB_DTS_TOGGLE))
count++;
if (count > 100) {
count=0;
}
delay_ms(8);
}
}
}
/////// DEFINICION DE LAS FUNCIONES
void usb_debug_task(void) {
static int8 last_connected;
static int8 last_enumerated;
int8 new_connected;
int8 new_enumerated;
new_connected=usb_attached();
new_enumerated=usb_enumerated();
if (new_connected && !last_connected)
printf("\r\n\nUSB connected, waiting for enumaration...");
if (!new_connected && last_connected)
printf("\r\n\nUSB disconnected, waiting for connection...");
if (new_enumerated && !last_enumerated)
printf("\r\n\nUSB enumerated by PC/HOST");
if (!new_enumerated && last_enumerated)
147
ANEXOS
printf("\r\n\nUSB unenumerated by PC/HOST, waiting for
enumeration...");
{
output_high(PIN_B7);
Address=Address-y;
last_connected=new_connected;
last_enumerated=new_enumerated;
}
PulseClock();
output_low(PIN_B7);
y=y/2;
x++;
}
void PulseClock() //used to clock the data in/out of the ADNS-2610
{
output_low(PIN_B6);// 200ns
output_low(PIN_B6);// 200ns
output_high(PIN_B6);// 200ns
output_high(PIN_B6);// 200ns
}
void WriteSensor(int Address, int Data) //used to write data to the
ADNS2610
{
if (Address>=128) //Address 7
{
Address=Address-128;
}
int x=0;
int y=64;
output_high(PIN_B7);
output_high(PIN_B7);
PulseClock();
output_low(PIN_B7);
while (x<7)
{
if (Address>=y) //Address 6
{
output_high(PIN_B7);// SDIO=1;
Address=Address-y;
}
else
{
output_low(PIN_B7);// SDIO=0;
}
PulseClock();
y=y/2;
x++;
}
}
output_low(PIN_B7);//SDIO=0;
set_tris_B(0xBF);//set SDIO RB7 to input
delay_cycles(250); //50 us
delay_cycles(250); //50 us 100us entre adres y dato para cargar el
mismo.
x=0;
y=128;
Data=0;
while (x<8)
{
PulseClock();
if (input(PIN_B7))// compara la entrada de SDIO
{
Data=Data+y;
}
y=y/2;
x++;
}
set_tris_B(0x3F);
output_high(PIN_B6);//SCK=1;
output_low(PIN_B7);//SDIO=0;
return Data;
}
int filtroX(int8 entradax)
{
if (entradaX>127)
{
entradaXayuda=entradaX-256;
}
else {entradaxayuda=entradax;}
DiferenciaX=SalidaXcero; //con signo +-
delay_cycles(2); // entre el cambio de direccion y dato deben pasar al
menos 250ns
x=0;
y=128;
while (x<8)
{
if (Data>=y)
{
output_high(PIN_B7);// SDIO=1;
Data=Data-y;
}
else
{
output_low(PIN_B7);// SDIO=0;
}
PulseClock();
y=y/2;
x++;
}
output_low(PIN_B7);// SDIO=0;
}
int ReadSensor(int Address)// Used to read registers of the ADNS2610
{
output_low(PIN_B7);//SDIO=0;
int x=0;
int y=128;
while (x<8)
{
if (Address>=y)
148
entradaXdos=entradaXuno-DiferenciaX;
entradaXuno=entradaXcero-DiferenciaX;
entradaXcero=entradaXcero+entradaXayuda-DiferenciaX; // este valor
puede ser mayor que 128 o menor que -128
salidaxdos=salidaxuno-diferenciaX;
salidaxuno= 0; //salidaxcero-diferenciaX; // aqui debe valer cero
absoluto ya que la salida pasada se compensó en la misma cantidad.
SalidaXactual=((acerox*entradaxcero)+(aunox*entradaxuno)+(adosx*e
ntradaxdos)-(bunox*salidaxuno)-(bdosx*salidaxdos));
SalidaX=SalidaXactual/1;
if (salidax < -128)
{
salidax = -128;
}
if (salidax > 127)
{
salidax=127;
}
salidaxcero=salidaX;
DeltaX=SalidaX;
if (entradax==0)
// esta rutina limita el movimiento del cursor a 5
muestras despues de que el raton no tuvo movimiento para evitar que
el filtro no siga enviando residuos
{
contadorxayuda=contadorxayuda+1;
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
if (contadorxayuda==6)
{
deltax=0;
contadorxayuda=5;
}
case 11: aumentoxfinal=1; break; // aumento final movimiento de
4
case 12: aumentoxfinal=1; break;
}
}
if (entradax!=0)
{
contadorxayuda=0;
}
promediox (DeltaX);
regresox(Promedio_actualxx);
return DeltaxX;
}
int PromedioX(signed int DeltaX) // se promedia de 0 a 255
{
if (deltax!=0) // distinto de cero
{
reiniciotodox=0;
contadorx=contadorx+1;
promedio_actualxx=0;
if (contadorx==25) // si mantienes movimiento durante 25 ciclos
significa que eres movimiento deseado
{
promedio_actualxx=deltax;
contadorx=24;
}
}
if (deltax==0)
{
reiniciotodox=reiniciotodox+1;
if (reiniciotodox==5) // si mantienes 5 ciclos con un 0 de entrada
{
contadorx=0;
reiniciotodox=4;
}
promedio_actualxx=0;
}
return promedio_actualxx;
}
int regresox(signed int promedio_actualxx )
{
if (promedio_actualxx>0)
{
exponencialx=exponencialx+1;
validax=validax+1;
promedio_actualxxx=0; //fórmula
if (promedio_actualxx>10)
{
promedio_actualxx=11;
}
switch(promedio_actualxx)
{
case 1: aumentoxuno=aumentoxuno+1; break; // aumento 1 mov.
intermitente
case 2: aumentoxuno=aumentoxuno+1; break;
case 3: aumentoxuno=aumentoxuno+1; break;
case 4: aumentoxuno=aumentoxuno+1; break;
case 5: aumentoxdos=aumentoxdos+1; break; // aumento 2
movimiento de 1
case 6: aumentoxdos=aumentoxdos+1; break;
case 7: aumentoxtres=aumentoxtres+1; break; // aumento 3
movimiento de 2
case 8: aumentoxtres=aumentoxtres+1; break;
case 9: aumentoxcuatro=aumentoxcuatro+1; break; // aumento 4
movimiento de 3
case 10: aumentoxcuatro=aumentoxcuatro+1; break;
if (exponencialx==1)
{promedio_actualxxx=1;}
if (exponencialx==21)
{
if ((aumentoxuno==aumentoxdos) ||
(aumentoxuno==aumentoxtres) || (aumentoxuno==aumentoxcuatro)
|| (aumentoxdos==aumentoxtres) ||
(aumentoxdos==aumentoxcuatro) ||
(aumentoxtres==aumentoxcuatro))
{
promedio_actualxxx=1;
}
if ((aumentoxuno>aumentoxdos) &&
(aumentoxuno>aumentoxtres) && (aumentoxuno>aumentoxcuatro))
{
promedio_actualxxx=1;
}
if ((aumentoxdos>aumentoxtres) &&
(aumentoxdos>aumentoxcuatro))
{
validax=74;
}
if (aumentoxtres>aumentoxcuatro)
{
validax=74;
}
if ((aumentoxcuatro>aumentoxuno) &&
(aumentoxcuatro>aumentoxdos) &&
(aumentoxcuatro>aumentoxtres))
{
validax=74;
}
if (aumentoxfinal==1)
{
validax=74;
}
}
if (exponencialx==38)
{promedio_actualxxx=1;}
if (exponencialx==47)
{promedio_actualxxx=1;}
if (exponencialx==55)
{promedio_actualxxx=1;}
if (exponencialx==125)
{promedio_actualxxx=1;}
if (exponencialx==66)
{promedio_actualxxx=1;}
if (exponencialx==70)
{promedio_actualxxx=1;}
if (exponencialx==73)
{promedio_actualxxx=1;}
if (validax==74) //
{
exponencialx=73;
// aqui comparamos la moda de la entrada (promedio_actualxx) la
entrada que mas se repitio es la que se asigna de incremento
if ((aumentoxuno==aumentoxdos) ||
(aumentoxuno==aumentoxtres) || (aumentoxuno==aumentoxcuatro)
|| (aumentoxdos==aumentoxtres) ||
(aumentoxdos==aumentoxcuatro) ||
(aumentoxtres==aumentoxcuatro))
{
asignadox=1;
}
if ((aumentoxuno>aumentoxdos) &&
(aumentoxuno>aumentoxtres) && (aumentoxuno>aumentoxcuatro))
{
asignadox=1;
149
ANEXOS
}
if ((aumentoxdos>aumentoxtres) &&
(aumentoxdos>aumentoxcuatro))
{
asignadox=2;
}
if (aumentoxtres>aumentoxcuatro)
{
asignadox=3;
}
if ((aumentoxcuatro>aumentoxuno) &&
(aumentoxcuatro>aumentoxdos) &&
(aumentoxcuatro>aumentoxtres))
{
asignadox=4;
}
if (aumentoxfinal==1)
{
asignadox=5;
}
aumentoxuno=0;
aumentoxdos=0;
aumentoxtres=0;
aumentoxcuatro=0;
aumentoxfinal=0;
validax=0;
}
if (asignadox==1)
{
promedio_actualxxx=0;
delayx=delayx+1;
if (delayx==10)
{
promedio_actualxxx=1;
delayx=0;
}
}
if (asignadox == 2)
{ promedio_actualxxx=1;}
if (asignadox==3)
{ promedio_actualxxx=2;}
if (asignadox==4)
{ promedio_actualxxx=3; }
if (asignadox==5)
{ promedio_actualxxx=6; }
}
if (promedio_actualxx<0)
{
exponencialx=exponencialx+1;
validax=validax+1;
promedio_actualxxx=0; //fórmula
if (promedio_actualxx<-10)
{
promedio_actualxx=-11;
}
switch(promedio_actualxx)
{
case -1: aumentoxuno=aumentoxuno+1; break; // aumento 1
mov. intermitente
case -2: aumentoxuno=aumentoxuno+1; break;
case -3: aumentoxuno=aumentoxuno+1; break;
case -4: aumentoxuno=aumentoxuno+1; break;
case -5: aumentoxdos=aumentoxdos+1; break; // aumento 2
movimiento de 1
case -6: aumentoxdos=aumentoxdos+1; break;
case -7: aumentoxtres=aumentoxtres+1; break; // aumento 3
movimiento de 2
case -8: aumentoxtres=aumentoxtres+1; break;
case -9: aumentoxcuatro=aumentoxcuatro+1; break; // aumento
4 movimiento de 3
case -10: aumentoxcuatro=aumentoxcuatro+1; break;
case -11: aumentoxfinal=1; break; // aumento final movimiento
de 8
150
case -12: aumentoxfinal=1; break;
}
if (exponencialx==1)
{promedio_actualxxx=-1;}
if (exponencialx==21)
{
if ((aumentoxuno==aumentoxdos) ||
(aumentoxuno==aumentoxtres) || (aumentoxuno==aumentoxcuatro)
|| (aumentoxdos==aumentoxtres) ||
(aumentoxdos==aumentoxcuatro) ||
(aumentoxtres==aumentoxcuatro))
{
promedio_actualxxx=-1;
}
if ((aumentoxuno>aumentoxdos) &&
(aumentoxuno>aumentoxtres) && (aumentoxuno>aumentoxcuatro))
{
promedio_actualxxx=-1;
}
if ((aumentoxdos>aumentoxtres) &&
(aumentoxdos>aumentoxcuatro))
{
validax=74;
}
if (aumentoxtres>aumentoxcuatro)
{
validax=74;
}
if ((aumentoxcuatro>aumentoxuno) &&
(aumentoxcuatro>aumentoxdos) &&
(aumentoxcuatro>aumentoxtres))
{
validax=74;
}
if (aumentoxfinal==1)
{
validax=74;
}
}
if (exponencialx==38)
{promedio_actualxxx=-1;}
if (exponencialx==47)
{promedio_actualxxx=-1;}
if (exponencialx==55)
{promedio_actualxxx=-1;}
if (exponencialx==61)
{promedio_actualxxx=-1;}
if (exponencialx==66)
{promedio_actualxxx=-1;}
if (exponencialx==70)
{promedio_actualxxx=-1;}
if (exponencialx==73)
{promedio_actualxxx=-1;}
if (validax==74)
{
exponencialx=73;
// aqui podriamos comparar, la entrada (promedio_actualxx) MODA
es 2, el contador lo mandamos a 151 para que posiciones mas rapido,
si es 4 lo mandamos a 255
if ((aumentoxuno==aumentoxdos) ||
(aumentoxuno==aumentoxtres) || (aumentoxuno==aumentoxcuatro)
|| (aumentoxdos==aumentoxtres) ||
(aumentoxdos==aumentoxcuatro) ||
(aumentoxtres==aumentoxcuatro))
{
asignadox=1;
}
if ((aumentoxuno>aumentoxdos) &&
(aumentoxuno>aumentoxtres) && (aumentoxuno>aumentoxcuatro))
{
asignadox=1;
}
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
if ((aumentoxdos>aumentoxtres) &&
(aumentoxdos>aumentoxcuatro))
{
asignadox=2;
}
if (aumentoxtres>aumentoxcuatro)
{
asignadox=3;
}
if ((aumentoxcuatro>aumentoxuno) &&
(aumentoxcuatro>aumentoxdos) &&
(aumentoxcuatro>aumentoxtres))
{
asignadox=4;
}
if (aumentoxfinal==1)
{
asignadox=5;
}
aumentoxuno=0;
aumentoxdos=0;
aumentoxtres=0;
aumentoxcuatro=0;
aumentoxfinal=0;
validax=0;
}
if (asignadox==1)
{
promedio_actualxxx=0;
delayx=delayx+1;
if (delayx==10)
{
promedio_actualxxx=-1;
delayx=0;
}
}
if (asignadox == 2)
{ promedio_actualxxx=-1;}
if (asignadox==3)
{ promedio_actualxxx=-2;}
if (asignadox==4)
{ promedio_actualxxx=-3; }
if (asignadox==5)
{ promedio_actualxxx=-6; }
}
if (promedio_actualxx==0)
{
exponencialx=0;
promedio_actualxxx=0;
aumentoxuno=0;
aumentoxdos=0;
aumentoxtres=0;
aumentoxcuatro=0;
aumentoxfinal=0;
asignadox=0;
validax=0;
}
Deltaxx=promedio_actualxxx;
if (promedio_actualxxx < 0) // yo creo que esto tampoco va.
{
Deltaxx = 256+promedio_actualxxx;
}
return Deltaxx;
}
int filtroY(int8 entradaY)
{
if (entradaY>127)
{
entradaYayuda=entradaY-256;
}
else {entradaYayuda=entradaY;}
Ydiferenciadoscero=Ydiferenciaunonueve;
Ydiferenciaunonueve=Ydiferenciaunoocho;
Ydiferenciaunoocho=Ydiferenciaunosiete;
Ydiferenciaunosiete=Ydiferenciaunoseis;
Ydiferenciaunoseis=Ydiferenciaunocinco;
Ydiferenciaunocinco=Ydiferenciaunocuatro;
Ydiferenciaunocuatro=Ydiferenciaunotres;
Ydiferenciaunotres=Ydiferenciaunodos;
Ydiferenciaunodos=Ydiferenciaunouno;
Ydiferenciaunouno=Ydiferenciaunocero;
Ydiferenciaunocero=Ydiferencianueve;
Ydiferencianueve=Ydiferenciaocho;
Ydiferenciaocho=Ydiferenciasiete;
Ydiferenciasiete=Ydiferenciaseis;
Ydiferenciaseis=Ydiferenciacinco;
Ydiferenciacinco=Ydiferenciacuatro;
Ydiferenciacuatro=Ydiferenciatres;
Ydiferenciatres=Ydiferenciados;
Ydiferenciados=Ydiferenciauno;
Ydiferenciauno=Ydiferenciacero;
Ydiferenciacero=entradayayuda;
SalidaYactual=((ycero*ydiferenciacero)+(yuno*ydiferenciauno)+(ydos*
ydiferenciados)+(ytres*ydiferenciatres)+(ycuatro*ydiferenciacuatro)+(
ycinco*ydiferenciacinco)+(yseis*ydiferenciaseis)+(ysiete*ydiferenciasie
te)+(yocho*ydiferenciaocho)+(ynueve*ydiferencianueve)+(yunocero*y
diferenciaunocero)+(yunocero*ydiferenciaunocero)+(yunouno*ydifere
nciaunouno)+(yunodos*ydiferenciaunodos)+(yunotres*ydiferenciauno
tres)+(yunocuatro*ydiferenciaunocuatro)+(yunocinco*ydiferenciaunoc
inco)+(yunoseis*ydiferenciaunoseis)+(yunosiete*ydiferenciaunosiete)+
(yunoocho*ydiferenciaunoocho)+(yunonueve*ydiferenciaunonueve)+(
ydoscero*ydiferenciadoscero));
SalidaY=SalidaYactual/1;
if (salidaY < -128)
{
salidaY = -128;
}
if (salidaY > 127)
{
salidaY=127;
}
salidaYcero=salidaY;
DeltaY=SalidaY;
if (entraday==0)
// esta rutina limita el movimiento del cursor a 5
muestras despues de que el raton no tuvo movimiento para evitar que
el filtro no siga enviando residuos
{
contadoryayuda=contadoryayuda+1;
if (contadoryayuda==6)
{
deltay=0;
contadoryayuda=5;
}
}
if (entraday!=0)
{
contadoryayuda=0;
}
promedioy (Deltay);
regresoy (Promedio_actualyy);
return DeltaYY;
}
int Promedioy(signed int Deltay) // se promedia de 0 a 255
151
ANEXOS
{
if (deltay!=0) // distinto de cero
{
reiniciotodoy=0;
contadory=contadory+1;
promedio_actualyy=0;
if (contadory==24) // si mantienes movimiento durante 25 ciclos
significa que eres movimiento deseado
{
promedio_actualyy=deltay;
contadory=23;
}
}
if (deltay==0)
{
reiniciotodoy=reiniciotodoy+1;
if (reiniciotodoy==4) // si mantienes 4 ciclos con un 0 de entrada
{
contadory=0;
reiniciotodoy=3;
}
promedio_actualyy=0;
}
return promedio_actualyy;
}
int regresoy(signed int promedio_actualyy )
{
if (promedio_actualyy>0)
{
exponencialy=exponencialy+1;
validay=validay+1;
promedio_actualyyy=0;
if (promedio_actualyy>10)
{
promedio_actualyy=11;
}
switch(promedio_actualyy)
{
case 1: aumentoyuno=aumentoyuno+1; break; // aumento 1 mov.
intermitente
case 2: aumentoyuno=aumentoyuno+1; break;
case 3: aumentoyuno=aumentoyuno+1; break;
case 4: aumentoyuno=aumentoyuno+1; break;
case 5: aumentoyuno=aumentoyuno+1; break;
case 6: aumentoyuno=aumentoyuno+1; break;
case 7: aumentoydos=aumentoydos+1; break; // aumento 2
movimiento de 1
case 8: aumentoydos=aumentoydos+1; break;
case 9: aumentoytres=aumentoytres+1; break; // aumento 3
movimiento de 2
case 10: aumentoytres=aumentoytres+1; break;
case 11: aumentoycuatro=aumentoycuatro+1; break; // aumento
final movimiento de 3
case 12: aumentoycuatro=aumentoycuatro+1; break;
}
if (exponencialy==1)
{promedio_actualyyy=1;}
if (exponencialy==21)
{
if ((aumentoyuno==aumentoydos) ||
(aumentoyuno==aumentoytres) || (aumentoyuno==aumentoycuatro)
|| (aumentoydos==aumentoytres) ||
(aumentoydos==aumentoycuatro) ||
(aumentoytres==aumentoycuatro))
{
promedio_actualyyy=1;
}
if ((aumentoyuno>aumentoydos) &&
(aumentoyuno>aumentoytres) && (aumentoyuno>aumentoycuatro))
{
promedio_actualyyy=1;
}
152
if ((aumentoydos>aumentoytres) &&
(aumentoydos>aumentoycuatro))
{
validay=74;
}
if (aumentoytres>aumentoycuatro)
{
validay=74;
}
if ((aumentoycuatro>aumentoyuno) &&
(aumentoycuatro>aumentoydos) &&
(aumentoycuatro>aumentoytres))
{
validay=74;
}
if (aumentoyfinal==1)
{
validay=74;
}
}
if (exponencialy==38)
{promedio_actualyyy=1;}
if (exponencialy==47)
{promedio_actualyyy=1;}
if (exponencialy==55)
{promedio_actualyyy=1;}
if (exponencialy==125)
{promedio_actualyyy=1;}
if (exponencialy==66)
{promedio_actualyyy=1;}
if (exponencialy==70)
{promedio_actualyyy=1;}
if (exponencialy==73)
{promedio_actualyyy=1;}
if (validay==74) //
{
exponencialy=73;
// aqui comparamos la moda de la entrada (promedio_actualyy) la
entrada que mas se repitio es la que se asigna de incremento
if ((aumentoyuno==aumentoydos) ||
(aumentoyuno==aumentoytres) || (aumentoyuno==aumentoycuatro)
|| (aumentoydos==aumentoytres) ||
(aumentoydos==aumentoycuatro) ||
(aumentoytres==aumentoycuatro))
{
asignadoy=1;
}
if ((aumentoyuno>aumentoydos) &&
(aumentoyuno>aumentoytres) && (aumentoyuno>aumentoycuatro))
{
asignadoy=1;
}
if ((aumentoydos>aumentoytres) &&
(aumentoydos>aumentoycuatro))
{
asignadoy=2;
}
if (aumentoytres>aumentoycuatro)
{
asignadoy=3;
}
if ((aumentoycuatro>aumentoyuno) &&
(aumentoycuatro>aumentoydos) &&
(aumentoycuatro>aumentoytres))
{
asignadoy=4;
}
if (aumentoyfinal==1)
{
asignadoy=5;
}
aumentoyuno=0;
aumentoydos=0;
aumentoytres=0;
aumentoycuatro=0;
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
aumentoyfinal=0;
validay=0;
}
if (asignadoy==1) // movimiento intermitente cada 10 ciclos
{
promedio_actualyyy=0;
delayy=delayy+1;
if (delayy==10)
{
promedio_actualyyy=1;
delayy=0;
}
}
if (asignadoy == 2) // movimiento 1
{ promedio_actualyyy=1;}
if (asignadoy==3) // movimiento 2
{ promedio_actualyyy=2;}
if (asignadoy==4) // movimiento 3
{ promedio_actualyyy=6; }
if (asignadoy==5) // movimiento 3
{ promedio_actualyyy=4; }
}
if (promedio_actualyy<0)
{
exponencialy=exponencialy+1;
validay=validay+1;
promedio_actualyyy=0; //fórmula
if (promedio_actualyy<-10)
{
promedio_actualyy=-11;
}
switch(promedio_actualyy)
{
case -1: aumentoyuno=aumentoyuno+1; break; // aumento 1
mov. intermitente
case -2: aumentoyuno=aumentoyuno+1; break;
case -3: aumentoyuno=aumentoyuno+1; break;
case -4: aumentoyuno=aumentoyuno+1; break;
case -5: aumentoyuno=aumentoyuno+1; break;
case -6: aumentoyuno=aumentoyuno+1; break;
case -7: aumentoydos=aumentoydos+1; break; // aumento 2
movimiento de 1
case -8: aumentoydos=aumentoydos+1; break;
case -9: aumentoytres=aumentoytres+1; break; // aumento 3
movimiento de 2
case -10: aumentoytres=aumentoytres+1; break;
case -11: aumentoycuatro=aumentoycuatro+1; break; // aumento
final movimiento de 3
case -12: aumentoycuatro=aumentoycuatro+1; break;
}
if (exponencialy==1)
{promedio_actualyyy=-1;}
if (exponencialy==21)
{
if ((aumentoyuno==aumentoydos) ||
(aumentoyuno==aumentoytres) || (aumentoyuno==aumentoycuatro)
|| (aumentoydos==aumentoytres) ||
(aumentoydos==aumentoycuatro) ||
(aumentoytres==aumentoycuatro))
{
promedio_actualyyy=-1;
}
if ((aumentoyuno>aumentoydos) &&
(aumentoyuno>aumentoytres) && (aumentoyuno>aumentoycuatro))
{
promedio_actualyyy=-1;
}
if ((aumentoydos>aumentoytres) &&
(aumentoydos>aumentoycuatro))
{
validay=74;
}
if (aumentoytres>aumentoycuatro)
{
validay=74;
}
if ((aumentoycuatro>aumentoyuno) &&
(aumentoycuatro>aumentoydos) &&
(aumentoycuatro>aumentoytres))
{
validay=74;
}
if (aumentoyfinal==1)
{
validay=74;
}
}
if (exponencialy==38)
{promedio_actualyyy=-1;}
if (exponencialy==47)
{promedio_actualyyy=-1;}
if (exponencialy==55)
{promedio_actualyyy=-1;}
if (exponencialy==61)
{promedio_actualyyy=-1;}
if (exponencialy==66)
{promedio_actualyyy=-1;}
if (exponencialy==70)
{promedio_actualyyy=-1;}
if (exponencialy==73)
{promedio_actualyyy=-1;}
if (validay==74)
{
exponencialy=73;
// aqui podriamos comparar, la entrada (promedio_actualyy)
MODA es 2, el contador lo mandamos a 151 para que posiciones mas
rapido, si es 4 lo mandamos a 255
if ((aumentoyuno==aumentoydos) ||
(aumentoyuno==aumentoytres) || (aumentoyuno==aumentoycuatro)
|| (aumentoydos==aumentoytres) ||
(aumentoydos==aumentoycuatro) ||
(aumentoytres==aumentoycuatro))
{
asignadoy=1;
}
if ((aumentoyuno>aumentoydos) &&
(aumentoyuno>aumentoytres) && (aumentoyuno>aumentoycuatro))
{
asignadoy=1;
}
if ((aumentoydos>aumentoytres) &&
(aumentoydos>aumentoycuatro))
{
asignadoy=2;
}
if (aumentoytres>aumentoycuatro)
{
asignadoy=3;
}
if ((aumentoycuatro>aumentoyuno) &&
(aumentoycuatro>aumentoydos) &&
(aumentoycuatro>aumentoytres))
{
asignadoy=4;
}
if (aumentoyfinal==1)
{
asignadoy=5;
}
aumentoyuno=0;
aumentoydos=0;
aumentoytres=0;
aumentoycuatro=0;
aumentoyfinal=0;
validay=0;
}
153
ANEXOS
{
if (asignadoy==1)
{
promedio_actualyyy=0;
delayy=delayy+1;
if (delayy==10)
{
promedio_actualyyy=-1;
delayy=0;
}
}
if (asignadoy == 2)
{ promedio_actualyyy=-1;}
if (asignadoy==3)
{ promedio_actualyyy=-2;}
if (asignadoy==4)
{ promedio_actualyyy=-6; }
if (asignadoy==5)
{ promedio_actualyyy=-4; }
exponencialy=0;
promedio_actualyyy=0;
aumentoyuno=0;
aumentoydos=0;
aumentoytres=0;
aumentoycuatro=0;
aumentoyfinal=0;
asignadoy=0;
validay=0;
}
}
Deltayy=promedio_actualyyy;
if (promedio_actualyyy < 0) // yo creo que esto tampoco va.
{
Deltayy = 256+promedio_actualyyy;
}
if (promedio_actualyy==0)
return Deltayy;
}
154
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Anexo 11. Documento de pruebas para validación de REODA-MX.
11.1. Introducción
El presente documento plantea una serie de pruebas diseñadas específicamente
para validar REODA-MX. Estas pruebas fueron diseñadas de acuerdo a los
parámetros que se requieren evaluar durante el funcionamiento de REODA-MX.
Estas pruebas deben ser aplicadas, preferentemente, a personas con tremor
esencial en manos.
Las pruebas son sencillas, sin embargo se requiere que el usuario tenga un
conocimiento previo sobre la utilización de un ratón de computadora, con el fin de
entender de manera rápida las pruebas y evitar una extensión en la aplicación de
las mismas invirtiendo tiempo en explicación y corrección de instrucciones de las
pruebas y posturas de la mano en relación al ratón. En todo momento las pruebas
aplicadas serán supervisadas por el evaluador, con el fin de brindar asistencia al
momento de realizar las mismas en caso de que el usuario así lo requiera.
Antes de iniciar las pruebas, el evaluador deberá explicar con detalle en qué
consiste cada una de las pruebas, así también deberá ejemplificar un caso para
cada prueba con el fin de que el usuario comprenda de manera más fácil la
aplicación de estas.
11.2. Explicación a los usuarios sobre funcionamiento de un ratón de
computadora.
Un ratón de computadora estándar es un dispositivo que permite mover el cursor
de pantalla de un equipo de cómputo con el fin de manipular, a través de un
entorno gráfico, las diversas opciones del sistema operativo y de las aplicaciones
instaladas en el mismo.
155
ANEXOS
Normalmente consta de 3 botones (izquierdo, medio y derecho), y reconoce
3 ejes de movimiento, 2 de estos de traslación (eje x, eje y) y 1 de rotación (giro
de la rueda media).
Cada uno de los botones tiene asignadas funciones específicas; cuando el
cursor está ubicado en escritorio del sistema operativo Windows, al oprimir cada
uno de ellos, realizan las siguientes funciones:
Tabla A7.- Funciones de los botones de un ratón para computadora.
Parámetro
Función
Botón derecho
Se accede a un menú textual que contiene distintas opciones.
Botón Izquierdo
Se selecciona un área del escritorio, o bien, un ícono del mismo.
Botón central
Sin función.
Así mismo, al oprimir dos veces consecutivas algún botón, se realizan otras
funciones, como ejecutar la aplicación que enlaza el ícono seleccionado (botón
izquierdo).
En el caso del desplazamiento en el eje “X” y “Y” del ratón, sirve para
cambiar de ubicación el cursor y así poder seleccionar otros puntos del escritorio,
como seleccionar íconos distintos o navegar por el menú de programas ubicado
en la parte inferior izquierda del sistema operativo Windows.
La combinación de estos parámetros permite realizar actividades como
ejecutar programas de edición de texto, hojas de cálculo, navegar por el internet,
entretenerse con juegos, escuchar música, ver fotos, videos, etc. Todas las
aplicaciones computacionales diseñadas para ser manipuladas por medio del
cursor.
Sin embargo, para poder desempeñar estas funciones de forma adecuada,
se requiere una precisión en la posición del cursor ya que estas aplicaciones
tienen áreas de delimitadas gráficamente, destinadas para realizar distintas
funciones.
156
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Una persona con tremor esencial en manos puede tener dificultades para
posicionar el cursor de pantalla en la posición deseada, por lo cual, con un ratón
para computadora convencional les es muy difícil o prácticamente imposible
utilizar las aplicaciones computacionales.
El objetivo REODA-MX, que fue diseñado para personas con TE en manos,
es brindar un estabilidad en el cursor, evitando lo mejor posible las vibraciones
producidas por el padecimiento y logrando ubicar el cursor en la posición deseada
por el usuario.
Para validar REODA-MX, debe ser utilizado por personas que tengan TE en
manos, tratando de realizar tareas sencillas que permitan observar el
comportamiento de la utilización del cursor y comprobar su funcionamiento a
través de los comentarios obtenidos por los sujetos de pruebas.
El evaluador podrá asignar alguna de las siguientes calificaciones para
cada uno de los parámetros evaluados en el desempeño de REODA-MX,
abordados en el tema 4.1, por medio de la observación visual.
Calificación
Valor
0
Pésimo - Imposible
1
Muy malo – Muy difícil
2
Intolerable – Difícil
3
Regular - Tolerable
4
Aceptable - Fácil
5
Muy bueno – Muy fácil
6
Perfecto – Sin problemas
A continuación se detallan cada una de las pruebas diseñadas y el objetivo
de las mismas.
157
ANEXOS
Prueba 1.- Adaptación al funcionamiento de un ratón de computadora
estándar.
Requerimiento:

Conocer el funcionamiento del ratón para computadora.
Objetivo:

Adaptación del usuario a las funciones básicas de un ratón de
computadora.
Explicación de la prueba:
La prueba consiste en que el usuario manipule el ratón, trasladando el cursor entre
varios puntos y seleccionando con el botón izquierdo una zona del escritorio, así
como oprimiendo el mismo botón dos veces consecutivas sobre un ícono. Durante
la duración de la prueba, se documentará cada 8 milisegundos la posición que el
cursor adquiera, con el fin de utilizar estos datos para un mejoramiento de
REODA-MX, en caso de ser requerido.
Antes de realizar la prueba, el evaluador realizará los siguientes pasos:
1.- Preguntará al usuario cual es la mano que utiliza con mayor frecuencia
para realizar actividades comunes. Dependiendo de la mano a utilizar, se
ajustarán
los
sonido/Dispositivos
botones.
e
Inicio/panel
de
control/Hardware
impresoras/Mouse/Botones/Intercambiar
y
botones
primario y secundario. Además verificar que la velocidad para presionar un
botón dos veces consecutivas sea lenta y que el giro de la rueda media solo
haga 1 cambio de línea por giro.
2.- Ejecutará una aplicación que adquirirá la posición del cursor.
158
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Diseño de la prueba.
El usuario tomará el ratón convencional con la mano seleccionada y realizará la
siguiente secuencia de instrucciones:
a)
b)
c)
d)
Trasladar el cursor al punto medio de la pantalla y esperar 5 segundos.
Trasladar el cursor al punto A y esperar 3 segundos.
Trasladar el cursor al punto B y esperar 3 segundos.
Trasladar el cursor al punto C y presionar el botón izquierdo (para diestro) o
derecho (para zurdo) y sin soltar el botón, trasladar el cursor al punto D
donde soltará el botón.
e) Trasladar el cursor al punto E y presionará dos veces consecutivas el botón
izquierdo (para diestro) o derecho (para zurdo).
f) Fin de la prueba.
Finalizando la prueba, el usuario tomará el ratón TrackBall y repetirá la prueba.
Tiempo estimado de la duración de la prueba: 120 segundos.
159
ANEXOS
Figura A13.- Fondo de pantalla utilizado para desarrollar la prueba 1.
Se harán observaciones sobre el proceso de mantener el cursor en un
punto fijo, sobre el proceso de oprimir un botón y mantenerlo así durante un
trayecto y sobre el proceso de doble presión de un botón. Se le preguntará al
usuario sobre la experiencia de haber utilizado el ratón y sobre los puntos antes
mencionados. Se identificará cuál es el mejor dispositivo para mover el cursor de
lugar en cuanto a facilidad de uso (dedo o muñeca) y rapidez.
160
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Prueba 2.- Estabilidad del cursor en un punto fijo.
Requerimiento:

Analizar la estabilidad del cursor debido a la acción del tremor en manos en
el ratón.
Objetivo.

Comprobar el funcionamiento del filtro implementado para la eliminación de
vibraciones en el cursor.
Explicación de la prueba.
La prueba consiste en mantener el cursor en un punto fijo. Para esto el usuario
solo deberá sujetar el ratón en una posición de uso normal y tratar de mantener la
posición del ratón en un punto fijo, es decir que no traté de desplazarlo
intencionalmente, solo deberá moverse por la acción del tremor en manos que le
inyecte al ratón. Esta prueba se realizará con el REODA-MX y los programas
computacionales Mouse Cage y Steady Mouse.
Diseño de la prueba
El usuario tomará el ratón estándar con la mano seleccionada y realizará la
siguiente secuencia de instrucciones:
a) El usuario trasladará el cursor al punto medio de la pantalla (punto rojo) y
mantendrá el cursor estable en ese punto durante 10 segundos.
b) Fin de de la prueba.
Tiempo estimado de la duración de la prueba: 1 minuto.
161
ANEXOS
Figura A14.- Fondo de pantalla utilizado para desarrollar la prueba 2.
Se harán observaciones sobre la estabilidad del cursor. En caso de que el cursor
cambie de posición, hacer la anotación del porqué se movió.
Estabilidad del cursor:
Se refiere a la capacidad que el ratón tuvo para mantener una posición fija,
deseada por el usuario; si el cursor no se movió aun cuando el ratón se
desplazó considerablemente o bien, si el cursor seguía “vibrando” aún
cuando el usuario intentó mantener el cursor en una posición fija.
162
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Prueba 3.- Velocidad de movimiento del cursor respecto a la velocidad del
ratón.
Requerimiento:

Analizar la velocidad de desplazamiento que tiene en el cursor debido al
desplazamiento intencional del ratón que inyecta un usuario con TE en
manos.
Objetivo:

Comprobar y, en caso de ser necesario, ajustar los valores asignados para
el posicionamiento aproximado y posicionamiento fino del cursor.
Explicación de la prueba.
La prueba consiste en que el usuario mueva el cursor de entre distintos
puntos predeterminados; los movimientos del cursor entre puntos cercanos
deducen desplazamientos del ratón lentos y los movimientos del cursor entre
puntos lejanos deducen desplazamientos del ratón más rápidos. De tal modo que,
para trasladar el cursor de un punto lejano a otro, se puede aumentar la velocidad
del desplazamiento del cursor. Esta prueba se realizará con REODA-MX y con los
programas computacionales Mouse Cage y Steady Mouse.
Para esto habrá una primera etapa de entrenamiento de la mano. Se
aplicará la prueba sin realizar observaciones. Una vez concluida la prueba se
aplicará nuevamente incluyendo observaciones.
Diseño de prueba:
El usuario tomará el ratón estándar con la mano seleccionada y realizará la
siguiente secuencia de instrucciones:
a) Trasladar el cursor al punto medio de la pantalla (punto rojo) y esperar 5
segundos.
b) Trasladar el cursor al punto A y esperar 3 segundos.
163
ANEXOS
c)
d)
e)
f)
g)
h)
i)
Trasladar el cursor al punto B y esperar 3 segundos.
Trasladar el cursor al punto C y esperar 3 segundos.
Trasladar el cursor al punto E y esperar 3 segundos.
Trasladar el cursor al punto F y esperar 3 segundos.
Trasladar el cursor al punto G y esperar 3 segundos.
Trasladar el cursor al punto medio y esperar 3 segundos.
Fin de la prueba.
Tiempo estimado de la duración de la prueba: 90 segundos
Figura A15.- Fondo de pantalla utilizado para desarrollar la prueba 3.
Se harán observaciones sobre el proceso de trasladar el cursor, haciendo
observaciones sobre la velocidad del cursor al trasladarlo entre puntos cercanos y
entre puntos lejanos.
164
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Se le preguntará al usuario sobre la experiencia de haber utilizado el ratón y
sobre la velocidad con la que lo hizo el cursor anotando los puntos más
relevantes. También se le hará una encuesta sobre el uso de las 3 aplicaciones
para el control del cursor, pidiéndole que califique del 0 al 10 la facilidad para
posicionar el cursor, así como también que comente las observaciones que tuvo
para cada aplicación.
Posicionamiento deseado del cursor:
Se refiere a la facilidad que tuvo el usuario al posicionar el cursor en una
zona pequeña.
Relación traslado ratón-cursor:
Se refiere a la relación de movimiento que tuvo el cursor en relación al
movimiento del ratón; si tuvo que mover grandes distancias el ratón para
que el cursor se moviera un poco o si con pequeños movimientos del ratón,
el cursor ya cambió de extremo su posición.
165
ANEXOS
Prueba 4.- Manipulación del botón secundario del ratón.
Requerimiento:

Analizar la habilidad del usuario durante uso del botón secundario del ratón.
Objetivo.
 Analizar la habilidad del usuario con TE en manos para la realización de
tareas que implican la utilización de botones del ratón.
Explicación de la prueba.
La prueba consiste en posicionar y mantener el cursor arriba de un icono ubicado
en el escritorio; con el botón derecho del ratón (para diestros) o izquierdo (para
zurdos), presionarlo y soltarlo, seleccionar la opción copiar con el botón contrario
al oprimido; trasladarse a otro punto del escritorio y pedirle al usuario que vuelva a
presionar el botón derecho del ratón (para diestros) o izquierdo (para zurdos) y
elija la opción pegar.
Diseño de la prueba
El usuario tomará el ratón estándar con la mano seleccionada y realizará la
siguiente secuencia de instrucciones:
a) Trasladar el cursor al punto medio de la pantalla (punto rojo) y esperar 5
segundos.
b) Trasladar el cursor al punto A y situar el cursor arriba del ícono que se
encuentre ahí.
c) Presionar y soltar el botón derecho (para diestros) o izquierdo (para
zurdos), situar el cursor en la posición “copiar” y con el botón contrario
presionar y soltar.
d) Trasladar el cursor al cuadro rojo junto al punto B y presionar y soltar el
botón derecho (para diestros) o izquierdo (para zurdos), situar el cursor en
la posición “pegar” y con el botón contrario presionar y soltar.
e) Fin de la prueba.
166
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Tiempo estimado de la duración de la prueba: 20 segundos
Figura A16.- Fondo de pantalla utilizado para desarrollar la prueba 4.
Se harán observaciones sobre el proceso de posicionar el cursor en las opciones
“copiar” y “pegar”, haciendo observaciones sobre la habilidad que el usuario tuvo
al realizar estas operaciones.
Se le preguntará al usuario sobre la experiencia de haber posicionado el cursor
en estas pequeñas, anotando los comentarios que se consideren relevantes.
Uso de los botones:
Se refiere a la facilidad que tuvo el usuario al utilizar los recursos de los
botones con el cursor fijo y en movimiento. Este parámetro se relaciona con
diseño físico del ratón
167
ANEXOS
Prueba 5.- Manipulación del botón primario del ratón.
Requerimiento:

Analizar la habilidad del usuario durante uso del botón secundario del ratón.
Objetivo.
 Analizar la habilidad del usuario con TE en manos para la realización de
tareas que implican la utilización de botones del ratón.
Explicación de la prueba.
La prueba consiste en posicionar el cursor en un icono ubicado en el escritorio y
con el botón izquierdo del ratón (para diestros) o botón derecho (para zurdos),
presionarlo y desplazar el cursor a otra ubicación; una vez llegado al punto de
destino soltar el botón.
Diseño de la prueba
El usuario tomará el ratón estándar con la mano seleccionada y realizará la
siguiente secuencia de instrucciones:
a) Trasladar el cursor al punto medio de la pantalla (punto rojo) y esperar 5
segundos.
b) Trasladar el cursor al punto A y situar el cursor arriba del ícono que se
encuentre ahí.
c) Presionar y no soltar el botón derecho (para diestros) o izquierdo (para
zurdos)
d) Trasladar el cursor con el ícono al cuadro junto punto B y soltar el botón.
e) Fin de la prueba.
Tiempo estimado de la duración de la prueba: 20 segundos
168
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Figura A17.- Fondo de pantalla utilizado para desarrollar la prueba 5.
Se harán observaciones sobre el proceso de cambiar de ubicación un ícono
a través del escritorio, haciendo observaciones sobre la habilidad del usuario para
trasladar el ícono a una posición específica.
Se le preguntará al usuario sobre la experiencia de haber utilizado este
recurso y la habilidad que tuvo para evitar ubicar el ícono en un punto específico,
anotando los comentarios que se consideren relevantes.
169
ANEXOS
Prueba 6.- Manejo del cursor a través de rutas en el escritorio para ejecutar
un programa.
Requerimiento:

Analizar el posicionamiento del cursor a través de ubicaciones en el
escritorio que permiten ejecutar aplicaciones a través de la barra de inicio
del sistema operativo Windows.
Objetivo.

Comprobar y, en caso de ser necesario, ajustar los parámetros necesarios
para desplazar el cursor de forma adecuada en la barra de inicio del
sistema operativo Windows.
Explicación de la prueba.
La prueba consiste en pedirle al usuario que ejecute la aplicación “paint”, ubicada
en la barra de inicio y programas del sistema operativo Windows. Por medio de la
observación visual del desplazamiento del cursor se podrá concluir si se requiere
un ajuste en los parámetros del filtro o bien si el desempeño para esta tarea es el
adecuado.
Diseño de la prueba
El usuario utilizará REODA-MX, Mouse Cage y Steady Mouse y, con la mano
seleccionada, realizará la siguiente secuencia de instrucciones:
a) Trasladar el cursor al punto medio de la pantalla (punto rojo) y esperar 5
segundos.
b) Trasladar el cursor a la barra de tareas, en a posición de “inicio”.
c) Presionar y soltar el botón izquierdo (para diestros) o derecho (para
zurdos).
d) Trasladar el cursor a la sección “todos los programas” y esperar ahí hasta
que se despliegue un nuevo menú.
170
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
e) Trasladar el cursor hasta arriba del menú, donde se encuentra la sección
“Accesorios”.
f) Presionar y soltar el botón izquierdo (para diestros) o derecho (para
zurdos).
g) En el nuevo menú desplegado, trasladar el cursor a la sección “Paint”.
h) Presionar y soltar el botón izquierdo (para diestros) o derecho (para
zurdos).
i) Fin de la prueba.
Tiempo estimado de la duración de la prueba: 30 segundos
Figura A18.- Fondo de pantalla utilizado para desarrollar la prueba 6.
Se harán observaciones sobre el proceso de ubicar el cursor a través de las
rutas del menú inicio, haciendo observaciones sobre la habilidad del usuario para
trasladar el cursor a una posición específica.
171
ANEXOS
Se le preguntará al usuario sobre la experiencia de haber trasladado el
cursor a través de zonas reducidas, anotando los comentarios que se consideren
relevantes.
Traslado deseado del cursor:
Se refiere a la facilidad que tuvo el usuario para trasladar por la ruta
deseada el cursor.
172
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Prueba 7.- Dibujo de una espiral en pantalla por medio del ratón.
Requerimiento:

Analizar la habilidad del usuario para dibujar una espiral por medio del
manejo del ratón.
Objetivo.

Comprobar el funcionamiento del filtro implementado en REODA-MX.
Explicación de la prueba.
El usuario manipulará un ratón convencional y tratará de dibujar una espiral en
pantalla. Los puntos en pantalla adquiridos por el cursor se irán almacenando e un
documento de texto. Posteriormente el usuario repetirá la misma prueba utilizando
el REODA-MX y los programas computacionales Mouse Cage y Steady Mouse.
Diseño de la prueba
El usuario tomará el instrumento a utilizar y por medio de un fondo de pantalla, el
usuario intentará desplazar el cursor por encima de la línea dibujada.
Figura A19.- Fondo de pantalla utilizado para desarrollar la prueba 7.
173
ANEXOS
Una vez finalizada la prueba, se le preguntará al usuario sobre el control que tuvo
en el traslado del cursor por la línea de espiral designada. Se anotarán las
observaciones y se calificarán.
174
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Prueba 8.- Manipulación de iconos pequeños en aplicaciones.
Requerimiento:

Analizar el posicionamiento del cursor dentro de pequeñas áreas, como
iconos de algunas aplicaciones donde la zona de acción que permite el
icono es muy reducida.
Objetivo.

Comprobar y, en caso de ser necesario, ajustar los parámetros necesarios
para llevar a cabo el posicionamiento fino del cursor.
Explicación de la prueba.
Una vez dentro de la aplicación “paint”, se le pedirá que dibuje 3 líneas, tratando
de formar un triángulo con estas, cambiando el color del lápiz cada vez que dibuje
una línea nueva. Concluida esta tarea, se le pedirá al usuario que dibuje 3 figuras
distintas, seleccionando en la barra de figuras la flecha adjunta y posteriormente 1
forma, realizando la tarea 3 veces. Finalmente se le pedirá que borre 1 figura y 1
línea de las que haya plasmado en la zona de dibujo. Por medio de la observación
visual del desplazamiento del cursor se podrá concluir si se requiere un ajuste en
los parámetros para el ajuste fino o bien si el desempeño para esta tarea es el
adecuado.
Diseño de la prueba
El usuario utilizará REODA-MX, Mouse Cage y Steady Mouse, y con la mano
seleccionada realizará la siguiente secuencia de instrucciones:
a) Una vez estando dentro de la aplicación “Paint”, trasladar el cursor a la
zona de herramientas, arriba del lápiz y presionar y soltar el botón izquierdo
(para diestros) o derecho (para zurdos).
b) Trasladar el cursor a la zona de dibujo y cuando el usuario quiera iniciar con
la línea, presionar el mismo botón y sin soltarlo trasladar el cursor a la
posición donde quiera finalizar la línea.
175
ANEXOS
c) Al llegar a la posición final, soltar el botón.
d) Trasladar el cursor a la zona de colores, situar el cursor sobre algún color
deseado y presionar y soltar el botón.
e) Trasladar nuevamente el cursor a la zona de dibujo y cuando el usuario
quiera iniciar con la siguiente línea, presionar el mismo botón y sin soltarlo
trasladar el cursor a la posición donde quiera finalizar la línea.
f) Al llegar a la posición final, soltar el botón.
g) Trasladar el cursor a la zona de colores, situar el cursor sobre algún color
deseado y presionar y soltar el botón.
h) Trasladar nuevamente el cursor a la zona de dibujo y cuando el usuario
quiera iniciar con la última línea, presionar el mismo botón y sin soltarlo
trasladar el cursor a la posición donde quiera finalizar la línea.
i) Al llegar a la posición final, soltar el botón.
j) Trasladar el cursor a la zona de “formas” y posicionar el cursor arriba de la
flecha con dirección hacia abajo, ubicada al costado derecho de la zona.
k) Oprimir y soltar el botón
l) Ubicar el cursor sobre la forma de figura que el usuario deseé plasmar en la
zona de dibujo.
m) Oprimir y soltar el botón.
n) Trasladar el cursor a la zona de dibujo.
o) Oprimir el botón y sin soltarlo, trasladar el cursor a una nueva posición.
p) Al llegar a la posición deseada soltar el botón.
q) Trasladar nuevamente el cursor a la zona de “formas” y posicionar el cursor
arriba de la flecha con dirección hacia abajo, ubicada al costado derecho de
la zona.
r) Oprimir y soltar el botón
s) Ubicar el cursor sobre otra forma de figura que el usuario deseé plasmar en
la zona de dibujo.
t) Oprimir y soltar el botón.
u) Trasladar el cursor a la zona de dibujo.
v) Oprimir el botón y sin soltarlo, trasladar el cursor a una nueva posición.
w) Al llegar a la posición deseada soltar el botón.
x) Trasladar nuevamente el cursor a la zona de “formas” y posicionar el cursor
arriba de la flecha con dirección hacia abajo, ubicada al costado derecho de
la zona.
y) Oprimir y soltar el botón
176
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
z) Ubicar el cursor sobre la forma de figura que el usuario deseé plasmar en la
zona de dibujo.
aa)Oprimir y soltar el botón.
bb)Trasladar el cursor a la zona de dibujo.
cc) Oprimir el botón y sin soltarlo, trasladar el cursor a una nueva posición.
dd)Al llegar a la posición deseada soltar el botón.
ee)Trasladar el cursor a la zona de “herramientas” y posicionar el cursor sobre
la goma.
ff) Oprimir y soltar el botón.
gg) Trasladar el cursor a la zona de dibujo y ubicarlo en un extremo de una
línea que el usuario elija para borrar.
hh)Cuando el usuario se disponga a borrar, oprimir y sin soltar el botón,
trasladar el cursor por toda la línea que desea borrar.
ii) Al terminar esta tarea el usuario deberá soltar el botón y trasladar el cursor
a una figura que el usuario desee borrar.
jj) Cuando el usuario se disponga a borrar, oprimir y sin soltar el botón,
trasladar el cursor por toda la figura a borrar.
kk) Al terminar esta tarea el usuario deberá soltar el botón.
ll) Fin de la prueba.
Tiempo estimado de la duración de la prueba: 3 minutos.
177
ANEXOS
Figura A20.- Fondo de pantalla utilizado para desarrollar la prueba 8.
Se harán observaciones sobre el proceso de ubicar el cursor en pequeñas
zonas de trabajo, haciendo observaciones sobre la habilidad del usuario para
trasladar el cursor a una posición específica y el uso de los botones dentro de
estas áreas.
Se le preguntará al usuario sobre la experiencia de haber trasladado y
posicionado el cursor en zonas reducidas, anotando los comentarios que se
consideren relevantes.
178
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA
PARA PERSONAS CON TREMOR EN MANOS”
Finalmente, los parámetros evaluados durante el transcurso de la prueba fueron:
Tabla A8.- Parámetros evaluados durante la aplicación de las pruebas.
Parámetro
Calificación otorgada por el evaluador
Estabilidad del cursor (Prueba 2).
Posicionamiento deseado del cursor (Prueba 3 y 8).
Relación de traslado ratón-cursor (Prueba 3).
Uso del botón secundario (Prueba 4).
Uso del botón primario (Prueba 5).
Traslado deseado del cursor (Prueba 6 y 7).
USO GENERAL DE REODA-MX.
Tiempo total de las pruebas: 15 minutos
179
Descargar