• No se han encontrado resultados

App Goniometro para Dispositivos Android

N/A
N/A
Protected

Academic year: 2020

Share "App Goniometro para Dispositivos Android"

Copied!
85
0
0

Texto completo

(1)APP GONIÓMETRO PARA DISPOSITIVOS ANDROID. Autor: Simón Andrés Alvarez Guayacundo. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA PROYECTO CURRICULAR DE INGENIERÍA EN TELECOMUNICACIONES Bogotá D.C., Colombia 2016. 1.

(2) APP GONIÓMETRO PARA DISPOSITIVOS ANDROID. Código del Proyecto 201503273012. Autor: Simón Andrés Alvarez Guayacundo. Código: 20122273039. Monografía para optar por el título de: Ingeniero En Telecomunicaciones. Director: Ing. Esp. ESPERANZA CAMARGO. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA PROYECTO CURRICULAR DE INGENIERÍA EN TELECOMUNICACIONES Bogotá D.C., Colombia 2016. 2.

(3) APP GONIÓMETRO PARA DISPOSITIVOS ANDROID. PAGINA DE APROBACIÓN. Observaciones. _____________________________________________________________. _____________________________________________________________ ______________________________________________________________. ______________________________________ Ing. Esp. ESPERANZA CAMARGO Director del Proyecto. _____________________________________ Jurado 1. _____________________________________ Jurado 2. Fecha de Presentación:. 3.

(4) AGRADECIMIENTOS. Innumerables son los momentos que han pasado hasta el día de hoy, incontables son las personas con las que he vivido todo este camino, que me han dejado enseñanzas a lo largo de esta etapa, que me han hecho crecer no solo profesionalmente sino también personalmente, con todos ellos solo tengo palabras de agradecimiento, sin embargo vale resaltar el inmenso esfuerzo y apoyo que he tenido por parte de mi familia que hicieron que hoy esto fuera un fruto no solo mío sino de ellos también y de igual forma a la profesora Esperanza Camargo quien creyó en mí, quien como colega y/o amiga me aconsejo y me guio para siempre alcanzar los mejores resultados. A todos ustedes que de una u otra manera conforman la universidad distrital Francisco José de Caldas infinitas gracias.. 4.

(5) RESUMEN. Las soluciones TIC han tenido gran acogida en los últimos años ya que brindan no solo una gran cantidad de dispositivos con los cuales se puede apoyar una gran variedad de servicios con los mismos. Estas soluciones van desde lo académico en proyectos, como en trabajos de investigación, también en la laboral para microempresas como grandes multinacionales, esto gracias a su fácil acceso. Bajo esta tendencia nace la posibilidad de crear una aplicación para dispositivos inteligentes con sistema operativo Android que permita ayudar y facilitar el trabajo de especialistas en ortopedia, terapia física, fisioterapeutas entre otros. Actualmente muchos de ellos usan instrumentos poco ergonómicos además de imprecisos, es por esto que se desarrolló una aplicación tipo goniómetro mediante un teléfono inteligente, este permite medir los ángulos que se forman en las diferentes articulaciones del cuerpo, teniendo una medida más veraz además de tener la opción de poder almacenar esta información en bases de datos. La aplicación del teléfono inteligente se comunica con una aplicación de escritorio con el fin de facilitar la visualización de la medida y poder hacer un registro completo y detallado de los pacientes sobre los cuales se usen. Estas aplicaciones no solo simplificaran el trabajo de los especialistas sino que se espera que sean un referente para implementar soluciones TIC en el área de la salud.. 5.

(6) ABSTRACT. ICT solutions have been well received in recent years because we provide not only a lot of devices with which it can support a variety of services with the same. These solutions are given from academic projects and research, also in working for large multinationals and micro and thanks to its easy access.. Under this trend comes the possibility of creating an application for smart devices with Android operating system that allows assist and facilitate the work of specialists in orthopedics, They use little ergonomic instruments also inaccurate is why using a smartphone is possible to generate an application goniometer that allows them to measure the angles formed in different joints of the body, having a truer as well as having the option to store this information in Data Bases. The smartphone application communicates with a desktop application in order to facilitate the visualization of the measure and to make a complete and detailed patient use on which registration. These applications simplify the work we only specialists but it is expected to be a reference to implement ICT solutions in the area of health.. 6.

(7) CONTENIDO AGRADECIMIENTOS .....................................................................................................................4 RESUMEN ......................................................................................................................................5 ABSTRACT ....................................................................................................................................6 LISTA DE TABLAS ...................................................................................................................... 10 LISTA DE FIGURAS ..................................................................................................................... 11 LISTA DE TÉRMINOS .................................................................................................................. 13 GLOSARIO ................................................................................................................................... 14 INTRODUCCIÓN .......................................................................................................................... 15 1.. 2.. DESCRIPCIÓN DEL PROYECTO ......................................................................................... 17. 1.1. Descripción del problema ..................................................................................... 17. 1.2. Objetivos .............................................................................................................. 17. 1.2.1. Objetivo general ....................................................................................................... 17. 1.2.2. Objetivos específicos ............................................................................................... 17. ESTADO DEL ARTE ............................................................................................................. 18. 2.1 Aplicación Android De Apoyo A Fisioterapeutas ....................................................... 18 2.2 Digital Basado En Sensores Cinemáticos Con Comunicación Inalámbrica En Tiempo Real ................................................................................................................... 18 2.3 Goniómetro Pro ........................................................................................................ 19 2.4 Goniómetro Digital Para Medir Flexoextensión En Brazo Derecho Como Propuesta Para Aplicaciones En Telerehabilitación ......................................................................... 20 2.5 Goniometer Records ................................................................................................ 20 3.. MARCO TEÓRICO ................................................................................................................ 21. 3.1. Android. ............................................................................................................... 21. 3.1.1. El núcleo Linux. ........................................................................................................ 22. 3.1.2. Runtime de Android. ................................................................................................ 22. 3.1.3. Librerías Nativas ...................................................................................................... 22. 3.1.4. Entorno de Aplicación .............................................................................................. 23. 3.1.5. Aplicaciones ............................................................................................................. 24. 3.2. Tecnologías de la Información y las Comunicaciones- TIC .................................. 24. 3.3. Acelerómetro. ....................................................................................................... 25. 7.

(8) 3.4. Magnetómetro. ..................................................................................................... 29. 3.4.1.. 3.5. Ángulos de Euler. ................................................................................................. 30. 3.6. PHP. ..................................................................................................................... 33. 3.7. XAMP. ................................................................................................................... 35. 3.8. Bases de Datos. ................................................................................................... 37. 3.8.1. Aplicaciones de los sistemas de bases de datos ................................................ 38. 3.8.2. Relaciones entre bases de datos .......................................................................... 38. 3.8.3. Estructura de un sistema de bases de datos ............................................................ 39. 3.8.4. Tipos de bases de datos .......................................................................................... 42. 3.8.5. Motores de bases de datos ...................................................................................... 43. 3.9. 4.. 5.. 6.. Tipos de Magnetómetros.......................................................................................... 29. Goniometría. ......................................................................................................... 43. 3.9.1. Planimetría.............................................................................................................. 44. 3.9.2. Plano Sagital .......................................................................................................... 45. 3.9.3. Plano Frontal o Coronal ......................................................................................... 46. 3.9.4. Plano Transversal u Horizontal ............................................................................. 47. MARCO LEGAL..................................................................................................................... 49. 4.1. Decreto 4725 De 2005 ......................................................................................... 49. 4.2. ISO13485 (2003) .................................................................................................. 49. 4.3. Directiva 90/385/CEE.......................................................................................... 49. 4.4. IEC 60601-1-8 (2004) ........................................................................................... 49. 4.5. ISO/IEEE 11073 ................................................................................................... 49. 4.6. STDPD94706 ....................................................................................................... 49. METODOLOGÍA .................................................................................................................... 50. 5.1. Modelo en cascada de ingeniería de software ..................................................... 50. 5.2. Fases del proyecto ............................................................................................... 51. 5.2.1.. Análisis y estudio de las posibles tecnologías para la implementación ..................... 52. 5.2.2. Componentes de la arquitectura de las aplicaciones ................................................ 58. 5.2.3. Pruebas y evaluación de la aplicación ...................................................................... 63. DESARROLLO INGENERIL. ................................................................................................. 65. 8.

