209
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

cenidet · 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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: cenidet · 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

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

Page 2: cenidet · 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
Page 3: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

i

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.

Page 4: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

ii

Page 5: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

iii

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.

Page 6: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

iv

Page 7: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

v

"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).

Page 8: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

vi

Page 9: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

vii

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.

Page 10: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

viii

Page 11: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

ix

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.

Page 12: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

x

Page 13: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xi

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

Page 14: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xii

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

Page 15: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xiii

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

Page 16: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xiv

Page 17: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xv

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

Page 18: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xvi

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

Page 19: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xvii

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

Page 20: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xviii

Page 21: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xix

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

Page 22: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xx

Page 23: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxi

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.

Page 24: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxii

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.

Page 25: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxiii

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.

Page 26: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxiv

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.

Page 27: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxv

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.

Page 28: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxvi

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.

Page 29: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxvii

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

Page 30: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

xxviii

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.

Page 31: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

1

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].

Page 32: cenidet · 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

INTRODUCCIÓN

2

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).

Page 33: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

3

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.

Page 34: cenidet · 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

INTRODUCCIÓN

4

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:

Page 35: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

5

Tabla 2.- Dispositivos y sistemas desarrollados para la atenuación del temblor en manos.

Estabilizador ajustable y regulable para temblor en manos [20].

Aplicación que utiliza un giroscopio para atenuar el temblor en manos.

Método para el tratamiento de temblores [21].

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.

Órtesis portable para la supresión del temblor [23].

Aplicación que utiliza un amortiguador para atenuar el temblor en manos.

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.

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.

Page 36: cenidet · 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

INTRODUCCIÓN

6

Método y dispositivo biomecánico de cancelación de temblor patológico [26].

Aplicación que utiliza sensores para reconocer temblores y por medio de un actuador

contrarrestar estos.

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 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].

Aplicación que utiliza algún sensor para identificar el temblor y por medio de un

actuador cancelar el movimiento involuntario.

Diseño desarrollo y validación de dispositivo robótico para la supresión del

temblor patológico [29], [30].

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.

Page 37: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

7

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].

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.

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.

Smart Nav [34].

Equipo computacional que detecta movimientos de cabeza para controlar la

posición del cursor.

Eye Point [35].

Equipo computacional que detecta la reflexión de la retina del ojo para controlar la posición

del cursor.

Page 38: cenidet · 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

INTRODUCCIÓN

8

Mouse Vision [36].

Equipo computacional que detecta la reflexión de la retina del ojo para controlar la posición

del cursor.

Vocal Joystick [37].

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.

Page 39: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

9

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].

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

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: Gratuito.

IBM Mouse Smoothing Software - Assistive Mouse Adapter [41].

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.

TechFilter [42].

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

Page 40: cenidet · 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

INTRODUCCIÓN

10

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.

Page 41: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

11

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

Page 42: cenidet · 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

INTRODUCCIÓN

12

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.

Page 43: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

13

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.

Page 44: cenidet · 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

INTRODUCCIÓN

14

Page 45: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

15

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)

Page 46: cenidet · 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

MARCO TEÓRICO

16

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.

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.

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

D

Punto de referencia de la mano para

conocer la amplitud de movimiento.

Origen del movimiento de la mano.

2A

2B Distancia entre la referencia y el origen del movimiento.

Eje X

Eje Y

D

2A

2B

Eje X

Eje Y

θ D D

Page 47: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

17

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'.

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):

Eje X

Eje Y

D' A

D

2B

Page 48: cenidet · 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

MARCO TEÓRICO

18

𝑅𝑋 𝑡 = 𝐴 ∗ 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

Page 49: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

19

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)

Page 50: cenidet · 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

MARCO TEÓRICO

20

𝑓 𝑡 =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.

Page 51: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

21

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𝜋 𝑒𝑗𝜔𝑡 𝐹 𝜎 + 𝑗𝜔 𝑑𝜔

−∞

(19)

𝑔 𝑡 = 1

2𝜋 𝑒𝑗𝜔𝑡 𝐹 𝜎 + 𝑗𝜔 𝑑𝜔

−∞

(20)

𝑓 𝑡 = 1

2𝜋 𝑒 𝜎+𝑗𝜔 𝑡𝐹 𝜎 + 𝑗𝜔 𝑑𝜔

−∞

(21)

Ahora se sustituye 𝜎 + 𝑗𝜔 por la variable compleja s, y como σ es constante,

𝑑𝑠 = 𝑗𝑑𝜔, resultando en (22):

𝑓 𝑡 = 1

2𝜋𝑗 𝑒𝑠𝑡𝐹 𝑠 𝑑𝑠

𝜎0+𝑗∞

𝜎0−𝑗∞

(22)

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):

Page 52: cenidet · 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

MARCO TEÓRICO

22

𝐹 𝑠 = 𝑒−𝑠𝑡𝑓 𝑡 𝑑𝑡

−∞

(23)

La ecuación (23) define el par de la transformada bilateral de Laplace.

Puede pensarse que la transformada bilateral de Laplace expresa a )(tf 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).

𝐹 𝑠 = 𝑒−𝑠𝑡𝑓 𝑡 𝑑𝑡

0−

(24)

También se puede usar el símbolo para indicar la transformada directa o

inversa de Laplace:

𝐹 𝑠 = 𝑓(𝑡) (25)

𝑓 𝑡 =−1 𝐹(𝑠)

(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

Page 53: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

23

la frontera, en especial cuando se quiere que la solución decaiga a cero a

grandes distancias.

Aunque regularmente la definición de Transformada de Laplace es

𝐹 𝑠 = 𝑒−𝑠𝑡𝑓 𝑡 𝑑𝑡∞

0− 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

𝑒−𝑠𝑡𝑑𝑡 + 𝑋 𝑒−𝑠𝑡𝑑𝑡∞

0

(27)

Parte 1 Parte 2

Page 54: cenidet · 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

MARCO TEÓRICO

24

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𝑗 (𝑒−(𝑠−𝑗𝜔 )𝑡 − 𝑒−(𝑠+𝑗𝜔 )𝑡)∞

0

𝑑𝑡 (30)

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 +𝜔2+ 𝑋 ∗

1

𝑠 (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

Page 55: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

25

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.

Page 56: cenidet · 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

MARCO TEÓRICO

26

Figura 6.- Clasificación general de filtros digitales.

Page 57: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

27

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.

Page 58: cenidet · 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

MARCO TEÓRICO

28

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, por lo que no es conveniente utilizar

directamente esta respuesta para posicionar el cursor, recurriendo

necesariamente a una segunda etapa.

ETAPA 2.- La segunda etapa consiste en 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.

Hp: Mínima ganancia en la banda de corte.

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.

Figura 7.- Parámetros a tomar en cuenta en el diseño de un filtro analógico.

𝐻(𝜔)

Hc

ωc

Hs

ωs ω

Banda atenuada

Banda de paso

Banda de transición

Page 59: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

29

Figura 8.- Respuesta de un filtro ideal y un filtro real.

Parámetro de discriminación (Kd) (35) :

𝐾𝑑 =

1

𝐻𝑐2 − 1

1

𝐻𝑠2 − 1

= 10

𝛼𝑐10 − 1

10𝛼𝑠10 − 1

(35)

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].

Figura 9.- Relación entre la frecuencia de corte y la frecuencia de paro.

Hc

ωc

Ha

ωs ω

|H(ω)|

𝐻(𝜔)

Hc

ωc

Ha

ωs ω

Filtro ideal

Filtro real

Page 60: cenidet · 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

MARCO TEÓRICO

30

𝐻(𝜔) =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].

