scieee AI-readable full text Open interactive document viewer

Monitor de constantes vitales para animales de laboratorio

González Cárdenas, Alberto

Abstract

Las constantes vitales son parámetros que hay que tener en cuenta para conocer el diagnóstico clínico de personas y animales. Algunas de las constantes vitales más importantes son la frecuencia cardíaca, el nivel de oxigenación en la sangre, la frecuencia respiratoria y la temperatura corporal. Por otro lado, la utilización de animales para ciertas investigaciones es cada vez más frecuente en la ciencia médica. Por ejemplo, los ratones y las ratas son los animales más utilizados en los laboratorios. De la necesidad de monitorizar las constantes vitales en roedores durante intervenciones quirúrgicas y el alto impacto económico que produce la adquisición de estos instrumentos de monitorización, surge la idea de realizar, de forma compacta, un monitor de constantes vitales de bajo coste para estos animales. En este proyecto se desarrolla el diseño de un monitor de constantes vitales con el fin de ser utilizado, en un futuro, en los experimentos realizados en la Universidad De Sevilla. A lo largo del presente documento, podemos contemplar el diseño y fabricación de una placa de circuito impreso que incluye un electrocardiógrafo, un pulsioxímetro y un sistema para el control de temperatura corporal del animal. También, plasma el desarrollo software que permite representar, en tiempo real, las diferentes graficas de saturación de oxígeno, el electrocardiograma y la temperatura del animal.

Full text