(9) 6.1. Análisis y estudio de las posibles tecnologías para la implementación ................ 65. 6.2. Interfaz Gráfica. .................................................................................................... 65. 6.2.1. Interfaz de la App ..................................................................................................... 65. 6.2.2. Interfaz de la aplicación de escritorio ....................................................................... 66. 6.3. Funcionalidades de las aplicaciones .................................................................... 67. 6.3.1. Funcionalidades de la App ....................................................................................... 68. 6.3.2. Funcionalidades de la aplicación de escritorio ......................................................... 69. 7.. RESULTADOS ...................................................................................................................... 76. 8.. CONCLUSIONES .................................................................................................................. 83. BIBLIOGRAFÍA ............................................................................................................................ 84. 9.

(10) LISTA DE TABLAS TABLA 1 LIBRERÍAS NATIVAS DE ANDROID. ..................................................................................................... 23 TABLA 2 SERVICIOS DE ANDROID. ..................................................................................................................... 24 TABLA 3 VENTAJAS Y DESVENTAJAS DE USAR EL LENGUAJE PHP. [16] ................................................ 35 TABLA 4 COMPONENTES APLICACIÓN XAMMP. .............................................................................................. 36 TABLA 5 EJEMPLOS DE APLICACIONES DE BASES DE DATOS.[19] .......................................................... 38 TABLA 6 DISEÑO DE RELACIONES ENTRE TABLAS DE UNA BASE DE DATOS. [21] ............................. 38 TABLA 7 GESTOR DE ALMACENAMIENTO. [19] ................................................................................................ 40 TABLA 8 MOVIMIENTOS EN EL PLANO SAGITAL. ............................................................................................ 45 TABLA 9 MOVIMIENTOS EN EL PLANO FRONTAL. .......................................................................................... 46 TABLA 10 MOVIMIENTOS EN EL PLANO TRANSVERSAL. ............................................................................. 47 TABLA 11 METODOLOGÍA UTILIZADA. ................................................................................................................ 51 TABLA 12 DIAGRAMA UML PARA USUARIO DE LA APP. ................................................................................. 58 TABLA 13 TABLA DE EQUIVALENCIA ENTRE MOVIMIENTOS Y EJES. ........................................................ 59 TABLA 14 DIAGRAMA UML PARA USUARIO DE LA APLICACIÓN DE ESCRITORIO ................................. 60 TABLA 15 DIAGRAMA UML PARA ADMINISTRACIÓN DE BASES DE DATOS. ............................................ 63 TABLA 16 DICCIONARIO BASE DE DATOS......................................................................................................... 63 TABLA 17 MEDICIÓN DE ÁNGULOS FIJOS POR LA APP EN EL EJE “X”. .................................................... 81 TABLA 18 MEDICIÓN DE ÁNGULOS FIJOS POR LA APP EN EL EJE “Y”. .................................................... 82 TABLA 19 MEDICIÓN DE ÁNGULOS FIJOS POR LA APP EN EL EJE “Z”. .................................................... 82. 10.

(11) LISTA DE FIGURAS FIGURA 1 ARQUITECTURA DE ANDROID........................................................................................................... 21 FIGURA 2 ESQUEMA TIC ........................................................................................................................................ 25 FIGURA 3 ACELERÓMETRO .................................................................................................................................. 26 FIGURA 4 ACELERÓMETRO CON 3 EJES .......................................................................................................... 27 FIGURA 5 ESQUEMA ACELERÓMETRO CAPACITIVO..................................................................................... 28 FIGURA 6 APP BRÚJULA 360, EJEMPLO DE MAGNETÓMETRO. ................................................................. 30 FIGURA 7 ÁNGULOS ROLL, PITCH Y YAW. ........................................................................................................ 31 FIGURA 8 ESQUEMA DE FUNCIONAMIENTO DE LAS PAGINAS PHP. ........................................................ 34 FIGURA 9 PANEL DE CONTROL APLICACIÓN XAMPP. ................................................................................... 36 FIGURA 10 ESQUEMA DE BASES DE DATOS. .................................................................................................. 37 FIGURA 11 PROCESADOR DE CONSULTAS. ................................................................................................... 41 FIGURA 12 PLANOS Y EJES DEL CUERPO. ...................................................................................................... 44 FIGURA 13 MOVIMIENTOS DE FLEXIÓN EXTENSIÓN ALREDEDOR DEL EJE MEDIOLATERAL DEL HOMBRO DERECHO EN EL PLANO SAGITAL.......................................................................................... 45 FIGURA 14 MOVIMIENTOS DE ABDUCCIÓN ADUCCIÓN SOBRE EL EJE ANTEROPOSTERIOR DEL HOMBRO DERECHO EN EL PLANO FRONTAL. ....................................................................................... 46 FIGURA 15 MOVIMIENTOS DE ROTACIÓN DEL HOMBRO DERECHO SOBRE EL EJE VERTICAL EN EL PLANO TRANSVERSAL. ................................................................................................................................ 47 FIGURA 16 MÉTODO DEL CERO NEUTRO. ...................................................................................................... 48 FIGURA 17 FASE DEL MODELO EN CASCADA ................................................................................................. 50 FIGURA 18 IDE ECLIPSE. ....................................................................................................................................... 53 FIGURA 19 IDE NETBEANS. ................................................................................................................................... 54 FIGURA 20 ELECTROGONIÓMETRO................................................................................................................... 55 FIGURA 21 GONIÓMETRO DIGITAL ..................................................................................................................... 56 FIGURA 22 SITIO WEB DEVELOPER ANDROID. ............................................................................................... 57 FIGURA 23 INTERFAZ DE LA APP. ........................................................................................................................ 66 FIGURA 24 INTERFAZ DE LA APLICACIÓN DE ESCRITORIO. ....................................................................... 67 FIGURA 25 MANEJO DE LOS SENSORES EN ANDROID. ............................................................................... 68 FIGURA 26 COMUNICACIÓN POR SOCKET EN EL LENGUAJE DE PROGRAMACIÓN JAVA. ................ 69 FIGURA 27 SISTEMA DE AUTENTICACIÓN. ....................................................................................................... 70 FIGURA 28 FORMULARIO DE LA APLICACIÓN DE ESCRITORIO. ................................................................ 71 FIGURA 29 INSPECTOR DE COMPONENTES EN ÁRBOL DEL IDE NETBEANS. ...................................... 71 FIGURA 30 PHPMYADMIN. ..................................................................................................................................... 72 FIGURA 31 CONEXIÓN A LA BASE DE DATOS DESDE EL IDE NETBEANS. .............................................. 73 FIGURA 32 CONSULTA A LA BASE DE DATOS DESDE EL IDE NETBEANS................................................ 73 FIGURA 33 COMUNICACIÓN POR SOCKETS DENTRO DE LA EJECUCIÓN MULTITAREA. ................... 74 FIGURA 34 ANIMACIÓN DEL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN DE LA ARTICULACIÓN DE CODO. ................................................................................................................................................................ 75. 11.