Figura 10.- Respuesta general de un filtro Chebyshev pasa-bajas.

Se establecen los parámetros de diseño:

𝐴𝑚𝑖𝑛 = 𝑉𝑎𝑙𝑜𝑟 𝑚í𝑛𝑖𝑚𝑜 𝑒𝑛 𝑑𝐵 𝑑𝑒 𝑎𝑡𝑒𝑛𝑢𝑎𝑐𝑖𝑜𝑛 𝑒𝑛 𝑙𝑎 𝑏𝑎𝑛𝑑𝑎 𝑑𝑒 𝑟𝑒𝑐𝑕𝑎𝑧𝑜

𝐴𝑚𝑎𝑥 = 𝑉𝑎𝑙𝑜𝑟 𝑚á𝑥𝑖𝑚𝑜 𝑒𝑛 𝑑𝐵 𝑑𝑒 𝑎𝑡𝑒𝑛𝑢𝑎𝑐𝑖𝑜𝑛 𝑒𝑛 𝑙𝑎 𝑏𝑎𝑛𝑑𝑎 𝑑𝑒 𝑝𝑎𝑠𝑜

𝐹𝑠𝑡𝑜𝑝 = 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑟𝑒𝑐𝑕𝑎𝑧𝑜

𝐹𝑐𝑜𝑟𝑡𝑒 = 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑐𝑜𝑟𝑡𝑒

Mag

nit

ud

dB

Diagrama de Bode en magnitud

Frecuencia en rad/s.

Page 61: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

31

Para calcular el valor en dB, se recurre a la formula (38):

𝐴𝑑𝐵 = 20𝐿𝑜𝑔10(𝐴) (38)

Para obtener el orden de esta aproximación, se aplica la fórmula (39) [57]:

𝑛 ≥

𝑎𝑟𝑐𝑐𝑜𝑠𝑕

10𝐴𝑚𝑖𝑛 10 − 110𝐴𝑚𝑎𝑥 /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

𝜀 𝑠𝑒𝑛

𝜋

2𝑁(2𝑘 − 1) (42)

𝜔𝑘 = 𝜔𝑠𝑡𝑜𝑝 𝑐𝑜𝑠𝑕 1

𝑁𝑎𝑟𝑐𝑠𝑒𝑛𝑕

1

𝜀 𝑐𝑜𝑠

𝜋

2𝑁(2𝑘 − 1) (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.

Page 62: cenidet · 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

MARCO TEÓRICO

32

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ógico-

digital. 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 para-

banda. 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

Page 63: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

33

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 para-

banda [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)

Page 64: cenidet · 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

MARCO TEÓRICO

34

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;

Page 65: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

35

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:

Page 66: cenidet · 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

MARCO TEÓRICO

36

𝐺 𝑠 =𝐻0

𝑆 + 3.704365

Una vez obtenida la función de transferencia del filtro, se calcula su ganancia.

𝐻0

𝑆 + 3.704365 = 1 (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 * F(s) filtro = F(s) salida

𝐴 ∗𝜔

𝑠2 + 𝜔2+𝑥

𝑠

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:

Page 67: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

37

% 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:

Figura 14.- Respuesta del filtro ante una entrada escalón más una señal seno de 4 Hz y 50

pixeles de amplitud.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-20

0

20

40

60

80

100

120

140

Linear Simulation Results

Time (sec)

Am

plit

ude

Pix

el

Tiempo (s)

Page 68: cenidet · 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

MARCO TEÓRICO

38

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)

Figura 15.- Respuesta del filtro ante una entrada rampa en suma con una señal seno de 4 Hz.

de 50 pixeles de amplitud.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-40

-20

0

20

40

60

80

Linear Simulation Results

Time (sec)

Am

plit

ude

Pix

el

Tiempo (s)

Page 69: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

39

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𝑧 + 1

+ 3.7043

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

Page 70: cenidet · 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

MARCO TEÓRICO

40

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

Page 71: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

41

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.

Page 72: cenidet · 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

MARCO TEÓRICO

42

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.

Page 73: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

43

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].

Page 74: cenidet · 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

MARCO TEÓRICO

44

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.

Page 75: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

45

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.

Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit2 Bit 1

Byte 1 estado de

los botones. 0 0 0 0 1 Medio Derecho Izquierdo.

Byte 2 movimiento

en eje x.

Bit que indica el sentido de

movimiento, positivo (valor "0") o

negativo (valor "1").

Cantidad de pixeles de movimiento. El bit 0 indica el valor

menos significativo. El bit 6 indica el valor más significativo. El

valor máximo posible, equivalente al sistema decimal, es el 127.

Byte 3 movimiento

en eje y.

Bit que indica el sentido de

movimiento, positivo (valor "0") o

negativo (valor "1").

Cantidad de pixeles de movimiento. El bit 0 indica el valor

menos significativo. El bit 6 indica el valor más significativo. El

valor máximo posible, equivalente al sistema decimal, es el 127.

Byte 4 movimiento

del scroll. 0 0

Botó

n #5

Botó

n #4

Magnitud de giro de la rueda media.

Los valores posibles van de -8 a 7.

Page 76: cenidet · 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

MARCO TEÓRICO

46

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.

Page 77: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

47

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.

0x00020200

Sin movimiento

Scroll.

Movimiento eje Y 2

pixeles positivos.

Movimiento eje X, 2

pixeles positivos.

Sin botones

presionados.

Grupo 2.

0x00FA0E00

Sin movimiento

Scroll.

Movimiento eje Y, 6

pixeles negativos.

Movimiento eje X, 14

pixeles positivos.

Sin botones

presionados.

Grupo 3.

0x00F71800

