scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

La realización de esta proyecto tiene por objetivo el desarrollo de una instrumentación electrónica para la captura de los fenómenos a medir, su posterior tratado de información mediante el uso de plataformas de hardware libre y como fin ultimo su envío inalámbrico a plataformas inalámbricas para su visualización y estudio. Millán Lozano, Alejandro; Beltrán Blázquez, José Ramón

Full text

PROYECTO FINAL DE CARRERA: SISTEMA INALÁMBRICO DE MONITORIZACIÓN DE CONSTANTES VITALES CON PLATAFORMA ARDUINO Y VISUALIZACIÓN EN APLICACIÓN MOVIL. DOCUMENTO: MEMORIA AUTOR: ALEJANDRO MILLÁN LOZANO DIRECTOR: JOSÉ RAMÓN BELTRÁN BLÁZQUEZ ESPECIALIDAD: INGENIERÍA TÉCNICA INDUSTRIAL ESPECIALIDAD ELECTRÓNICA INDUSTRIAL CONVOCATORIA: SEPTIEMBRE 2014 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 2 Agradecimientos En primer lugar quiero agradecer a mi hermano Adrián y a la Unidad de Cuidados Intensivos del Hospital Clínico Universitario Lozano Blesa, por la posibilidad de observar su trabajo y ser origen para la realización de este proyecto También quiero dar las gracias a mi tutor José Ramón Beltrán, por aceptar mi propuesta de proyecto, realizarlo juntos y aprender de él. Por último dar las gracias a mi familia por su apoyo durante todo este tiempo y a mis amigos, por las bromas y los buenos momentos. A todos muchas gracias Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 3 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 4 RESUMEN Esta memoria de proyecto final de carrera refleja los distintos procedimientos para el desarrollo de un sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. Los objetivos de este diseño es capturar las constantes vitales de un paciente mediante instrumentación electrónica con base en una plataforma Arduino y su visualización en tiempo real las mediciones en un Smartphone o Tablet mediante una aplicación móvil. El desarrollo del proyecto ha sido dividido en cuatro fases: búsqueda de información, desarrollo del hardware, desarrollo del software y la realización de la documentación. El desarrollo de esta memoria seguirá los pasos comentados anteriormente. La instrumentación utilizada para la monitorización de las constantes vitales han sido: electrocardiograma (ECG) y pulsioximetría (SpO2).Son señales eléctricas de poca amplitud y susceptibles a interferencias y ruidos, por lo que es necesario que la instrumentación electrónica del proyecto permita filtrar los datos de los sensores de las interferencias del entorno. Por ello se ha diseñado dos circuitos independientes con distintas etapas de adaptación, filtrado y amplificación para la obtención de los datos requeridos para su posterior tratado por el microprocesador de la plataforma Arduino El software está diseñado para obtener del ECG la gráfica y la tira de ritmo, y del pulsioximetría la saturación de oxígeno en sangre, la onda de pulsioximetría y el pulso. Una vez obtenida los datos requeridos, estos son enviados mediante una zona WiFi a una plataforma inteligente como es un Smartphone o Tablet pudiendo ver los datos en una interfaz interactiva gracias a la evolución de los terminales móviles. El resultado final obtenido es un sistema de monitorización inalámbrico que explota las nuevas tecnologías del siglo XXI como son los terminales Smartphone y las plataformas tanto de software y hardware libre, permitiendo el desarrollo de un prototipo económico y a la vez útil, que es el objetivo del proyecto. En cuanto a los conocimientos obtenidos en el transcurso de la realización de PFC, destacan por su carácter multidisciplinar, el haber adquirido los conocimientos necesarios sobre electrocardiografía como de pulsioximetría para la realización de la instrumentación biomédica. Seguidamente el aprendizaje y manejo de una plataforma Open Hardware como es Arduino a nivel tanto de hardware y software, para posteriormente pasar a la creación de una red WiFi por parte de un Smartphone y el desarrollo de una aplicación móvil para visualización interactiva de los datos. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 5 CONTENIDO 1 INTRODUCCION……………………………………………………………..11 1.1 OBJETIVOS……………………………………………..……………11 1.2 ELECTROCARDIOGRAFIA………...…………………...………….12 1.2.1 ACTIVIDAD ELECTRICA CARDIACA……………………..12 1.2.2 HISTORIA DE LA ELECTROCARDIOGRAFIA…………...19 1.2.3 ESTUDIO DEL MERCADO………………………………….20 1.3 PULSIOXIMETRIA……………………………………………..…….23 1.3.1 OXIGENACION TISULAR…………………………………...24 1.3.2 HISTORIA DE LA PULSIOXIMETRIA……………………...28 1.3.3 ESTUDIO DEL MERCADO………………………………….29 1.4 ARDUINO……………………………………...………………...…....30 1.4.1 HARDWARE…………………………………………………..32 1.4.2 SOFTWARE…………………………………………………..33 1.4.3 HISTORIA DE ARDUINO……………………………………33 1.5 ANDROID……………………………………………......…………....34 2 DESARROLLO………………………………………………………..….…..39 2.1 REQUISITOS DEL DISEÑO…………………………..……….……39 2.2 DISEÑO FUNCIONAL………………………………………..…..….40 2.3 DISEÑO DETALLADO………………………………………....……44 2.3.1 HARDWARE………………………………………...…..........44 2.3.1.1 ELECTROCARDIOGRAMA…………….……44 2.3.1.1.1 ELECTRODOS…………………..…....44 2.3.1.1.2 ETAPA ADAPTACION…………….….45 2.3.1.1.3 DERIVACION PIERNA IZQUIERDA..46 2.3.1.1.4 ETAPA DIFERENCIAL…………….....48 2.3.1.1.5 ETAPA RESTAURADORA DE CONTINUA…………………………………………….50 2.3.1.1.6 FILTRO PASO ALTO…………………52 2.3.1.1.7 FILTRO PASO BAJO…………………53 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 6 2.3.1.1.8 FILTRO NOTCH………………..……..54 2.3.1.2 PULSIOXIMETRIA……………………………56 2.3.1.2.1 CIRCUITO DRIVER LED……….……56 2.3.1.2.2 SONDA LEDS…………………………58 2.3.1.2.3 ETAPA DE TRANSIMPEDANCIA…..58 2.3.1.2.4 SAMPLE & HOLD………………….….60 2.3.1.2.5 FILTRO PASA BANDA………........…62 2.3.1.2.6 ETAPA DIFERENCIAL…………….…64 2.3.1.3 MODULO DE COMUNICACIÓN………….…65 2.3.1.3.1 ARDUINO WIFI SHIELD…………..…67 2.3.1.4 PRUEBAS DISEÑO HARDWARE…………..69 2.3.1.5 DISEÑO PCB…………………………….……72 2.3.2 SOFTWARE………………………………………………..…75 2.3.2.1 ENTORNO ARDUINO…………….………….76 2.3.2.2 LENGUAJE DE PROGRAMACION C++…...77 2.3.2.3 LIBRERIAS………………………………..…..78 2.3.2.4 PROGRAMAS SENSORES……….…...……79 2.3.2.5 PROGRAMA SERVIDOR WEB WIFI…….…93 2.3.2.6 APLICACIÓN MOVIL…………………………96 3 CONCLUSIONES…………………………………………………………….97 3.1 BIBLIOGRAFÍA………………………………………………….....…99 ANEXOS A. ESQUEMAS ELECTRICOS……………………………………...………..101 B. PLACA DE CIRCUITO IMPRESO……………………………………...…105 C. COSTE DE FABRICACION……………………………………….........…112 D. DATASHEETS……………………………………………………….......…115 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 7 TABLA DE FIGURAS Figura 1. Formas de onda de un ECG de 12 derivaciones………………....14 Figura 2. Miocardio y sistema de circulación eléctrica……………….…......15 Figura 3. Complejo QRS………………………………………….…………….16 Figura 4. Willem Einthoven…………………………………………….……….20 Figura 5. Philips Digitrax XT………………………………………….………....21 Figura 6. Intellivue MP70………………………………………………….........21 Figura 7. Omrom HCG-801………………………………………….......……..22 Figura 8. ChoiceMMed MD100………………………………………………...22 Figura 9. Nuubo nECG Minder y nECG23 Textile……………………….…...23 Figura 10. Hematosis…………………………………………………………......25 Figura 11. Absorbancia de longitudes de onda………………………….…….27 Figura 12. Takuo Aoyagi………………………………………………………….29 Figura 13. Placa Arduino UNO R3……………………………………….………31 Figura 14. Diagrama de bloques circuito ECG…………………………………40 Figura 15. Diagrama de bloques circuito SpO2………………………………..41 Figura 16. Electrodos SKINTACT…………………………………...…….…….44 Figura 17. Etapa derivación de señales de entrada……………………….…..45 Figura 18. Etapa derivación de pierna izquierda………………………….……47 Figura 19. Amplificador de instrumentación INA333…………………………..49 Figura 20. Etapa diferencial con INA333 en circuito ECG…………………….50 Figura 21. Circuito restaurador del nivel de continua……………………….…51 Figura 22. Filtro paso alto realimentando por referencia………………….…..52 Figura 23. Filtro paso bajo………………………………………………………..53 Figura 24. Filtro notch activo……………………………………………………..54 Figura 25. Circuito controlador de Leds………………………………………....56 Figura 26. Rama de control de Led…………………………………………...…57 Figura 27. Sonda SpO2 Nellcor………………………………………………….58 Figura 28. Esquema eléctrico sonda Nellcor…………………………………...58 Figura 29. Etapa de transimpedancia o conversión corriente-tensión……….59 Figura 30. Esquema funcionamiento Sample and Hold…………………….…60 Figura 31. Circuito Sample & Hold junto con circuito restaurador de continua…………………………………………………………….61 Figura 32. Filtro pasa-banda……………………………………………………..63 Figura 33. Etapa diferencial con INA333 en SpO2………………………….…64 Figura 34. Circuitería auxiliar para habilitar la comunicación Xbee……….…65 Figura 35. Circuitería auxiliar para el control de un módulo Xbee……….…..66 Figura 36. Arduino WiFi Shield…………………………………………………..67 Figura 37. Pines Arduino WiFi Shield…………………………………………...68 Figura 38. Placa de prototipado con ECG………………………………….......69 Figura 39. Placa de prototipado con SpO2………………………………….....70 Figura 40. Onda electrocardiográfica……………………………………....…...71 Figura 41. Onda electrocardiográfica………………………………...………....71 Figura 42. Onda infrarroja de pulsioximetría…………………………………...72 Figura 43. Placa PCB sin plano de masa……………………………………....74 Figura 44. Ejemplo de sketch de Arduino……………………………………....77 Figura 45. Diagrama de flujo onda electrocardiográfica……………………....81 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 8 Figura 46. Diagrama de flujo onda pletismográfica…………………….……...83 Figura 47. Diagrama de flujo cálculo de pulsaciones SpO2……………….....86 Figura 48. Diagrama de flujo cálculo de pulsaciones ECG……………….…..89 Figura 49. Diagrama de flujo cálculo de oxígeno en sangre……………….…92 Figura 50. Diagrama de flujo iniciación de servidor web………………....…...95 Figura 51. Esquema eléctrico circuito ECG……………………………….…..102 Figura 52. Esquema eléctrico circuito SpO2 ½…………………………….…103 Figura 53. Esquema eléctrico circuito SpO2 2/2………………………….......104 Figura 54. Plano de pistas cara top………………………………………....…105 Figura 55. Plano de pistas cara bottom…………………………………….….106 Figura 56. Plano de serigrafía cara top……………………………………......107 Figura 57. Plano de serigrafía cara bottom……………………………….......108 Figura 58. Plano de mascarilla cara top…………………………………….…109 Figura 59. Plano de mascarilla cara bottom………………………………......110 Figura 60. Plano de taladrado…………………………………………………..111 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 9 LISTA DE ACRÓNIMOS ECG Electrocardiograma Sp02 Saturación parcial de O2 aVR Derivación monopolar de potencial ampliado del brazo derecho aVL Derivación monopolar de potencial ampliado del brazo izquierdo aVF Derivación monopolar de potencial ampliado del pierna izquierda I Derivación bipolar brazo izquierdo y brazo derecho II Derivación bipolar brazo derecho y pierna izquierda III Derivación bipolar brazo izquierdo y pierna izquierda LA Brazo izquierdo LR Brazo derecho LL Pierna izquierda RL Pierna derecha SA Nodo sinoauricular AV Nodo aurícoluventricular Em Potencial de membrana PAT Potencial de acción transmembrana AED Desfibrilación automática externa PaO2 Presión de oxígeno en sangre PaCO2 Presión de dióxido de carbono en sangre ATP Adenosin tri-fosfato HbO2 Oxihemoglobina Hb Hemoglobina HbR Hemoglobina reducida CoHb Carboxihemoglobina MetHb Metahemoglobina LED Diodo emisor de luz SaO2 Saturación de oxígeno en sangre O.S. Sistema operativo IDE Entorno de desarrollo integrado PWM Modulación de ancho de pulsos USB Bus serie universal ICSP Método de programación directa de microcontroladores. SRAM Memoria estática de acceso aleatorio EEPROM Memoria de solo lectura, programable y eléctricamente borrable SPI Interfaz de periféricos serie SCLK Reloj de sincronismo MOSI Salida de maestro, entrada de esclavo MISO Entrada de maestro, salida de esclavo SS Selección de esclavo I2C Circuito inter-integrado SDK Kit de desarrollo software API Interfaz de programación de aplicaciones SMS Sistema de mensajes cortos VGA Adaptador gráfico de video GSM Sistema global para comunicaciones móviles Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 16 4Final de repolarización. Se cierra completamente el canal de entrada de Ca2+ y se abre el canal de salida de K+, restableciendo el potencial normal de reposo. El potencial de acción cardiaco se corresponde con el ECG de la siguiente manera: 1En el miocardio auricular la fase 0 del potencial de acción de todas las células auriculares se corresponde con la onda P; la fase 2 representa el intervalo PR que refleja la velocidad de conducción en el nodo AV y la fase 3 representa la onda T debida a la repolarización auricular. 2En el miocardio ventricular la fase 0 del potencial de acción de todas las células ventriculares se corresponde con el complejo QRS; la fase 2 corresponde al segmento ST y la fase 3 con la onda T. Por lo tanto, en la gráfica de ECG lo que se observa realmente es el complejo QRS que representa la repolarización de las células cardiacas. Figura 3. Complejo QRS Como ya hemos mencionado anteriormente, la señal electrocardiográfica es una señal bioeléctricas generada por sucesivas polarizaciones y despolarizaciones de las células cardiacas que realizan las contracciones del corazón para bombear sangre al cuerpo. Para medir este tipo de señales hace falta una interfaz o instrumento capaz de traducir estas señales electroquímicas en señales eléctricas, que son las que se pueden tratar con la electrónica necesaria. Esto se consigue mediante un transductor, denominado electrodo, que permite dicho cambio. Para dicha Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 17 transducción primero hay que entender que es un electrolito, que es una sustancia normalmente acuosa que contiene iones libres. Una vez explicado, se entiende que la transducción se produce en la unión del electrolito y del electrodo. El proceso se compone de corriente iónicas que fluyen por el electrolito dando lugar a reacciones redox (reducción y oxidación), dependiendo de la dirección de la corriente. Los electrodos comercializados pueden ser desechables o reutilizables con una protección de plástico y un cuello adhesivo por ambos lados. Su diámetro varía desde los 2mm a los 10mm para la parte activa del electrodo. Los electrodos de cloruro de plata-plata (Ag-AgCl) con pasta de cloruro se utilizan invariablemente debido a sus propiedades de estabilidad y reducción de ruido. Las características eléctricas necesarias para para cumplir con un estándar son: PARÁMETRO ELÉCTRICO CONDICIÓN Voltaje de Offset ≤10𝑚𝑉 Voltaje de Desplazamiento de corriente directa ≤100𝑚𝑉 Ruido Interno ≤150𝑢𝑉 Inestabilidad combinada desplazamiento/ruido interno ≤150𝑚𝑉 Impedancia a 10Hz/100uA ≤3𝐾Ω 𝑒𝑛 𝑝𝑎𝑟 𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑎𝑙 ≤ 2𝐾Ω 𝑒𝑛 12 𝑑𝑒𝑟𝑖𝑣𝑎𝑐𝑖𝑜𝑛𝑒𝑠 En la siguiente imagen se describe el circuito equivalente de la unión electrodo, electrolito y piel: El electro, como se puede observar en la imagen está constituido por una fuente de tensión Ehc que se trata del potencial de celda, seguido de una impedancia RC propia del material con respuesta en frecuencia. Acto seguido se encuentra el gel electrolítico que facilita la transducción a modo de resistencia. Ya en la piel nos encontramos con otra fuente de tensión, Vse, que es el potencial de acción celular y con una impedancia RC de la epidermis en serie la dermis, representada eléctricamente con una R. Hay que añadir que aunque hay efectos eléctricos debido a las glándulas sudoríparas y conductos localizados en la epidermis, al estar en paralelo con una componente mucho mayor que esta, se consideran despreciables sus efectos. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 18 Las señales bioeléctricas no son sencillas de medir debido a la existencia de señales similares que pueden perturbar la medida, estas fuentes de perturbaciones pueden clasificarse dependiendo de su origen y comportamiento: 1Interferencias inductivas, debidas a los cables de los electrodos, cuya mejor disposición es en cable trenzado para minimizar interferencias. 2Potencial de contacto electrodo-piel, no se produce una distribución equitativa de cargas, superponiendo a la señal electrocardiográfica un nivel de continua que limita la amplificación de la primera etapa pudiéndola saturar. 3Interferencias provocadas por otros potenciales bioeléctricos, no existe una forma definitiva de eliminarlos, pero sí de minimizarlos a modo de que la señal de ECG quede realzada respecto de las otras. Interferencias de este tipo son EMG, EEC, etc. 4Interferencias provocadas por otros sistemas fisiológicos, como puede ser el producido por el aparato respiratorio, que provoca una variación tanto en amplitud y forma de los registros de ECG. 5Interferencias provocadas por cargas electrostáticas, que almacenadas en el cuerpo, hacen fluctuar la línea de base y saturar los amplificadores. 6Interferencias del equipo de medida y alimentación, que se traduce en ruido electromagnético y el rizado de fuente de alimentación (PSRR). 7Ruido generado por componentes electrónicos, tanto pasivos como activos que generan señales de ruido que contaminan las medidas. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 19 1.2.2 HISTORIA DE LA ELECTROCARDIOGRAFIA La electrocardiografía es una ciencia relativamente reciente que comienza en 1791 de la mana de Luigi Galvani (1737-1798) que descubrió que la electricidad produce contracciones en los músculos de los animales, efecto que nombro “Electricidad animal”. Este evento llamo la atención de la comunidad científica contemporánea y permitió un mayor desarrollo de la electrocardiografía [32]. Carlo Matteucci (1811 - 1868) fue el primero que observó evidencias de la actividad eléctrica del corazón en animales cuando su galvanómetro detectó cierta actividad al situarlo sobre un corazón latiendo. No obstante, el científico no fue capaz de producir registros permanentes que demostraran esta actividad. En 1887, Augustus Désiré Waller (1856-1922) registró por primera vez las curvas de actividad eléctrica del corazón mediante electrodos colocados con solución salina con el electrómetro capilar inventado por Gabriel Lippman (1845-1921). Esto origino un nuevo campo en la medicina, la “cardiografía” que perfilo los fundamentos de lo que ahora conocemos como electrocardiografía. En los últimos años del siglo XIX, Willem Einthoven (1860-1927) considerado como fundador de la electrocardiografía moderna, estudio el potencial de acción de los animales con el electrómetro capilar de Lippman. No satisfecho con los resultados obtenidos, llevo a cabo modificaciones que mejoraron la calidad del trazo mediante ecuaciones diferenciales para corregir la escasa respuesta en frecuencia del electrómetro capilar. Al final de las modificaciones se obtuvo el galvanómetro de cuerda, que permitió en 1902 el registro de la actividad eléctrica del corazón, mejorando los registros anteriormente obtenidos. Esos experimentos quedaron reflejados en un artículo publicado en 1906, en el que gracias a su nueva técnica permitía el registro de las curvas de ECG tenía una alta fidelidad y sensibilidad, y representaba un trazado limpio sin distorsiones, fácilmente interpretable de la actividad eléctrica del corazón. Este trabajo definió las deflexiones reflejadas en las gráficas de ECG como PQRST, reflejando estos potenciales en el complejo QRS. En el artículos publicados, “Le Télécardiogramme” en 1906 y “Weiteres über das elektrokardiogramm” en 1908, definía los “ejes del corazón”, las derivaciones y la forma de medida de señales eléctricas que le permitieron ser reconocido en 1924 con premio Nobel de Medicina por sus estudios. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 20 Figura 4. Willem Einthoven Dos sucesores del trabajo de Einthoven fueron Thomas Lewis (1881-1945) y Frank Newman Wilson (1890-1952). Lewis demostró la importancia de los descubrimientos de Einthoven en el campo de los trastornos del ritmo cardiaco, estudió los cambios morfológicos de las ondas de ECG y escribió los primeros libros de ECG que describen la utilidad clínica de dicha técnica. Por su parte Wilson fue el descubridor de las derivaciones precordiales, y el electrodo frontal que permite registrar las derivaciones unipolares en el plano frontal (VR, VL, VF) y en el plano horizontal (precordiales) utilizando las derivaciones de los miembros como referencia. Estos trabajos sirvieron para demostrar la capacidad de detección de enfermedades cardiacas y anomalías tanto del pulso cardiaco como en el sistema circulatorio, dando el impulso decisivo de la implantación de la electrocardiografía como una herramienta diagnostica no invasiva. Mejorar realizadas posteriormente, como el registro del potencial de acción transmembrana (PAT) por parte de Weidmann y mejora del conocimiento de la electrofisiología celular realizada por Hoffman; el registro continuado del ECG por tecnología Holter y la automatización e informatización del ECG que permitió la creación de marcapasos y desfibriladores; han permitido que el ECG se vuelva la herramienta básica de diagnóstico clínico. 1.2.3 ESTUDIO DE MERCADO Los dispositivos de adquisición de señales de ECG han evolucionado pasando de grandes y pesados a pequeños y livianos. Esto es debido a la miniaturización de integración desarrollada en la electrónica y a la tendencia del mercado a proveer al mercado de dispositivos fuera del ámbito sanitario. En este apartado se muestran una selección de dispositivos ECG que poseen una de las virtudes buscadas en el proyecto: la capacidad de ser portátiles o la precisión necesaria para operar en los centros de atención primaria. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 21 Uno de los fabricantes más eminentes en el sector sanitario es la marca holandesa Philips, además de otros sectores. En este apartado estudiaremos un producto de Philips de cada tipo. En cuanto a portabilidad tenemos como ejemplo el monitor Holter Philips Digitrax XT, un dispositivo que pesa 62 gramos y está destinado para su uso profesional, permitiendo la conexión de 12 derivaciones. Se trata de un instrumento pequeño pensado para ser portado de forma continua mientras se realiza la monitorización. Figura 5. Philips Digitrax XT Otro producto sanitario de la marca Philips es el MP70. Estrictamente hablando no es solo un electrocardiograma, sino que se trata de una plataforma basada en módulos, como pueden ser pulsioximetría, capnografía, presión arterial, espirometría, electroencefalograma, etc. Decir que se trata de un dispositivo de tamaño reducido táctil que se usa en los desplazamientos del paciente de un área a otra, y que la plataforma posee una pantalla de mayor tamaño donde se muestran la totalidad de los módulos de sensores conectados. Figura 6. Intellivue MP70 Aunque no es un objetivo buscado del proyecto, existe en el mercado una gama de desfibriladores que permiten monitorizar las ondas electrocardiográficas. Su máximo exponente, ya que está muy extendido en el ámbito del transporte sanitario, es el LIFEPAK 1000, de Physio-Control. Como curiosidad hay que decir que para monitorizar solo usa dos derivaciones, que corresponden a los 2 electrodos usados para desfibrilar y que posee una Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 22 tecnología de desfibrilación automática externa (AED), que permite un uso sencillo. En este sector también encontramos a Omron, fabricante japonés que dispone en el mercado del dispositivo Omron Portable ECG Monitor HCG-801 y al contrario que los dispositivos de Philips, no está destinado para el uso profesional. Lo novedoso de este dispositivo es que no necesita de derivaciones con electrodos para medir ECG, sino que posee una estructura ergonómica en donde el agarre tiene placas metálicas que realizan tal función. Figura 7. Omrom HCG-801 Otro producto es ChoiceMMed MD100E, de la empresa china ChoiceMMed. Posee características similares a las presenciadas en El dispositivo de Omron, pero añadiendo una pantalla a color y una interfaz más atractiva para el usuario. Figura 8. ChoiceMMed MD100E Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 23 También existen productos de origen español, como es Nuubo, que provee de 2 tipos de ECG. El primero de ellos es nECG Minder, de un tamaño similar a un pulsómetro, que es capaz de enviar inalámbricamente la información registrada. Otro producto de Nuubo menos habitual es nECG Textile, que se trata de una prenda de tejido con electrodos flexibles que permite la captación de las señales electrocardiográficas junto con el nECG Minder. Figura 9. Nuubo nECG Minder y nECG Textile De este estudio de mercado, en el cual se podrían haber introducidos otros dispositivos presentes en el mercado, se han mencionado los más representantes por sus cualidades peculiares que se quieren trasladar al proyecto propuesto: precisión, portabilidad, interfaz gráfica táctil y radiofrecuencia. 1.3 PULSIOXIMETRIA La pulsioximetría consiste en la obtención de la saturación parcial de oxígeno en sangre (SpO2) además de adquirir secundariamente el pulso cardiaco, a por medio de sendos haces de luz roja e infrarroja que atraviesa tejido conectivo. La pulsioximetría no mide la presión de oxigeno (PaO2), la presión de dióxido de carbono (PaCO2) o el pH, por lo que no sustituye totalmente la gasometría en la valoración completa de los enfermos respiratorios. En cambio sí es una técnica muy útil por su sencillez, rapidez, fiabilidad, reproducibilidad e inocuidad. Su utilización está cada vez más extendida, tanto a nivel hospitalario como en la medicina primaria y ambulatoria. Sirve igualmente para realizar exploraciones puntuales como para la monitorización continua de pacientes con insuficiencia respiratoria. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 24 En el siguiente apartado se ha realizado un resumen de diferentes aspectos técnicos y fisiológicos de la pulsioximetría. Una descripción detallada se puede obtener en las referencias [28], [34], [35]. 1.3.1 OXIGENACIÓN TISULAR Las células del cuerpo necesitan de un aporte de oxígeno (O2) para realizar la respiración aeróbica en la consecución de obtención de energía. La energía liberada en la respiración es usada en la síntesis de adenosin-trifosfato (ATP) para ser almacenada y utilizado después en procesos que requieran energía, como biosíntesis, locomoción o el transporte de moléculas a través de membranas celulares. La obtención del oxígeno que requiere el organismo se produce por el intercambio gaseoso entre el ambiente exterior y la sangre, denominada hematosis, en la que intervienen tanto el sistema respiratorio como el circulatorio. El aire ingresa al cuerpo por la nariz o la boca, recorriendo la faringe, la laringe y descendiendo por la tráquea, bronquios y bronquiolos hasta llegar a los alveolos pulmonares donde se produce el intercambio gaseoso en la barrera alveolo-capilar. Este proceso de intercambio gaseoso entre la sangre y los diferentes tejidos se denomina respiración tisular. La reacción química global de la respiración es la siguiente: 𝐶6𝐻12𝑂6+ 6𝑂2 → 6𝐶𝑂2+ 𝐻2𝑂 + 𝑒𝑛𝑒𝑟𝑔𝑖𝑎 (𝐴𝑇𝑃) El oxígeno inspirado fluye de los alveolos en que se encuentra a alta presión parcial a la sangre desoxigenada y de baja presión parcial para ser llevado a las células que lo requieran para obtener energía, denominado respiración celular aeróbica. Por otra parte el dióxido de carbono (CO2) se obtiene como desecho del metabolismo celular y se concentra en el plasma sanguíneo en forma de bicarbonato (HCO3), hasta que llega a los pulmones donde se disocia en agua (H2O) y dióxido de carbono (CO2), donde este último se difunde en sentido contrario a los alveolos para ser eliminado mediante la exhalación junto con el vapor de agua residual. Las técnicas existentes en la medición de oxígeno disuelto en la sangre se pueden diferenciar en el modo de obtención de los resultados, pudiendo ser de manera invasiva o no invasiva. En este primer grupo pertenecen la espectrofotometría de análisis de la hemoglobina (Hb) y la oximetría fibróptica de saturación de oxihemoglobina, mientras que de manera no invasiva esta la oximetría de pulso (SpO2) de medición de saturación de Hb. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 25 Figura 10. Hematosis Todas estas técnicas se basan en principios espectrofotométricos que miden las porciones de luz transmitidas y/o absorbida por parte de la Hb. La oximetría consiste en la interpretación de la coloración sanguínea debida a la saturación arterial de oxigeno (SaO2). El cambio de color es de la sangre al saturarse de oxigeno se debe a las propiedades ópticas de la hemoglobina (concretamente del grupo hemo de la molécula). A medida que la sangre se desoxigena, se vuelve menos permeable a la luz roja al perder oxihemoglobina (HbO2) y el tejido se vuelve de un color azulado. Por lo tanto el oxímetro de pulso mide la absorción de longitudes de onda específicas que dependerán de la proporción existente entre HbO2 y Hb. La luz consiste en paquetes de energía denominados cuantos. La intensidad de un rayo de luz depende de la cantidad de cuantos generados por segundo. Los átomos se hallan en constante vibración, y estas vibraciones son similares a las que generan las ondas luminosas. En general, la luz es absorbida al llegar a una sustancia cuando la frecuencia luminosa coincide con la vibración de los átomos de esa sustancia. Las características vibratorias de una determinada molécula pueden representarse como un espectro, es decir, un gráfico de absorbancia de energías electromagnéticas por la molécula a diversas longitudes de onda. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 32 1.4.1 HARDWARE Arduino UNO está basado en el micro controlador ATMEGA 328. Tiene 14 pines digitales entrada/salida, de los cuales 6 pueden ser configurados como salidas analógicas PWM, 6 entradas analógicas, un reloj de frecuencia a 16MHz, conector USB, powerjack, pin programador ICSP y botón de reset. Mencionar que no posee el típico chip conversor USB-Serial de FTDI, sino que modifica un ATMEGA16U2mediante software para tal propósito. ALIMENTACION La placa tiene todos los componentes necesarios para ser alimentados a través de un puerto USB, conversor AC/DC procedente de la red o mediante baterías. El rango de alimentación admitido por Arduino está entre 6-20V, pero si se usan menos de 7V existe la posibilidad de que no haya 5V estabilizados a la salida y si es mayor a 12V el regulador lineal se puede sobrecalentar y dañar la circuitería, por eso se recomendando un voltaje en el rango de 7-12V. Los pines de alimentación son los siguientes: - VIN: Suministra la tensión a la que está alimentada la placa cuando esta es externa (como oposición a los 5V procedentes de la alimentación USB). - 5V: Suministra la salida procedente del regulador de tensión. Esta alimentación procede de USB, AC/DC o baterías. - 3V3: Suministra la salida procedente del regulador de tensión. - GND: Pines a masa. - IOREF: Proporciona la tensión a la que esta referenciado el microcontrolador. MEMORIA El chip ATMEGA328 posee 32KB de memoria, de los cuales 0,5KB están reservados para el Bootloader, además de poseer 2KB de SRAM y 1KB de EEPROM. ENTRADAS/SALIDAS Cada uno de los 14 pines digitales puede ser utilizados como entradas/salidas mediante las funciones relativas a su estado. Trabajan a 5V con un suministro máximo de corriente de 40mA y poseen una resistencia interna de pull-up. Además diversos pines tienen funciones especializadas: Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 33 - Serial: RX (0) y TX (1) usados para recibir y transmitir datos serie TTL. - Interrupciones: 2 y 3 pueden ser configurados mediante la función apropiada para capturar interrupciones tanto por flanco de subida como de bajada. - PWM: 3, 5, 6, 9, 10 y 11 proveen mediante función una tensión de salida con resolución de 8 bits. - SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK) permiten la gestión y comunicación de periféricos mediante librerías. - LED: 13, se trata de un pin SMD soldado en placa que cuando está en estado HIGH se enciende y en LOW se apaga. Posee además 6 pines analógicos con un rango de lectura de 0-5V del que es posible cambiar su límite superior e inferior. Posee 2 pines analógicos de funciones especializadas: A4 (SDA) y A5 (SCL) que permiten la comunicación TWI/I2C. Otros pines analógicos son AREF que es el voltaje de referencia de los pines analógicos y RESET que mediante un flaco de bajada provoca el reset del micro. 1.4.2 SOFTWARE La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje de alto nivel Processing. Sin embargo es posible utilizar otros lenguajes de programación y aplicaciones en Arduino debido a que Arduino utiliza la transmisión de serial de datos soportada por la mayoría de lenguajes. En cuanto al lenguaje de programación que está basado en Wiring, escrito en Java y soporta todas la funciones de lenguaje C/C++ para la gestión más sencilla de los pines de entrada/salida. Todo ello es posible mediante librerías adjuntas con el programa. 1.4.3 HISTORIA DE ARDUINO Los comienzos de Arduino se encuentran en el año 2003, en un instituto dedicado a la enseñanza de diseño interactivo en la ciudad de Ivrea, Italia. Massimo Banzi, uno de sus docentes, propuso el diseño de su propia placa hardware para el trabajo con sus estudiantes, debido a los altos precios del hardware de la época. Basados en trabajos anteriores, Massimo Banzi y David Cuartielles reunieron un equipo de trabajo y, abriendo el proyecto a la red en forma de software y hardware libre, se permitió en 2005 a la fabricación de las primeras placas. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 34 1.5 ANDROID Android es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como smartphones y tablets [7]. Fue desarrollado inicialmente por Android Inc., una firma adquirida por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de software, hardware y operadores de servicios. Tiene una gran comunidad de desarrolladores de aplicaciones que a fecha de hoy sobrepasan las mil millones de aplicaciones disponibles en la tienda oficial de Android: Google Play. Las aplicaciones están escritas en lenguaje de programación Java y la mayor parte del código Android está liberalizado mediante licencia Apache. Para el desarrollo de aplicaciones por parte de los usuarios, Google tiene disponible en el sitio web oficial de Android un kit de desarrollo de software o SDK que provee de librerías API y herramientas de desarrollo necesarias para crear, testear y depurar aplicaciones Android. EL programa utilizado para el desarrollo de aplicaciones Android proporcionado por Google es Eclipse, que permite la programación de aplicaciones en Java y mediante un addon también en C/C++ La arquitectura del sistema operativo Android es: - Núcleo Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software. - Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida "dx" Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 35 - Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas características se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementación biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras. - Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario. - Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java. En cuanto a las características de la actual versión de Android 4.4 KitKat: Diseño de dispositivo La plataforma es adaptable a pantallas de mayor resolución, VGA, biblioteca de gráficos 2D, biblioteca de gráficos 3D basada en las especificaciones de la OpenGL ES 2.0 y diseño de teléfonos tradicionales. Almacenamiento SQLite, una base de datos liviana, que es usada para propósitos de almacenamiento de datos. Conectividad Android soporta las siguientes tecnologías de conectividad: GSM/EDGE, IDEN, CDMA, EVDO, UMTS, Bluetooth, WiFi, LTE, HSDPA+, HSPA+, NFC , WiMAX y GPRS. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 36 Mensajería SMS y MMS son formas de mensajería, incluyendo mensajería de texto y ahora la Android Cloud to Device Messaging Framework (C2DM) es parte del servicio de Push Messaging de Android. Navegador web El navegador web incluido en Android está basado en el motor de renderizado de código abierto WebKit, emparejado con el motor JavaScript V8 de Google Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una puntuación de 100/100 en el test Acid3. Soporte de Java Aunque la mayoría de las aplicaciones están escritas en Java, no hay una máquina virtual Java en la plataforma. El bytecode Java no es ejecutado, sino que primero se compila en un ejecutable Dalvik y corre en la Máquina Virtual Dalvik. Dalvik es una máquina virtual especializada, diseñada específicamente para Android y optimizada para dispositivos móviles que funcionan con batería y que tienen memoria y procesador limitados. El soporte para J2ME puede ser agregado mediante aplicaciones de terceros como el J2ME MIDP Runner. Soporte multimedia Android soporta los siguientes formatos multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HEAAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP.41 Soporte para streaming Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5 <video> tag). Adobe Flash Streaming (RTMP) es soportado mediante el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estará disponible mediante una actualización de Adobe Flash Player. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 37 Soporte para hardware adicional Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de presión, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y 3D. Entorno de desarrollo Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de Herramientas de Desarrollo de Android. Google Play Google Play es un catálogo de aplicaciones gratuitas o de pago en el que pueden ser descargadas e instaladas en dispositivos Android sin la necesidad de un PC. Multi-táctil Android tiene soporte nativo para pantallas capacitivas con soporte multi-táctil que inicialmente hicieron su aparición en dispositivos como el HTC Hero. La funcionalidad fue originalmente desactivada a nivel de kernel (posiblemente para evitar infringir patentes de otras compañías). Más tarde, Google publicó una actualización para el Nexus One y el Motorola Droid que activa el soporte multi-táctil de forma nativa. Bluetooth El soporte para A2DP y AVRCP fue agregado en la versión 1.5; el envío de archivos (OPP) y la exploración del directorio telefónico fueron agregados en la versión 2.0; y el marcado por voz junto con el envío de contactos entre teléfonos lo fueron en la versión 2.2.</ref>. Video llamada Android soporta video llamada a través de Google Talk desde su versión HoneyComb. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 38 Multitarea Multitarea real de aplicaciones está disponible, es decir, las aplicaciones que no estén ejecutándose en primer plano reciben ciclos de reloj. Características basadas en voz La búsqueda en Google a través de voz está disponible como "Entrada de Búsqueda" desde la versión inicial del sistema. Tethering Android soporta tethering, que permite al teléfono ser usado como un punto de acceso alámbrico o inalámbrico (todos los teléfonos desde la versión 2.2, no oficial en teléfonos con versión 1.6 o inferiores mediante aplicaciones disponibles en Google Play (por ejemplo PdaNet). Para permitir a un PC usar la conexión de datos del móvil android se podría requerir la instalación de software adicional. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 39 2 DESARROLLO 2.1 REQUISITOS DEL DISEÑO Los requisitos del diseño derivan tanto de los objetivos propuestos para el desarrollo del proyecto como del estudio de mercado realizado previamente. Así pues las características deseadas en el prototipo son: - Diseño modular portable y expandible de bajo coste. - Capturar las señales biológicas del cuerpo y procesar la información contenida en ellas. - Transmitir los datos de forma inalámbrica. - Mostrar los datos obtenidos en una plataforma portátil como Smartphone o Tablet. - Alimentar todo el sistema mediante baterías o desde la red eléctrica. - Sistema basado en software actualizable y lenguaje de fácil manejo. - El uso de plataformas tanto en hardware como software libre. El cumplimiento de los requisitos comentados, junto con los problemas asociados a la implementación, se desarrollaran en los siguientes apartados en los que se describe con detalle aspectos tanto de software y hardware relevantes en el proyecto. Dado que el proyecto tiene como base el Arduino, se implementara todo el hardware en un shield para Arduino que aunara los 3 circuitos electrónicos de los que consta el proyecto. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 40 2.2 DISEÑO FUNCIONAL En este apartado se va a presentar a nivel funcional los distintos circuitos que conforman el proyecto y que irán en una misma PCB, que son: - Electrocardiograma. - SpO2. - Circuito comunicación XBEE. La electrocardiografía es una técnica básica ampliamente usada en el ámbito médico para detectar el mal funcionamiento del corazón. A pesar de su extendido uso, no existe una normativa clara que armonice la disposición interna de los dispositivos de captura. No obstante, existen recomendaciones basadas en las experiencias de los especialistas de la materia que permiten diseñar dispositivos fiables y precisos. Debido a los objetivos propuestos anteriormente en referencia al proyecto, en el apartado concerniente al ECG será de tipo Holter; es decir, de monitorización continuada. En la siguiente figura se presenta el diagrama de bloques del circuito de ECG. Figura 14. Diagrama de bloques circuito ECG Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 41 La pulsioximetría es un método no invasivo que permite la medición de la saturación de oxígeno en sangre, añadiendo la posibilidad de medir conjuntamente las pulsaciones por minuto. De igual modo que con el electrocardiograma, no existe una norma clara de cómo ha de ser la disposición interna de un pulsioxímetro y poca información del modo de procesado se las señales. Debido a las premisas del proyecto, se ha optado por un sistema doble de instrumentación para la reducción de los tiempos; de modo que se permita la monitorización continuada. En la siguiente figura se presenta el diagrama de bloques del circuito del SpO2. EL circuito asociado a la comunicación inalámbrica mediante XBEE esta sacado de la página web de Arduino, que a su vez está en la página web de Cooking Hacks, ya que esta publicado como hardware libre con licencia de Creative Commons Attribution Share-Alike. El Xbee Shield permite al Arduino conectarse inalámbricamente con Zigbee. Está basado en el módulo Xbee de MaxStream. Tienen un alcance máximo de 90 metros en línea directa en el exterior o de 30 metros en el interior. El Xbee Shield fue desarrollado por Libelium en colaboración con Arduino, para su uso en redes de sensores Squidbee motes. Figura 15. Diagrama de bloques circuito SpO2 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 48 Aplicando el valor de los componentes: 𝐺=1+390𝐾 20𝐾=20.5 𝑓= 1 2𝜋∙390𝐾∙1𝑛𝐹=8683𝐾𝐻𝑧 Adicionalmente el circuito provee de una protección al paciente ante sobre tensiones limitando la corriente que circula entre el paciente y la masa virtual. Aunque no es una medida de protección efectiva a elevadas sobretensiones, la placa Arduino posee sus propios sistemas de protección que ayudan a este último. 2.3.1.1.4 ETAPA DIFERENCIAL Esta etapa es la principal del circuito, puesto que resta las ondas procedentes de los electrodos de los brazos y amplifica la onda resultante para posteriores filtrados. Sin embargo la medida de señales eléctricas producidas por el cuerpo humano en general, y en específico una señal de electrocardiograma, requieren de grandes prestaciones de los equipos que muestrean estas señales. Estas prestaciones exigentes son, junto con las propias del proyecto: - Alto rechazo en modo común (CMRR). - Acoplo en alterna. - Alta impedancia de entrada. - Componentes Rail-to-Rail de alimentación unipolar. - Bajo nivel de offset de salida. Estas especificaciones las cumplen los OPA2333 utilizados en etapas anteriores, pero no han sido fabricados para trabajar con señales eléctricas producidas por el cuerpo humano. Por ello en esta etapa tan crítica se una un amplificador de instrumentación para esta tarea. Aunque esta etapa se podría construir este componente mediante componentes discretos, pero no se obtendrían las mismas prestaciones que con un circuito integrado. Además de las características antes mencionadas, decir que es capaz de proporcionar una señal de salida referenciada a masa a partir de señales con punto de referencia flotante respecto al sistema de medida. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 49 Figura 19. Amplificador de instrumentación INA333 El amplificador de instrumentación elegido es el INA333AIDGKR, del que cabe destacar que el fabricante Texas Instruments lo recomienda para la construcción de electrocardiogramas. Entre sus características más notables destacan: - Alimentación unipolar con un consumo de 50µA, prestaciones ideales para una alimentación mediante batería. - Nivel de rechazo de modo común igual o mayor a 100dB. - Bajo offset de salida, deriva térmica y ruido. La ecuación de salida de la etapa es la siguiente: 𝑉𝑂𝑈𝑇 =(1+(100𝐾𝑅𝑔 ⁄))∙(𝑉𝐼𝑁+−𝑉𝐼𝑁−) Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 50 Figura 20. Etapa diferencial con INA333 en circuito ECG Esta es la primera etapa de dos que amplifica la señal electro cardiográfica. La amplificación total del circuito será al final de 1000, dividiéndose en 5 y 200 cada una. En esta primera etapa: 𝑅=100𝐾𝐺 ⁄−1=100𝐾5 ⁄ −1=24𝐾9 ~ 25𝐾 2.3.1.1.5 RESTAURADOR NIVEL DE CONTINUA A la salida de la etapa diferencial el modo común de la señal de salida prácticamente ha desaparecido, y asumiendo que las señales de entrada estuvieran equilibradas, la señal de salida no tiene nivel de continua. Dado que el diseño propuesto trabaja con alimentación unipolar, es preciso crear un punto de referencia o masa virtual centrado en el rango de tensión posible a la que la señal de ECG este superpuesta. Para la obtención de nivel de referencia se ha optado por un circuito sencillo que tiene como núcleo un amplificador operacional OPA2333. El uso de este componente se debe a sus buenas prestaciones comentadas en apartados anteriores, como son su alta impedancia de entrada, bajo offset y bajo consumo. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 51 Figura 21. Circuito restaurador del nivel de continua Se hace pasar la tensión de alimentación de 5V por un divisor de tensión simétrico para la obtención de la mitad de alimentación. El valor elevado de las resistencias se debe a la limitación de la corriente circulante por ellas, en el orden de los µA. 𝑉+=𝑉𝑖𝑛 𝑅17 𝑅16+𝑅17=5𝑉∙ 1𝑀 1𝑀+1𝑀=2,5V El uso de un condensador en paralelo a la resistencia que soporta la tensión requerida es para estabilizar dicha tensión frente a posibles fluctuaciones en la red de alimentación, por ello su elevado valor de 1µF. Se utiliza además el IC3A como seguidor de tensión para adaptar impedancias entre etapas. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 52 2.3.1.1.6 FILTRO PASO ALTO Aunque se ha comentado anteriormente que la salida etapa diferencial elimina la componente en modo común de la señal, por lo que no hay nivel de continua, lo cierto es que existe un offset de salida de la etapa debido al desbalance de las señales de entrada. En adición a lo anterior, este offset es además variable atendiendo al movimiento producido por la respiración o de la interfaz electrodo-paciente. Por todo ello es recomendable incluir en el circuito una etapa que realimente la señal de salida del propio amplificador de instrumentación a través de una etapa integradora añadiéndole además la tensión restauradora del nivel de continua, permitiendo así que el circuito esté acoplado en alterna. Figura 22. Filtro paso alto realimentando por referencia Hay que tener en cuenta que esta configuración de etapa integradora da como resultado un filtro paso alto de primer orden, cuya frecuencia de corte permite delimitar frecuencias propias de un electrocardiograma. Dependiendo de la frecuencia de corte del filtro, se eliminarían componentes frecuenciales importantes de la señal electrocardiográfica. Se establece que esta frecuencia de corte no debe ser superior a 1Hz. 𝑓𝑐=1 2∙𝜋∙𝑅10∙𝐶5=1 2∙𝜋∙318𝐾∙1𝜇𝐹=0,5𝐻𝑧 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 53 2.3.1.1.7 FILTRO PASO BAJO La frecuencia fundamental del complejo QRS se haya entorno a los 10Hz, extendiéndose la información hasta los centenares de hercios, mientras que a frecuencias entrono a los 1Hz-2Hz se encuentra la fundamental de la onda T. Aunque existe un amplio rango de frecuencias, distintas incluso entre personas, y no haber una normativa aclaratoria, se toman como referencias de diseño estudios previamente realizado, siendo el rango recomendado de frecuencias ira entre los 0,05Hz y los 150Hz. Aunque en la literatura documentada se observan diseños de filtro paso bajos de orden 2 a 4, se ha optado por un filtro activo de primer orden por las recomendaciones incluidas en el datasheets del amplificador de instrumentación INA333. Al existir muchos tipos de filtros con distintas características, se ha usado el programa FilterPro de Texas Instruments para el diseño de los filtros de los distintos circuitos del proyecto. En esta etapa de filtrado se ha elegido una etapa integradora activa de primer orden: Figura 23. Filtro paso bajo A parte de filtrar la señal, sirve para amplificarla. Esta etapa ha de tener una ganancia de 200 para llegar a la ganancia total de circuito deseada de 1000. La inclusión de la resistencia R8 es para dar estabilidad a la etapa y menor a los MΩ para que no se induzcan ruidos. Las ecuaciones de la etapa son: Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 54 𝐹(𝑠)=−𝑅8 𝑅9 1+𝑠∙𝑤∙𝑅8∙𝐶3 𝐺=𝑅8 𝑅9=100𝐾 500Ω=200 𝑓𝑐=1 2∙𝜋∙𝑅8∙𝐶3=1 2∙𝜋∙100𝐾∙10𝑛𝐹=159,15𝐻𝑧 2.3.1.1.8 FILTRO NOTCH Debido a la posibilidad de alimentar el circuito desde la red eléctrica, existe la posibilidad de que se filtre la frecuencia de red a la señal del circuito mediante la alimentación de los amplificadores operacionales del circuito. Para ello en primera instancia se colocan condensadores cerámicos de bajo valor para filtrar las líneas de alimentación de cada uno de los AO´s. Esta medida elimina efectos perniciosos, pero como se trata de un sistema electrónico con señales a tratar en el que su rango de frecuencias pasa por los 50Hz, se añade una etapa de filtrado de banda prohibida o notch. Figura 24. Filtro notch activo Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 55 Tomamos al principio que: 𝑅15=𝑅14 2=𝑅13 2 →𝑅14=𝑅13=𝑅,𝑅15=𝑅 2 𝐶8=2∙ 𝐶6=2 ∙ 𝐶7 →𝐶6=𝐶7=𝐶,𝐶8=2𝐶 Las ecuaciones extraídas de esta etapa son: 𝑉𝐼𝑁𝐹𝑂−𝑉1 1𝑠𝐶 ⁄=𝑉1−𝑉+ 1𝑠𝐶 ⁄+𝑉1−𝑉𝐸𝐶𝐺 𝑅 (1) 𝑉𝐼𝑁𝐹𝑂−𝑉2 𝑅=𝑉2−𝑉+ 𝑅+𝑉2 1𝑠𝐶 ⁄ (2) 𝑉1−𝑉+ 1𝑠𝐶 ⁄=𝑉2−𝑉+ 𝑅 (3) 𝑉+=𝑉−=𝑉𝐸𝐶𝐺 (4) De donde se obtiene la siguiente ecuación combinando a las cuatro anteriores: 𝐹(𝑠)=𝑉𝐸𝐶𝐺 𝑉𝐼𝑁𝐹𝑂 =1+(𝑠𝐶𝑅)2 1+2𝑠𝐶𝑅+(𝑠𝐶𝑅)2 (5) Esta ecuación se puede reescribir de la siguiente manera: 𝐹(𝑠)=1 (𝑅𝐶)2+𝑠2 1 (𝑅𝐶)2+2 𝑅𝐶𝑠+𝑠2 𝑜𝑏𝑡𝑒𝑛𝑖𝑒𝑛𝑑𝑜 𝑤0=1 𝑅𝐶 Por tanto, los valores normalizados de los componentes discretos para una frecuencia de 50Hz son, tomando C=1µF: 𝑅= 1 2∙𝜋∙𝐶∙𝑓=1 2∙𝜋∙1𝜇𝐹∙50𝐻𝑧=3𝐾3 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 56 2.3.1.2 PULSIOXIMETRO 2.3.1.2.1 CIRCUITO DRIVER LEDS Este circuito permite el control del encendido y apagado alterno de los leds de la sonda Nellcor Adult SpO2. El circuito está diseñado con componentes discretos con un sistema de doble interruptor en una misma línea, por estar los led en anti paralelo. Figura 25. Circuito controlador de Leds El circuito está alimentado por tensión unipolar y tiene dos interruptores transistorizados para la iluminación del led. Se trata de un sistema de interruptores transistorizados de tipo 1, por lo que su control de producirá mediante la aplicación desde los pines del Arduino de una tensión lógica. Para el estudio del circuito tomamos la rama controladora del led rojo de la sonda: Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 57 Figura 26. Rama de control de Led La primera etapa transistorizada contiene un transistor PNP, y la segunda un transistor NPN. Sabiendo esto se procede a averiguar los valores de las entradas digitales para que se encienda el led: 𝑄3𝑆𝐴𝑇𝑈𝑅𝐴𝐷𝑂 → 𝑉𝐷𝐼𝐺1 <5𝑉−𝑉𝐸𝐵 𝑄2𝑆𝐴𝑇𝑈𝑅𝐴𝐷𝑂 → 𝑉𝐷𝐼𝐺4 >𝑉𝐵𝐸 𝑉𝐸𝐵𝑃𝑁𝑃=𝑉𝐵𝐸𝑁𝑃𝑁=0,7𝑉 𝑉𝐸𝐶𝑃𝑁𝑃=𝑉𝐶𝐸𝑁𝑃𝑁=0,2𝑉 Cumpliendo estas premisas, se tiene que se activa Q3 aplicando una tensión de 0V y se activa Q2 con 5V. Los valores de resistencia de base son normalizados para que la corriente de base sea de mA. Ahora se puede calcular la resistencia de carga que fija la corriente circulante por el diodo led: 𝑅𝐿=𝑅9=5𝑉−𝑉𝐸𝐶 −𝑉𝐶𝐸 −𝑉𝐹 𝐼 Teniendo en cuenta que la corriente óptima para que ilumine el led esta entre 15mA y 40mA, cuya tensión de forward es de 2V, tomamos como corriente 26mA y sustituimos en la ecuación: 𝑅9=5𝑉−0,2𝑉−0,2𝑉−2𝑉 26𝑚𝐴 =2,6𝑉 26𝑚𝐴=100Ω Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 64 2.3.1.2.6 ETAPA DIFERENCIAL Para el cálculo de la saturación de oxígeno, es necesario procesar la señal tanto alterna como continua para, a través de ecuaciones en el µC, hallar el dato. Como en la etapa anterior se ha obtenido el nivel de alterna de la señal muestreada, una forma de obtener el nivel de continua es restar a la señal original que contiene ambas la señal alterna de la etapa anterior, obteniendo el nivel de continua. Aunque se podría realizar esta etapa mediante componentes discretos con resistencias y amplificadores operacionales creando una etapa restadora, se ha optado por el uso de amplificadores operacionales de instrumentación para tal cometido. Esto es debido a que un circuito integrado tendrá mejores prestaciones que el mismo circuito realizado mediante componentes discretos. Esta etapa permite además amplificar la señal para dejarla en el mismo orden que la señal alterna. Figura 33. Etapa diferencial con INA333 en SpO2 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 65 2.3.1.3 MODULO DE COMUNICACIÓN En una primera instancia se iba a integrar en la placa un circuito de instrumentación para el control y transmisión de datos mediante módulos Xbee de MaxStream, adaptando para la placa de comunicación Xbee Shield de Libelium puesto que permite el uso de múltiples tecnologías de comunicación como Bluetooth, WiFi, 802, etc. Figura 34. Circuitería auxiliar para habilitar la comunicación Xbee Esta imagen representa el control de Reset de la placa y a su vez del módulo Xbee, la regulación de tensión necesaria para alimentar el módulo Xbee y el socket Xbee. Mientras que la imagen inferior representa el circuito esquemático de la circuitería para control del Xbee. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 66 Figura 35. Circuitería auxiliar para el control de un módulo Xbee Se comprobó posteriormente que en los centros hospitalarios como el Hospital Clínico Universitario Lozano Blesa poseen una red WiFi interna por lo que se propuso para el proyecto el uso de esta red WiFi para el proyecto. Para ello se pensó en el uso de una aplicación Android para la monitorización de datos, para lo que es necesario un servidor WiFi entre la placa Arduino/Shield y el Smartphone. Por lo tanto existían dos opciones para la creación de este servidor web: alojar las tramas de datos en un servidor web ya existente en la red o bien crear un servidor web WiFi. Se optó por lo segundo ya que la primera opción requiere de una conexión a internet mediante una red WiFi ya existente y a que los centros médicos están construidos generalmente con hormigón y en algunas partes con planchas de plomo por lo que la comunicación con una red WiFi es casi imposible. Por ello se ha decidido por el uso es un shield WiFi Arduino pues puede crear una zona WiFi a su alrededor y alojar el servidor en una tarjeta SD del propio shield. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 67 Figura 36. Arduino WiFi Shield Esta elección se debe a que el primer circuito ideado no permitía la creación de un servidor web WiFi por medio de los módulos de comunicación WiFi de MaxStream. Otra de las razones es que el tamaño de la placa es reducido y no permite la inclusión de la circuitería necesaria para la comunicación del Xbee, solo se aprovecha el circuito referente al botón de Reset del conector ICSP y el led de iluminación para saber si recibe energía la placa. Para añadir, decir que existen ya las librerías necearías para el funcionamiento y creación de un servidor web WiFi creadas por la comunidad Arduino, pero que se tratara en apartados posteriores. 2.3.1.3.1 ARDUINO WIFI SHIELD La placa Arduino WiFi Shield permite a una placa de Arduino conectarse a internet mediante el protocolo de comunicación 802.11 de comunicación inalámbrica (WiFi). Está basado en el HDG104 Wireless LAN 802.11b/g System in Package (SiP) y en el Atmega 32UC3 que provee de una IP estática para los protocolos TCP y UDP. El WiFi Shield puede conectarse a redes que operen tanto en el protocolo 802.11b como al 802.11g. Existe una ranura para alojar una tarjeta de memoria microSD en la que se pueden almacenar los datos procedentes de la red. La plataforma Arduino se conecta al WiFi Shield a mediante el bus SPI del conector ICSP. Tiene la posibilidad de ser acoplado a un Arduino UNO o a uno MEGA. Por ello, los pines utilizados por este módulo son los pines digitales 11, 12, y 13 del UNO o los pines digitales 50, 51 y 52 del MEGA. En ambos Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 68 Arduinos, los pines analógicos son el 4, el 7 y el 10. Estos pines permiten junto al conector ICSP un acoplo entre la placa Arduino y el WiFi Shield Figura 37. Pines Arduino WiFi Shield El módulo HDG104 mediante el pin 10 y el socket de la SD mediante el pin 4 comparte el bus SPI del conector ICSP, por lo que no pueden estar activos ambos al mismo tiempo y es necesario su configuración mediante las distintas librerías disponibles. Para la carga de firmware para la actualización de drivers se realiza a través de un conector miniUSB para el microcontrolador Atmega 32U, y previa configuración de jumpers. Posee además una serie de indicaciones led que permiten saber información: - L9 (amarillo): Conectado al pin 9 e informa sobre la conexión al Arduino. - LINK (verde): Indica la conexión a una red. - ERROR (rojo): Indica cuando hay un error en la comunicación. - DATA (azul): Indica cuando se están transmitiendo/recibiendo datos. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 69 2.3.1.4 PRUEBAS DISEÑO HARDWARE Una vez realizado el diseño hardware, se procedió a su realización física en el laboratorio para la comprobación de su correcto funcionamiento tal y como se tenía previsto. En una primera instancia se desarrolló el hardware del proyecto en placas de prototipado, utilizando para ello componentes pedidos a los maestro de taller. Se realizaron los dos tipos de circuitos y se probaron con fuentes de alimentación y osciloscopio procedentes del taller de proyectos. Figura 38. Placa de prototipado con ECG Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 70 Figura 39. Placa de prototipado con SpO2 Cabe mencionar que en prototipado del circuito de pulsioximetría no se incorporó el integrado ADG513 pues su función únicamente reside en dar tiempo a la descarga de condensador para minimizar los retardos de señal, y solo se comprobó el funcionamiento del driver de leds y la forma de onda resultante. Los resultados obtenidos por estos circuitos en el laboratorio, ilustrados en las siguientes imágenes, demuestran un diseño correcto a lo ideado en la fase de diseño. En la imagen que representa la captura de la onda electrocardiográfica se observa perfectamente el complejo QRS captado, mientras que en la imagen de pulsioximetría lo que se observa es la conversión en voltios de la absorción de luz por parte de la hemoglobina. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 71 Figura 40. Onda electrocardiográfica Figura 41. Onda infrarroja de pulsioximetría Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 72 Después de realizar estas pruebas, se realizó una PCB con componentes THD para comprobar la minimización de las interferencias producidas en el laboratorio de proyectos, al encontrarse allí antenas que emiten en una frecuencia de amplio espectro, siendo los resultados óptimos. Figura 42. PCB prototipo Por añadir, decir que esta placa se realizó con componentes existentes en los laboratorios de prácticas de la universidad, a excepción de los conectores, como los TL082 y los INA114 con resultados más que satisfactorios para unos componentes de propósito general y no especifico médico. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 73 2.3.1.5 DISEÑO PCB En cuanto al diseño por ordenador de la PCB, se optó por el uso del software de la empresa CadSoft Eagle [F]. Para su diseño se han utilizado librerías incluidas ya en el propio Eagle, como librerías importadas de páginas web de hardware libre como Sparkfun y Adafruit. Cabe destacar que se ha utilizado para que encaje perfectamente en un Arduino UNO una librería de Sparkfun que permite en el diseño tanto esquemático como de PCB de colocar los distintos componentes en un shield de Arduino. Para ello se realiza una correlación de los pines hábiles del Arduino y los pines tanto del shield del proyecto y de la placa WiFi Arduino. En cuanto a las dimensiones de la PCB se han adecuado al tamaño estándar de un shield de Arduino mediante una librería de Sparkfun para Eagle, con una dimensión de 68mm de largo por 53 mm de ancho. Debido a su reducida área para la disposición espacial de componentes, se optó por realizar el proyecto en una PCB en doble capa con componentes SMD excepto los conectores de sensores. El tamaño estándar de los componentes SMD es de 0402 para las resistencias y los condensadores de propósito general, mientras que condensadores debidos a su alto valor capacitivo son de dimensiones 0805 y los electrolíticos 1206. En cuanto a los conectores de la placa, se distinguen dos tipos, los que permiten la conexión del shield a la placa de Arduino y los que permiten la conexión de los dos tipos de sensores del proyecto. Respecto a los primeros se hace referencia a pines hembra de patillas largas (uno de 10 pines, dos de 8 pines y uno de 6 pines) que permiten tanto conectar el shield a la placa Arduino y conectar otros shield, y el conector ICSP ( dos por tres pines ) para alimentación, tierra, bus SPI y Reset. En referencia a los conectores de los sensores, tenemos el sensor de electrocardiografía y el sensor de pulsioximetría. El sensor de pulsioximetría es un conector DB9 macho, por lo que se ha incorporado al proyecto un conector DB9 hembra. El sensor de electrocardiografía se compone de tres cables, cada uno por cada derivación, por lo que se ha colocado en la placa un conector Phoenix Contact de tres pines MKDSN1,5/3-5,08. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 80 /* ECGwave.cpp - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ #include "ECGwave.h" ECGwaveClass::ECGwaveClass(){} void ECGwaveClass::initECGpower(void){ //pin analógico como entrada pinMode(AnalogECGPin, INPUT);} voidECGwaveClass:;readECGwave(void){ //obtención del valor analogECGvalue=(analogRead(AnalogECGPin)*/1023); //valor en V delay(10);} //pequeño retraso para la toma de un nuevo valor ECGwaveClass ECGwave=ECGwaveClass();  Visionado de onda electrocardiográfica en voltios. //Este código permite obtener un valor analógico de la onda //ECG #include “ECGwave.h” //Configuración del setup void setup() { initECGpower(); //función de configuración del pin } //Ejecución del loop void loop() { readECGwave(); //función de obtención del valor analógico Serial.print(analogECGvalue); //valor analógico por monitor Serial.println(“V”); } Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 81  Diagrama de flujo onda electrocardiográfica Figura 45. Diagrama de flujo onda electrocardiográfica Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 82  Librería onda Pletismográfica /* SPO2wave.h - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ // Ensure this librery description is only include once #ifndef SPO2waveClass_h #define SPO2waveClass_h #include "Arduino.h" #include "Wire.h" //Pin definitions #define AnalogSPO2Pin A1 //pin analógico onda SpO2 //Library interface description class SPO2waveClass { //creación de la clase public: //Constructor of the class SPO2waveClass(void); //Public methods void initSPO2power(void); //función para configurar el pin void readSPO2wave(void); //función para lectura de onda float analogSPO2value=0; //variable de valor analógico } extern SPO2waveClass SPO2wave; #endif /* SPO2wave.cpp - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ #include "SPO2wave.h" SPO2waveClass::SPO2waveClass(){} void SPO2waveClass::initSPO2power(void){ //pin analógico como entrada pinMode(AnalogSPO2Pin, INPUT);} voidSPO2waveClass:;readSPO2wave(void){ //obtención del valor analogSPO2value=(analogRead(AnalogSPO2Pin)*/1023); delay(10);} SPO2waveClass SPO2wave=SPO2waveClass();  Visionado de onda Pletismografica en voltios. //Este código permite obtener un valor analógico de la onda //SPo2 #include “SPO2wave.h” //Configuración del setup void setup() { initSPO2power(); //función de configuración del pin } //Ejecución del loop void loop() { readSPO2wave(); //función de obtención de valor analógico Serial.print (analogSPO2value); //valor analógico por monitor Serial.println (“V”); } Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 83  Diagrama de flujo onda pletismográfica Figura 46. Diagrama de flujo onda pletismográfica Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 84  Librería pulsaciones SpO2 /* SPO2ppm.h - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ // Ensure this librery description is only include once #ifndef SPO2ppmClass_h #define SPO2ppmClass_h #include "Arduino.h" #include "Wire.h" //Pin definitions #define digitalSPO2Pin 5 //pin digital pulsaciones SpO2 //Library interface description class SPO2ppmClass { //creación de la clase public: //Constructor of the class SPO2ppmClass(void); //Public methods void initSPO2ppmpower(void); //función de inicio del pin void readSPO2ppm(void); //función de lectura sensor unsigned long SPO2time=0; // tiempo unsigned long SPO2starttime=2000; // tiempo de inicio unsigned long SPO2frecuency=0; //pulsaciones unsigned long SPO2death=0; //señal de peligro int SPO2input=0; //señal de entrada int SPO2lastinput=0; //anterior señal de entrada int SPO2period=2000; //tiempo entre pulsaciones } extern SPO2ppmClass SPO2ppm; #endif /* SPO2ppm.cpp - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ #include "SPO2ppm.h" SPO2ppmClass::SPO2ppmClass(){} void SPO2ppmClass::initSPO2ppmpower(void){ //pin digital como entrada pinMode(digitalSPO2Pin, INPUT);} voidSPO2ppmClass:;readSPO2ppm(void){ //cálculo de ppm SPO2time=millis(); //cogemos el tiempo SPO2input=digitalRead(digitalSPO2Pin); //leemos el pin if((SPO2input!=SPO2lastinput)&&(SPO2input==HIGH)){ //comparamos SPO2period=SPO2time-SPO2starttime; //tiempo entre ppm SPO2starttime=SPO2time; //actualizamos variable SPO2death=SPO2time; //actualizamos variable if((SPO2time-SPO2death)>0){ //comparamos Serial.println("Danger, vitals low"); } else { SPO2frecuency=60000/period;}} //pulsaciones final SPO2lastinput=SPO2input;} SPO2ppmClass SPO2ppm=SPO2ppmClass(); Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 85  Cálculo de pulsaciones por minuto de Spo2 //Este código permite obtener la frecuencia cardiaca del //cuerpo humano con el sensor de pulsioximetría #include “SPO2ppm.h” void setup() { initSPO2ppmpower(); //llamada de función del pin digital } void loop() { readSPO2ppm(); //llamada de función de cálculo pulsaciones Serial.print(SPO2frecuency) Serial.println(“ppm”);//imprimimos dato por monitor } Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 86  Diagrama de flujo cálculo de pulsaciones SpO2 Figura 47. Diagrama de flujo pulsaciones SpO2 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 87  Librería pulsaciones ECG /* ECGppm.h - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ // Ensure this librery description is only include once #ifndef ECGppmClass_h #define ECGppmClass_h #include "Arduino.h" #include "Wire.h" //Pin definitions #define digitalECGPin 6 //pin digital pulsaciones ECG //Library interface description class ECGppmClass { //creación de la clase public: //Constructor of the class ECGppmClass(void); //Public methods void initECGppmpower(void); //función de inicio del pin void readECGppm(void); //función de cálculo de sensor unsigned long ECGtime=0; //tiempo unsigned long ECGstarttime=2000; tiempo inicial unsigned long ECGfrecuency=0; //pulsaciones unsigned long ECGdeath=0; //señal de peligro int ECGinput=0; //señal de entrada int ECGlastinput=0; //anterior señal de entrada int ECGperiod=2000;} //tiempo entre pulsaciones extern ECGppmClass ECGppm; #endif /* ECGppm.cpp - Library for Admilo Health. Created by Alejandro Millán 2014. Released into public domain. */ #include "ECGppm.h" ECGppmClass::ECGppmClass(){} void ECGppmClass::initECGppmpower(void){ //pin digital como entrada pinMode(digitalECGPin, INPUT);} voidECGppmClass:;readECGppm(void){ //cálculo de ppm ECGtime=millis(); //cogemos el tiempo ECGinput=digitalRead(digitalECGPin); //lectura del pin if((ECGinput!=SPO2lastinput)&&(ECGinput==HIGH)){ //comparamos ECGperiod=ECGtime-ECGstarttime; //actualizamos variable ECGstarttime=SPO2time; //actualizamos variable ECGdeath=ECGtime; //actualizamos variable if((ECGtime-ECGdeath)>0){ //comparamos Serial.println("Danger, vitals low");} else{ ECGfrecuency=60000/period;} } //pulsaciones final ECGlastinput=ECGinput; } ECGppmClass ECGppm=ECGppmClass();  Calculo de pulsaciones por minuto en ECG //Este código permite obtener la frecuencia cardiaca del //cuerpo humano con el sensor de electrocardiografía #include “ECGppm.h” void setup() Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 88 { initECGppmpower(); //llamada función configuración de pin } void loop() { readECGppm(); //llama función de obtención de pulsaciones Serial.print(ECGfrecuency); Serial.println(“ppm”);} //mostrar valor por monitor Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 89  Diagrama de flujo cálculo de pulsaciones ECG Figura 48. Diagrama de flujo cálculo de pulsaciones ECG Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 96 2.3.2.6 APLICACIÓN MÓVIL Tras la subida de los datos procedentes de los sensores, el último paso consiste en visualizar esos mismos datos en un dispositivo para que los especialistas en la materia puedan estudiarlos y extraer el máximo de información. En un principio, el objetivo final del proyecto era la visualización de los datos en una aplicación móvil creada ex profeso para el proyecto, instalada en un terminal. Pero como se trata de un proyecto de concepto, es decir, un proyecto en lo que interesa que el conjunto de tecnologías a desarrollar funcionen entre sí, no se ha procedido al desarrollo como tal (programar) una aplicación móvil. A propósito de lo anteriormente comentado, existen una serie de posibilidades relacionadas entre sí que lo permiten. En primer lugar, la manera más simple de acceder a los datos subidos al servidor web es a través de un navegador web e introduciendo en la barra buscadora la dirección asignada dentro de la red WiFi. En este sistema solo se ven los datos como un documento de texto al que para refrescar los datos habría que refrescar la página web. La otra forma, que era la idea a desarrollar en el proyecto, es la programación de una aplicación móvil para un terminal. La elección de Android como plataforma de desarrollo de la aplicación se debe a que posee una mayor presencia en el mercado de sistemas operativos de terminales móviles. Google, empresa desarrolladora del sistema operativo Android, provee un kit de desarrollo o SDK para desarrolladores, que incluye todas las APIs necesarias para la programación, comprobación y depuración de la aplicación. Otra de los motivos de la elección de Android, es su IDE de programación, Eclipse, de código abierto que permite la programación en lenguaje Java y C++ si para este último se incluye un addon a Eclipse. Estos dos anteriores tipos de visión de datos se basaban en la creación del servidor web por parte de la placa de Arduino junto con el WiFi shield. Existe también otro tipo que se basa en la creación del servidor web en el terminal móvil mediante la misma aplicación móvil que sirve para ver los datos. En Google Play, que es la zona que pone a disposición de los usuarios Google para compartir con la comunidad sus aplicaciones existe una gran cantidad de aplicaciones para tal uso. Como ejemplo a destacar en este apartado, nombramos a la empresa Xively por ofrecer de forma totalmente gratuita la posibilidad de obtener un servidor web para subir datos a la nube (del que hay librerías y sketchs de cómo hacerlo con Arduino en la página oficial) así como de ofrecer a los usuarios de una aplicación móvil básica para el manejo del servidor o modificarla según se requiera. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 97 3 CONCLUSIONES El objetivo del proyecto era desarrollar una plataforma de open hardware/software para la monitorización básica estándar en una Unidad de Cuidados Intensivos, y visualizar los datos en una plataforma portátil mediante el envío de datos de forma inalámbrica. La señal de ECG es una señal biológica de carácter eléctrico que provoca la contracción de las diferentes cámaras del corazón, con el consiguiente bombeo de sangre al resto del aparato circulatorio. La señal de SpO2 es una señal biológica de carácter óptico que permite conocer el grado de oxigenación periférica de los distintos tejidos. Al igual que cualquier otra señal biológica, se tratan de señales de amplitud muy pequeña susceptibles a sufrir interferencia y ruidos, es especial las señales de carácter eléctrico, por ello la selección de componentes y el diseño de las distintas etapas fueron escogidos con sumo cuidado. Existen gran cantidad de fabricantes de componentes electrónicos que ofrecen productos muy competitivos y de características muy similares que hacen difícil la elección de componentes. En la etapa de diseño analógica se optó por criterios de precisión y bajo consumo para una mejor captura de las señales biológicas, además del uso de open hardware y open software para permitir la mejora del producto a través de la gran comunidad que posee Arduino. A fecha de depósito de proyecto se han conseguido la mayoría de los objetivos planteados en la propuesta de proyecto. El principal objetivo del proyecto está cumplido, que es la creación de un equipo de instrumentación electrónica que permite recoger las señales eléctricas generadas en el cuerpo por los sensores y tratarlas a través de etapas de adaptación, filtrado y amplificación para su posterior envío por medio del Arduino a una plataforma para su visualización. Hacer hincapié en que en la realización del hardware se ha invertido la mayor parte del tiempo del proyecto dado que aunque existe bibliografía al respecto, no la hay en el ámbito en el que se ha realizado este proyecto, sobretodo la parte relacionada con la pulsioximetría. En referencia al software, se realizó un código para cada tipo de dato requerido llegando a la creación de una única librería que permitiese la obtención del dato deseado mediante funciones de llamada. Esto se debe a que al incluir en el proyecto el servidor web WiFi, el código a cargar en el Arduino sería demasiado grande y seria de difícil compresión, con lo que se cumple un objetivo surgido durante el proceso de realización del proyecto. Debido a la imposibilidad de acceder a un WiFi shield de Arduino, no se ha podido probar la parte final del proyecto, ver los datos obtenidos en una aplicación Android, pero sí que se ha podido testear el envío de datos a un servidor en la nube por un lado, y el visionado de datos en un servidor mediante una aplicación por otro lado, pero no todo al mismo tiempo. Por ello Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 98 este objetivo no se ha cumplido, aunque se espera que en una posible mejora del proyecto este objetivo se cumpla. Dejando de lado los objetivos del proyecto, cabe destacar que la mayor inversión de tiempo en el proyecto se debió a la parte de la placa encargada de la pulsioximetría, debido a que no existe información en la red del funcionamiento de los pulsioxímetro de dedo que se venden comercialmente. Esto es debido a que como se ha comentado anteriormente a la existencia problemas de retraso de la onda debido a capacitancias del circuito, no permitiendo una monitorización en tiempo real y a la necesidad de separar la componente alterna de la continua de la onda y almacenando ambas para posteriores cálculos matemáticos. Por ello se vio necesaria la inclusión del circuito integrado ADG513 junto con la adición de una segunda rama de instrumentalización (una para cada longitud de onda) para minimizar el retraso y permitir la separación de componentes de la onda. También queda pendiente realizar un ensayo de uso en una zona de uso sanitario, en el que miembros del servicio de Unidad de Cuidados Intensivos del Hospital Clínico Universitario Lozano Blesa han mostrado interés en el proyecto. Al final la placa diseñada en el proyecto junto con Arduino forma un sistema de alta prestaciones, compacto y portátil, que junto con el precio y facilidad de programación permitirá que gente relacionada con el mundo del open hardware y software pueda introducir mejoras en el diseño. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 99 3.1 BIBLIOGRAFÍA [1] www.arduino.cc [2] www.cooking-hacks.com [3] www.en.wikipedia.org/wiki/Wireless_sensor_network [4] www.en.wikipedia.org/wiki/Electrocardiography [5] www.en.wikipedia.org/wiki/Pulse_oximetry [6] www.ieee.org [7] http://www.android.com/ [8] www.maxim-ic.com [9] www.microchip.com [10] www.ti.com [11] www.sparkfun.com [12] www.es.farnell.com [13] www.es.rs-online.com [14] www.digikey.com [15] www.datasheets.org.uk [16] www.alldatasheet.com [17] www.datasheetcatalog.org [18] http://www.robots.ox.ac.uk/~neil/teaching/lectures/med_elec/notes6.pdf [19] http://www.ee.washington.edu/ [20] http://www.freescale.com/files/microcontrollers/doc/app_note/AN4059.pdf [21] http://www.ti.com/lit/an/slaa274b/slaa274b.pdf [22] http://eecs.ucf.edu/seniordesign/fa2009sp2010/g07/SDFiles/FinalDocument_Re vE.pdf [23] http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2012/prd47/P ulseOximeter/Pulse_ox.html [24] http://digitalcommons.mcmaster.ca/cgi/viewcontent.cgi?article=1041&context=e e4bi6 [25] http://artic-instruments.webs.com/Design%20of%20ecg%20amplifier.pdf [26] http://www.analog.com/library/analogDialogue/archives/37-11/ecg.html [27] http://www.masimo.com/Nellcorfiction/PDF_FF/History%20of%20Pulse%20Oxi metry.pdf [28] http://www.frca.co.uk/ [29] Tavakoli, M., L. Turicchia, and R. Sarpeshkar. “An Ultra-Low Power Pulse Oximeter Implemented With an Energy-Efficient Transimpedance Amplifier”. 2010. [30] Fontaine, A., et all. “Reflectance based pulse-oximeter for the chest and wrist”. [31] Velez, D., “Pautas de electrocardiografía”. MARBÁN, 2007. [32] Lindner, U.K., Dubin, D.B. “Introducción a la electrocardiografía”. MASSON, 2004. [33] Ehrenfeld, J.M., “Monitoring Technologies in Acute Care Enviornments”. Springer, 2014. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 100 [34] Nicolás, J.M., Ruiz, J., Jiménez, X., Net, A., “Enfermo crítico y emergencias”. Elsevier, 2011. [35] Tejada Adell, M. “El paciente agudo grave, instrumentos diagnosticos y terapéuticos”. MASSON, 2005. [36] Guerrero Sanz, J.E. “Libro de cuidados intensivos”, Fundacion Hospital de Madrid, 2007 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 101 ANEXOS A. ESQUEMAS ELÉCTRICOS Los ficheros asociados a esquemas electrónicos del proyecto se han realizado con el software Cadsoft Eagle. Se adjuntan a continuación las capturas correspondientes a las hojas del esquema del proyecto. Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 102 Figura 51. Esquema eléctrico circuito ECG Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 103 Figura 52. Esquema eléctrico SpO2 1/2 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 104 Figura 53. Esquema eléctrico SpO2 2/2 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 105 B. PLACAS DE CIRCUITO IMPRESO Los ficheros Gerber generados durante la fase de diseño poseen un formato estándar que aceptan todas las fábricas y por lo tanto no debería de suponer un problema replicar el prototipo en ningún aspecto. Figura 54. Plana de pistas cara top Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 112 C. COSTE DE FABRICACIÓN Uno de los requisitos propuesto en el proyecto de adquisición de constantes vitales de forma inalámbrica, era que fuera de bajo coste a nivel de fabricación y de componentes. Por ello, uno de los criterios de selección de componentes era el coste por unidad. Cuando se diseña un prototipo, se suele fabricar una pre-serie o prototipo con objeto de realizar pruebas, y una vez probada su funcionalidad, se fabrican un mayor número de unidades en función de la previsión de ventas. Normalmente, cuando se calcula cual es el valor de mercado de un producto se tienen en cuenta factores como el coste de los materiales, el coste de desarrollo a nivel de ingeniería, los costes de mano de obra, gastos de comercialización, los costes de mantenimiento y reparación y el margen de beneficio que se desea obtener. Como se trata de un proyecto de carácter académico, la mayoría de factores anteriormente nombrados no están cuantificados en el coste de fabricación. No obstante, se han incluido el coste de los materiales por tratarse de un factor objetivo y desde el cual se puede realizar una extrapolación del valor de mercado del producto. Del anterior ejercicio se puede observar una tabla resumen donde se ha recopilado el coste total de la placa: Concepto Precio 1. Coste fabricación PCB 27.40€ 2. Coste componentes ECG 20.22€ 3. Coste componentes SpO2 37.75€ 4. Coste total prototipo 85.37€ Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 113 Con esto consideramos que se ha realizado un prototipo de costes reducidos si atendemos al mercado en el que el proyecto se realiza comparándolo con los productos analizados en el análisis del mercado. Por otro lado, los precios de referencia tomados son precios de minorista a fecha de Agosto de 2014. Cuando se compran componentes electrónicos por otras vías, como son los distribuidores oficiales recomendados por el fabricante (normalmente mayoristas), el descuento por compra de grandes cantidades puede ser de hasta el 50%. Por ello, los costes finales de fabricación a nivel de materiales de un diseño comercial basado en este prototipo serían mucho menores. A continuación se muestran una serie de tablas con el coste de componentes de la placa de circuito impreso en que se basa el proyecto. COSTE COMPONENTES ECG TOTAL 20.22€ Partes Valor Cantidad Precio Unitario Precio Total IC1, IC2, IC3, IC4 OPA2333AIDGKR 4 3.17 12.68 U1 INA333AIDGKR 1 3.76 3.76 X1 MKDSN1,5/3-5,08 1 1.18 1.18 R10 500R 0404 1 0.08 0.08 R16 1.8K 0402 1 0.08 0.08 R14, R15 3.3K 0402 2 0.08 0.16 R5 20K 0402 1 0.08 0.08 R12 25K 0402 1 0.08 0.08 R1, R2, R3, R4, R6, R11 100K 0402 6 0.08 0.48 R9 318K 0402 1 0.08 0.08 R13 390K 0402 1 0.08 0.08 R7, R8 1M 0402 2 0.08 0.16 C2, C3, C4, C5, C6, C7 1nF 0402 6 0.08 0.48 C12 10nF 0402 1 0.08 0.08 C1 0.1uF 0402 1 0.08 0.08 C9, C10, C11 1uF 0805 3 0.08 0.24 C8 1uF electrolítico tantalio 1206 1 0.28 0.28 C13 2uF 0805 1 0.15 0.15 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 114 COSTE COMPONENTES ECG TOTAL 37.75€ Partes Valor Cantidad Precio Unitario Precio Total IC7 OPA2333AIDGKR 1 3.17 3.17 U4, U5 INA333AIDGKR 2 3.76 7.52 IC5, IC6 ADG513R 2 5.07 10.14 U2, U3 AD824AR 2 5.81 11.62 Q1, Q2 BC857C SOT23 2 0.035 0.07 Q3, Q4 BC847C SOT23 2 0.035 0.07 X2 A-DF-09-A/KGT4S 1 0.64 0.64 R21, R22 68R 0402 2 0.08 0.16 R19, R20 100R 0402 2 0.08 0.16 R17, R18 1K 0402 2 0.08 0.16 R26, R27, R28, R29 2K 0402 4 0.08 0.32 R34, R35, R36, R37 4.7K 0402 4 0.08 0.32 R32, R33 47K 0402 2 0.08 0.16 R30, R31 56K 0402 2 0.08 0.16 R24, R25 1M 0402 2 0.08 0.16 R23 4.7M 0402 1 0.08 0.08 C15 2.7pF 0402 1 0.08 0.08 C14 390pF 0402 1 0.08 0.08 C18, C19, C21, C22 500pF 0402 4 0.08 0.32 C16, C20, C25, C28, C29 1nF 0402 5 0.08 0.40 C26, C27 1uF 0805 2 0.08 0.16 C17 1uF electrolítico tantalio 1206 1 0.28 0.28 C23, C24 10uF 1206 2 0.27 0.54 S1 PTS645 Tac Switch 1 0.44 0.44 J1 AVR SPI PRG 2x3 1 0.38 0.38 D1 Green Led 0603 1 0.03 0.03 R38 1.5K 1 0.08 0.08 Memoria Proyecto Final de Carrera Sistema inalámbrico de monitorización de constantes vitales con plataforma Arduino y visualización en aplicación móvil. 115 D. DATASHEETS Los datasheets de los componentes más relevantes usados se muestran a continuación: MKDSN 1.5/3-5.08 http://media.digikey.com/pdf/Data%20Sheets/Phoenix%20Con tact%20PDFs/1729131.pdf OPA2333AI DGKR http://www.ti.com/lit/ds/symlink/opa2333.pdf INA333AID GKR http://www.ti.com/lit/ds/symlink/ina333.pdf PTS645 Tac Switch http://www.ck-components.com/14409/pts_645_25apr13.pdf/ A-DF-09A/KG-T4S http://media.digikey.com/pdf/Data%20Sheets/Assmann%20PD Fs/ADxxxA-KG-TxxB3-R.pdf BC857 http://www.nxp.com/documents/data_sheet/BC856_BC857_B C858.pdf BC847 http://www.nxp.com/documents/data_sheet/BC847_SER.pdf AD824AR http://www.analog.com/static/importedfiles/data_sheets/AD824.pdf AD513R http://www.analog.com/static/importedfiles/data_sheets/ADG511_512_513.pdf En la siguiente lista se incluyen los portales web de los programas informáticos que han sido utilizados para el desarrollo del proyecto: [A] IDE Arduino http://arduino.cc/en/pmwiki.php?n=main/software [B] MATLab http://www.mathworks.es/products/matlab/ [C] NI Multisim http://www.ni.com/multisim/esa/ [D] FilterPro TI http://www.ti.com/tool/filterpro [E] Android SDK http://developer.android.com/sdk/index.html [F] Eagle http://www.cadsoftusa.com/ [G] Altium http://www.altium.com/en/products/altium-designer/overview