(12) FIGURA 35 CURVA DE GRADOS VS TIEMPO GENERADA POR LA APLICACIÓN DE ESCRITORIO. ... 75 FIGURA 36 CURVA DE GRADOS VS TIEMPO PARA EL EJE “X” MEDIDA POR EL DISPOSITIVO “TECH MCS”. .................................................................................................................................................................. 76 FIGURA 37 CURVA DE GRADOS VS TIEMPO PARA EL EJE “X” MEDIDA POR LA APP. ........................... 77 FIGURA 38 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Y” MEDIDA POR EL DISPOSITIVO “TECH MCS”. .................................................................................................................................................................. 77 FIGURA 39 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Y” MEDIDA POR EL DISPOSITIVO “TECH MCS”. .................................................................................................................................................................. 78 FIGURA 40 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Z” MEDIDA POR EL DISPOSITIVO “TECH MCS”. .................................................................................................................................................................. 78 FIGURA 41 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Z” MEDIDA POR LA APP. ........................... 79 FIGURA 42 ANGULO MÍNIMO FORMADO EN EL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN EN LA ARTICULACIÓN DEL CODO.......................................................................................................................... 80 FIGURA 43 ANGULO RECTO FORMADO EN EL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN EN LA ARTICULACIÓN DEL CODO.......................................................................................................................... 80 FIGURA 44 ANGULO MÁXIMO FORMADO EN EL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN EN LA ARTICULACIÓN DEL CODO.......................................................................................................................... 81. 12.

(13) LISTA DE TÉRMINOS. API. Interfaz de Programación de aplicaciones.. APP. Aplicación para dispositivos inteligentes.. DDL. Lenguaje de definición de datos. DML. Lenguaje de manipulación de datos.. GPL. Licencia Pública General.. GUI. Interfaz Gráfica de Usuario.. IDE. Ambiente de Desarrollo Integrado.. JDBC. Conectividad a Base de Datos Java. NDK. Kit de Desarrollo Nativo.. ODBL. Open Database License, Licencia Abierta de Base de Datos.. PC. Computador Personal. PDF. Formato de Documento Portátil.. SDK. Kit de Desarrollo de Software.. SGBD. Sistema de Gestión de Bases de Datos.. SO. Sistema Operativo.. SQL. Lenguaje de consulta estructurado.. TIC. Tecnologías de la información y comunicación.. UML. Lenguaje Unificado de Modelado.. XML. Lenguaje de marcas extensible.. 13.

(14) GLOSARIO. Acelerómetro. Dispositivo capaz de medir aceleraciones.. Android. Sistema operativo para dispositivos inteligentes.. C. Lenguaje de programación de alto nivel.. C++. Llenguaje de programación basado en el C, orientado a objetos.. Goniómetro. Instrumento para medir ángulos entre dos puntos.. Java. Lenguaje de programación de alto nivel.. Linux. Sistema operativo basado en Unix.. Magnetómetro Instrumento que mide la intensidad Mysql. Sistema de gestión de bases de datos relacional.. Oracle. Herramienta cliente- servidor para la gestión de bases de datos.. Planimetría. rama de la Topografía que se ocupa de la representación de la superficie terrestre sobre un plano.. Query. Consulta en una base de datos.. Xampp. Servidor independiente de plataforma basado en apache y PHP.. 14.

(15) INTRODUCCIÓN. La goniometría es una técnica de medición encargada de la medición de ángulos implementada en diferentes áreas, una de ellas es la medicina, creando instrumentos que ayudan a medir las diferentes variaciones de los ángulos generados por los huesos del cuerpo humano, a estos instrumentos se les conoce como goniómetros. La mayoría de los goniómetros en el mercado son mecánicos y por su condición son poco precisos ya que intervienen en el movimiento normal de las articulaciones, y los digitales que se encuentran en el mercado pero su elevado costo hace que sean poco asequibles para los diferentes usuarios. Teniendo en cuenta el alcance y la facilidad de acceso a las TIC es posible generar soluciones que las involucren, obteniendo excelentes resultados a costos relativamente bajos. Para nadie es un secreto que el constante avance de la tecnología es continuo, haciendo de esto una puerta a un gran catálogo de tecnología donde se encuentra de diferentes costos como de diferentes características. En este mercado los dispositivos inteligentes han venido en auge implementando una gran variedad de aplicaciones o APP. Estas APP se han implementado en diferentes campos como por ejemplo diversión para realización de juegos, para comunicación con redes sociales, para aprendizaje con libros multimedia, etc. Viendo la versatilidad de las mimas y los bien equipados que están estos dispositivos con una variedad sensores es posible implementar una APP que pueda ser usada como goniómetro y pueda además de facilitar el trabajo de los especialistas dela salud ser de fácil acceso.. Este documento presenta los siguientes capítulos: En el capítulo 1 se presenta el planteamiento del proyecto, la descripción del mismo y sus respectivos objetivos. En el capítulo 2 se encuentra el estado del arte, haciendo un análisis de las diferentes soluciones existentes. En el capítulo 3 se aborda todo el contenido teórico que envuelve el proyecto, sus características y tópicos fundamentales para el desarrollo y ejecución. En el capítulo 4 se describe las normatividad que conciernen concierne en la creación, implementación y producción de equipos en Colombia. En el capítulo 5 se presentan las características para el desarrollo de las aplicaciones, en donde se establece las herramientas informáticas y/o lenguajes de programación usados, y los criterios tenidos en cuenta al momento de ir ejecutando el proyecto. En el capítulo 6 se habla del funcionamiento propio de cada aplicación, describiendo los módulos que las componen y su funcionalidad de manera específica, incluyendo la conexión que existen entre ambas y la conexión que se realiza con la base de datos.. 15.

(16) En el capítulo 7, se presentan los resultados (matemáticos y gráficos) obtenidos por la App y se contrastan con los resultados experimentales obtenidos con otros dispositivos y/o sistemas que tienen el mismo objetivo que este proyecto.. Finalmente, en el capítulo 8 se presentan las Conclusiones de la investigación y las Recomendaciones para futuros estudios.. 16.

(17) 1. DESCRIPCIÓN DEL PROYECTO 1.1 Descripción del problema. La poca oferta de goniómetros precisos existentes en el mercado, además de su alto costo hace que estos instrumentos sigan siendo poco eficientes y sean los que han usado la comunidad médica desde hace varios años. Con el avance tecnológico que a diario se ve y con la cobertura de conectividad que ya se tiene es posible implementar soluciones TIC para esta problemática, en donde mediante una aplicación para teléfonos inteligentes de sistema operativo Android podamos obtener resultados más verídicos que la de los goniómetros convencionales ya que por la estructura misma de los teléfonos inteligentes es posible recolectar la información que capturan los sensores que lo constituyen e interpretarla para generar otra alternativa de medición.. 1.2 Objetivos. 1.2.1. Objetivo general. Desarrollar una APP goniómetro para dispositivos inteligentes de SO Android para las articulaciones del codo, hombro, cadera y rodilla en cada uno de los tres planos del espacio. 1.2.2. Objetivos específicos. . Utilizar los sensores acelerómetros de un dispositivo inteligente para calcular el ángulo formado en una articulación del cuerpo.. . Diseñar un algoritmo que permita comunicar el dispositivo móvil con el PC.. . Utilizar una base de datos para el almacenamiento de la información obtenida.. . Desarrollar una interfaz gráfica para que el usuario pueda ver y comparar los datos obtenidos con valores normales previamente establecidos.. 17.