Sin movimiento

Scroll.

Movimiento eje Y, 9

pixeles negativos.

Movimiento eje X, 24

pixeles positivos.

Sin botones

presionados.

Grupo 4.

0x00F81500

Sin movimiento

Scroll.

Movimiento eje Y, 8

pixeles negativos.

Movimiento eje X, 21

pixeles positivos.

Sin botones

presionados.

Page 78: cenidet · 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

MARCO TEÓRICO

48

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.

Page 79: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

49

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.

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.

Periodo de envío de datos: 8 ms.

Envío de datos del estado del ratón.

Page 80: cenidet · 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

MARCO TEÓRICO

50

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.

Page 81: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

51

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 D-

intercambian 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.

Page 82: cenidet · 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

MARCO TEÓRICO

52

Page 83: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

53

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.

Page 84: cenidet · 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

DESARROLLO

54

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. Ratón USB óptico, marca Microsoft, Modelo P58-00031.

2. Ratón USB óptico, marca Genius, Modelo Gm-03021u/a.

3. Ratón USB óptico, marca Ativa, Modelo Lynx-L7R.

1) 2) 3)

Figura 28.- Ratones USB para computadora, utilizados para conocer su circuitería.

Page 85: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

55

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 Pan3511dk

Controlador. Cy7c63723 0424f9yp3-dy29

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.

Page 86: cenidet · 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

DESARROLLO

56

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.

Page 87: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

57

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.

Retiro del sensor original, sustitución por postes.

Page 88: cenidet · 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

DESARROLLO

58

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.

Page 89: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

59

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.

Page 90: cenidet · 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

DESARROLLO

60

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.

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.

Figura 37.- Palanca adherida a la carcasa del ratón.

2 Postes de aluminio

Palanca

Perno energizado

Orificio limitador de movimiento

Resorte de compresión

Resistencias unidas a tierra.

Page 91: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

61

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.

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.

Cable de alimentación del perno de la palanca

Zona de contacto del perno

Page 92: cenidet · 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

DESARROLLO

62

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

Page 93: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

63

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).

Page 94: cenidet · 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

DESARROLLO

64

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.

Page 95: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

65

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".

Page 96: cenidet · 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

DESARROLLO

66

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. ex_usb_mouse.c

2. pic18_usb.h

3. usb_desc_mouse.h

4. 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".

Page 97: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

67

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).

Page 98: cenidet · 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

DESARROLLO

68

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.

Page 99: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

69

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. Valor Significado.

1 y 2 0x0105 Uso de la página (controles genéricos de escritorio).

3 y 4 0x0209 Uso (ratón).

5 y 6 0x01A1 Colección (Aplicación).

7 y 8 0x0109 Uso (Apuntador).

9 y 10 0x00A1 Colección (Física).

11 y 12 0x0905 Uso de la pagina (Botón).

13 y 14 0x0119 Uso mínimo (1).

15 y 16 0x0529 Uso máximo (5).

Page 100: cenidet · 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

DESARROLLO

70

17 y 18 0x0015 Mínimo lógico (0).

19 y 20 0x0125 Máximo lógico (1).

21 y 22 0x0595 Reporte de cuenta (5).

23 y 24 0x0175 Tamaño de reporte (1).

25 y 26 0x0281 Entrada (Dato, Variable, Absoluto, Bit de campo).

27 y 28 0x0195 Reporte de cuenta (1).

29 y 30 0x0375 Tamaño de reporte (3).

31 y 32 0x0181 Entrada (Dato, Variable, Absoluto, Bit de campo).

33 y 34 0x0105 Uso de la página (controles genéricos de escritorio).

35 y 36 0x3009 Uso (X).

37 y 38 0x3109 Uso (Y).

39 y 40 0x3809 Uso (rueda media).

41 y 42 0x8115 Mínimo lógico (-127).

43 y 44 0x7F25 Máximo lógico (127).

45 y 46 0X0875 Tamaño de reporte (8).

47 y 48 0x0395 Reporte de cuenta (3).

49 y 50 0X0681 Entrada (Dato, Variable, Absoluto, Bit de campo).

51 C0 Fin de colección

52 C0 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.

Page 101: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

71

Figura 45.- Captura de transferencia de datos del ratón de marca Microsoft.

Page 102: cenidet · 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

DESARROLLO

72

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 Valor Significado

1 0x09 Longitud del tamaño del descriptor: 9 bytes.

2 0x02 Tipo de configuración.

3 y 4 0x0022 Longitud de los datos de la configuración: 34 bytes

5 0x01 Número de interfaces que soporta el dispositivo: 1.

6 0x01 Identificador para la configuración.

7 0x00 Índice del descriptor de cadena para la configuración.

8 0xA0 Bit 6 = 1 el sistema soporta la función remota despertar (wake up). Bit 7 = 0 el sistema

no es autoalimentado.

9 0x32 Máximo poder requerido en el Bus: 100 mA.

Descriptor de interfaz

10 0x09 Longitud del tamaño del descriptor: 9 bytes.

11 0x04 Constante de interfaz: 4.

12 0x00 Número que define la interfaz: 0.

13 0x00 Parámetros alternativos: 0.

14 0x01 Número de puntos finales: 1.

15 0x03 Código de clase: 3.

16 0x01 Código de subclase: 1.

17 0x02 Código de protocolo: 2.

18 0x00 índice del descriptor de cadena para la interface: 0.

Descriptor de clase.

19 0x09 Longitud del tamaño del descriptor: 9 bytes.

20 0x21 Tipo de descriptor: 33.

21 Y 22 0x0110 Número de versión de la clase HID: 1.1.

23 0x00 Código del país donde se localiza: 0.

24 0x01 Número de descriptores de clase HID que siguen: 1.

25 0x22 Tipo de reporte de descriptor: 34.

26 y 27 0x0034 Longitud de reporte del descriptor: 34.

Descriptor de punto final.

28 0x07 Longitud del tamaño del descriptor: 7.

29 0x05 Constante de punto final: 5.

30 0x81 Número y dirección del punto final: 129.

31 0x03 Tipo de transferencia soportada: 3.

32 y 33 0x0004 Máximo tamaño de paquete soportado: 4.

34 0x0A Intervalo de muestreo: 10 ms.

La configuración total del dispositivo corresponde a la de un ratón USB HID.

Page 103: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

73

Tabla 11.- Descriptor del dispositivo del ejemplo 1.

Byte Valor Significado

1 0x28 Longitud del tamaño del descriptor: 40 bytes.

2 0x03 Fin de texto.

3 0x42 Letra: B

4 0x00 Carácter nulo.

5 0x61 Letra: a