1 Proyecto Fin de Grado Ingeniería Electrónica, Robótica y Mecatrónica Monitor de constantes vitales para animales de laboratorio. Autor: Alberto González Cárdenas Tutor: Hipólito Guzmán Miranda / Alejandro Barriga Rivera Dpto. De Ingeniería Electrónica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 i Proyecto Fin de Grado Ingeniería Electrónica, Robótica y Mecatrónica Monitor de constantes vitales para animales de laboratorio. Autor: Alberto González Cárdenas Tutor: Hipólito Guzmán Miranda Profesor contratado doctor. Alejandro Barriga Rivera Investigador Marie-Curie. Departamento de Ingeniería Electrónica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 ii ii iii iii Monitor de constantes vitales para animales de laboratorio. Proyecto Fin de Grado: Monitor de constantes vitales para animales de laboratorio. Autor: Alberto González Cárdenas Tutor: Hipólito Guzmán Miranda / Alejandro Barriga Rivera El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: El Secretario del Tribunal Sevilla, 2019 iv iv v v Monitor de constantes vitales para animales de laboratorio. Agradecimientos Quisiera expresar mi más sincero agradecimiento a todas aquellas personas que han hecho posible la consecución de este proyecto. En primer lugar, a los tutores de este proyecto, Alejandro Barriga e Hipolito Guzman, por su ayuda, atención y dedicación durante estos meses. Además, agradecer a mi compañero Arturo por prestarme su pequeño laboratorio y parte de su tiempo. A mis padre y hermano, que me han ofrecido su apoyo incondicional desde el primer momento, y sin cuyo esfuerzo no podría haber llegado tan lejos. A mi pareja, Almudena, por la paciencia, apoyo y por demostrarme cada dia que tengo la fuerza suficiente para alcanzar mis metas. A mis amigos y compañeros con los que he convivido durantes estos años. En especial, a mi gran amigo Fran por aguantarme, apoyarme y estar siempre disponible para todo. González Cárdenas, Alberto Sevilla, 2019 vi vi vii vii Monitor de constantes vitales para animales de laboratorio. Resumen Las constantes vitales son parámetros que hay que tener en cuenta para conocer el diagnóstico clínico de personas y animales. Algunas de las constantes vitales más importantes son la frecuencia cardíaca, el nivel de oxigenación en la sangre, la frecuencia respiratoria y la temperatura corporal. Por otro lado, la utilización de animales para ciertas investigaciones es cada vez más frecuente en la ciencia médica. Por ejemplo, los ratones y las ratas son los animales más utilizados en los laboratorios. De la necesidad de monitorizar las constantes vitales en roedores durante intervenciones quirúrgicas y el alto impacto económico que produce la adquisición de estos instrumentos de monitorización, surge la idea de realizar, de forma compacta, un monitor de constantes vitales de bajo coste para estos animales. En este proyecto se desarrolla el diseño de un monitor de constantes vitales con el fin de ser utilizado, en un futuro, en los experimentos realizados en la Universidad De Sevilla. A lo largo del presente documento, podemos contemplar el diseño y fabricación de una placa de circuito impreso que incluye un electrocardiógrafo, un pulsioxímetro y un sistema para el control de temperatura corporal del animal. También, plasma el desarrollo software que permite representar, en tiempo real, las diferentes graficas de saturación de oxígeno, el electrocardiograma y la temperatura del animal. 2 2 1.1. Pliego de condiciones. 1.1.1 Objetivo. El objetivo principal del proyecto es la fabricación de un sistema para monitorizar las constantes vitales de pequeños animales destinados a la investigación, como pueden ser ratas, ratones o conejos. Dicho sistema va a incorporar un pulsioxímetro para medir el nivel de saturación de oxígeno en sangre, un electrocardiógrafo para medir la señal eléctrica del corazón y un sistema de control de temperatura corporal. Este proyecto puede ser dividido en dos grandes bloques, una parte hardware destinada al diseño y fabricación de una placa de circuito impreso (PCB) que incluya la circuitería del sistema y una parte software, cuyo objetivo principal es la realización de una interfaz gráfica que represente y muestre los valores, en tiempo real, de las variables de los diferentes subsistemas mencionados anteriormente. En la figura 1 se pueden observar los dos grandes bloques de este proyecto. En la parte software, se puede diferenciar entre el firmware del microcontrolador y el software de la interfaz gráfica, mientras que en la parte hardware encontramos la PCB con los tres subsistemas (electrocardiograma (ECG), pulsioxímetro (SPO2) y control de temperatura), el microcontrolador Arduino, destinado a muestrear y enviar datos, y un ordenador personal, que recibirá los datos y los representará. 1.1.2 Requisitos. A continuación, se detallan en la Tabla 1 los requisitos del sistema, los cuales describen los servicios que ha de ofrecer el sistema y las restricciones asociadas a su funcionamiento. Estos requisitos han sido determinados mediante el estudio de dispositivos comerciales similares para el ser humano y el estudio de los animales para los cuales va a utilizarse, con el fin de que el dispositivo aquí diseñado funcione correctamente. Concretamente, en la tabla se esbozan los requisitos funcionales, de diseño, de prestaciones y de seguridad. Figura 1. Diagrama que representa los bloques fundamentales del dispositivo diseñado. Dentro del software se puede identificar el firmware programado para Arduino y el software de la interfaz gráfica. Por el lado del hardware, se encuentra el diseño electrónico del dispositivo, el microcontrolador y el ordenador personal del usuario. 3 3 Monitor de constantes vitales para animales de laboratorio. Monitor de constantes vitales PulsioxímetroP ElectrocardiogramaE TemperaturaT SoftwareS (P, E, T) -F1P.1. El sistema debe2 muestrear dos señales, una para cada led. -D3P.1. Debe realizarse una búsqueda de una pinza comercial válida para las patas de pequeños roedores. -P4P.1.1. Frecuencia de muestreo a 1KHz. -PP.1.2. Ancho de banda de la señal de 0.5Hz- 10Hz, aprox. -FE.1. El sistema debe muestrear una señal. -DE.1. El sistema debe componerse de 3 electrodos. -DE.2. Se deberían5 realizar electrodos de bajo coste. -PE.1.1. Frecuencia de muestreo de 1KHz. -PE.1.2. Ancho de banda de la señal de 0.5Hz-150Hz aprox. -FT.1. El sistema debe muestrear dos señales, una para cada sensor de temperatura. -FT.2. El sistema debe activar la manta eléctrica mediante un control de temperatura. -DT.1. La sonda rectal debe tener un diámetro menor de 2mm. -PT.2.1. La manta térmica debe tener el menor consumo posible. -PT.1.1. Frecuencia de muestreo 1Hz. -FS.1. Debe programarse de manera fácil y entendible, para futuras modificaciones por otros usuarios. -FS.2. Deben utilizarse programas de libre licencia. -DS.1. Deben visualizarse tres gráficas y el valor de la temperatura en tiempo real. -DS.2. Debería realizarse una interfaz gráfica similar a un monitor de constantes vitales. Sistema completoSC (P,E,T) -S6SC.1. El sistema debe estar aislado para proteger al animal de la red eléctrica y evitar las posibles interferencias producidas por la fuente de alimentación. -FSC.1. Debe utilizarse una placa de desarrollo de hardware que cumpla las siguientes prestaciones: -PSC.1.1. El microcontrolador debe muestrear tres canales a 1KHz cada uno, más otros posibles canales a menor frecuencia. -PSC.1.2. Debe ser capaz de enviar datos en tiempo real. -PSC.1.3. Debe disponer de suficientes pines para todo el conjunto. -PSC.1.4. Debe utilizarse una placa de desarrollo de bajo coste. -PSC.1.5. Debería tener un conversor ADC de alta resolución. Tabla 1. Tabla en la cual se reflejan los requisitos de cada subsistema del monitor de constantes vitales. Se han clasificado en requisitos funcionales, de diseño y de prestaciones 1 Requisito funcional, describe funcionalidad. 2 Cuando aparece la palabra “debe” en un requisito, expresa obligación. 3 Requisito de diseño, hace referencia a una imposición externa. 4 Requisito de prestación, describe las prestaciones de cierta funcionalidad. 5 Cuando aparece la palabra “debería” en un requisito, expresa algo que se pretende conseguir, aunque no afectará en gran medida al proyecto final. 6 Requisito de seguridad. 5 2 VISTA LÓGICA omo hemos mencionado anteriormente, el monitor de constantes vitales a diseñar se compone de tres subsistemas, que son: un pulsioxímetro, un electrocardiograma y un control de temperatura. La pulsioximetría es un método no invasivo encargado de medir el nivel de saturación de oxígeno en la sangre (SPO2), en forma de porcentaje. El instrumento que realiza dicha medida es el pulsioxímetro, el cual consta de dos leds de diferentes longitudes de ondas, uno rojo (660 nm) y otro infrarrojo (940 nm), un fotoreceptor y un microprocesador. Para estimar el valor de esta variable, el microprocesador calcula la cantidad de luz absorbida por la sangre oxigenada (oxihemoglobina) y desoxigenada (desoxihemoglobina) [13]. El electrocardiograma (ECG) es un método de diagnóstico médico con el que se obtiene un registro gráfico de la actividad eléctrica del corazón en función del tiempo. Para detectar dicha actividad, se precisan de 3 a 12 electrodos que se colocan en diferentes partes del cuerpo [14]. En este proyecto se desarrolla un electrocardiograma de tres electrodos. Para obtener una correcta medida de la actividad cardíaca con tres electrodos se mide la diferencia de potencial entre dos de ellos, utilizando el tercer electrodo como electrodo de masa o referencia. En cuanto al control de temperatura corporal, es necesario tener controlada la temperatura corporal del animal durante la experimentación. Para ello, se utiliza un termómetro o sonda de temperatura. También se ha añadido a este proyecto la utilización de una manta térmica con el fin de activarla si la temperatura corporal del animal desciende por debajo de un valor crítico. La colocación de la pinza de oximetría, los tres electrodos, la sonda de temperatura y la manta térmica en el cuerpo de un roedor es la siguiente: 1. Respecto a los electrodos, dos de ellos se colocan en las patas delanteras y el otro, el cual es el electrodo de referencia, se coloca en la pata trasera derecha. 2. La pinza de oximetría se coloca en una pata. Preferiblemente, en una pata trasera ya que la pinza se adapta mejor. 3. La sonda de temperatura es rectal. 4. La manta térmica se coloca debajo del animal. Por otro lado, internamente, el monitor se compone de una placa de circuito impreso, donde se encuentran los diferentes circuitos de acondicionamiento de las señales, y el microcontrolador, encargado de la adquisición de datos. Un ordenador personal es el encargado de recibir e interpretar los diferentes datos, representarlos en tiempo real en una interfaz gráfica y almacenarlos para un posible análisis fuera de línea. En la Figura 2, se muestra un diagrama con los diferentes sistemas mencionados anteriormente. C Figura 2. Descripción de la vista lógica en un experimento. Situado el animal sobre la manta térmica y colocado en su cuerpo los electrodos, la pinza de oximetría y la sonda rectal, comienza la adquisición de datos. Dichos datos son representados en tiempo real en un ordenador personal. Vista física 6 6 3 VISTA FÍSICA l monitor de constantes vitales está gobernado por el microcontrolador CortexM3 ARM de 32 bits, el cual está integrado en la placa de desarrollo Arduino Due. Dicha placa cumple con todos los requisitos mencionados anteriormente en el apartado 1.1.2. Para el buen funcionamiento del sistema, este debe estar alimentado a través de una fuente de alimentación de 12𝑉 y conectado a un ordenador vía USB, que será el puerto de comunicación. A continuación, se describen los diferentes diseños electrónicos de los subsistemas hardware del monitor de constantes vitales. 3.1. Subsistemas hardware del monitor de constantes vitales. 3.1.1 Pulsioxímetro. La pinza de oximetría adquirida se compone de un fotodiodo y dos leds de diferentes longitudes de onda, un led rojo de 660nm y otro infrarrojo de 940nm, como se observa en la Figura 3. El fotodiodo es un dispositivo que conduce una cantidad de corriente eléctrica proporcional a la cantidad de luz que incide sobre él. Dicha corriente es procesada por diferentes circuitos para su posterior lectura a través del microcontrolador. Para obtener una correcta medida del nivel de saturación de oxígeno en la sangre, los leds deben encenderse de forma no simultánea, es decir, un led debe estar apagado completamente para poder encender el otro led. El encendido de dichos leds se realiza mediante dos pines digitales de Arduino a una frecuencia de parpadeo de cada led de 1KHz. A continuación, en la Figura 4, se esboza un diagrama de bloques formado por las diferentes etapas que componen el circuito de acondicionamiento del pulsioxímetro. Figura 4. Diagrama de bloques del pulsioxímetro. En él, se pueden observar las distintas etapas que componen el circuito de acondicionamiento. E 5 4 3 2 1 68 79 Fotodiodo Led_infrarrojo Led_Rojo DB9 Figura 3. Circuito eléctrico de la pinza de oximetría. Se observan los dos leds (rojo e infrarrojo) colocados de forma antiparalela y el fotodiodo, así como su conexionado con un conector tipo DB9. 7 7 Monitor de constantes vitales para animales de laboratorio. 3.1.1.1 Convertidor de corriente a voltaje. Para convertir la intensidad, procedente del transductor, en voltaje se utiliza un circuito de amplificador de transimpedancia como el mostrado en la Figura 5. La corriente, 𝐼𝑓, generada por el fotodiodo, 𝐹𝐷, se amplifica y se convierte en tensión mediante la resistencia de realimentación, 𝑅𝑓. La elección del valor de dicha resistencia depende de dos factores. El primero de ellos y el más importante, el tiempo de respuesta del fotodiodo, ya que debe captar dos longitudes de ondas diferentes sin solapar ambas medidas. El otro factor es el voltaje de salida. Matemáticamente, obtenemos la siguiente ecuación: 𝑉𝑜𝑢𝑡 = −𝑅𝑓×𝐼𝑓 = −4700×𝐼𝑓 Ecuación 1. Expresión matemática, obtenida mediante ecuaciones nodales, que permite calcular la tensión de salida del amplificador de transimpedancia. 3.1.1.2 Etapa de pre-amplificación. La utilidad de añadir esta etapa es aumentar el nivel de tensión de la señal para su posterior filtrado. El circuito utilizado se proyecta en la Figura 6. La ganancia obtenida es: 𝑉𝑜𝑢𝑡 = −𝑉 ×𝑅2 𝑅1 = −100×𝑉 Ecuación 2. Expresion matemática obtenida mediante ecuaciones nodales. Permite calcular el valor del voltaje de salida del amplificador. 3.1.1.3 Circuito de muestreo y retención. Los motivos por el cual se ha optado por la utilización de este circuito son, en primer lugar, porque se debe separar la señales roja e infrarroja para su posterior tratamiento y, en segundo lugar, porque se debe mantener el voltaje de la señal de cada led emisor durante los periodos en los que estos se encuentren apagados, es decir, el tiempo en el que el interruptor este abierto. En la Figura 7, se puede ver el circuito de muestro y retención utilizado. LM358AD 3 2 48 1 Vcc Vdd Rf 4.7kΩ Vout FD If LM358AD 3 2 48 1 Vcc Vdd R2 100kΩ R1 1kΩ Vout V Figura 6. Circuito de la etapa preamplificadora. Su objetivo es amplificar la tensión de la señal para su posterior tratamiento. Figura 5. Circuito amplificador de transimpedancia. A la izquierda se observa el fotodiodo, el cual nos proporciona corriente según la luz incidente. Esta configuración de amplificador convierte dicha corriente en voltaje de salida. El circuito integrado utilizado es el LM358. Vista física 8 8 La señal amplificada procedente de la etapa preamplificadora entra en el circuito integrado CD4066, el cual se compone de 4 interruptores de conmutación controlados por 4 pines. En esta ocasión se ha utilizado 2 interruptores controlados por dos pines digitales de Arduino, los cuales conmutan a 1 KHz. A la salida de cada interruptor, la señal carga eléctricamente el condensador encargado de mantener la señal y circula por un buffer de tensión, proporcionando una baja impedancia al siguiente circuito. Para la elección del valor del condensador, hay que tener en cuenta que debe ser lo suficientemente pequeño para que se cargue rápido y, a su vez, lo suficientemente grande para mantener la señal cuando el interruptor este abierto. 3.1.1.4 Etapa de filtrado. 3.1.1.4.1 Filtro paso bajo. Para el diseño de los filtros, se ha utilizado la estructura Sallen Key [16]. Dicha configuración responde a un filtro activo bastante utilizado en electrónica, como por ejemplo en circuitos de audio [17]. A continuación, se analiza el filtro Sallen Key paso de baja de segundo orden mostrado en la Figura 8. A través de ecuaciones nodales, se obtiene la función de transferencia y la frecuencia de corte del filtro: 𝐻(𝑠)=1 𝑅1×𝑅2×𝐶1×𝐶2 𝑠2+𝑠×( 1 𝑅2×𝐶1+1 𝑅1×𝐶1)+ 1 𝑅1×𝑅2×𝐶1×𝐶2 𝐹𝑐 =1 2𝜋√𝑅1×𝑅2×𝐶1×𝐶2 Ecuación 3. Expresiones matemáticas que representan la función de transferencia del filtro Sallen Key de segundo orden de paso bajo (ecuación de la izquierda) y la frecuencia de corte de dicho filtro (ecuación de la derecha). Como es necesaria una mayor atenuación de las altas frecuencias, se ha diseñado un filtro de cuarto orden Sallen Key con pendiente de atenuación de 40dB/década. Para ello, basta con añadir otro filtro de segundo orden en cascada, como se aprecia en la Figura 9. La frecuencia de corte, como requisito mencionado anteriormente, debe ser de 10Hz aproximadamente. En la figura 10, mediante un análisis AC, se puede comprobar que el filtro de cuarto orden cumple dicha frecuencia de corte. 4066BD_5V D1 2 S1 1IN1 13 D2 3 D3 9 D4 10 S2 4IN2 5 S3 8IN3 6 S4 11 IN4 12 VDD 14 VSS 7 Vcc Vin R2 1kΩ R1 1kΩ Pin8_digital_Arduino Pin9_digital_Arduino C1 0.1µF LM358AD 3 2 48 1 Vcc Vdd Vout_IR C2 0.1µF LM358AD 3 2 48 1 Vcc Vdd Vout_Rojo Figura 7. Circuito de muestreo y retención (Sample&Hold). Este circuito permite separar la señal roja e infrarroja, además de, mantener el nivel de cada señal cuando los leds emisores estan a nivel bajo. LM358AD 3 2 48 1 Vcc Vdd R1 R2 C2 C1 Vout Vin Figura 8. Circuito del filtro Sallen Key paso de baja de segundo orden. 9 9 Monitor de constantes vitales para animales de laboratorio. Figura 9. Filtro paso bajo Sallen Key de cuarto orden. Filtro diseñado para una frecuencia de corte de 10Hz aproximadamente. Figura 10. Respuesta en frecuencia del filtro paso bajo de Sallen Key de cuarto orden. Como se observa en la gráfica, el puntero indica que la frecuencia corte de dicho filtro es de 13Hz aproximadamente. 3.1.1.4.2 Filtro paso alto. Este filtro, de segundo orden, tiene por objetivo eliminar la componente de continua (DC). Se ha diseñado siguiendo la estructura Sallen Key para una frecuencia de corte de 0.5Hz, aproximadamente. En la figura 11 y 12, se muestran el circuito del filtro Sallen Key de segundo orden paso alto y su respuesta en frecuencia, respectivamente. LM358AD 3 2 48 1 Vcc Vdd R1 10kΩ R2 10kΩ C2 1µF C1 2.2µF Vin LM358AD 3 2 48 1 Vcc Vdd R3 10kΩ R4 10kΩ C3 0.47µF C4 2.2µF Vout LM358AD 3 2 48 1 Vcc Vdd R2 47kΩ R1 18kΩ C2 10µF C1 10µF Vin Vout Figura 11. Filtro paso alto Sallen Key de segundo orden. Filtro diseñado para una frecuencia de corte de 0.5Hz aproximadamente. Vista física 10 10 Figura 12. Respuesta en frecuencia del filtro paso alto de Sallen Key de segundo orden. Como se observa en la gráfica, el puntero indica que la frecuencia corte de dicho filtro es de 0.48Hz aproximadamente. 3.1.1.5 Etapa de amplificación. Debido al tratamiento de una señal débil, en el orden de 𝜇𝑉, se recurre a la búsqueda de un amplificador que cumpla las siguientes características: - Baja tensión de offset. - Alto valor de CMRR. - Bajo coste. - Ganancia variable debido al uso de una resistencia externa. - Amplio rango de ganancia. - Factor de ruido próximo a la unidad. Dichas características son propias de un amplificador de instrumentación, por tanto, se ha optado por la utilización del INA118P, un amplificador muy popular en biomedicina por sus características y alta precisión. En la figura 13, obtenida del datasheet [19], se puede observar el esquemático simplificado del amplificador INA118P. En el lugar de la resistencia fija externa 𝑅𝐺, de la cual depende la ganancia, se ha preferido la utilización de un potenciómetro de valor 1𝐾Ω, véase Figura 14. En consecuencia, la ganancia resultante puede variar entre 50 y 5000, según la ecuación de ganancia proporcionada en el datasheet: 𝐺 = 1+50𝐾Ω 𝑅𝐺 Ecuación 4. Ecuación que permite calcular la ganancia del amplificador de instrumentación INA118P. Por ultimo, para terminar el diseño hardware del pulsioxímetro, se despliega a continuación el esquemático completo de dicho sistema. Ver Figura 15. U9 INA118P 3 2 47 6 8 5 1 Vdd Vcc 1k Vin Vout Figura 13. Circuito integrado INA118P. Muestra el esquemático simplificado de dicho integrado. A la izquierda, se observa la resistencia externa, de la cual depende la ganancia del amplificador. Imagen obtenida del datasheet del integrado [19]. Figura 14. Circuito de la etapa de amplificación, en el cual se ha utilizado el amplificador INA118P y un potenciómetro para variar su ganancia. 11 Convertidor de corriente a voltaje Etapa de preamplificación Circuito de muestreo y retención Filtro paso de baja Filtro paso de alta Etapa de amplificación Figura 15. Esquemático del circuito del subsistema de pulsioximetría. LM358AD 3 2 48 1 Vcc Vdd Rf 4.7kΩ FD If 4066BD_5V D1 2 S1 1IN1 13 D2 3 D3 9 D4 10 S2 4IN2 5 S3 8IN3 6 S4 11 IN4 12 VDD 14 VSS 7 Vcc R2 1kΩ R1 1kΩ Pin8_digital_Arduino Pin9_digital_Arduino C1 0.1µF LM358AD 3 2 48 1 Vcc Vdd C2 0.1µF LM358AD 3 2 48 1 Vcc Vdd LM358AD 3 2 48 1 Vcc Vcc Vdd Vdd R7 10kΩ R8 10kΩ C7 1µF C8 2.2µF LM358AD 3 2 48 1R9 10kΩ R10 10kΩ C9 0.47µF C10 2.2µF LM358AD 3 2 48 1 Vcc Vcc Vdd Vdd R3 10kΩ R4 10kΩ C3 1µF C4 2.2µF LM358AD 3 2 48 1R5 10kΩ R6 10kΩ C5 0.47µF C6 2.2µF LM358AD 3 2 48 1 Vcc Vdd R12 47kΩ R11 18kΩ C12 10µF C11 10µF LM358AD 3 2 48 1 Vcc Vdd R13 47kΩ R14 18kΩ C13 10µF C14 10µF U9 INA118P 3 2 47 6 8 5 1 Vdd Vcc 1k U13 INA118P 3 2 47 6 8 5 1 Vdd Vcc 1Ko Vout_IR Vout_Rojo LM358AD 3 2 48 1 Vcc Vdd R01 100kΩ R0 1kΩ Vista física 18 18 Figura 23. Circuito completo del monitor de constantes vitales. Se puede aprecia el sistema encargado de la alimentación, el pulsioxímetro, el electrocardiograma y el control de temperatura corporal. LM358AD 3 2 48 1 Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vdd Vdd Vdd Vdd Vdd Vdd Vdd Vdd Vdd Vdd Vdd Vdd Rf 4.7kΩ FD If 4066BD_5V D1 2 S1 1IN1 13 D2 3 D3 9 D4 10 S2 4IN2 5 S3 8IN3 6 S4 11 IN4 12 VDD 14 VSS 7 R2 1kΩ R1 1kΩ Pin8_digital_Arduino Pin9_digital_Arduino C1 0.1µF LM358AD 3 2 48 1 C2 0.1µF LM358AD 3 2 48 1LM358AD 3 2 48 1R7 10kΩ R8 10kΩ C7 1µF C8 2.2µF LM358AD 3 2 48 1R9 10kΩ R10 10kΩ C9 0.47µF C10 2.2µF LM358AD 3 2 48 1R3 10kΩ R4 10kΩ C3 1µF C4 2.2µF LM358AD 3 2 48 1R5 10kΩ R6 10kΩ C5 0.47µF C6 2.2µF LM358AD 3 2 48 1 R12 47kΩ R11 18kΩ C12 10µF C11 10µF LM358AD 3 2 48 1 R13 47kΩ R14 18kΩ C13 10µF C14 10µF U9 INA118P 3 2 47 6 8 5 1 1k U13 INA118P 3 2 47 6 8 5 1 1Ko LM358AD 3 2 48 1 R01 100kΩ R15 1kΩ Vout_IR Vout_Rojo LM358AD 3 2 48 1 INA118P 3 2 47 6 8 5 1 R16 470kΩ R17 3.3kΩ R18 470kΩ LM358AD 3 2 48 1 R19 10kΩ R20 3.3kΩ Vcc Vcc Vcc Vcc Vcc Vcc Vcc Vdd Vdd Vdd Vdd Vdd Vdd Vdd Electrode1 Electrode2 LM358AD 3 2 48 1R21 6.8KΩ R22 6.8KΩ C15 0.1µF C16 0.22µF LM358AD 3 2 48 1R23 6.8KΩ R24 6.8KΩ C17 0.047µF C18 0.1µF LM358AD 3 2 48 1 R25 3.3kΩ R26 1.5kΩ C19 100µF C20 100µF Electrode3 INA118P 3 2 47 6 8 5 1 1 VoutECG PC817 Q1 IRF520N R27 100Ω R28 4.7kΩ R29 10kΩ GND12V GND12V Manta térmica VDC Pin_digital_Arduino R30 10kΩ Termistor 10kΩ Termistor1 10kΩ R31 10kΩ Pin33Arduino 3.3V VoutSonda VoutManta ADUM4160 C21 0.1µF C22 0.1µF C230.1µF C24 0.1µF R32 24Ω R33 24Ω R34 24Ω R35 24Ω GNDpc V5pc Datos- Datos+ Datos-- Datos++ AisladoDC5 5V Vcc AisladoDC12 12V GND12V VDC AisladoDC5Neg -5V Vdd Vcc Vcc DC/DC 5V-5W DC/DC 12V-15W Control de temperatura corporal Electrocardiograma Pulsioxímetro Alimentación y aislamiento 19 19 Monitor de constantes vitales para animales de laboratorio. Figura 24. Placa de circuito impreso diseñada con el programa de diseño Eagle. Esta placa ha sido diseñada en dos capas. Las conexiones azules representan la capa superior mientras que las rojas la capa inferior. 21 4 VISTA DE DESARROLLO n cuanto al desarrollo software del monitor de constantes vitales, se ha organizado en dos subsistemas. En el primer bloque, se ha implementado un firmware en la placa de desarrollo Arduino Due, mientras que, en el segundo bloque, se ha desarrollado el software de la interfaz gráfica en el ordenador. 4.1. Firmware para Arduino. La función principal de este firmware es el muestreo de todas las señales. Para ello, se ha implementado una función/rutina de atención a una interrupción y se ha configurado un timer para que active dicha interrupción a 1𝑘𝐻𝑧, en la cual se realizan diferentes funciones 7 . - Función de encendido y apagado de led. - Función para muestrear la señal del pulsioxímetro. - Función para muestrear el electrocardiograma. - Función encargada del control de la temperatura corporal del individuo. - Envío por puerto serie los datos muestreados y procesados. En el diagrama de bloques de la Figura 26, se aprecian las diferentes funciones que se realizan dentro de dicha interrupción, es decir, en menos de 1𝑚𝑠. 7 El lenguaje de programación utilizado para programar la placa de desarrollo Arduino Due es una variante del C++. Para conocer más sobre el lenguaje de programación, visitar: https://www.arduino.cc/reference/en/ E Figura 25. Diagrama de bloques de la vista de desarrollo. Se pueden diferenciar dos grandes bloques, la programación de Arduino Due y la programación de una interfaz gráfica. Vista de desarrollo 22 22 Figura 26. Diagrama de bloques de la interrupción de Arduino. El muestreo de la temperatura se realiza a 1Hz, es decir, cuando la variable ‘i’ alcance el valor 1000 se realizará dicho muestreo. Una vez ejecutadas todas las funciones, se espera hasta completar el milisegundo para volver a ejecutarlas. A continuación, se va a explicar las funciones que se han mencionado anteriormente. Para ello, el lector debe situarse en la posición “Inicio” del diagrama de la Figura 26. La primera función, como su propio nombre indica, realiza el encendido del led rojo, pero, además, cierra el interruptor digital del circuito de muestreo y retención de la señal del led rojo, explicado en la sección 3.1.1.3, permitiendo así el paso de la señal al resto del circuito. La segunda función realiza el muestreo del fotodiodo a través de un pin analógico. Dicha señal muestreada es filtrada a través de un filtro de media móvil con el objetivo de reducir el ruido. La tercera función apaga el led rojo y abre el interruptor digital mencionado anteriormente. Llegados a este momento, el lector debe encontrarse en el cuadrado verde del diagrama anterior, por tanto, en la cuarta función de la interrupción. Dicha función es la encargada de realizar el muestreo del electrocardiograma con su correspondiente filtro de media móvil. La quinta, sexta y séptima función realizan el encendido del led infrarrojo y cierre del interruptor digital de su correspondiente circuito, el muestreo del fotodiodo y su filtro de media móvil, y el apagado del led infrarrojo y apertura del interruptor, respectivamente. La octava función es gobernada por un bucle condicional con la siguiente condición: “si ha pasado un segundo desde que se ejecutó esta función, se vuelve a ejecutar, en caso contrario se sigue esperando”. En la citada función se Figura 27. Diagrama de flujo de la regulación de la manta térmica. 23 Monitor de constantes vitales para animales de laboratorio. realiza el control de la temperatura del animal. Para ello, en primer lugar, se muestrean los termistores, los cuales proporcionan valores de voltaje. A continuación, a través de la linealización de estos sensores, utilizando las expresiones de Steinhart-Hart, se convierten estos voltajes en valores de temperatura. Una vez conocidos los valores de la temperatura de la sonda rectal, y por tanto del animal y de la manta térmica, se procede a la activación o no de la manta térmica. Para explicar la regulación de la manta térmica, véase el diagrama de flujo de la Figura 27. Hay que destacar que su función principal es mantener la temperatura en el rango de 38ºC a 42ºC. Para finalizar, la última función se ocupa del envío de los datos muestreados y filtrados por el puerto serie. En total, se envían 5 datos, dos del pulsioxímetro: la señal del led rojo y la señal del led infrarrojo, uno del electrocardiograma y dos para la temperatura: la temperatura de la sonda rectal y la temperatura de la manta. 4.2. Software de la interfaz gráfica. La interfaz gráfica, la cual simula un monitor de constantes vitales comercial, ha sido realizada mediante un software llamado “Processing”, el cual es un entorno de desarrollo integrado de código abierto basado en Java. El objetivo principal de este bloque es recibir los datos enviado por Arduino y representarlos. Los datos recibidos por el puerto serie son almacenados en una cola estática, para ello se ha usado una cola FIFO, “First in, First out”. Se ha creado una librería donde se encuentran las diferentes funciones de la cola. Por ejemplo, introducir o sacar datos de la misma. El código se compone de dos hilos que se ejecutan continuamente, uno es el encargado de ir leyendo los datos del puerto serie e ir clasificándolos en diferentes colas (como se reciben 5 datos diferentes, se han creado 5 colas distintas), mientras que el otro hilo es el encargado de sacar los datos de las colas para representarlos. El resultado visual de la interfaz gráfica se muestra en la Figura 28. Por último, hay que mencionar que todos los datos recibidos son guardados, mediante una función, en un archivo de texto plano con extensión. ‘txt’ para una posible representación y tratamientos de los mismos en otro software, como por ejemplo el software de computación numérica Matlab. Figura 28. Interfaz gráfica programada en Processing. En la gráfica roja, se observa el pulsioxímetro con el led rojo encendido. La grafica azul, el pulsioxímetro con el led infrarrojo encendido. La gráfica verde, el electrocardiograma. También, se aprecia la temperatura del animal y la de la manta térmica. 25 5 VISTA DE PROCESO na vez alimentado eléctricamente el monitor de constantes vitales y conectado a un ordenador personal vía USB, solo basta con ejecutar el archivo Java de la interfaz gráfica. Automáticamente, comenzarán a muestrear todos los subsistemas del monitor de constantes vitales y aparecerán las diferentes gráficas y las temperaturas en la pantalla. Internamente, una vez muestreados los diferentes subsistemas, Arduino envía los datos por puerto serie en una cadena de caracteres. En el lado del ordenador, el software de la interfaz gráfica se encarga de recibir dicha cadena de caracteres, y separar y enviar cada dato a su cola FIFO correspondiente. Paralelamente, otro hilo se encarga de ir sacando los datos de cada cola e ir representándolos. Vease en la Figura 29, parte de la codificación. char samples[n]; sprintf(samples, "%d,%d,%d,%d,%d", Rojofilt, IRfilt, ECGfilt, TempSonda, TempManta); Serial.println(samples); if (inString!= null) { String[] nums=split(inString, ","); int nums0=int(nums[0]); int nums1=int(nums[1]); int nums2=int(nums[2]); int nums3=int(nums[3]); int nums4=int(trim(nums[4])); datastack.Push(nums0); datastack1.Push(nums1); datastack2.Push(nums2); datastack3.Push(nums3); datastack4.Push(nums4); } Para concluir con la vista de proceso, en el siguiente diagrama, Figura 30, se muestran las secuencias de eventos o procesos de todo el conjunto. Figura 30. Descripción vista de procesos. Los datos enviados por puerto serie desde Arduino al ordenador son procesados y enviados a su cola FIFO correspondiente (hilo1). Paralelamente, los datos de cada cola son representados (hilo2). U Figura 29. Fragmento de código de Arduino (fragmento superior) y de Processing (fragmento inferior). El fragmento superior se encarga de enviar una cadena de caracteres por puerto serie, mientras el inferior recibe dichos datos, los separa y coloca en cada cola FIFO. 27 6 ESCENARIO n esta sección se presenta un experimento realizado en la Universidad Pablo De Olavide, Sevilla. Se ilustra un ejemplo de la aplicación descrita anteriormente sobre un roedor, concretamente una rata. En concreto es una rata Wistar macho de 20 semanas de vida con un peso de 485g. Para inducir la anestesia se introdujo al animal en una cámara anestésica con isoflurano en O2 al 5%. Posteriormente, se continua con la anestesia inhalatoria utilizando una máscara y unos niveles de entre 1 y 2.5% en oxígeno. Estas medidas se realizaron dentro de un proyecto aprobado por el comité de ética de la Universidad Pablo de Olavide. Una vez inducido el animal con anestesia, se colocaron los electrodos, pinzas de oximetría, sonda rectal y manta térmica. Durante el experimento, la frecuencia cardíaca, la saturación de oxígeno, y la temperatura corporal del animal se monitorizaron de forma continua, tanto con el monitor comercial del laboratorio como con el descrito anteriormente. Los resultados obtenidos se muestran a continuación en la Figura 31. Se ha utilizado la aplicación Matlab para una mejor representación de las gráficas. Figura 31. Gráficas obtenidas tras experimentación mediante el software Matlab. En las dos gráficas superiores, se muestran la saturación de oxigeno mientras en la gráfica inferior se muestra el electrocardiograma. A través del conjunto de estas tres gráficas, podemos calcular la frecuencia cardiaca, la saturación de oxígeno y la frecuencia respiratoria. Cabe mencionar que mediante el software Matlab es posible obtener la frecuencia cardiaca, la saturación de oxígeno en sangre y la frecuencia respiratoria. Por otra parte, la temperatura tanto del animal como de la manta térmica no han sido mostradas en la imagen anterior, pues estas son solo mostradas en la interfaz gráfica de forma numérica. E