(18) 2. ESTADO DEL ARTE. 2.1 Aplicación Android De Apoyo A Fisioterapeutas. Las aplicaciones móviles de apoyo a la salud se están convirtiendo en herramientas necesarias en el día a día, tanto las destinadas a los profesionales sanitarios como las dirigidas solamente a los pacientes. Sin embargo, no todas las áreas de la medicina están suficientemente apoyadas por este tipo de aplicaciones. En concreto, la fisioterapia es uno de las áreas de la salud que necesita un mayor esfuerzo en este sentido, especialmente en aplicaciones destinadas a los profesionales sanitarios. En este Trabajo Fin de Grado se propone el desarrollo de una aplicación móvil Android que proporcione a los profesionales de la fisioterapia una herramienta de apoyo a su trabajo diario. La aplicación se probará sobre Smartphone con usuarios finales de modo que se pueda evaluar su funcionamiento en un entorno real. Se busca conseguir ayudar a los profesionales a hacer de manera rápida y desde un simple móvil, lo que antes era laborioso y se necesitaba estar con un ordenador. [1]. 2.2 Digital Basado En Sensores Cinemáticos Con Comunicación Inalámbrica En Tiempo Real En el Grupo de Investigación en Bioingeniería de la UPB se ha venido trabajando en el desarrollo de aplicaciones para el análisis de movimientos basado en sensores cinemáticos. Estas aplicaciones se han desarrollado dentro de la línea de investigación en biomecánica de este grupo. Uno de los dispositivos que se requiere desarrollar es un goniómetro digital, que permita la medición de movimientos angulares y la medición de ángulos de flexión, extensión, pronación y supinación de segmentos corporales, esto con el fin de usarlo en un sistema de análisis de movimiento. Este proyecto parte de esa idea del grupo de investigación y bajo la modalidad de asistencia a la investigación, se busca diseñar y desarrollar un prototipo de goniómetro digital en tiempo real, implementado con acelerómetros y giróscopos donde podamos medir el ángulo de flexión y extensión de las extremidades del cuerpo humano en la rehabilitación de las personas que han sufrido algún tipo de traumatismo.. 18.

(19) Por medio de una comunicación inalámbrica se envían cada una de las señales monitoreadas en cada paciente a un dispositivo móvil donde se puede visualizar la evolución del paciente, y éste podrá llevar un control de la evolución de sus terapias de una forma práctica segura y sencilla. Además la aplicación móvil ilustra al usuario una serie de parámetros establecidos en los manuales de la goniometría médica con los rangos óptimos del movimiento de cada una de las extremidades tratadas en su rehabilitación. [2]. 2.3 Goniómetro Pro En Fisioterapia, como en cualquier otra profesión en la que se toman mediciones y se realizan comparaciones con ellas, la precisión es importante. La goniometría manual, el análisis de la postura y sobre todo las mediciones escolióticas sin técnicas de imagen no son precisamente infalibles, pero pueden ser muy útiles por la rapidez y facilidad con las que se pueden llevar a cabo con esta aplicación. Sabiendo, sobre todo en las mediciones escolióticas, que son necesarias otras técnicas de medición más precisas, sí nos pueden servir para una primera aproximación en nuestra anamnesis inicial. Goniómetro Pro funciona como un inclinómetro digital de gravedad, es decir, mediante el uso del chip acelerómetro que ya incluyen casi todos los modelos de Smartphone actuales se puede calcular con facilidad un ángulo de inclinación respecto a la propia horizontal o respecto a un ángulo inicialmente definido como cero por el propio usuario. La aplicación está bien realizada, es fácil de utilizar aunque está en inglés, y es fiable, precisa y gratuita si tenemos la precaución de no establecer los ángulos a cero en el círculo violeta y no pulsamos sobre el círculo verde para fijar el ángulo medido en pantalla que, de todas maneras, debemos apuntar en papel ya que no podemos memorizar mediciones en la versión gratuita de la aplicación. Si queremos la versión completa de esta aplicación, debemos pulsar sobre el botón verde "Unlock G-Pro". Para ser una completa aplicación para fisioterapeutas, yo le añadiría un par de funcionalidades: en primer lugar la opción de poder memorizar dos (o más) ángulos en la misma medición, de forma que en el mismo desplazamiento del paciente pudiésemos tener en pantalla la goniometría activa y pasiva de la articulación objeto de valoración. Y en segundo lugar, también hubiera añadido una figura del cuerpo humano donde pulsar primero la articulación que queremos medir, y después el movimiento articular que estamos midiendo, de forma que al realizar la medición, se pudiese guardar ya en memoria de la aplicación dichos datos: articulación, plano de movimiento y goniometría activa y pasiva. [3]. 19.

(20) 2.4 Goniómetro Digital Para Medir Flexoextensión En Brazo Derecho Como Propuesta Para Aplicaciones En Telerehabilitación. En el siglo XXI son muchos los avances y desarrollos que la humanidad ha alcanzado. El concepto de Rehabilitación existe desde el inicio de la especie humana pues está en su esencia el intentar recuperar aquellas funciones perdidas y desarrollar estrategias para evitar lesiones y dolencias. La telerehabilitación es el uso y práctica de servicios para la rehabilitación a través de las TIC (Tecnologías de la información y comunicación) e Internet. La mayoría de los servicios se dividen en dos categorías: la evaluación clínica y la terapia clínica. Algunos campos de la práctica de rehabilitación que han explorado la telerehabilitación son la fisioterapia, la terapia ocupacional, la logopedia, la neuropsicología, la audiología y la telemedicina. Por otro lado, la telerehabilitación permite aplicar la terapia a personas que no pueden viajar a una clínica porque el paciente tiene una discapacidad o por grandes distancias y tiempo de viaje. Facilita el acceso a profesionales y pacientes de distintas localizaciones ahorrando costes de desplazamientos, tiempos de espera y en consecuencia una mayor productividad. Actualmente la elevada tasa de envejecimiento de la población de los países desarrollados es una importante preocupación socio-sanitaria para sus gobiernos. El creciente peso de la población anciana supone uno de los cambios más significativos que se ha dado en las sociedades desarrolladas a partir de la segunda mitad del siglo XX. [4]. 2.5 Goniometer Records “Goniometer Records” no sólo registra el rango de movimiento de todas las articulaciones, sino también le ayuda a mantener un registro de todas las lecturas para que pueda comparar las lecturas del paciente en varias oportunidades. Especialmente para los cirujanos y terapeutas que están siguiendo un paciente. “Goniometer Records” se basa en la tecnología de acelerómetro y su exactitud en métodos científicos publicados en la revisión por pares Journal. Es simple de usar y muy precisa. Se puede utilizar para grandes articulaciones y también pequeñas articulaciones de la mano. Hemos probado específicamente para esta columna y me pareció tan preciso como un goniómetro digital. Los registros se basan en una simple hoja de registro del paciente que será útil en la captura y en un registro de los datos específicos de cada uno, incluyendo información demográfica y de diagnóstico junto con lo que el programa de tratamiento. Esto le ayudará a mantener un seguimiento en la mejora del paciente y también comparar el rango de movimiento en intervalos secuenciales de tiempo. [5]. 20.

(21) 3. MARCO TEÓRICO. 3.1 Android. Android es un sistema operativo inicialmente pensado para teléfonos móviles, al igual que iOS, Symbian y Blackberry OS. Lo que lo hace diferente es que está basado en Linux, un núcleo de sistema operativo libre, gratuito y multiplataforma. El sistema permite programar aplicaciones en una variación de Java llamada Dalvik. El sistema operativo proporciona todas las interfaces necesarias para desarrollar aplicaciones que accedan a las funciones del teléfono (como el GPS, las llamadas, la agenda, etc.) de una forma muy sencilla en un lenguaje de programación muy conocido como es Java. [6]. Figura 1 Arquitectura de Android [7]. Esta sencillez, junto a la existencia de herramientas de programación gratuitas, hace que una de las cosas más importantes de este sistema operativo sea la cantidad de aplicaciones disponibles, que extienden casi sin límites la experiencia del usuario.. 21.