6 0x00 Carácter nulo.

7 0x73 Letra: s

8 0x00 Carácter nulo.

9 0x69 Letra: i

10 0x00 Carácter nulo.

11 0x63 Letra: c

12 0x00 Carácter nulo.

13 0x20 Espacio

14 0x00 Carácter nulo.

15 0x4F Letra: O

16 0x00 Carácter nulo.

17 0x70 Letra: p

18 0x00 Carácter nulo.

19 0x74 Letra: t

20 0x00 Carácter nulo.

21 0x69 Letra: i

22 0x00 Carácter nulo.

23 0x63 Letra: c

24 0x00 Carácter nulo.

25 0x61 Letra: a

26 0x00 Carácter nulo.

27 0x6C Letra: l

28 0x00 Carácter nulo.

29 0x20 Espacio

30 0x00 Carácter nulo.

31 0x4D Letra: M

32 0x00 Carácter nulo.

33 0x6F Letra: o

34 0x00 Carácter nulo.

35 0x75 Letra: u

36 0x00 Carácter nulo.

37 0x73 Letra: s

38 0x00 Carácter nulo.

39 0x65 Letra: e

40 0x00 Carácter nulo.

Texto obtenido: " Basic Optical Mouse ".

Page 104: cenidet · 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

DESARROLLO

74

Tabla 12.- Descriptor del fabricante del ejemplo 1.

Descriptor de configuración.

Byte Valor Significado

1 0x12 Longitud del tamaño del descriptor: 18 bytes.

2 0x02 Constante del dispositivo: 2

3 y 4 0x0110 Versión USB: 1.1

5 0x00 Código de clase: 0.

6 0x01 Código de subclase: 1.

7 0x00 Código de protocolo: 0.

8 0x08 Tamaño máximo de paquete para el punto final 0: 8.

9 y 10 0x045E Identificación del vendedor: 045E = Microsoft Corp.

11 y 12 0x0084 Identificación del producto: 0084. = Basic Optical Mouse.

13 y 14 0x0000 Versión del dispositivo: 0.

15 0x01 Descriptor de cadena del fabricante: 1.

16 0x02 Descriptor de cadena del producto: 2.

17 0x00 Descriptor de cadena del número serial: 0.

18 0x01 Número de configuraciones posibles: 1.

Tabla 13.- Descriptor del reporte HID del ejemplo 1.

Byte. Valor Significado.

1 y 2 0x0105 Uso de la página (controles genéricos de escritorio).

3 y 4 0x0209 Uso (ratón).

5 y 6 0x01A1 Colección (Aplicación).

7 y 8 0x0109 Uso (Apuntador).

9 y 10 0x00A1 Colección (Física).

11 y 12 0x0905 Uso de la pagina (Botón).

13 y 14 0x0119 Uso mínimo (1).

15 y 16 0x0529 Uso máximo (5).

17 y 18 0x0015 Mínimo lógico (0).

19 y 20 0x0125 Máximo lógico (1).

21 y 22 0x0595 Reporte de cuenta (5).

23 y 24 0x0175 Tamaño de reporte (1).

25 y 26 0x0281 Entrada (Dato, Variable, Absoluto, Bit de campo).

27 y 28 0x0195 Reporte de cuenta (1).

29 y 30 0x0375 Tamaño de reporte (3).

31 y 32 0x0181 Entrada (Dato, Variable, Absoluto, Bit de campo).

33 y 34 0x0105 Uso de la página (controles genéricos de escritorio).

35 y 36 0x3009 Uso (X).

37 y 38 0x3109 Uso (Y).

39 y 40 0x3809 Uso (rueda media).

41 y 42 0x8115 Mínimo lógico (-127).

43 y 44 0x7F25 Máximo lógico (127).

45 y 46 0X0875 Tamaño de reporte (8).

47 y 48 0x0395 Reporte de cuenta (3).

49 y 50 0X0681 Entrada (Dato, Variable, Absoluto, Bit de campo).

51 C0 Fin de colección

52 C0 Fin de colección.

Page 105: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

75

Tabla 14.- Descriptor de marca del producto del ejemplo 1.

Byte Valor Significado

1 0x14 Dispositivo de control 4.

2 0x03 Fin de texto.

3 0x4D Letra: M

4 0x00 Carácter nulo.

5 0x69 Letra: i

6 0x00 Carácter nulo.

7 0x63 Letra: c

8 0x00 Carácter nulo.

9 0x72 Letra: r

10 0x00 Carácter nulo.

11 0x6F Letra: o

12 0x00 Carácter nulo.

13 0x73 Letra: s

14 0x00 Carácter nulo.

15 0x6F Letra: o

16 0x00 Carácter nulo.

17 0x66 Letra: f

18 0x00 Carácter nulo.

19 0x74 Letra: t

20 0x00 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.

Page 106: cenidet · 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

DESARROLLO

76

Figura 46.- Captura de transferencia de datos del ratón de marca Genius.

Page 107: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

77

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 Valor Significado

1 0x09 Longitud del tamaño del descriptor: 9 bytes.

2 0x02 Tipo de configuración.

3 y 4 0x2200 Longitud de los datos de la configuración: 34 bytes

5 0x01 Número de interfaces que soporta el dispositivo: 1.

6 0x01 Identificador para la configuración.

7 0x00 Índice del descriptor de cadena para la configuración.

8 0xA0 Bit 6 = 1 el sistema soporta la función remota despertar (wake up). Bit 7 = 0 el sistema

no es autoalimentado.

9 0x32 Máximo poder requerido en el Bus: 100 mA.

Descriptor de interfaz

10 0x09 Longitud del tamaño del descriptor: 9 bytes.

11 0x04 Constante de interfaz: 4.

12 0x00 Número que define la interfaz: 0.

13 0x00 Parámetros alternativos: 0.

14 0x01 Número de puntos finales: 1.

15 0x03 Código de clase: 3.

16 0x01 Código de subclase: 1.

17 0x02 Código de protocolo: 2.

18 0x00 índice del descriptor de cadena para la interface: 0.

Descriptor de clase.

19 0x09 Longitud del tamaño del descriptor: 9 bytes.

20 0x21 Tipo de descriptor: 33.

21 Y 22 0x0110 Número de versión de la clase HID: 1.1.

23 0x00 Código del país donde se localiza: 0.

24 0x01 Número de descriptores de clase HID que siguen: 1.

25 0x22 Tipo de reporte de descriptor: 34.

26 y 27 0x0034 Longitud de reporte del descriptor: 34.

Descriptor de punto final.

28 0x07 Longitud del tamaño del descriptor: 7.

29 0x05 Constante de punto final: 5.

