Sistema de ayuda a la rehabilitación de pacientes con disfunción en extremidades inferiores
Abstract
Grado en Ingeniería de Tecnologías Específicas de Telecomunicación
Full text
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN TRABAJO FIN DE GRADO INGENIERÍA DE TECNOLOGÍAS ESPECÍFICAS DE TELECOMUNICACIÓN SISTEMA DE AYUDA A LA REHABILITACIÓN DE PACIENTES CON DISFUNCIÓN EN EXTREMIDADES INFERIORES CURSO 2018-2019 AUTORA: ISABEL JUNQUERA GODOY TUTOR: DR. ALONSO ALONSO ALONSO
ÍNDICE 1. Introducción 1.1. Justificación 1.2. Estado del arte 1.3. Antecedentes 1.4. Objetivos 1.5. Metodología 2. Planteamiento estructura 2.1. Posibles soluciones 2.2. Solución escogida 3. Hardware 3.1. Arduino 3.2. Potenciómetro 3.3. Estructura impresión 3D 3.4. Recubrimiento 3.5. Módulo Bluetooth 3.6. Diseño final 4. Software 4.1. Blynk 4.2. Aplicación 4.3. Código 5. Protocolo de pruebas y resultados 6. Conclusiones 6.1. Posibles líneas futuras 6.1.1. Futuro de las ortesis 6.1.2. Mejoras en el sistema actual
RESUMEN El siguiente Trabajo de Fin de Grado tiene como objetivo el desarrollo de un sistema de ayuda a la rehabilitación de pacientes con afección en las extremidades inferiores. Concretamente se aplicará a disfunciones en la articulación de la rodilla. Se diseñará una órtesis sensorizada para el seguimiento de los ejercicios de rehabilitación junto con una aplicación en el teléfono móvil como guía para el paciente durante la ejecución de los ejercicios. Una órtesis es un dispositivo externo aplicado al cuerpo para modificar los aspectos funcionales y/o estructurales del esqueleto o del sistema neuromuscular. Se caracterizan por ser de gran utilidad como parte de la rehabilitación en diversas enfermedades. Las órtesis se pueden clasificar en activas, las cuales ayudan a la realización del movimiento de rehabilitación, y en pasivas, cuyo objetivo es totalmente opuesto, impiden la realización del movimiento. ABSTRACT The following Final Degree Project aims to develop an aid system for the rehabilitation of patients with lower limb condition. Specifically, it will be applied to dysfunctions in the knee joint. A sensorized orthosis will be designed to monitor rehabilitation exercises together with an application on the mobile phone as a guide for the patient during the execution of the exercises. An orthosis is an external device applied to the body to modify the functional and structural aspects of the skeleton or neuromuscular system. It is characterized by being very useful as part of rehabilitation in various diseases. The orthoses can be classified as active, which help in the realization of the rehabilitation movement, and in passive ones, whose objective is totally opposite, prevent the realization of the movement. Estudio anatómico de la extremidad inferior Para poder comprender el comportamiento del movimiento de la rodilla se realizará un primer estudio biomecánico de dicha articulación: La rodilla está formada por la unión de dos huesos importantes, el fémur y la tibia. También dispone de un pequeño hueso llamado rótula que está localizada en la parte inferior y anterior del fémur. Esta articulación puede realizar los movimientos de flexión y extensión tal y como se ve en la
siguiente imagen (Figura 1). Está rodeada por ligamentos que le dan estabilidad y músculos que hacen posible el movimiento de la extremidad. [1] Figura 1. Rodilla en flexión y extensión. Componentes óseos de la anatomía de la rodilla [2]: • Epífisis distal del fémur: Es la parte inferior del fémur. Formada por dos cóndilos femorales con forma redondeada. Entre ambos cóndilos se encuentra la escotadura intercondílea que los separa por la parte de atrás. A ambos lados de los cóndilos existen unos relieves óseos denominados epicóndilos. • Rótula: Se encuentra situada en la parte anterior de la rodilla, por delante de la tróclea femoral. • Epífisis proximal de la tibia: Se corresponde a la parte superior de la tibia. Esta es aplanada y recibe el nombre de meseta tibial. Esta soporta el peso del cuerpo, el cual se transmite también hacia el pie. Tiene dos cavidades llamadas glenoidas las cuales albergan los cóndilos del fémur. Tejidos blandos de la anatomía de la rodilla [2]: • Cápsula articular: Es un recubrimiento fibroso que envuelve a la rodilla y forma un espacio cerrado. En su interior se une con los meniscos y conecta a la tibia a través de los ligamentos coronarios. • Membrana sinovial: Recubre a la cápsula articular desde el fémur hasta la unión de los meniscos. • Brusas: Sacos llenos de líquido que funcionan como amortiguador entre el tendón y el hueso. • Meniscos: Son anillos de fibrocartílago para ayudar a la correcta congruencia entre las dos superficies tan irregulares del fémur y de la tibia.
• Ligamentos: estructuras que proporcionan estabilidad a la rodilla e impedimento de movimientos extremos. • Músculos: El cuádriceps es el músculo principal, y se encarga de la función de extensión de la rodilla. Los isquiotibiales situados en la parte posterior del muslo se encargan del movimiento de flexión. La rodilla es una articulación muy compleja que sufre tanto de manera cotidiana con el desgaste, como en el deporte. Por ello es frecuente que se lesione. La ortesis sensorizada propuesta en este documento está indicada para pacientes postquirúrgicos que presentan lesiones en los tejidos blandos situados en la rodilla. No está indicada para pacientes con lesiones neuronales ya que el dispositivo es pasivo, es decir, el paciente debe realizar el movimiento de rehabilitación. Para este segundo grupo de personas, las órtesis más recomendadas son las activas, ya que ayudan a la realización del movimiento [2]. Movimiento articular de la rodilla [3]: La articulación tibio-femoral permite dos movimientos: • Rotación: este movimiento es muy limitado y solo puede realizarse en posición de flexión. • Flexión-extensión: Partiendo de una posición de reposo con la tibia y el fémur totalmente alineados correspondería a los 0º y la flexión total de la rodilla alcanzaría a una media de 140º tal y como se ve en la siguiente imagen (Figura 2). Figura 2. Articulación rodilla.
Ejercicio de rehabilitación Según la afección que se quiera tratar, los ejercicios de rehabilitación necesarios cambian, así como las metas físicas a las que deben llegar los pacientes a la hora de hacer el movimiento. Se ha diseñado esta órtesis con el objetivo de que el paciente pueda saber de forma sencilla si está realizando de forma correcta la rehabilitación. En este caso concreto, se desarrollan cinco ejercicios distintos. El usuario puede elegir dentro de la aplicación el ejercicio que quiere realizar. Todos ellos están destinados a fortalecer el cuádriceps y conseguir un movimiento articular completo. El ejercicio de rehabilitación se puede modificar de manera muy sencilla cambiando el software del dispositivo. Diseño de la órtesis sensorizada Para poder realizar un buen diseño de la órtesis es necesario tener un objetivo claro del funcionamiento que se quiere conseguir del dispositivo. Conforme se haya reflexionado sobre el propósito final se desarrollará un mecanismo que cumpla con las expectativas impuestas. En este caso se desarrolla un diseño de ortesis sensorizada con el objetivo de realizar un seguimiento de la rehabilitación de pacientes de manera remota. Los pacientes deben ser capaces de realizar todos los ejercicios de rehabilitación de manera correcta, y que la órtesis sea capaz de recoger el movimiento con cierta precisión. Al ser un instrumento cuya finalidad es el uso doméstico, debe ser fácil de usar, ligero, cómodo, ajustable a cada estructura fisiológica de cada paciente concreto y, además, económico. Para encontrar el material idóneo para el diseño del mecanismo hay que tener en cuenta las características mencionadas anteriormente. En la impresión 3D existen una gran cantidad de materiales con los que trabajar (ácido poliláctico, poliestireno de alto impacto, tereftalato de polietileno…). Es necesario comparar las características de estos materiales y escoger uno que se ajuste a las necesidades del dispositivo. El material propuesto para la fabricación de la órtesis es el ácido poliláctico (PLA) ya que es muy tenaz, duro y rígido, con resistencia a la abrasión y a componentes químicos. Es resistente al impacto y se puede recubrir fácilmente con láminas metálicas en caso de que se quiera dar más resistencia a la órtesis. Cumple con nuestros requerimientos de
material ligero y económico. Es uno de los filamentos más usados en la impresión 3D. Las piezas de la órtesis se diseñaron a ordenador para su posterior impresión en 3D utilizando la impresora modelo BQ Prusa i3 Hephestos disponible en la Escuela Técnica Superior de Ingenieros de Telecomunicación. Para poder realizar el registro del movimiento de la rodilla, meta principal del diseño de esta órtesis, se necesita un dispositivo que pueda “leer” el movimiento de extensión y flexión realizado por el paciente durante la rehabilitación. Por ello, una vez impresa la estructura principal, se realiza la sensorización de la pieza a partir de un potenciómetro. La función de dicho potenciómetro es registrar la posición angular en la que se encuentra la rodilla, por ello este sensor se coloca en la zona de la articulación de la pieza 3D. El potenciómetro está controlado por una placa desarrollada por Arduino llamada Arduino Mega 2560. Esta placa electrónica está formada por un microcontrolador y varios pines digitales y analógicos que funcionan como “puertas” de entrada y salida de los datos. Cada medio segundo la placa de Arduino calcula la diferencia de voltaje que pasa por el potenciómetro y procesa esa información asignando una posición angular. Dicho parámetro se lo manda, mediante conexión WiFi a una aplicación en el teléfono móvil. Esta app presenta los datos recogidos de manera gráfica para que el usuario pueda seguir su ejercicio y comprobar que realiza la rehabilitación de manera correcta. La aplicación se desarrolla en la plataforma para el diseño de aplicaciones llamada Blynk. La velocidad de medida de los ángulos de la rodilla está escogida en función de las limitaciones que presenta la aplicación de Blynk que se verán más adelante. Palabras clave Arduino, biomecánica, Blynk, potenciómetro, exoesqueleto, impresión 3D, ortesis, rehabilitación, sensorización.
1. INTRODUCCIÓN 1.1. Justificación Una parte importante de la población presenta lesiones articulares que necesitan tratamiento continuado que se debe realizar en clínicas de rehabilitación. Sin embargo, muchas personas, por diversos motivos, no se pueden desplazar hasta la clínica a diario para realizar dichos ejercicios. De ahí surge la idea de este proyecto. Crear un dispositivo de uso doméstico que pueda monitorizar los ejercicios de rehabilitación de los pacientes y ayudarles a ejecutarlos de manera correcta. De esta manera los médicos podrían realizar un seguimiento continuo de sus pacientes sin saturar las clínicas de rehabilitación. Gracias a una ortesis impresa en 3D diseñada con las características fisiológicas específicas del usuario, hace que se consiga un adecuado y personalizado proceso de rehabilitación. La aplicación ayuda a corregir el movimiento durante el ejercicio indicando pautas y consejos que los pacientes puedan seguir. 1.2. Estado del Arte Según la Norma UNE 11-909-90/1, una ortesis u órtesis, según definición de la Organización Internacional de Normalización(ISO), es un apoyo u otro dispositivo externo (aparato) aplicado al cuerpo para modificar los aspectos funcionales o estructurales del sistema neuromusculoesquelético, con la finalidad de mantener, mejorar o recuperar la función. Además, está en contacto permanente con el cuerpo humano, diferenciándola de los demás productos de apoyo. La palabra ortesis deriva del griego “ortho” que significa recto, enderezado o correcto. Es un término global que incluye dispositivos tanto dinámicos como estáticos. El término se usa para denominar aparatos o dispositivos, férulas, ayudas técnicas y soportes usados por los pacientes, prescritos en especialidades médicas como: ortopedia y fisiatría (medicina física y rehabilitación), y en algunas terapias como: fisioterapia y terapia ocupacional que corrigen o facilitan la ejecución de una acción, actividad o desplazamiento, procurando ahorro de energía y mayor seguridad. Sirven para sostener, alinear o corregir deformidades y para mejorar la función del aparato locomotor. Es necesario diferenciar entre prótesis y ortesis. Las prótesis tanto para los miembros inferiores como superiores, son habitualmente necesarias en caso de amputaciones, al sustituir, parcial o totalmente al miembro. En cambio, la función de las ortesis es reemplazar o reforzar las funciones del miembro.
Las ortesis de miembro inferior están diseñadas para modificar las características estructurales y funcionales del sistema neuromuscular y del sistema esquelético de los miembros inferiores; Dichos dispositivos se pueden diseñar a medida, es decir, se fabrican para adaptarse a los requisitos funcionales específicos del usuario, o bien pueden ser prefabricados para cumplir con requisitos funcionales genéricos; Estos últimos suelen ser ajustables, y de esta manera se puedan adaptar al usuario individual. Las ortesis pueden ser dinámicas, si disponen de componentes articulares que permiten definir una serie de rangos de movilidad, estáticas, si carecen de movilidad y en caso de que incorporen tanto partes dinámicas como estáticas se denominen ortesis mixtas o híbridas. Estos dispositivos ortopédicos tienen una serie de objetivos generales: 1. Estabilización de articulaciones paralizadas o débiles. 2. Función de soporte para articulaciones lesionadas o dañadas. 3. Control de movimientos anormales o espásticos. 4. Descarga de los segmentos distales. La clasificación de las ortesis se puede realizar según diferentes criterios como puede ser según la zona anatómica involucrada (lumbar, cervical, extremidades, etc.), según el tipo de restricción que proporcionan a la articulación (rígida, flexible, semirrígida), según los objetivos de la ortesis (soportar, inmovilizar, corregir, etc.), según la patología o afección que trata (esguinces, fracturas, patologías nerviosas...). No obstante, una clasificación que resulta de utilidad en la práctica clínica habitual es la que utiliza el criterio terapéutico basándose en las funciones que realizan las ortesis, distinguiendo las funciones principales, primarias o directas que son aquellas que se dirigen a conseguir los objetivos terapéuticos más importantes. Según las funciones principales que realizan las ortesis se diferencian los siguientes tipos [4]: – Ortesis funcionales o dinámicas: Permiten mejorar la función de la marcha. – Ortesis posturales o pasivas: Destinadas a la prevención/corrección de deformidades. – Ortesis correctoras: Actúan por aplicación progresiva de fuerzas, dentro de un sistema equilibrado de fuerzas en tres puntos, aprovechando las propiedades viscoeslásticas de las partes blandas, la capacidad de remodelación del hueso cortical y la capacidad de crecimiento óseo de los núcleos epifisarios. – Ortesis inmovilizadoras: Inmovilizan el segmento afectado, permitiendo precozmente la bipedestación, la marcha y otras actividades de la vida diaria.
Para proyectos con programas menos pesados Arduino Uno sigue siendo una opción recomendable, sobre todo para desarrolladores primerizos. Figura 4. Placa Arduino Uno - Módulo Bluetooth HC-06: Consiste en un pequeño módulo cuya función es convertir los datos que le llegan a través de Bluetooth hacia el puerto serie y viceversa. Dicho módulo sólo puede trabajar en modo esclavo, es decir, sólo puede conectarse a un dispositivo maestro. En este caso el dispositivo maestro sería el dispositivo móvil en el que esté descargada la aplicación. Su función era realizar la conexión entre la placa de Arduino y la aplicación móvil. Este módulo Bluetooth puede conseguir de forma sencilla la transmisión inalámbrica de datos en serie. Trabaja a una frecuencia de funcionamiento de 2,4 GHz. Adopta el estándar Bluetooth 2.0 + EDR (Enhanced Data Rate), cuya tasa de transmisión llega a los 3Mbps [7] [8]. Este dispositivo no cumplía con los requisitos necesarios para una buena comunicación entre la placa y la aplicación por lo siguiente: 1) El tamaño del paquete de datos que se envía es en ocasiones demasiado grande para que el módulo lo pueda transmitir, por lo que daba problemas de estabilidad en la conexión, es decir estaba constantemente conectándose y desconectándose. 2) No proporcionaba conexión a internet, por lo que la placa no podía enviar el email con los datos del ejercicio al médico rehabilitador. Por ello se sustituyó por el módulo WiFi ESP8266 esp-01, el cual subsana las carencias del módulo bluetooth HC-06. En las siguientes imágenes se puede ver una foto del módulo HC-06 junto con la conexión que se realizaría a una placa de Arduino Uno (Figuras 6 y 7).
Figura 5. Módulo HC-06 Figura 6. Conexión HC-06 con placa Arduino Uno - Encoder rotativo: Un encoder rotativo consiste en un dispositivo que permite determinar la velocidad angular y la posición de un giro. Tiene un aspecto exterior muy parecido a un potenciómetro, sin embargo, su electrónica y su comportamiento es totalmente dispar. Específicamente, este encoder se basa en la generación de pulsos digitales durante la rotación hasta un determinado ángulo. Por cada vuelta dicho encoder genera 256 pulsos. Este número puede variar dependiendo del encoder utilizado. Dentro del encoder se encuentran dos escobillas que deslizan sobre una pista metálica ranurada. Junto con las escobillas se encuentra una bola metálica cuya función es cerrar el contacto entre las dos escobillas actuando (Figura 7), así como un pulsador [9]. Figura 7. Encoder rotativo
Dichos encoders, también llamados encoders de cuadratura, debido a que disponen de dos canales (Canal A y B) y, a la salida de estos canales, obtenemos dos señales cuadradas desplazadas entre si 90º eléctricos como se puede observar en la siguiente gráfica (Figura 8). De forma gráfica se podría representar de la siguiente manera. Figura 8. Señales en canales A y B Así como este tipo de encoders permiten determinar la posición y la velocidad, también permiten identificar el sentido de giro. Como ejemplo práctico, se observan las siguientes gráficas, en las que se toma como referencia los flancos de subida y de bajada del canal A. La primera se realiza el giro en sentido CW (Figura 9) y la segunda en sentido CCW (Figura 10) produciéndose los eventos t0, t1… Se puede observar que cuando se realiza el giro con sentido CW, en los eventos tomados como referencia, las señales son totalmente inversas, en cambio con sentido CCW las señales son idénticas. De esta manera se consigue realizar la distinción del sentido del giro [9]. Figura 9. Eventos producidos en sentido de giro CW
Figura 10. Eventos producidos en sentido de giro CCW El problema con estos encoders es que trabajan de forma incremental, es decir que al inicializarlo siempre toma la posición en la que se encuentra como cero de referencia, y no guarda la posición en la que se encontraba una vez desconectado. Por lo que, para poder registrar los ángulos de la rodilla, el dispositivo usado como sensor debe saber en todo momento cuál es su posición actual, y no depender de la posición en la que se ha encendido. Por ello se sustituyó este encoder rotativo de cuadratura por un potenciómetro lineal. A continuación, se representa un diagrama de cómo se realizaría la conexión entre el encoder y la placa de Arduino Uno (Figura 11). Figura 11. Conexión entre encoder rotativo y placa de Arduino Uno
2.2. Solución escogida Finalmente, tras descartar los anteriores dispositivos por los problemas comentados anteriormente, se consigue el siguiente diseño final: Hardware: - Placa Arduino Mega2560 como procesador principal del programa, en él se ejecuta el sketch con todas las funciones programadas en el entorno de Arduino y se procesan los datos recogidos por el potenciómetro. Estos datos los transforma y los manda hacia el módulo WiFi ESP8266 esp-01 para su posterior transmisión a la aplicación móvil. - Módulo WiFi ESP8266 esp-01 como medio de conexión entre el hardware y la aplicación. Encargado de transmitir los datos enviados desde la placa de Arduino hacia la aplicación Blynk. - Potenciómetro lineal de 10kohms como medidor de la posición angular de la rodilla. Realiza la función de sensor registrando los movimientos realizados durante el ejercicio y transmitiéndolos a la placa de Arduino. - Impresión 3D como estructura de la ortesis. Consiste en el cuerpo rígido, fabricado a partir del material PLA, que rodea la articulación y donde se encuentra acoplado el potenciómetro. Software: - Aplicación Blynk como plataforma de desarrollo de la aplicación. Aquí se desarrolla la interfaz de la aplicación, junto con el servidor y las librerías asociadas. - Entorno de programación de Arduino donde se realiza el desarrollo del sketch, procesado por la placa de Arduino. Ejecución del dispositivo: Todos los apartados que se describen posteriormente tienen un papel fundamental en resultado final del proyecto. El procedimiento que debe realizarse para conseguir un correcto uso del dispositivo es el siguiente: 1) Enchufar la caja con los componentes hardware a la red eléctrica y encender sus dos botones acoplados. 2) Conectar la ortesis a la caja.
3) Abrir la aplicación Blynk y realizar la conexión entre el Hardware de la caja y de la aplicación a través de la conexión WiFi. En caso de que sea infructuosa esta conexión reiniciar la caja apagando y encendiendo los botones. 4) Una vez asegurada la conexión, asegurar la ortesis a la pierna del paciente. 5) Seleccionar uno de los ejercicios de rehabilitación disponibles en la aplicación. 6) Realizar dicho ejercicio tantas veces como repeticiones aparezcan en la aplicación. 7) Finalmente, una vez terminados todos los ejercicios de rehabilitación, desenchufar la caja de la red eléctrica y desconectar la ortesis de la caja. En los siguientes capítulos 3 y 4 se describirán los componentes Hardware comentados anteriormente junto con el desarrollo del software final para una comprensión más profunda y exhaustiva del funcionamiento del sistema.
3. HARDWARE 3.1. Arduino Mega 2560 Los datos recogidos por el potenciómetro colocado en la ortesis se transmiten al Arduino Mega 2560. Ésta es una placa electrónica basada en el microcontrolador ATmega2560. Como se puede observar en la siguiente figura (Figura 12), se compone principalmente de 54 pines digitales de entrada y salida, 16 pines analógicos de entrada, 4 UARTs (puertos serie hardware) y un botón de reset. También consta de un oscilador que trabaja a una frecuencia de funcionamiento de 16MHz, una conexión de alimentación, un conector ICSP y una conexión de USB tipo B [10]. Figura 12. Placa Arduino Mega 2560
ESPECIFICACIONES TÉCNICAS Microcontrolador ATmega2560 Tensión de trabajo 5V Tensión de entrada recomendada 7-12V Tensión de entrada límite 6-20V Pines digitales 54 Pines de entrada analógicos 16 Memoria Flash 256KBytes SRAM 8KBytes EEPROM 4KBytes Velocidad de reloj 16MHz Largo 101.52mm Ancho 53.3mm Peso 37g Para la programación de la placa se realiza a través del software de Arduino (IDE), utilizando la conexión USB tipo B de la que dispone conectada al ordenador para poder cargar el sketch. El programa cargado dentro del Arduino se indica en el capítulo 4.3. Figura 13. Interfaz de programación de Arduino
ALIMENTACIÓN El Mega 2560 puede ser alimentado a través de la conexión USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente. La alimentación externa (no USB) puede venir de un adaptador de CA a CC o de una batería. El adaptador se puede conectar al enchufe de 2,1 mm de centro-positivo en la clavija de alimentación de la placa. Los cables desde una batería pueden ser insertados en GND y en el pin Vin del conector de alimentación. La tarjeta puede funcionar con un suministro externo de 6 a 20 voltios. Si se alimenta con menos de 7 V, sin embargo, el pin de 5V puede suministrar menos de cinco voltios y la placa se puede volver inestable. Si se utiliza más de 12 V, el regulador de voltaje se puede sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios [10]. Los pines de alimentación son los siguientes: • Vin. La tensión de entrada a la placa cuando se utiliza una fuente de alimentación externa. • 5V. Este pin es una salida de 5 V regulada por el regulador de la placa. La placa puede ser alimentada desde el conector de alimentación de CC (7 - 12 V), a través del conector USB (5 V), o por el pin VIN de la placa (7-12V). • 3V3. Un suministro de 3,3 voltios generado por el regulador de la placa. El consumo de corriente máximo es de 50 mA. • GND. Son los pines de tierra. • IOREF. Este pin en la placa proporciona la referencia de tensión con la que opera el microcontrolador. En este proyecto, la placa se alimenta a través de la conexión USB conectada a un cargador de móvil con adaptador a USB como el que se puede ver en la siguiente imagen (Figura 14). El circuito del cargador de móvil se encarga de transformar los 220V que llegan del enchufe de pared al que esté conectado la caja a los 5V necesarios para alimentar el Arduino Mega 2560.
Figura 14. Regulador de voltaje 220V-5V La placa Mega 2560 tiene un polyfusible reajustable destinado a proteger a los puertos USB de su ordenador de cortocircuitos y sobrecorrientes que puedan producirse. A pesar de que la mayoría de los ordenadores tienen su propia protección interna, el polyfusible proporciona una capa adicional de protección [10]. MEMORIA Para realizar con éxito el dispositivo, la memoria de la placa es un factor determinante ya que el programa que se necesita ejecutar realiza un uso intensivo de la memoria SRAM. La memoria SRAM (static random access memory): Se encarga de almacenar variables locales y datos parciales. Es la zona de memoria donde el sketch crea y manipula las variables cuando se ejecuta. La razón principal por la que se cambió de la placa Arduino Uno a la Arduino Mega 2560 es debido a que la Mega 2560 tiene 8Kbytes de memoria SRAM mientras que la Arduino Uno sólo dispone de 2Kbytes. El microcontrolador ATmega2560 consta de 256Kbytes de memoria flash (encargada de almacenar el código del programa), 4Kbytes de EEPROM (su función es mantener datos después de un reset de la placa), y, como ya se ha comentado, 8Kbytes de SRAM. En comparación con otras placas desarrolladas por Arduino, se puede observar en la siguiente tabla que el microcontrolador del que dispone la Arduino Mega 2560 dispone de la mayor capacidad de memoria [10].
Figura 24. Bobinas de PLA - Ultimaker Cura 4.1.0: Cura es un software de laminación para procesar los archivos de diseño en 3D y así generar cada capa que será fabricada por la impresora 3D. Una vez compilado el archivo se exporta en formato .GCode a una tarjeta SD. Dicha tarjeta se introduce en la impresora y tras la selección del archivo, comenzará su impresión capa por capa. Admite los formatos STL /OBJ / DAE y AMF [14]. Esta herramienta de laminación ha sido desarrollada por Ultimaker y es gratuita y de código abierto. Es necesario configurarla con las características de la impresora que se utilizará para imprimir la pieza. También dispone de otras opciones para controlar la impresión, como por ejemplo la velocidad de impresión, la cantidad de relleno de la pieza y los soportes de la pieza. En función de las características escogidas el tiempo estimado de impresión varía. En la siguiente ilustración (Figura 25) se encuentra la interfaz del programa Ultimaker Cura 4.1.0. donde se puede ver a la derecha de la imagen las diferentes opciones de laminado de las que dispone. Figura 25. Interfaz Ultimaker Cura
Las siguientes imágenes muestran las diferentes piezas fabricadas por la impresora 3D junto con su ensamblaje final. Para su correcta impresión ha sido necesario realizar una calibración previa de la impresora. Para pegar todas las piezas se ha utilizado una pistola de termofusible. Los planos en 3D de las piezas se encuentran en el apartado de ANEXOS. Figura 26. Soporte inferior derecho Figura 27. Soporte inferior izquierdo Figura 28. Soporte superior izquierdo Figura 29. Soporte superior derecho Figura 30. Soporte superior Figura 31. Soporte inferior
Figura 32. Engranaje derecho Figura 33. Engranaje izquierdo Figura 34. Conexión final de las piezas de la ortesis
3.4. Recubrimiento Uno de los efectos indeseados en el uso de ortesis son rozaduras y lesiones en la piel debido a un uso continuado de ésta. Para evitar este efecto secundario se recubre el interior de la ortesis impresa en 3D con un material acolchado y suave al tacto, haciendo que aumente la comodidad del usuario al usar el aparato. Como se puede ver en las siguientes imágenes se ha colocado este material en los puntos con más riesgo a rozadura (Figura 35). Figura 35. Recubrimiento de neopreno de la ortesis
3.5. Módulo WIFI Para realizar la conexión inalámbrica entre la placa Mega 2560 y la aplicación desarrollada en la plataforma Blynk se utiliza un módulo WiFi denominado ESP8266 ESP-01. Es el encargado de dirigir los paquetes de datos desde la aplicación al hardware y viceversa, consiguiendo así una buena comunicación por ambas partes. ESP8266 es el nombre del microcontrolador diseñado por la empresa Espressif Systems. El ESP8266 se diseñó con el propósito de crear una solución autónoma de redes WiFi para poder dotar de conexión a internet a placas basadas en microcontroladores (como la Arduino Mega 2560), además de ser capaz de ejecutar aplicaciones de forma independiente. Para simplificar la programación y uso de este procesador se desarrollan placas prefabricadas específicas. Esto da lugar a varias versiones de ESP8266 (Ej: ESP-01, ESP-02…) en las que todas con el mismo procesador. Las diferencias que se encuentran entre estas placas son el número de pines GPIO y la forma de exponerlos, las dimensiones de la placa, la cantidad de memoria flash y otras consideraciones relativas a su fabricación. Pero, desde una perspectiva de programación, todas son iguales. [27] PROCESADOR: El System on a Chip (SoC) ESP9266EX (Figura 36) usa un procesador Tensilica Xtensa L106. Esto es un microcontrolador de 32 bit con instrucciones de 16 bit. El procesador tiene una frecuencia de funcionamiento de 80 MHz por defecto, aunque puede llegar a hasta los 160 MHz. Con respect a la memoria, consta de 80kB de DRAM (Data RAM), y 35kB IRAM (Instruction RAM) [15]. Figura 36. Procesador ESP8266EX
Placa ESP-01: En este proyecto se utiliza la placa prefabricada ESP-01. Es una de las placas más populares que integran el procesador ESP8266 [16]. Sus características principales son: - ESP8266 es el microcontrolador del módulo ESP-01. - 8 pines donde se conecta la alimentación, sensores y transmisión de programa. 2 de ellosson pines GPIO (GPIO0 y GPIO2) - BG25Q80A es la memoria flash donde residen los programas o sketchs. El procesador ESP8266 no dispone de este tipo de memoria y por eso es un chip aparte. - LEDs que informan de si está alimentado y de la transmisión de datos (Tx y Rx). - Tipo de antena: impresa - Dimensiones de la placa: 14,3 x 24,8 x 3 mm - Distancia entre pines: 2,54 mm En las siguientes imágenes (Figuras 37 y 38) se muestran las partes fundamentales de la placa ESP-01 junto con sus dimensiones. Figura 37. Partes fundamentales de la placa ESP-01 Figura 38. Dimensiones de la placa ESP-01 En la siguiente imagen (Figura 39) se muestran los diferentes pines que conforman la placa seguida de una descripción del funcionamiento de cada uno de ellos [17].
Figura 39. Pines de la placa ESP-01 1) GND es la toma de tierra. 2) GPIO2 es una entrada salida de propósito general. Es el pin digital número 2. 3) GPIO0 es una entrada salida de propósito general. Es el pin digital número 0. 4) RXD es el pin por donde se van a recibir los datos del puerto serie. Trabaja a 3,3 V. También se puede utilizar como pin digital GPIO: sería el número 3. 5) TXD es el pin por donde se van a transmitir los datos del puerto serie. Trabaja a 3,3 V. También se puede utilizar como pin digital GPIO: sería el número 1. 6) CH_PD pin para apagar y encender el ESP-01: si lo ponemos a 0 V (LOW) se apaga, y a 3,3 V (HIGH) se enciende. 7) RESET pin para resetear el ESP-01: si lo ponemos a 0 V (LOW) se resetea. 8) Vcc es por donde alimentamos el ESP-01. Funciona a 3,3 V y admite un máximo de 3,6 V. La corriente suministrada debe ser mayor que 200 mA.
ALIMENTACIÓN Para alimentar el módulo ESP-01 se realiza a través de una alimentación externa. No se puede alimentar a través de la placa de Arduino debido a que no suministra la suficiente corriente al módulo, por lo que si se intentara realizar alguna transmisión o recepción de datos el módulo no respondería correctamente. En el proyecto se ha utilizado el conversor de voltaje de 220V a 3,3V que se puede observar a continuación (Figura 40): Figura 40. Conversor de voltaje (220V-5V) CONEXIÓN: El módulo WiFi se conecta a la placa de Arduino Mega 2560 a través del puerto serie 1. A continuación un diagrama de las conexiones entre las dos placas (Figura 41). Entrada: Rango de voltaje: 85-265V. Se conecta a la red eléctrica (220V) Salida: Voltaje: 3,3V (1A) Alimenta al módulo WiFi
Figura 41. Conexiones a la placa Arduino Mega 2560 PROGRAMACIÓN: Para la programación del módulo, se realiza a partir del sketch cargado en la Arduino Mega, indicando el tipo de conexión que se realiza (WiFi), a través de que puerto está conectado el módulo (Serie1) y las credenciales necesarias para conectarse a una red WiFi (SSID y contraseña). El resto del intercambio de datos se realiza de forma transparente al usuario. Para que la conexión se realice con éxito es necesaria una red WiFi a la que se pueda conectar a través de su SSID y su contraseña, ya sea a partir de un router o una zona WiFi creada por un terminal móvil. El mensaje que indica por el puerto serie una correcta conexión a la red es el siguiente (Figura 42):
Figura 42. Mensajes de una correcta conexión WiFi mostrados por el monitor serie Donde te indica: - El SSID de la red a la que intenta conectar. - La versión del firmware del módulo WiFi y la empresa desarrolladora de la placa. - la dirección IP y MAC del router. - Finalmente, un mensaje de la correcta conexión a la red junto con un PING. 3.6. Diseño final Para finalizar el capítulo destinado al hardware involucrado en este proyecto se realizará la recapitulación final de todo el conjunto de componentes. Todos los circuitos que se han descrito en este capítulo estarán integrados dentro de una caja. Dicha caja contiene dos botones exteriores colocados en el lateral de la caja. Uno de ellos destinado a encender y apagar el módulo WiFi y el otro la placa de Arduino Mega 2560. Junto a estos botones se encuentra un cable de alimentación el cuál se conecta a la red eléctrica para alimentar los circuitos integrados dentro de la caja. En el lado opuesto a los botones de la caja se encuentra la conexión a la que irá conectada la ortesis. Esta conexión se realiza con un crimpado de tres salidas correspondientes a los terminales
Figura 48. Ajustes del dispositivo en la aplicación Blynk. Para la creación de la interfaz se realiza a través de una serie de Widgets (o módulos del sistema) disponibles en la aplicación Blynk. Cada widget tiene una funcionalidad concreta con una programación asociada a cada uno de ellos. Se puede diferenciar varios tipos de widgets: - Controladores, se utilizan para enviar comandos que controlen el hardware tales como botones, potenciómetros, Joystick, temporizadores, etc. - Pantallas que sirven para visualizar datos recogidos de sensores u otras fuentes como pantallas LCD, gráficas, display de valores, LEDs, etc. - Notificaciones del sistema por medio de twitter, e-mail y pop-ups. - Interacción con la interfaz usando menús, tablas, introducir texto, números u horas, posición geográfica, etc. - Sensores del Smartphone tales como el acelerómetro o la posición GPS. Para controlar el número de widgets que introduces en la aplicación, cada widget tiene asociado un consumo de energía, y cuando se crea la aplicación obtienes una energía determinada, que se va consumiendo en función de los widgets que introduzcas. Una vez consumida toda la energía de la que se dispone no se pueden introducir más widgets. La aplicación tiene la posibilidad de comprar más energía a través de la PlayStore o AppStore (Figura 49) [19]. Nombre de la aplicación Placa Hardware conectada Método de conexión entre la aplicación y la placa Código de autentificación de la aplicación
Figura 49. Interfaz de Blynk con la lista de Widgets A la hora de hacer la recepción o transmisión de los datos entre los widgets, que controlan o muestran los datos, y el hardware se debe contar con un canal de comunicación. En el caso concreto de la placa de Arduino dispone de una serie de pines analógicos y digitales que pueden ser controlados por la interfaz de Blynk, es decir que todos los elementos Hardware conectados a dichos pines pueden dialogar con el sistema software desarrollado. Además de estos pines GPIO físicos, Blynk cuenta con una serie de pines virtuales tal y como se puede observar en la siguiente figura 50. Su principal funcionalidad es usarse como un canal de envío de datos. Estos datos se envían desde el dispositivo móvil, se procesan en el microcontrolador de la placa de Arduino y se vuelven a enviar hacia la aplicación. No existen físicamente. Estos pines llevan asociadas unas funciones de escritura y lectura definidas dentro de la librería Blynk [19]. Para la escritura en los pines virtuales → Blynk.virtualWrite(vPin,valor) Para la lectura en los pines virtuales → BLYNK_WRITE(vPin)
Figura 50. Representación de los pines físicos y pines virtuales Ventajas e inconvenientes encontrados a la hora del uso de la plataforma para el desarrollo de aplicaciones Blynk - Facilidad del desarrollo de la interfaz de la aplicación a partir del uso de widgets, ya que las funcionalidades principales de estos ya están implementadas y simplemente es necesario comprender las funciones prediseñadas por los desarrolladores de Blynk y usarlas de forma correcta para un óptimo funcionamiento de la aplicación. Aunque esto también es un arma de doble filo, ya que, que los widgets ya tengan diseñadas las funciones, limita bastante las posibles modificaciones que se quisieran llevar a cabo ya que cada proyecto tiene unas necesidades concretas de funcionamiento de la aplicación y que no han sido consideradas por los desarrolladores. Un claro ejemplo de esto es el widget Superchart que consiste en una gráfica para mostrar datos. A la hora de crear los gráficos en tiempo real, el periodo de escritura de los datos en esta es de un segundo, y no tiene la posibilidad de aumentar o disminuir este tiempo. Para subsanar esto, se puede contactar con los desarrolladores para comentarles las posibles mejoras de los widgets, y ellos podrían poner a disposición de los usuarios una actualización de la aplicación Blynk con los widgets mejorados. - Una ventaja muy grande es el uso de los pines virtuales para la comunicación de los datos en vez del uso de los pines físicos, dejando así más pines físicos para controlar mayor número de sensores u otros dispositivos hardware. - La posibilidad de trabajar tanto en servidor local como con el servidor online de Blynk aumenta las posibilidades de diferentes proyectos en función de las necesidades específicas de cada uno.
- Blynk soporta una gran variedad de placas Hardware de código abierto, así como diferentes tipos de conexión entre en hardware y la aplicación. - Un inconveniente es que no existe como tal un manual de Blynk en el que te expliquen detalladamente como funciona todo. Y al ser algo tan específico y poco conocido cuesta bastante encontrar información sobre el tema fuera de la página web oficial. Aunque tiene un foro de dudas y preguntas en el que se puede pedir ayuda para los proyectos, en el que los participantes de este foro responden con bastante rapidez. Sin embargo, aún con la ayuda recibida por los foros, no implica que el problema pueda resolverse. Blynk es una herramienta con gran potencial, pero por falta de información detallada o por tener una comunidad de usuarios tan pequeña, se desperdicia mucho de este. Al ser una plataforma tan novedosa hay bastantes mejoras que podrían realizarse, como la posibilidad de modificar los widgets de una manera más autónoma sobre todo para personas con mayor experiencia en desarrollo software. Como plataforma gratuita para desarrolladores de aplicaciones principiantes es una apuesta bastante segura ya que es un entorno amigable e intuitivo. 4.2. Aplicación Como anteriormente se ha comentado la aplicación constará de una serie de Widgets para controlar del hardware y mostrar los datos recogidos por los sensores conectados a este. La aplicación se puede descargar tanto en sistema operativo Android como en iOS. Como se puede observar en la siguiente figura (Figura 51), la aplicación tiene una interfaz gráfica amigable al usuario y muy intuitiva. Se pueden diferenciar los componentes de la aplicación según su finalidad y como en conjunto interactúan entre sí para dar cierta coherencia a la aplicación. A continuación, se describirán los diferentes módulos que conforman la aplicación junto con su funcionamiento.
Figura 51. Interfaz final de la aplicación - Widget “BUTTON”: Consiste en un botón de parada y arranque de los ejercicios de la rehabilitación. El canal de datos por el que se transmite la información del widget es el pin virtual V3. En función de en qué posición se encuentre transmitirá un 0 o un 1. El modo del botón que se elige es “SWITCH” para que una vez presionado el botón se mantenga en ese modo hasta que se vuelva a presionar. El otro modo del botón, “PUSH”, cambia el modo del botón mientras se mantenga presionado, pero una vez se deje de pulsar, vuelve al estado anterior. Cuando se presiona el modo “play” del botón, habilita el temporizador de la función que lee los datos recogidos del potenciómetro y los transforma en una posición angular. Para parar la lectura de datos y salir del ejercicio se debe pulsar el modo “stop” del botón y automáticamente deshabilita el temporizador mencionado anteriormente (Figura 52).
Figura 52. Funcionamiento y ajustes del widget Button - Widget “MENU”: Se trata de un menú de selección de la lista de ejercicios de rehabilitación programados dentro de la aplicación. La información recogida a través de este menú se transmite por el pin virtual V0. Cada ejercicio de rehabilitación es diferente y tiene sus metas asociadas, por lo que en función de cuál se escoja, se realizarán unas comprobaciones u otras, llamando en el código del programa a sus correspondientes funciones, para saber si se está realizando correctamente el ejercicio. La información transmitida según la elección del usuario es un número del 1 al 5 donde cada número se corresponde con un ejercicio concreto. El widget “Image” del que se hablará a continuación depende de la selección que se realice en este menú (Figura 53).
Figura 53. Funcionamiento y ajustes del widget Menu - Widget “IMAGE”: Este módulo consiste en una galería de imágenes en la que se muestran cómo se debe hacer los ejercicios de rehabilitación. En función del ejercicio escogido en el menú la imagen mostrada se corresponderá con dicho ejercicio. La entrada de datos al módulo se realiza a través del pin virtual V1, y los datos admitidos son números del 1 al 5 y a cada número le corresponde una URL que redirige a la imagen del ejercicio. Figura 54. Funcionamiento y ajustes del widget Image
- Widget “SUPERCHART”: Se trata de una gráfica que representa la posición angular de la articulación de la rodilla en tiempo real durante la realización del ejercicio. Se ejecuta cuando el botón comentado anteriormente se encuentra en modo “play”. La gráfica representa en el eje vertical la posición angular de 0 grados a 140. El eje horizontal es el eje de tiempos. El modo de gráfica “live” representan los datos recogidos en tiempo real. También se pueden ver los gráficos realizados en los últimos 15 o 30 minutos o en el último día, en los modos de gráfica “15m”, “30m” o “1d” respectivamente ubicados en la esquina inferior izquierda. La transmisión de las posiciones angulares se realizan por el pin virtual V5. En los ajustes de la gráfica se podrían visualizar más de un vector de datos, aunque en este caso no aplique ya que sólo es necesario observar el movimiento angular de la articulación. Tiene la opción de usar la gráfica en pantalla completa del terminal móvil accediendo al icono de la flecha en la esquina inferior derecha de la gráfica. El problema principal encontrado con este widget ha sido el intentar mostrar los datos en la gráfica a una velocidad mayor de un dato por segundo. Como ha sido comentado anteriormente ha sido uno de los inconvenientes más graves encontrados a lo largo del trabajo y que no ha sido posible subsanarlo. Figura 55. Funcionamiento y ajustes del widget SuperChart
- Widget LCD: Este módulo simula una pantalla LCD cuya función es mostrar mensajes al usuario con el objetivo de dar consejos para realizar los ejercicios de rehabilitación de manera correcta. Además ayuda al usuario a interactuar con la aplicación mostrándole mensajes para que pueda saber cuando empezar o terminar el ejercicio, o qué ejercicio es el que ha seleccionado. El canal de datos por el que se introducen las cadenas de caracteres es el pin virtual V2. Algunos de los mensajes que podemos encontrar en esta pantalla son: o “Has elegido el ejercicio X”. o “Empieza el ejercicio”. o “Has terminado el ejercicio”. o “Estira más la rodilla”. o “Flexiona más la rodilla”. Figura 56. Funcionamiento y ajustes del widget SuperChart
- Widget “DISPLAY”: Consiste en, como bien indica su nombre, un display que representa el numero de repeticiónes que faltan por realizar del ejercicio de rehabilitación. Cada vez que se cumplen los objetivos del ejercicio disminuye una repetición. Cuando este número llegue a cero, que significa que se ha terminado el ejercicio, ocurrirán una serie de eventos en la aplicación: 1- El botón se modificará a modo “stop” y la aplicación dejará de leer la posición angular de la rodilla. 2- Aparecerá un mensaje en la pantalla LCD indicando que se ha terminado el ejercicio. 3- Se recopilarán todas las posiciones recogidas de la rodilla a lo largo del ejercicio y se enviará un correo electrónico al médico rehabilitador indicando el nombre del paciente que ha realizado el ejercicio, el nombre del ejercicio que ha realizado y las posiciones angulares recogidas. Una vez terminada esa serie de eventos, el usuario podrá escoger otro ejercicio de rehabilitación. En caso de que se pare el ejercicio sin haber completado el número de repeticiones, el ejercicio se considerará incompleto y no se mandará el correo electrónico. El pin virtual por el que se indican el número de repeticiones es el V4. Se puede mandar un numero entre 0 y 1023, a pesar de que estos números se pueden modificar en los ajustes del widget. Figura 57. Funcionamiento y ajustes del widget Display
valorMax = 0; repeticiones--;//disminuye una repetición Blynk.virtualWrite(V4, repeticiones);//escribe en el widget de DISPLAY las repeticiones que quedan if (repeticiones <= 0)//termina el ejercicio { imprime1("Enhorabuena, has"); imprime2("terminado el ej"); Blynk.virtualWrite(V3, 1); Blynk.email("[email protected]", "Subject", "Ejercicio3:"+cadena); timer2.disable(timerID);//deshabilita el temporizador que llama a Leedatos } } } } /*****************************FUNCION QUE HACE LAS COMPROBACIONES DEL EJERCICIO 4********************************/ void ejercicio4()//boca abajo flexionar y estirar { contador++; if (valorMax < 130)//comprobación de flexión { if (contador >= 40) { imprime1("Flexiona mas la"); imprime2("rodilla"); contador = 0; valorMin = 140; valorMax = 0; } } else if (valorMin > 10)//comparación de estiramiento { if (contador >= 40) { imprime1("Estira mas la"); imprime2("rodilla"); contador = 0; valorMin = 140; valorMax = 0; } } else//realiza correctaente el ejercicio { if(valorMin <10 && valorMax > 130) { imprime1("Sigue asi"); valorMin = 140; valorMax = 0; repeticiones--; Blynk.virtualWrite(V4, repeticiones);
if (repeticiones <= 0) { imprime1("Enhorabuena, has"); imprime2("terminado el ej"); Blynk.virtualWrite(V3, 1); Blynk.email("[email protected]", "Subject", "Ejercicio4:"+cadena); timer2.disable(timerID);//deshabilita el temporizador que llama a Leedatos } } } } /*****************************FUNCION QUE HACE LAS COMPROBACIONES DEL EJERCICIO 5********************************/ void ejercicio5()//Levantar la pierna estirada { contador++; if (valorMax > 20)//comprobar que no flexiona la rodilla { if (contador >= 40) { imprime1("Estira mas la"); imprime2("rodilla"); contador = 0; valorMin = 140; valorMax = 0; } } else if (valorMin > 10)//comparar que estira lo suficiente la rodilla { if (contador >= 40) { imprime1("Estira mas la"); imprime2("rodilla"); contador = 0; valorMin = 140; valorMax = 0; } } else { if(valorMin <10 && valorMax <30)//realiza correctamente el ejercicio { imprime1("Sigue asi"); valorMin = 140; valorMax = 0; repeticiones--;//disminuye una repeticion Blynk.virtualWrite(V4, repeticiones);//imprime en DISPLAY las repeticiones que quedan if (repeticiones <= 0)//termina el ejercicio { imprime1("Enhorabuena, has");
imprime2("terminado el ej"); Blynk.virtualWrite(V3, 1); Blynk.email("[email protected]", "Subject", "Ejercicio5:"+cadena); timer2.disable(timerID);//deshabilita el temporizador que llama a Leedatos } } } } BLYNK_WRITE(V3) { if (param.asInt() == 1)//El boton en la aplicación está a 1 { timer2.disable(timerID);//deshabilita el temporizador que llama a Leedatos imprime1("Has salido del");//Imprime en LCD imprime2("ejercicio"); delay(3000); } else { timer2.enable(timerID);//habilita el temporizador que llama a leedatos imprime1("Empieza el");//Imprime en LCD imprime2("ejercicio"); delay(3000); } } /********************************************FUNCIÓN DE INICIALIZACIÓN****************************************/ void setup() { //Serial.begin(9600);//Para que aparezca por el puerto serie del ordenador los mensajes // Set ESP8266 baud rate EspSerial.begin(ESP8266_BAUD);//inicializa el módulo ESP8266 delay(10); Blynk.begin(auth, wifi, ssid, pass);//conexión con la aplicación //Serial.println("Waiting for connections..."); timerID= timer2.setInterval(500L, leedatos);//inicializacion del timer de leedatos cada 250ms Blynk.syncAll();//sincroniza la aplicacion blynk todos los pines virtuales } /**********************************FUNCIÓN DEL BUCLE PRINCIPAL*************************************************/ void loop() { Blynk.run();//ejecuta la apicación de blynk timer2.run();//ejecuta el temporizador }
5. PROTOCOLO DE PRUEBAS Y RESULTADOS Una vez conseguido el funcionamiento óptimo tanto de la aplicación como de los componentes hardware involucrados en el proyecto se realiza el banco de pruebas y resultados. Estas pruebas se realizan tanto a sujetos de control como a pacientes con afecciones fisiológicas en la articulación de la rodilla. Hay que tener en cuenta que estas pruebas sólo pueden realizarse a sujetos que tengan un diámetro de cuádriceps y gemelo compatible con el tamaño de la ortesis impresa. Si la ortesis no se ajusta correctamente al usuario los resultados obtenidos podrían no resultar fiables. Se realiza un ejercicio de rehabilitación por cada usuario. La elección del ejercicio de rehabilitación queda a preferencia del usuario. A continuación, se mostrarán los datos básicos de cada sujeto cuidando la confidencialidad de la identidad de cada persona. El objetivo es ver si son capaces de interactuar con la aplicación y realizar el ejercicio de rehabilitación de una manera autónoma. Se recogerán los los resultados enviados por email una vez concluido el ejercicio y se mostrarán de manera gráfica. También se realizará un cuestionario evaluando la experiencia personal de cada usuario como una retroalimentación para futuras mejoras del dispositivo. Lista de ejercicios disponibles en la app: Figura 60. Ejercicio 1 Figura 61. Ejercicio 2
Figura 62. Ejercicio 3 Figura 63. Ejercicio 4 Figura 64. Ejercicio 5 SUJETOS DE CONTROL El grupo de sujetos de control esta formado por un total de 6 personas de un rango de edades entre los 16 y los 52. No han tenido lesiones ni afecciones en la articulación de la rodilla previamente.
- SUJETO 1: Edad: 16 Sexo: Mujer Ejercicio escogido: 4 Gráfica del ejercicio realizado: - SUJETO 2: Edad: 22 Sexo: Mujer Ejercicio escogido: 3 Gráfica del ejercicio realizado: 0 20 40 60 80 100 120 140 160 0 1,5 3 4,5 6 7,5 9 10,5 12 13,5 15 16,5 18 19,5 21 22,5 24 25,5 27 28,5 30 31,5 33 34,5 36 37,5 39 40,5 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación 0 20 40 60 80 100 120 140 160 0 3,5 7 10,5 14 17,5 21 24,5 28 31,5 35 38,5 42 45,5 49 52,5 56 59,5 63 66,5 70 73,5 77 80,5 84 87,5 91 94,5 98 101,5 105 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación
- SUJETO 3: Edad: 25 Sexo: Mujer Ejercicio escogido: 3 Gráfica del ejercicio realizado: - SUJETO 4: Edad: 38 Sexo: Hombre Ejercicio escogido: 2 Gráfica del ejercicio realizado: 0 20 40 60 80 100 120 140 160 02,557,51012,51517,52022,52527,53032,53537,54042,54547,55052,55557,56062,56567,57072,57577,58082,58587,590 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación 0 20 40 60 80 100 120 140 160 03691215182124273033363942454851545760636669727578818487909396 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación
- SUJETO 5: Edad: 51 Sexo: Mujer Ejercicio escogido: 1 Gráfica del ejercicio realizado: - SUJETO 6: Edad: 52 Sexo: Hombre Ejercicio escogido: 3 Gráfica del ejercicio realizado: 0 20 40 60 80 100 120 140 160 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación 0 20 40 60 80 100 120 140 160 0 2 4 6 8 101214161820222426283032343638404244464850525456586062646668707274 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación
SUJETOS PACIENTES El grupo de pacientes está formado por un total de 6 usuarios de un rango de edades entre los 18 y los 56. Junto con los datos del paciente se indica la lesión que han sufrido y el tiempo de rehabilitación que han recibido. - SUJETO 1: Edad: 18 Sexo: Hombre Afección: Síndrome femoropatelar Tiempo recibiendo rehabilitación: 1 año Ejercicio escogido: 3 Gráfica del ejercicio realizado: 0 20 40 60 80 100 120 140 160 0 3,5 7 10,5 14 17,5 21 24,5 28 31,5 35 38,5 42 45,5 49 52,5 56 59,5 63 66,5 70 73,5 77 80,5 84 87,5 91 94,5 98 101,5 Posición angular [grados] Tiempo [s] Ejercicio de rehabilitación
Figura 65. Escáner 3D usando CAM y CAD APLICACIONES PARA LA REHABILITACIÓN EN EL HOGAR Un área emergente de aplicación de tecnología portátil es el uso de sensores portátiles para facilitar la implementación de intervenciones de rehabilitación en el hogar [20]. Los sistemas que tienen como objetivo facilitar la implementación de programas de ejercicios de rehabilitación a menudo aprovechan la combinación de tecnología de detección y entornos de juegos interactivos o realidad virtual (VR). Por ejemplo, el Centro de Investigación de Ingeniería de Rehabilitación de la Universidad del Sur de California [21] se basa en los juegos de realidad virtual para abordar los desafíos de cumplimiento y motivación [22]. La tecnología de simulación de realidad virtual que utiliza dispositivos de interfaz especializados se ha aplicado para mejorar las habilidades motoras en sujetos sometidos a rehabilitación para abordar los déficits funcionales, como el alcance, la función de las manos y la marcha. Se ha propuesto que tales actividades basadas en realidad virtual se puedan realizar en el hogar a través de un enfoque de telerehabilitación para apoyar el mayor acceso de los pacientes a la rehabilitación y la programación de ejercicios preventivos. Cuando esto se pone en un contexto interactivo
basado en el juego, existe el potencial para mejorar el compromiso y la motivación necesarios para impulsar los cambios neuroplásticos que subyacen en el mantenimiento y la mejora del proceso motor. Sin embargo, los sistemas basados en el hogar deben ser asequibles y fáciles de implementar y mantener, a la vez que brindan la fidelidad interactiva necesaria para producir la actividad motora significativa necesaria para fomentar los objetivos de rehabilitación y promover la transferencia a actividades del mundo real. Un ejemplo de tales sistemas es el sistema Valedo de Hocoma AG que se muestra en la siguiente imagen (Figura 66). El sistema Valedo es un dispositivo de entrenamiento médico para la espalda, que mejora el cumplimiento del paciente y le permite a uno lograr una mayor motivación mediante la Realimentación Aumentada en tiempo real basada en los movimientos del tronco. Transfiere los movimientos del tronco desde dos sensores inalámbricos a un entorno de juego motivador y guía al paciente a través de ejercicios diseñados específicamente para la terapia del dolor lumbar. Para facilitar el desafío al paciente y lograr un entrenamiento eficiente, los ejercicios se pueden ajustar de acuerdo con las necesidades específicas del paciente. Varios otros sistemas están actualmente en desarrollo. Por ejemplo, GE Healthcare está desarrollando un sistema inalámbrico de monitoreo médico que se espera permita recopilar datos fisiológicos y de movimiento, facilitando así las intervenciones de rehabilitación en el hogar. Otro ejemplo de tecnología de rehabilitación en el hogar es el Ejercitador de rehabilitación para accidentes cerebrovasculares desarrollado por Philips Research [23]. El Ejercitador de rehabilitación por accidente cerebrovascular entrena al paciente a través de una secuencia de ejercicios para el reentrenamiento motor, que son prescritos por el fisioterapeuta y se cargan en una unidad de paciente. Un sistema de sensor de inercia inalámbrico registra los movimientos del paciente, analiza los datos en busca de desviaciones de un objetivo de movimiento personal y proporciona retroalimentación al paciente y al terapeuta.
Figura 66. Sistema Valedo de Hocoma AG Los grupos europeos han realizado grandes esfuerzos para desarrollar sistemas adecuados para las intervenciones en el hogar que dependen de la tecnología portátil. Un proyecto que formó parte de la iniciativa myHeart [24, 25] condujo al desarrollo de un sistema sensorial basado en prendas para facilitar las intervenciones de rehabilitación en el hogar. El sistema permite a los pacientes aumentar la cantidad de ejercicio motor que pueden realizar de forma independiente, proporcionándoles una retroalimentación en tiempo real basada en sensores portátiles integrados en la prenda a través de la extremidad superior y el tronco. Después de la fase de retroalimentación, los datos se almacenan en una ubicación central para su revisión y estadísticas. Las estaciones de trabajo se pueden instalar en casa o en el hospital para ayudar a los pacientes, independientemente de su ubicación. Otras dos iniciativas importantes en el campo incluyen los programas de investigación establecidos por los Centros TRIL y CLARITY en Dublín, Irlanda. El Centro TRIL reúne a la industria y la academia para realizar estudios de investigación en adultos mayores y examinar cómo la tecnología puede permitir la atención médica y social. El Centro CLARITY para tecnologías web de sensores se ocupa de la investigación del potencial de los datos del sensor para desempeñar un papel clave en la gestión de la salud personal. Los proyectos relevantes en los Centros TRIL y CLARITY incluyen:
Desarrollo y evaluación de un sistema remoto para evaluar la función cognitiva y mejorar el estado de alerta mental entre los adultos mayores en sus hogares. Building Bridges, un programa de redes sociales que permite a las personas comunicarse con sus familias y con otros en la red sin experiencia previa en el uso de la computadora. Tecnología para integrar la reconstrucción del día en línea, medidas psicométricas, evaluaciones ecológicas y marcadores biológicos en situaciones del mundo real. Aplicaciones que monitorean el cumplimiento y brindan retroalimentación a los pacientes durante la realización del ejercicio de rehabilitación utilizando datos recopilados a través de sensores portátiles. Otros proyectos realizados por grupos europeos que vale la pena mencionar son el proyecto TeleKat y el "Auxilium Vitae Volterra" en el Centro de Rehabilitación-Scuola Superiore Sant'Anna. El proyecto TeleKat (Universidad de Aalborg, Aalborg, Dinamarca) está aplicando la innovación dirigida por el usuario para desarrollar tecnología inalámbrica de teleasistencia domiciliaria que permita a los pacientes con enfermedad pulmonar obstructiva crónica realizar un autocontrol de su estado y mantener actividades de rehabilitación en sus hogares. El proyecto de Tele-rehabilitación "Auxilium Vitae Volterra" en el Centro de Rehabilitación-Scuola Superiore Sant'Anna es un programa de rehabilitación cardíaca que aprovecha el uso de un sistema basado en sensores para monitorear remotamente a los pacientes en su hogar. El sistema incluye un cicloergómetro computarizado, un ECG de diagnóstico inalámbrico de 12 derivaciones, un sensor para la saturación de oxígeno en la sangre, un sistema de medición de presión arterial no invasivo y un sistema de videoconferencia de alto rendimiento.
6.1.2. Mejoras en el sistema actual Con respecto al proyecto desarrollado en este trabajo se pueden realizar varias mejoras tanto en el diseño de la ortesis como en la aplicación. Además de añadir nuevas funcionalidades. Para el diseño de la ortesis, la impresión en 3D sigue siendo la mejor opción, sin embargo, dada su estructura, podría incluirse sistemas de bloqueo de la articulación para que pueda funcionar tanto como ortesis sensorizada como una ortesis de inmovilización de la articulación. Se podría conseguir realizando un ajuste sencillo en los engranajes de la pieza impresa. Otra de las mejoras que podrían implementarse en la ortesis es modificar el modo de sensorización. En vez de basado en el uso del potenciómetro como medidor angular de la rodilla, podrían implantarse dos acelerómetros, uno en la parte superior de la ortesis y otro en la parte inferior. De esta manera se obtendría de una manera más precisa la posición actual de la pierna junto con su movimiento angular. Con respecto a la aplicación diseñada en la plataforma de Blynk, podrían implementarse más ejercicios de rehabilitación con nuevas comprobaciones, como el tiempo en el que debe completarse el ejercicio. También se podrían realizar estimadores de los ejercicios de rehabilitación, cuales se han realizado correctamente, cuales no se han podido terminar y cuales se han realizado de forma incorrecta. También se podría crear una base de datos para el profesional rehabilitador, en la que se recopile todos los datos de los pacientes, junto con una interfaz que muestre sus expedientes y su progreso en la rehabilitación. Gracias a la recopilación de los datos recogidos durante todo el proceso de rehabilitación, se podrían aplicar técnicas de Big Data y Deep Learning para realizar un estudio sobre el progreso de las diferentes afecciones junto con los sistemas de rehabilitación empleados. Finalmente concluir con que este sistema compuesto por ortesis sensorizada y aplicación para la rehabilitación se podría replicar para cualquier articulación que requiera terapia física de forma autónoma y que requiera un seguimiento del progreso de la afección.
7. ANEXOS ARCO INFERIOR
ARCO SUPERIOR
SUPERIOR LATERAL DERECHO SUPERIOR LATERAL IZQUIERDO
INFERIOR LATERAL DERECHO INFERIOR LATERAL IZQUIERDO