(22) 3.1.1. El núcleo Linux.. El núcleo de Android está formado por el sistema operativo Linux, versión 2.6. Esta capa proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos. Esta capa del modelo actúa como capa de abstracción entre el hardware y el resto de la pila. Por lo tanto, es la única que es dependiente del hardware.. 3.1.2. Runtime de Android.. Está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los dispositivos donde ha de ejecutarse Android (poca memoria y procesador limitado) no fue posible utilizar una máquina virtual Java estándar. Google tomo la decisión de crear una nueva, la máquina virtual Dalvik, que respondiera mejor a estas limitaciones.. Algunas características de la máquina virtual Dalvik que facilitan esta optimización de recursos son: que ejecuta ficheros Dalvik ejecutables (.dex) (formato optimizado para ahorrar memoria). Además, está basada en registros. Cada aplicación corre en su propio proceso Linux con su propia instancia de la máquina virtual Dalvik. Delega al kernel de Linux algunas funciones como threading y el manejo de la memoria a bajo nivel.. También se incluye en el Runtime de Android el “core libraries” con la mayoría de las librerías disponibles en el lenguaje Java. 3.1.3. Librerías Nativas. Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Están compiladas en el código nativo del procesador. Muchas de las librerías utilizan proyectos de código abierto. Algunas de estas librerías son:. NOMBRE System C library Media Framework. DESCRIPCIÓN Una derivación de la librería BSD de C estándar (libec), adaptada para dispositivos embebidos basados en Linux. Librería basada en PacketVideo's OpenCORE; soporta codees de reproducción y grabación de multitud de. 22.

(23) Surface Manager WebKit. SGL Librerías 3D. FreeType SQLite SSL. formatos de audio, video e imágenes MPEG4, H.264, MP3, AAC, AMR, JPG y PNG. Maneja el acceso al subsistema de representación gráfica en 2D y 3D. Soporta un moderno navegador web utilizado en el navegador Android y en la vista webview. Se trata de la misma librería que utiliza Google Chrome y Safari de Apple. Motor de gráficos 2D. Implementación basada en OpenGL ES 1.0 API. Las librerías utilizan el acelerador hardware 3D si está disponible, o el software altamente optimizado de proyección 3D Fuentes en bitmap y renderizado vectorial. Potente y ligero motor de bases de datos relacionales disponible para todas las aplicaciones. Proporciona servicios de encriptación Secure Socket Layer. Tabla 1 Librerías Nativas de Android.. 3.1.4 Entorno de Aplicación Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores, localización, servicios, barra de notificaciones, etc.). Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones de seguridad). Este mismo mecanismo permite a los usuarios remplazar componentes. Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el lenguaje de programación Java. El SDK de Android no acaba de ofrecer todo lo disponible para su estándar del entorno de ejecución Java (JRE), pero es compatible con una fracción muy significativa de la misma. Los servicios más importantes que incluye son:. NOMBRE Views. DESCRIPCIÓN Extenso conjunto de vistas (parte visual de los. 23.

(24) Resource Manager Activity Manager Notification Manager Content Providers. componentes). Proporciona acceso a recursos que no son en el código. Maneja el ciclo de vida de las aplicaciones y proporciona un sistema de navegación entre ellas. Permite a las aplicaciones mostrar alertas personalizadas en la barra de estado. Mecanismo sencillo para acceder a datos de otras aplicaciones (como los contactos). Tabla 2 Servicios de Android.. 3.1.5 Aplicaciones. Este nivel está formado por el conjunto de aplicaciones instaladas en una maquina Android. Todas las aplicaciones han de ser ejecutadas en la máquina virtual Dalvik para garantizar la seguridad del sistema. Normalmente, las aplicaciones Android están escritas en Java. Para desarrollar aplicaciones en Java podemos utilizar el Android SDK. Existe otra opción consistente en desarrollar las aplicaciones utilizando C/C++. Para esta opción podemos utilizar el Android NDK (Native Development Kit) [8].. 3.2 Tecnologías de la Información y las Comunicaciones- TIC. Se define a Las Tecnologías de la Información y las Comunicaciones (en adelante TIC), como el conjunto de recursos, herramientas, equipos, programas informáticos, aplicaciones, redes y medios, que permiten la compilación, procesamiento, almacenamiento, transmisión de información como: voz, datos, texto, vídeo e imágenes [9], que mediante su ministerio (MINTIC) tiene 4 objetivos principales:. 1. Diseñar, formular, adoptar y promover las políticas, planes, programas y proyectos del sector de Tecnologías de la Información y las Comunicaciones, en correspondencia con la Constitución Política y la ley, con el fin de contribuir al desarrollo económico, social y político de la Nación, y elevar el bienestar de los colombianos.. 24.

(25) 2. Promover el uso y apropiación de las Tecnologías de la Información y las Comunicaciones entre los ciudadanos, las empresas, el Gobierno y demás instancias nacionales como soporte del desarrollo social, económico y político de la Nación.. 3. Impulsar el desarrollo y fortalecimiento del sector de las Tecnologías de la Información y las Comunicaciones, promover la investigación e innovación buscando su competitividad y avance tecnológico conforme al entorno nacional e internacional.. 4. Definir la política y ejercer la gestión, planeación y administración del espectro radioeléctrico y de los servicios postales y relacionados, con excepción de lo dispuesto en artículo 76 de la Constitución Política.. Figura 2 Esquema TIC [10]. 3.3 Acelerómetro. Como su propio nombre indica, un acelerómetro es un dispositivo capaz de medir aceleraciones, es decir, la variación en la velocidad por unidad de tiempo. Existen diferentes tipos de acelerómetros en función del tipo de tecnología que utilicen para medir esa magnitud: mecánicos, piezoeléctricos, de condensador, etc.. 25.

(26) Como no podemos medir las aceleraciones por observación directa, se deben calcular a partir de otras variables que sí se pueden medir y el conocimiento de las leyes que rigen sus efectos. Para comprenderlo más claramente vamos a ver el caso del acelerómetro mecánico. En él obtenemos la aceleración del sistema a partir de la masa y la observación de su desplazamiento [11].. Figura 3 Acelerómetro [11]. En un acelerómetro mecánico se sitúa una masa (denominada masa sísmica) dentro de un armazón. Esta masa se encuentra suspendida mediante un mecanismo elástico, por ejemplo un muelle, de manera que aún pueda desplazarse desde su posición de equilibrio. Aquí entran en juego la Ley de la Elasticidad de Hooke y la Segunda Ley de Newton. Ley de Hooke: El alargamiento unitario que experimenta un material elástico es directamente proporcional a la fuerza aplicada. Esto es F = k·x. (donde F es la fuerza aplicada, k la constante de elasticidad del muelle yx el desplazamiento de la masa sísmica). Segunda ley de Newton: El cambio de movimiento es proporcional a la fuerza motriz impresa y ocurre según la línea recta a lo largo de la cual aquella fuerza se imprime. Esta es representada mediante la famosa ecuación F = m·a. (F: fuerza; m: masa, a: aceleración). Lo que ocurre al aplicar una fuerza para desplazar el armazón, es que la masa sísmica, conectada a él mediante un material elástico (el muelle), se desplaza una distancia proporcional a la fuerza. 26.

(27) aplicada (ley de Hooke), que, a su vez, es proporcional a la aceleración aplicada al armazón (Segunda ley de Newton). Como sabemos que el sistema debe obedecer las dos leyes y la fuerza en ambos casos es la misma, a partir de las ecuaciones podemos establecer que: m·a = k·x, con lo que, finalmente, a = (k/m)·x. Por lo tanto, se puede obtener el valor de la aceleración, ya que k es la constante de elasticidad del muelle (y que conocemos, ya que lo hemos puesto nosotros), m es la masa desplazada (la masa sísmica) y x la distancia desplazada, que podemos medir. Observa, además, que se cumple que la aceleración es proporcional al desplazamiento, siéndolo en un factor k/m. Es importante destacar que este dispositivo tan sólo mide la aceleración en su eje longitudinal, es decir, en el que puede comprimirse y expandirse el muelle. Dado que vivimos en un mundo tridimensional, necesitaremos replicar este sistema en tres ejes ortogonales, es decir, perpendiculares entre sí (x, y, z). Con el valor esas tres componentes se pueden calcular el valor de la aceleración en cualquier dirección espacial.. Figura 4 Acelerómetro con 3 ejes [11]. Los acelerómetros son ampliamente utilizados en ingeniería. Se utilizan generalmente para detectar las vibraciones en los sistemas y para aplicaciones de orientación. Seguro que has pensado que parece muy difícil poder hacer este sistema mecánico tan pequeño que forme parte de nuestros modernos y miniaturizados teléfonos. Existen diferentes tipos de acelerómetros, que utilizan la misma idea pero diferentes fenómenos físicos, que hacen que cada uno de ellos resulte más idóneo para determinados usos.. 27.

