cenidet ®
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Mecatrónica
TESIS DE MAESTRÍA EN CIENCIAS
Modelado, Diseño, Construcción y Pruebas de un Ratón de Computadora para Personas con Tremor en Manos.
presentada por
Omar Alejandro Ruiz González Ing. en Electricidad el I. T. de Veracruz.
como requisito para la obtención del grado de: Maestría en Ciencias en Ingeniería Mecatrónica
Director de tesis: M.C. José Luis González Rubio Sandoval.
Co-Director de tesis:
Dr. Andrés Blanco Ortega.
Jurado: Dr. Luis Gerardo Vela Valdés – Presidente
M.C. José Martín Gómez López – Secretario M.C. José Luis González Rubio Sandoval – Vocal
Dr. Andrés Blanco Ortega – Vocal Suplente
Cuernavaca, Morelos, México. 21 de Julio de 2011
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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.
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
ii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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.
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
iv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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).
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
vi
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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.
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
viii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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.
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
x
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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
“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
“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
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
xiv
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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
“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
“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
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
xviii
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
xx
“MODELADO, DISEÑO, CONSTRUCCIÓN Y PRUEBAS DE UN RATÓN DE COMPUTADORA PARA PERSONAS CON TREMOR EN MANOS”
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.
“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.
“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.
“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.
“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.
“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.
“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
“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.
“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].
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).
“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.
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:
“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.
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.
“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.
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.
“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
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.
“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
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.
“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.
INTRODUCCIÓN
14
“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)
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
“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
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
“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)
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.
“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):
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
“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
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
“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.
MARCO TEÓRICO
26
Figura 6.- Clasificación general de filtros digitales.
“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.
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
“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
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.
“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.
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
“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)
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;
“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:
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:
“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)
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)
“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
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
“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.
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.
“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].
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.
“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.
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.
“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.
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.
“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.
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.
“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.
MARCO TEÓRICO
52
“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.
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.
“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.
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.
“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.
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.
“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.
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.
“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
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
“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).
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.
“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".
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".
“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).
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.
“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).
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.
“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.
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.
“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 ".
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.
“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.
DESARROLLO
76
Figura 46.- Captura de transferencia de datos del ratón de marca Genius.
“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.
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 ".
“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.
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
“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.
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
“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.
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".
“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
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".
“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.
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.
“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.
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:
“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.
DESARROLLO
92
“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)
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.
“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).
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.
“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.
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
“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.
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
“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.
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
“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.
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
“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.
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
“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.
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
“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
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
“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.
PRUEBAS Y RESULTADOS
112
“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
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:
“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.
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.
“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.
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/.
“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.
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.
“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.
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
“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:
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
“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.
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.
“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
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.
“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ó.
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.
“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)
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
“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
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
“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
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
“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
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
“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.
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.
“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.
ANEXOS
142
Anexo 6. Hoja de datos del microcontrolador 18F2550.
“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.
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
“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
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;
“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)
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;
“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;
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; }
“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
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;
“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; }
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; }
“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.
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.
“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.
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.
“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.
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.
“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.
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.
“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.
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.
“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.
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.
“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
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
“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.
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ú.
“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.
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.
“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.
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.
“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.
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
“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.
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.
“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