30 0x81 Número y dirección del punto final: 129.

31 0x03 Tipo de transferencia soportada: 3.

32 y 33 0x0004 Máximo tamaño de paquete soportado: 4.

34 0x0A Intervalo de muestreo: 10 ms.

La configuración total del dispositivo corresponde a la de un ratón USB HID.

Page 108: cenidet · 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

DESARROLLO

78

Tabla 16.- Descriptor del dispositivo del ejemplo 2.

Byte Valor Significado

1 0x34 Longitud del tamaño del descriptor: 52 bytes.

2 0x03 Fin de texto.

3 0x4E Letra: N

4 0x00 Carácter nulo.

5 0x65 Letra: e

6 0x00 Carácter nulo.

7 0x74 Letra: t

8 0x00 Carácter nulo.

9 0x53 Letra: S

10 0x00 Carácter nulo.

11 0x63 Letra: c

12 0x00 Carácter nulo.

13 0x72 Letra: r

14 0x00 Carácter nulo.

15 0x6F Letra: o

16 0x00 Carácter nulo.

17 0x6C Letra: l

18 0x00 Carácter nulo.

19 0x6C Letra: l

20 0x00 Carácter nulo.

21 0x20 Delete

22 0x00 Carácter nulo.

23 0x2B Letra: +

24 0x00 Carácter nulo.

25 0x20 Delete

26 0x00 Carácter nulo.

27 0x4D Letra: M

28 0x00 Carácter nulo.

29 0x69 Letra: i

30 0x00 Carácter nulo.

31 0x6E Letra: n

32 0x00 Carácter nulo.

33 0x69 Letra: i

34 0x00 Carácter nulo.

35 0x20 Delete

36 0x00 Carácter nulo.

37 0x54 Letra: T

38 0x00 Carácter nulo.

39 0x72 Letra: r

40 0x00 Carácter nulo.

41 0x61 Letra: a

42 0x00 Carácter nulo.

43 0x76 Letra: v

44 0x00 Carácter nulo.

45 0x65 Letra: e

46 0x00 Carácter nulo.

47 0x6C Letra: l

48 0x00 Carácter nulo.

49 0x65 Letra: e

50 0x00 Carácter nulo.

51 0x72 Letra: r

52 0x00 Carácter nulo.

Texto obtenido: " NetScroll + Mini Traveler ".

Page 109: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

79

Tabla 17.- Descriptor del fabricante del ejemplo 2.

Descriptor de configuración.

Byte Valor Significado

1 0x12 Longitud del tamaño del descriptor: 18 bytes.

2 0x02 Constante del dispositivo: 2

3 y 4 0x0110 Version USB: 1.1

5 0x00 Código de clase: 0.

6 0x01 Código de subclase: 1.

7 0x00 Código de protocolo: 0.

8 0x08 Tamaño máximo de paquete para el punto final 0: 8.

9 y 10 0x0458 Identificación del vendedor: 0458 = KYE Systems Corp. (Mouse Systems)

11 y 12 0x0036 Identificación del producto: 0036. = Pocket Mouse LE

13 y 14 0x0110 Versión del dispositivo: 1.1.

15 0x02 Descriptor de cadena del fabricante: 2.

16 0x01 Descriptor de cadena del producto: 1.

17 0x00 Descriptor de cadena del número serial: 0.

18 0x01 Número de configuraciones posibles: 1.

Tabla 18.- Descriptor del reporte HID del ejemplo 2.

Byte. Valor Significado.

1 y 2 0x0105 Uso de la página (controles genéricos de escritorio).

3 y 4 0x0209 Uso (ratón).

5 y 6 0x01A1 Colección (Aplicación).

7 y 8 0x0109 Uso (Apuntador).

9 y 10 0x00A1 Colección (Física).

11 y 12 0x0905 Uso de la pagina (Botón).

13 y 14 0x0119 Uso mínimo (1).

15 y 16 0x0529 Uso máximo (5).

17 y 18 0x0015 Mínimo lógico (0).

19 y 20 0x0125 Máximo lógico (1).

21 y 22 0x0595 Reporte de cuenta (5).

23 y 24 0x0175 Tamaño de reporte (1).

25 y 26 0x0281 Entrada (Dato, Variable, Absoluto, Bit de campo).

27 y 28 0x0195 Reporte de cuenta (1).

29 y 30 0x0375 Tamaño de reporte (3).

31 y 32 0x0181 Entrada (Dato, Variable, Absoluto, Bit de campo).

33 y 34 0x0105 Uso de la página (controles genéricos de escritorio).

35 y 36 0x3009 Uso (X).

37 y 38 0x3109 Uso (Y).

39 y 40 0x3809 Uso (rueda media).

41 y 42 0x8115 Mínimo lógico (-127).

43 y 44 0x7F25 Máximo lógico (127).

45 y 46 0X0875 Tamaño de reporte (8).

47 y 48 0x0395 Reporte de cuenta (3).

49 y 50 0X0681 Entrada (Dato, Variable, Absoluto, Bit de campo).

51 C0 Fin de colección

52 C0 Fin de colección.

Page 110: cenidet · 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

DESARROLLO

80

Tabla 19.- Descriptor de marca del producto del ejemplo 2.

Byte Valor Significado

1 0x0E Shift Out.

2 0x03 Fin de texto.

3 0x47 Letra: G

4 0x00 Carácter nulo.

5 0x65 Letra: e

6 0x00 Carácter nulo.

7 0x6E Letra: n

8 0x00 Carácter nulo.

9 0x69 Letra: i

10 0x00 Carácter nulo.

11 0x75 Letra: u

12 0x00 Carácter nulo.

13 0x73 Letra: s

14 0x00 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

Page 111: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

81

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.

Page 112: cenidet · 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

DESARROLLO

82

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

Page 113: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

83

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.

Page 114: cenidet · 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

DESARROLLO

84

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".

Page 115: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

85

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

Page 116: cenidet · 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

DESARROLLO

86

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".

Page 117: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

87

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.

Page 118: cenidet · 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

DESARROLLO

88

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.

Page 119: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

89

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.

Page 120: cenidet · 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

DESARROLLO

90

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:

Page 121: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

91

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.

Page 122: cenidet · 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

DESARROLLO

92

Page 123: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

93

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)

Page 124: cenidet · 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

PRUEBAS Y RESULTADOS

94

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.

Page 125: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

95

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).

Page 126: cenidet · 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

PRUEBAS Y RESULTADOS

96

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.

Page 127: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

97

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.

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.

Pixel de pantalla en el eje X.

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Page 128: cenidet · 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

PRUEBAS Y RESULTADOS

98

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