(28) El acelerómetro piezoeléctrico hace uso del efecto con el mismo nombre. Este efecto ocurre en determinados materiales, que, al ser sometidos a una presión y ser deformados (en una dirección) muestran una diferencia de potencial (o voltaje) en su superficie. De esta forma se obtiene una señal eléctrica proporcional a la presión aplicada. En el caso de los acelerómetros capacitivos se crean “pequeños condensadores basculantes”. Un condensador es un componente electrónico que permite almacenar energía eléctrica entre dos placas conductoras separadas por un elemento no conductor (dieléctrico). La Capacitancia de un condensador viene dada, entre otros, por la distancia que separa las placas. Los acelerómetros capacitivos se construyen de manera que una de las dos placas de los condensadores pueda moverse de forma proporcional a la fuerza externa. De esta forma se obtienen variaciones en la señal eléctrica proporcionales a la fuerza aplicada y, por lo tanto, a la aceleración.. Figura 5 Esquema Acelerómetro capacitivo [11]. Los acelerómetros capacitivos, al ser electrónicos, pueden ser extremadamente pequeños y se pueden fabricar integrados en chips para soldar en placas de silicio, por ejemplo en tu Smartphone. Adicionalmente es necesario disponer de un software que sea capaz de interpretar las señales generadas por el acelerómetro. De esto se encarga Android, por ejemplo. Como la fuerza de la gravedad actúa en todo momento y conocemos su valor (9,8 m/s2), es fácil utilizar los valores de cada eje del acelerómetro para determinar el ángulo de inclinación y, por tanto, la posición del dispositivo. De esta forma se puede mostrar el contenido con la orientación correcta y rotarla cuando ésta cambie. De la misma forma, las variaciones en sus valores pueden ser utilizadas como señal de entrada para aplicaciones, por ejemplo para simular un volante en los juegos de conducción.. 28.

(29) 3.4 Magnetómetro. Un magnetómetro es un instrumento que mide la intensidad y, a veces, también la dirección de un campo magnético. El primer magnetómetro fue inventado en 1833 por Carld Friedrich Gauss. Durante el siglo XIX, notables desarrolladores incluyeron el Efecto Hall como forma de medida de campos magnéticos, el cual sigue ampliamente en uso en la actualidad. Los magnetómetros se pueden dividir en dos tipos: escalares y vectoriales. Los magnetómetros se usan, mayoritariamente, para la medición del campo magnético terrestre y en estudios geofísicos, para detectar anomalías magnéticas de diferentes tipos. En la actualidad más reciente, los magnetómetros han sido miniaturizados, con el objetivo de ser incorporados en circuitos integrados a un coste muy bajo. También ha aumentado su uso como brújula en dispositivos electrónicos como los móviles o las tablets.[12] 3.4.1.. Tipos de Magnetómetros. Los magnetómetros pueden ser divididos en dos tipos básicos:. . . Magnetómetros escalares, que miden la intensidad total del campo magnético resultante al cual están siendo sometidos en un punto, pero no aporta ningún dato sobre las componentes vectoriales de campo. Magnetómetros vectoriales, que tienen la capacidad de medir la intensidad del campo magnético en una dirección particular, dependiendo de la colocación que le demos al dispositivo.. 29.

(30) Figura 6 App Brújula 360, Ejemplo de magnetómetro. [13]. 3.5 Ángulos de Euler. Un cuerpo tridimensional puede rotarse de diversas maneras. Para determinar correctamente una rotación necesitamos designar un eje de rotación alrededor del cual se realiza el giro. Los ejes más sencillos alrededor de los cuales se puede definir unívocamente una rotación son los ejes de coordenadas los cuales cumplen el requisito de ser ortogonales entre sí. Los Ángulos de Euler son un conjunto de tres coordenadas angulares, definidos en un espacio tridimensional Euclídeo que, mediante una aplicación ordenada de los giros que definen, determinan la orientación de un sistema de coordenadas (por lo general móvil) con respecto a otro que se mantiene fijo. Los ángulos de Euler, según estén definidos, pueden corresponderse con tres ángulos muy utilizados en navegación aérea para determinar la actitud de las aeronaves, como son Roll (φ), Pitch (θ) y Yaw (Ψ).. Hay que resaltar que los ángulos de Euler no están unívocamente definidos, existiendo ambigüedades y encontrándose varias maneras de definirlos, por lo que no tienen que coincidir con los ángulos antes mencionados (Roll, Pitch y Yaw). Hay que tener claro cómo se definen los ángulos con los que trabajan los dispositivos de navegación que componen un sistema de. 30.

(31) navegación inercial. En el caso particular de este proyecto, el dispositivo en el que hay que detenerse para entender la definición de ángulos es el MTi-G.. En el MTi-G la definición de ángulos de Euler que se utiliza es equivalente a los ángulos Roll (φ), Pitch (θ) y Yaw (Ψ). Estos ángulos se definen con respecto a los ejes coordenados del vehículo. Si se considera el plano del horizonte como el definido por las alas de un avión cuando éste realiza un vuelo horizontal, podemos definir los signos de estos ángulos de la siguiente manera: el ángulo Roll (φ) es positivo cuando el ala derecha se mueve por debajo del plano del horizonte, el ángulo de Pitch (θ) es positivo cuando el morro del avión cae por debajo de la línea del horizonte y el ángulo de Yaw (Ψ) se define positivo cuando el morro está rotando desde el norte hacia el oeste. De forma gráfica se muestran estos ángulos en la Figura. Ésta es la definición de ángulos que se utiliza en este proyecto, debido a los dispositivos de navegación utilizados y la configuración del montaje del sistema completo en la aeronave, la cual se verá más adelante [14].. Figura 7 Ángulos Roll, Pitch y Yaw. [14]. 31.

(32) Las transformaciones de estos ángulos se aplican matricialmente. A cada ángulo de Euler le corresponde una matriz 3x3, que determina el giro que se aplica con respecto al sistema de coordenadas que está fijo y actúa de referencia. El giro correspondiente al ángulo Yaw (también se le denota como α) es una rotación alrededor del eje de coordenadas vertical (eje z en un sistema genérico), siguiendo el sentido contrario a las agujas del reloj, y queda definido por la matriz de rotación , la cual se encuentra definida en [1].. cos(𝛼) − sin(𝛼) 0 (𝛼) 𝑅𝑧 = [ sin(𝛼) cos(𝛼) 0] 0 0 1. Nótese que las entradas superiores de la matriz. 𝑅𝑧 (𝛼) forman. [1]. una matriz de rotación. bidimensional aplicada a las coordenadas X e Y, mientras que la coordenada Z permanece constante. Ocurre lo mismo para las dos matrices correspondientes a los otros dos ángulos, con sus respectivos ejes fijos cada una.. El ángulo Pitch (también se le denota como β) se corresponde con una rotación en sentido anti-horario alrededor del eje de coordenadas que apunta al oeste (eje Y en un sistema de coordenadas genérico). La matriz de rotación correspondiente a éste ángulo se conoce como. 𝑅𝑦 (𝛽). y se encuentra definida en [2].. cos(𝛽) 0 0 1 𝑅𝑦 (𝛽) = [ − sin(𝛽) 0. sin(𝛽) 0 ] cos(𝛽). [2]. El ángulo Roll (también se le denota como γ) se corresponde con una rotación en sentido anti-horario, alrededor del eje de coordenadas norte (eje X en un sistema de coordenadas genérico). La matriz de rotación de este ángulo, que se conoce como. 𝑅𝑥 (𝛾), viene definida por. [3].. 32.

(33) 1 0 0 𝑅𝑥 (𝛾) = [0 cos(𝛾) − sin(𝛾)] 0 sin(𝛾) cos(𝛾). [3]. Se pueden multiplicar las tres matrices de manera que obtengamos una sola matriz 3x3 que defina el conjunto de las tres rotaciones en una sola matriz, como la que aparece definida en [4].. 𝑅(𝛼, 𝛽, 𝛾) = 𝑅𝑧 (𝛼)𝑅𝑦 (𝛽)𝑅𝑥 (𝛾) = cos(𝛼) cos(𝛽) cos(𝛼) sin(𝛽) sin(𝛾) − sin(𝛼) cos(𝛾) cos(𝛼) sin(𝛽) cos(𝛾) + sin(𝛼) sin(𝛾) [ sin(𝛼) cos(𝛽) sin(𝛼) sin(𝛽) sin(𝛾) + cos(𝛼) cos(𝛾) sin(𝛼) sin(𝛽) cos(𝛾) − cos(𝛼) sin(𝛾)] − sin(𝛽) cos(𝛽) sin(𝛾) cos(𝛽) cos(𝛾) [4]. 3.6 PHP.. Es un lenguaje para programar scripts del lado del servidor, que se incrustan dentro del código HTML. Este lenguaje es gratuito y multiplataforma. PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación.. Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente. El cliente solamente recibe una página con el código HTML resultante de la ejecución de la PHP. Como la página resultante contiene únicamente código HTML, es compatible con todos los navegadores. Podemos saber algo más sobre la programación del servidor y del cliente en el artículo qué es DHTML.. Una vez que ya se conoce el concepto de lenguaje de programación de scripts del lado del servidor podemos hablar de PHP. PHP se escribe dentro del código HTML, lo que lo hace realmente fácil de utilizar, al igual que ocurre con el popular ASP de Microsoft, pero con algunas ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede descargar a través de la página principal de PHP y de manera gratuita, un módulo que hace que nuestro servidor web comprenda los scripts realizados en este lenguaje. Es independiente de. 33.

(34) plataforma, puesto que existe un módulo de PHP para casi cualquier servidor web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que permite portar el sitio desarrollado en PHP de un sistema a otro sin prácticamente ningún trabajo.[15]. Figura 8 Esquema de funcionamiento de las paginas PHP. [15]. Ventajas Lenguaje multiplataforma.. Desventajas Se necesita instalar un servidor web.. Buena integración con la mayoría de Se realiza todo el trabajo en la parte del conectores a base de datos. MySQL, servidor, por esto, si se tienen muchas PostgreSQL, Oracle, etc.. peticiones, el rendimiento de nuestra aplicación. podría. verse. afectado. sensiblemente. Mucha documentación debido a su gran Al mezclar HTML + PHP, dificulta la popularidad y una gran comunidad. legibilidad del código. Lenguaje de código libre y gratuito.. Difícil de mantener. Orientado para desarrollar aplicaciones Es un lenguaje de programación NO. 34.

(35) web donde la información esté en una tipado. base de datos. Múltiples Frameworks. PHP que Seguridad. Como es un lenguaje de permiten que tu código sea más código abierto, todas las personas ordenado, estructurado, manejable y pueden ver el código fuente, y si hay permiten trabajar utilizando patrones de errores, la gente puede utilizar estas diseño cómo debilidades de codificación. Modelo-Vista-Controlador (MVC). Tabla 3 Ventajas y Desventajas de usar el lenguaje PHP. [16]. 3.7 XAMP. XAMPP es el acrónimo de Cualquier Plataforma (X), Apache (A), MySQL (M), PHP (P) y Perl (P). Es una distribución de Apache sencilla y ligera que facilita enormemente a los desarrolladores crear un servidor web local para realizar pruebas. Todo lo que necesita para configurar un servidor web – la aplicación servidor (Apache), la base de datos (MySQL), y un lenguaje de script (PHP) – está incluido en un único fichero extraíble. XAMPP es también multi-plataforma, lo que significa que funciona bien tanto en Linux, como Mac o Windows. Dado que la mayoría de servidores web actuales usan los mismos componentes que XAMPP, la transición desde el servidor de prueba Local al servidor de producción es extremadamente fácil también.. XAMPP tiene cuatro componentes principales. Éstos son:. NOMBRE Apache. MySQL. PHP. DESCRIPCIÓN Apache es la aplicación de servidor web que procesa y entrega el contenido web a un ordenador. Apache es el servidor web más popular en internet, haciendo funcionar casi el 54% de todas las páginas web. Cada aplicación web, ya sea simple o compleja, requiere una base de datos para almacenar los datos que recoge. MySQL, que es de código abierto, es el sistema gestor de base de datos más popular. Alimenta desde websites de aficionados hasta plataformas profesionales como WordPress. PHP son las siglas de Preprocesador de Hipertexto. Es un lenguaje de script del lado del servidor que hace funcionar algunas de las páginas web más famosas del mundo,. 35.

(36) Perl. incluyendo WordPress y Facebook. Es de código abierto, relativamente fácil de aprender, y funciona perfectamente con MySQL, lo que lo ha hecho una opción muy popular para los desarrolladores web. Puede aprender a dominar PHP con este curso sobre los Fundamentos de Programación PHP. Perl es un lenguaje de programación dinámico y de alto nivel que se usa ampliamente en la programación de redes, la administración de sistemas, etc. Aunque menos popular para el desarrollo web, Perl tiene un montón de aplicaciones específicas. Tabla 4 Componentes aplicación XAMMP.. Diferentes versiones de XAMPP pueden incluir componentes adicionales como phpMyAdmin, OpenSSL, etc. para crear servidores web completos.[17]. Figura 9 Panel de control aplicación XAMPP. [18]. 36.

(37) 3.8 Bases de Datos. Un sistema gestor de bases de datos (SGBD) consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente denominada base de datos, contiene información relevante para una empresa. El objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información de una base de datos de manera que sea tanto práctica como eficiente. Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de información. La gestión de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la información. Además, los sistemas de bases de datos deben proporcionar la fiabilidad de la información almacenada, a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser compartidos entre diversos usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la información es tan importante en la mayoría de las organizaciones, los científicos informáticos han desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los datos. En este capítulo se presenta una breve introducción a los principios de los sistemas de bases de datos. [19]. Figura 10 Esquema De Bases De Datos. [20]. 37.

(38) 3.8.1. Aplicaciones de los sistemas de bases de datos. Las bases de datos son ampliamente usadas. Las siguientes son algunas de sus aplicaciones más representativas:. Para información de los clientes, cuentas y préstamos, y transacciones bancarias. Para reservas e información de planificación. Las líneas Líneas aéreas aéreas fueron de los primeros en usar las bases de datos de forma distribuida geográficamente (los terminales situados en todo el mundo accedían al sistema de bases de datos centralizado a través de las líneas telefónicas y otras redes de datos). Para información de los estudiantes, matrículas de las Universidades asignaturas y cursos. Transacciones de tarjetas Para compras con tarjeta de crédito y generación mensual de extractos. de crédito Para guardar un registro de las llamadas realizadas, Telecomunicaciones generación mensual de facturas, manteniendo el saldo de las tarjetas telefónicas de prepago y para almacenar información sobre las redes de comunicaciones. Para almacenar información sobre grandes empresas, Finanzas ventas y compras de documentos formales financieros, como bolsa y bonos. Para información de clientes, productos y compras. Ventas Banca. Tabla 5 Ejemplos de aplicaciones de Bases de Datos.[19]. 3.8.2. Relaciones entre bases de datos. El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente: Relaciones de uno a uno. Una instancia de la entidad A se relaciona con una y solamente una de la entidad B.. Relaciones de uno a muchos. Cada instancia de la entidad A se relaciona con varias instancias de la entidad B.. Relaciones muchos. de. muchos. a Cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B.. Tabla 6 Diseño de relaciones entre tablas de una base de datos. [21]. 38.