Muestras con periodo de 8 ms

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Pix

el d

e p

anta

lla e

n e

l eje

X. Zona delimitada

por la letra B

Zona delimitada por la letra C

Zona delimitada por la letra B

Zona delimitada por la letra C

Muestra 0, 100,200,300,400,500,600,700

Page 129: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

99

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.

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.

Pixel de pantalla en el eje X.

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Page 130: cenidet · 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

PRUEBAS Y RESULTADOS

100

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.

Muestras con periodo de 8 ms

Zona delimitada por la letra D

Zona delimitada por la letra D

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Pix

el d

e p

anta

lla e

n e

l eje

X.

Muestra 0, 100, 200, 300, 400, 500, 600, 700, 800

Page 131: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

101

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.

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.

Pixel de pantalla en el eje X.

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Page 132: cenidet · 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

PRUEBAS Y RESULTADOS

102

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

Pix

el d

e p

anta

lla e

n e

l eje

X.

Muestras con periodo de 8 ms

Zona delimitada por la letra B

Zona delimitada por la letra C

Zona delimitada por la letra B

Zona delimitada por la letra C P

ixel

de

pan

talla

en

el e

je Y

.

Muestra 0, 100,200,300,400,500,600,700

Page 133: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

103

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.

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.

Pixel de pantalla en el eje X.

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Page 134: cenidet · 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

PRUEBAS Y RESULTADOS

104

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.

Muestras con periodo de 8 ms

Zona delimitada por la letra D

Zona delimitada por la letra D

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Pix

el d

e p

anta

lla e

n e

l eje

X.

Muestra 0, 100, 200, 300, 400, 500, 600, 700, 800

Page 135: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

105

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.

Figura 65.- Trayectoria del cursor del punto B al punto C durante la prueba 3 con REODA-

MX.

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.

Pixel de pantalla en el eje X.

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Page 136: cenidet · 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

PRUEBAS Y RESULTADOS

106

Figura 66.- Zona de convergencia entre el eje X y el eje Y en la zona B y C utilizando REODA-

MX.

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

Pix

el d

e p

anta

lla e

n e

l eje

X.

Muestras con periodo de 8 ms

Zona delimitada por la letra B

Zona delimitada por la letra C

Zona delimitada por la letra B

Zona delimitada por la letra C

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Muestra 0, 750

Page 137: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

107

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.

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.

Pixel de pantalla en el eje X.

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Page 138: cenidet · 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

PRUEBAS Y RESULTADOS

108

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.

Muestras con periodo de 8 ms

Zona delimitada por la letra D

Zona delimitada por la letra D

Pix

el d

e p

anta

lla e

n e

l eje

Y.

Pix

el d

e p

anta

lla e

n e

l eje

X.

Muestra 0 100 200 300 400 500 600 700 800

Page 139: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

109

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.

Steady Mouse. Mouse Cage. REODA-MX

Tiempo requerido en segundos. 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. Mouse Cage. REODA-MX

Tiempo evaluado 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

Page 140: cenidet · 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

PRUEBAS Y RESULTADOS

110

Estabilidad del cursor en la zona rectangular junto a la letra D.

Steady Mouse. Mouse Cage. REODA-MX

Tiempo evaluado 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

Page 141: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

111

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.

Page 142: cenidet · 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

PRUEBAS Y RESULTADOS

112

Page 143: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

113

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

Page 144: cenidet · 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

CONCLUSIONES

114

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:

Page 145: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

115

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.

Page 146: cenidet · 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

CONCLUSIONES

116

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.

Page 147: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

117

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. 251-

258. 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.

Page 148: cenidet · 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

BIBLIOGRAFÍA

118

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/Historico/Proyecto-HeadDev/;jsessionid=yQR12C0Dn6ZBwfBPkq1PvPUxWbQGWrESwdai9dAPRvhieow6z0re!946099909.

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/.

Page 149: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

119

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-versus-fourier.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.

Page 150: cenidet · 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

BIBLIOGRAFÍA

120

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&dDocName=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.

Page 151: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

121

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.

Page 152: cenidet · 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

ANEXOS

122

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

Page 153: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

123

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:

Page 154: cenidet · 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

ANEXOS

124

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 Error 5% ms Error 2% ms Sobre-impulso

Barttlet 160 176 No

Barttlet-hanning 160 168 No

Blackman 152 160 No

Blackman harris 144-152 160 No

Bohman 144 160 No

Chebyshev Sidelobe=100 144 160 No

Flat-top 136 152 2.88%

Gaussian 160 168 No

Hamming 160 176 No

Hann 152 168 No

Kaisser 176 184 No

Nutall 152 160 No

Parzen 144 160 No

Rectangular 184 192 No

Taylor 168 184 No

Triangular 160 176 No

Tukey 168 176 No

Butterworth 328 664 4.32%

Chebyshev I 464 600 No

Chebyshev 2 424 536 5.29%

Elíptico 472 616 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

Page 155: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

125

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 Tiempo de retardo ms

Barttlet 112

Barttlet-hanning 104

Blackman 96

Blackman harris 112

Bohman 104

Chebyshev Sidelobe=100 104

Flat-top 104

Gaussian 96

Hamming 104

Hann 112

Kaisser 120

Nutall 104

Parzen 96

Rectangular 96

Taylor 104

Triangular 112

Tukey 112

Butterworth 152

Chebyshev I 160

Chebyshev 2 144

Elíptico 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.

Page 156: cenidet · 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

ANEXOS

126

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 4 Hz 5 Hz 6 Hz 7 Hz 8 Hz 9 Hz 10 Hz 11 Hz 12 Hz Suma

Barttlet 64 50 36 24 14 8 4 2 2 180

Barttlet-hanning 68 54 40 28 18 10 6 2 0 198

Blackman 76 64 54 40 30 22 14 8 6 274

Blackman harris 80 70 58 48 38 28 22 16 10 322

Bohman 76 66 54 42 34 24 16 10 6 286

Chebyshev 78 68 54 46 36 26 20 14 8 304

Flat-top 96 94 90 86 78 72 64 54 30 578

Gaussian 68 54 42 30 20 14 8 4 2 212

Hamming 66 50 36 26 16 8 4 2 0 182

Hann 70 56 42 30 20 12 6 2 0 208

Kaisser 38 16 2 8 10 6 2 2 6 82

Nutall 78 68 58 46 38 28 20 14 10 314

Parzen 78 68 56 46 34 26 18 12 8 300

Rectangular 36 16 0 8 10 6 2 4 6 80

Taylor 56 40 24 14 6 2 0 0 0 128

Triangular 62 46 34 22 12 6 4 2 2 168