(39) 3.8.3. Estructura de un sistema de bases de datos. Un sistema de bases de datos se divide en módulos que se encargan de cada una de las responsabilidades del sistema completo. Los componentes funcionales de un sistema de bases de datos se pueden dividir a grandes rasgos en los componentes gestor de almacenamiento y procesador de consultas. El gestor de consultas es importante porque las bases de datos requieren normalmente una gran cantidad de espacio de almacenamiento. Las bases de datos corporativas tienen un tamaño de entre cientos de gigabytes y, para las mayores bases de datos, terabytes de datos. Un gigabyte son 1.000 megabytes (1.000 millones de bytes), y un terabyte es 1 millón de megabytes (1 billón de bytes). Debido a que la memoria principal de los computadores no puede almacenar esta gran cantidad de información, esta se almacena en discos. Los datos se trasladan entre el disco de almacenamiento y la memoria principal cuando es necesario. Como la transferencia de datos a y desde el disco es lenta comparada con la velocidad de la unidad central de procesamiento, es fundamental que el sistema de base de datos estructure los datos para minimizar la necesidad de movimiento de datos entre el disco y la memoria principal. El procesador de consultas es importante porque ayuda al sistema de bases de datos a simplificar y facilitar el acceso a los datos. Las vistas de alto nivel ayudan a conseguir este objetivo. Con ellas, los usuarios del sistema no deberían ser molestados innecesariamente con los detalles físicos de implementación del sistema. Sin embargo, el rápido procesamiento de las actualizaciones y de las consultas es importante. Es trabajo del sistema de bases de datos traducir las actualizaciones y las consultas escritas en un lenguaje no procedimental, en el nivel lógico, en una secuencia de operaciones en el nivel físico.. 3.8.3.1 Gestor de almacenamiento. Un gestor de almacenamiento es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel en la base de datos y los programas de aplicación y consultas emitidas al sistema. El gestor de almacenamiento es responsable de la interacción con el gestor de archivos. Los datos en bruto se almacenan en disco usando un sistema de archivos, que está disponible habitualmente en un sistema operativo convencional. El gestor de almacenamiento traduce las diferentes instrucciones LMD a órdenes de un sistema de archivos de bajo nivel. Así, el gestor de almacenamiento es responsable del almacenamiento, recuperación y actualización de los datos en la base de datos. Los componentes del gestor de almacenamiento incluyen:. . Gestor de autorización e integridad, que comprueba que se satisfagan las restricciones de integridad y la autorización de los usuarios para acceder a los datos.. 39.

(40) . Gestor de transacciones, que asegura que la base de datos quede en un estado consistente (correcto) a pesar de los fallos del sistema, y que las ejecuciones de transacciones concurrentes ocurran si conflictos.. . Gestor de archivos, que gestiona la reserva de espacio de almacenamiento de disco y las estructuras de datos usadas para representar la información almacenada en disco.. . Gestor de memoria intermedia, que es responsable de traer los datos del disco de almacenamiento a memoria principal y decidir qué datos tratar en memoria caché. El gestor de memoria intermedia es una parte crítica del sistema de bases de datos, ya que permite que la base de datos maneje tamaños de datos que son mucho mayores que el tamaño de la memoria principal.. El gestor de almacenamiento implementa varias estructuras de datos como parte de la implementación física del sistema:. Archivos de datos. Almacena la base de datos en sí.. Diccionario de datos Almacena metadatos acerca de la estructura de la base de datos, en particular, el esquema de la base de datos Índices. Proporcionan acceso rápido a elementos de datos que tienen valores particulares. Tabla 7 Gestor de almacenamiento. [19]. 3.8.3.2 Procesador de consultas Los componentes del procesador de consultas incluyen:.  . . Intérprete del LDD, que interpreta las instrucciones del LDD y registra las definiciones en el diccionario de datos. Compilador del LMD, que traduce las instrucciones del LMD en un lenguaje de consultas a un plan de evaluación que consiste en instrucciones de bajo nivel que entiende el motor de evaluación de consultas. Una consulta se puede traducir habitualmente en varios planes de ejecución alternativos que proporcionan el mismo resultado. El compilador del LMD también realiza optimización de consultas, es decir, elige el plan de evaluación de menor coste de entre todas las alternativas. Motor de evaluación de consultas, que ejecuta las instrucciones de bajo nivel generadas por el compilador del LMD.. 40.

(41) Figura 11 Procesador de consultas. [19]. 41.

(42) 3.8.4. Tipos de bases de datos. Existen principalmente cinco tipos de bases de datos: 1) Las bases de datos jerárquicas: En este tipo de bases de datos se organizan los datos utilizando estructuras tipo árbol, en esta jerarquía los elementos se denominan nodos y existen dependencias de uno a muchos entre los nodos del tipo padre e hijo, en el cual un nodo padre puede tener múltiples hijos pero un hijo solo un padre. [22]. 2) Bases de datos en red: En esta estructura la relación se da del tipo muchos a muchos es decir, un elemento hijo puede estar relacionado con varios elementos padres; la relación en esta estructura el equivalente al padre se denomina PROPIETARIO (owner) y el equivalente al hijo se denomina MIEMBRO (member). 3) Bases de datos orientadas a objetos: Es un modelo muy reciente y se basa en almacenar en la base de datos los objetos completos (estado y comportamiento); la información que contiene se organiza en atributos y el comportamiento en operaciones. 4) Bases de datos multidimensionales: En esta estructura los datos se almacenan en tablas de múltiples dimensiones en vez de tablas bidimensionales; se utilizan para grandes volúmenes de información que tienen múltiples correlaciones. 5) Bases de datos relacionales: Es la estructura más utilizada para aplicaciones de gestión, consiste en organizar los datos en forma de tablas, las relaciones entre los objetos se consiguen incluyendo en la tabla del hijo la clave del objeto padre, y su relación es variable entre objetos de cada tabla con otras tablas; es decir, un objeto de una tabla puede tener una relación uno a muchos con una tabla y a su vez la tabla a la que pertenece tener relación muchos a muchos con otra tabla.. 42.

Figure

Figura 1 Arquitectura de Android [7]
Tabla 1 Librerías Nativas de Android.
Figura 3 Acelerómetro [11]
Figura 4 Acelerómetro con 3 ejes [11]
+7

Referencias

Documento similar

h) Emplear herramientas de desarrollo, lenguajes y componentes visuales, siguiendo las especificaciones y verificando interactividad y usabilidad, para desarrollar

Para dar solución al problema antes descrito se plantea como objetivo general: Desarrollar una aplicación para dispositivos móviles con sistema operativo Android, que

Para este tipo de usuarios, nuestra aplicación sigue ofreciendo funcionalidad útil: se sigue permitiendo el acceso a los planos de los edificios y a la descripción básica de los

 Se ha desarrollado una aplicación que permite gestionar emplazamientos creados por el usuario, representar un perfil junto con la primera zona de Fresnel en

Desarrollo de una aplicación de cálculo de mapas de visibilidad radioeléctricos para dispositivos móviles móvil con sistema operativo

Ilustración 11 - Clase para gestionar la comunicación con el servidor 31 Ilustración 12 - Clase para manejar los datos recibidos por parte del servidor 32 Ilustración 13 - Logotipo

Para la creación de la app “Hoy como en casa” se han utilizado Eclipse y todos los complementos necesarios para el desarrollo de aplicaciones Android.. Android

En este proyecto se ha unificado el desarrollo de aplicaciones para dispositivos móviles S40 de Nokia con la tecnología NFC, dando como resultado la aplicación “Smart-Info UPCT”,