Tukey 54 38 20 6 4 10 12 10 8 156

Butterworth 12 8 6 4 4 2 2 2 2 38

Chebyshev I 14 12 10 8 8 6 6 6 4 66

Chebyshev 2 10 2 2 4 6 6 6 8 8 48

Elíptico 24 20 16 14 12 10 10 8 8 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.

Page 157: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

127

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 Suma Factor a Retardo Factor b Resultado

Barttlet 180

0.8

112

0.2

166.4

Barttlet-hanning 198 104 179.2

Blackman 274 96 238.4

Blackman harris 322 112 280

Bohman 286 104 249.6

Chebyshev 304 104 264

Flat-top 578 104 483.2

Gaussian 212 96 188.8

Hamming 182 104 166.4

Hann 208 112 188.8

Kaisser 82 120 89.6

Nutall 314 104 272

Parzen 300 96 259.2

Rectangular 80 96 83.2

Taylor 128 104 123.2

Triangular 168 112 156.8

Tukey 156 112 147.2

Butterworth 38 152 60.8

Chebyshev I 66 160 84.8

Chebyshev 2 48 144 67.2

Elíptico 108 128 112

Page 158: cenidet · 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

ANEXOS

128

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.

Page 159: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

129

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ó.

Page 160: cenidet · 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

ANEXOS

130

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 Máximo retardo imperceptible

(muestras)

Máximo retardo tolerable (ms)

Srta. Scarlett Grisell Ruiz González. 22 años 10 muestras = 80 ms 20 muestras = 160

Sr. Omar Alejandro Ruiz González. 25 años 7 muestras = 56 ms 20 muestras = 160

Con esta tabla se puede validar que el filtro elegido (Chebyshev 1) cumple con el

requerimiento de máximo retardo tolerable.

Page 161: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

131

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.

Figura A7.- Entrada utilizada para evaluar los filtros analizados.

575

625

675

725

775

825

875

925

975

1025

0 200 400 600 800 1000

entrada

entrada

Pix

el d

el e

je X

Muestra (Ts=8ms)

Page 162: cenidet · 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

ANEXOS

132

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

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. Valor

103 626

104 634

105 643

106 655

107 667

108 677

109 687

110 693

111 698

112 699

113 698

114 695

115 689

116 681

117 671

118 659

119 648

120 639

121 632

122 626

123 625

124 625

125 627

126 633

127 641

128 651

129 665

130 676

131 688

132 699

133 706

134 712

135 715

136 715

137 714

138 711

139 706

140 700

141 691

142 683

143 677

144 671

145 668

146 668

147 668

148 672

149 680

150 690

151 702

152 717

153 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

Page 163: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

133

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. Valor

417 833

418 831

419 826

420 819

421 811

422 802

423 794

424 787

425 782

426 779

427 779

428 779

429 782

430 787

431 795

432 803

433 812

434 820

435 827

436 832

437 834

438 835

439 834

440 831

441 826

442 820

443 820

444 805

445 805

446 798

447 793

448 790

449 790

450 790

451 793

452 799

453 806

454 814

455 822

456 830

457 836

458 840

459 843

460 843

461 842

462 839

463 834

464 828

465 821

466 814

467 809

468 803

469 800

470 800

471 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

Page 164: cenidet · 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

ANEXOS

134

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

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. Valor

747 925

748 920

749 913

750 905

751 895

752 884

753 873

754 864

755 857

756 852

757 848

758 846

759 846

760 846

761 847

762 847

763 849

764 851

765 853

766 853

767 852

768 848

769 843

770 834

771 823

772 810

773 794

774 779

775 767

776 757

777 749

778 744

779 743

780 743

781 745

782 751

783 757

784 764

785 772

786 777

787 783

788 784

789 785

790 783

791 778

792 770

793 760

794 748

795 733

796 719

797 704

798 692

799 682

800 674

801 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

Page 165: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

135

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. Valor

1022 904

1023 892

1024 879

1025 867

1026 856

1027 851

1028 849

1029 849

1030 853

1031 861

1032 873

1033 887

1034 903

1035 918

1036 931

1037 942

1038 950

1039 953

1040 954

1041 953

1042 953

1043 950

1044 945

1045 941

1046 937

1047 933

1048 930

1049 929

1050 929

1051 931

1052 936

1053 943

1054 951

1055 959

1056 967

1057 974

1058 977

1059 978

1060 978

1061 975

1062 971

1063 965

1064 958

1065 951

1066 944

1067 940

1068 938

1069 938

1070 939

1071 943

1072 951

1073 960

1074 971

1075 983

1076 993

Mue. Valor

1077 1003

1078 1009

1079 1012

1080 1012

1081 1010

1082 1004

1083 995

1084 983

1085 970

1086 956

1087 944

1088 935

1089 935

1090 930

1091 928

1092 928

1093 930

1094 935

1095 943

1096 952

1097 963

1098 973

1099 983

1100 989

1101 993

1102 995

1103 994

1104 991

1105 985

1106 976

1107 967

1108 955

1109 944

1110 936

1111 931

1112 928

1113 928

1114 930

1115 935

1116 943

1117 955

1118 967

1119 977

1120 988

1121 996

1122 1000

1123 1002

1124 1001

1125 998

1126 992

1127 983

1128 972

1129 960

1130 950

1131 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

Page 166: cenidet · 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

ANEXOS

136

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

Mue. Valor

1352 922

1353 903

1354 888

1355 876

1356 867

1357 862

1358 860

1359 860

1360 860

1361 863

1362 870

1363 880

1364 889

1365 898

1366 908

1367 912

1368 912

1369 910

1370 905

1371 897

1372 884

1373 871

1374 855

1375 838

1376 822

1377 808

1378 798

1379 788

1380 784

1381 782

1382 782

1383 784

1384 789

1385 795

1386 802

1387 809

1388 814

1389 816

1390 816

1391 813

1392 809

1393 803

1394 793

1395 784

1396 775

1397 767

1398 760

1399 755

1400 753

1401 753

1402 755

1403 759

1404 764

1405 769

1406 775

Mue. Valor

1407 780

1408 784

1409 786

1410 786

1411 786

1412 783

1413 779

1414 770

1415 749

1416 737

1417 725

1418 715

1419 707

1420 707

1421 701

1422 698

1423 697

1424 697

1425 699

1426 702

1427 707

1428 712

1429 719

1430 726

1431 731

1432 734

1433 737

1434 738

1435 738

1436 735

1437 730

1438 723

1439 714

1440 703

1441 691

1442 679

1443 669

1444 661

1445 655

1446 652

1447 652

1448 652

1449 654

1450 659

1451 667

1452 675

1453 686

1454 695

1455 702

1456 709

1457 712

1458 714

1459 714

1460 712

1461 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

Page 167: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

137

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. Valor

1682 632

1683 621

1684 613

1685 606

1686 602

1687 601

1688 601

1689 602

1690 606

1691 612

1692 621

1693 631

1694 642

1695 652

1696 662

1697 668

1698 674

1699 677

1700 677

1701 675

1702 671

1703 665

1704 655

1705 643

1706 630

1707 618

1708 607

1709 599

1710 593

1711 591

1712 590

1713 591

1714 596

1715 602

1716 612

1717 624

1718 636

1719 649

1720 660

1721 668

1722 674

1723 678

1724 681

1725 681

1726 678

1727 673

1728 673

1729 667

1730 657

1731 645

1732 633

1733 621

1734 611

1735 603

1736 597

Mue. Valor

1737 594

1738 594

1739 594

1740 597

1741 605

1742 614

1743 625

1744 638

1745 650

1746 661

1747 670

1748 677

1749 681

1750 683

1751 683

1752 681

1753 676

1754 669

1755 660

1756 648

1757 634

1758 620

1759 609

1760 599

1761 592

1762 588

1763 588

1764 588

1765 592

1766 599

1767 609

1768 620

1769 634

1770 647

1771 658

1772 667

1773 672

1774 676

1775 676

1776 677

1777 676

1778 672

1779 666

1780 656

1781 644

1782 630

1783 615

1784 603

1785 593

1786 585

1787 579

1788 576

1789 576

1790 577

1791 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

Page 168: cenidet · 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

ANEXOS

138

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

Page 169: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

139

Anexo 3. Hoja de datos del sensor ADNS-2610.

Page 170: cenidet · 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

ANEXOS

140

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.

Page 171: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

141

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.

Page 172: cenidet · 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

ANEXOS

142

Anexo 6. Hoja de datos del microcontrolador 18F2550.

Page 173: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

143

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.

Page 174: cenidet · 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

ANEXOS

144

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 Cantidad

Placa fenólica de 20cmx20cm 1

Microcontrolador 18f2550 1

Sensor ADNS-2616 1

Puerto ICSP de 5 terminales 1

Postes para soldar 22

Interruptor de línea de 1 polo 1 tiro 1

Transistor 2N3906 1

Capacitor cerámico de 22 pF 2

Capacitor electrolítico de 2.2 uF 1

Capacitor electrolítico de 1 uF 1

Resistencia de carbón de 1 kOhm 6

Resistencia de carbón de 100 kOhms 1

Cristal oscilador de 20 MHz 1

Resonador cerámico de 24 MHz 1

Cable UTP calibre 28 AWG 1 metro

Estaño para soldadura 60/40 1 metro

Page 175: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

145

Anexo 9. Diagrama eléctrico de REODA-MX.

Figura A12.- Diagrama eléctrico de REODA-MX.

Interruptor para programación

Page 176: cenidet · 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

ANEXOS

146

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,VREGEN #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 //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 ;

float yunosiete= 0.047579378 ; float yunoocho= 0.04753124 ; float yunonueve= 0.047476726 ; float 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 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;

Page 177: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

147

//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. #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; }

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; } } 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_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)

Page 178: cenidet · 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

ANEXOS

148

printf("\r\n\nUSB unenumerated by PC/HOST, waiting for enumeration..."); last_connected=new_connected; last_enumerated=new_enumerated; } 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++; } 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)

{ output_high(PIN_B7); Address=Address-y; } PulseClock(); output_low(PIN_B7); 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 +- 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*entradaxdos)-(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;

Page 179: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

149

if (contadorxayuda==6) { deltax=0; contadorxayuda=5; } } 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;

case 11: aumentoxfinal=1; break; // aumento final movimiento de 4 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==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;

Page 180: cenidet · 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

ANEXOS

150

} 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

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; }

Page 181: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

151

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*ydiferenciasiete)+(yocho*ydiferenciaocho)+(ynueve*ydiferencianueve)+(yunocero*ydiferenciaunocero)+(yunocero*ydiferenciaunocero)+(yunouno*ydiferenciaunouno)+(yunodos*ydiferenciaunodos)+(yunotres*ydiferenciaunotres)+(yunocuatro*ydiferenciaunocuatro)+(yunocinco*ydiferenciaunocinco)+(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

Page 182: cenidet · 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

ANEXOS

152

{ 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; }

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;

Page 183: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

153

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; }

Page 184: cenidet · 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

ANEXOS

154

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; } } if (promedio_actualyy==0)

{ 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; } return Deltayy; }

Page 185: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

155

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.

Page 186: cenidet · 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

ANEXOS

156

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.

Page 187: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

157

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.

Page 188: cenidet · 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

ANEXOS

158

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 botones. Inicio/panel de control/Hardware y

sonido/Dispositivos e impresoras/Mouse/Botones/Intercambiar 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.

Page 189: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

159

Diseño de la prueba.

El usuario tomará el ratón convencional con la mano seleccionada y realizará la

siguiente secuencia de instrucciones:

a) Trasladar el cursor al punto medio de la pantalla y esperar 5 segundos.

b) Trasladar el cursor al punto A y esperar 3 segundos.

c) Trasladar el cursor al punto B y esperar 3 segundos.

d) 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.

Page 190: cenidet · 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

ANEXOS

160

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.

Page 191: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

161

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.

Page 192: cenidet · 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

ANEXOS

162

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.

Page 193: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

163

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.

Page 194: cenidet · 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

ANEXOS

164

c) Trasladar el cursor al punto B y esperar 3 segundos.

d) Trasladar el cursor al punto C y esperar 3 segundos.

e) Trasladar el cursor al punto E y esperar 3 segundos.

f) Trasladar el cursor al punto F y esperar 3 segundos.

g) Trasladar el cursor al punto G y esperar 3 segundos.

h) Trasladar el cursor al punto medio y esperar 3 segundos.

i) 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.

Page 195: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

165

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.

Page 196: cenidet · 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

ANEXOS

166

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.

Page 197: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

167

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

Page 198: cenidet · 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

ANEXOS

168

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

Page 199: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

169

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.

Page 200: cenidet · 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

ANEXOS

170

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ú.

Page 201: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

171

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.

Page 202: cenidet · 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

ANEXOS

172

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.

Page 203: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

173

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.

Page 204: cenidet · 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

ANEXOS

174

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.

Page 205: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

175

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.

Page 206: cenidet · 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

ANEXOS

176

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

Page 207: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

177

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.

Page 208: cenidet · 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

ANEXOS

178

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.

Page 209: cenidet · 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

“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”

179

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