NOTA: este articulo ha sido extraído del original proveniente del sitio web varper-tech.com en la dirección http://varper-tech.com/articulo.php?idart=82. Allí podrás conseguir informacion mas detallada sobre la descarga de los archivos de código del microcontrolador y los archivos de simulación.
Resumen
Un foto-pletismógrafo es un dispositivo utilizado para capturar el pulso de una persona tras colocar un emisor de luz (infrarroja o visible) y un receptor en contraposición con un obstáculo en medio (el cual seria en la mayoría de los casos la punta de los dedos). Cuando se produce un bombeo de sangre del corazón, la presión sanguínea en el dedo aumenta por lo que se produce una minúscula interrupción del haz de luz. En este caso mostraré cómo realizar un circuito capaz de capturar esos pulsos tan minúsculos para así realizar un monitor de pulso que podrá mostrar la frecuencia cardíaca en una pantalla LCD en tiempo real, midiendo el tiempo que transcurre entre cada pulsación.
Materiales utilizados
- 2 circuitos Integrados LM358
- 1 fotorresistencia
- 4 resistencias de 10K
- 1 condensador de 470nF
- 1 condensador de 220nF
- 4 resistencia de 1K
- 1 resistencia de 100K
- 1 condensador de 33uF
- 1 resistencia de 510K
- 1 resistencia de 160K
- 2 resistencia de 22K
- 1 condensador de 1uF
- 1 resistencia de 47K
- 1 condensador de 22uF
- 1 resistencia de 220K
- 1 resistencia de 300Ohm
- 1 diodo zener de 5.1V
- 1 led de luz visible
- Pantalla LCD 16x2
- Microcontrolador PIC18F4550
- 1 LED verde
- 1 cristal de 4 MHz
Herramientas utilizadas
- Proteus 7.7 o superior
- MPLAB C18
- PicKit 2 o cualquier programador de microcontroladores PIC
Modo de funcionamiento
Etapa de adecuación de la señal
El principio de funcionamiento bastante sencillo, simplemente contra de un emisor de luz visible o podría ser también infrarroja y un receptor enfrente a este el cual se encargará de percibir las variaciones minúscula en el haz de luz causadas por los latidos del corazón, este fenómeno ocurre cuando el corazón bombea sangre hacia la extremidades y la misma causa una pequeña interrupción durante el pico de presión en la extremidad. Debido a que en este caso nosotros trataremos de hallar la variación causada por este pulso en la presión es de suponer que debería usar algún circuito derivador de modo que haya la variación de voltaje con respecto al tiempo durante el latido, esto lo podemos lograr o una simple red RC configurado como filtro pasa alta, de modo que elimine a componente de sede la señal así como también los ruidos de baja frecuencia innecesarios en la captura de los pulsos, posterior a esto necesitamos unas etapas de amplificación la cual acondicionarán la señal a niveles aceptables que puedan ser capturados por el microcontrolador (niveles TTL) para continuar con la aplicación de este circuito debemos recurrir al diagrama del mismo el cual se muestra la siguiente figura.
Gráfico 1. Circuito para fotopletismografía.
En el diagrama anterior se puede apreciar el circuito completo que se encarga de la adecuación de la señal proveniente de los pulsos producido por cada latido del corazón. El circuito es bastante sencillo a pesar se está compuesto por varios amplificadores operacionales que se encargan de la amplificación y corrección de nivel de la señal proveniente de los latido. A continuación les daré una explicación muy detallada en donde se mostrara las gráficas de la respuesta en cada uno de los puntos de prueba señalados en el circuito, todo esto para que tengan un claro entendimiento del funcionamiento del circuito.
En la primera etapa (Va) tenemos un circuito que consta de una red RC que a su vez constituye un filtro pasa bajas, seguido de un filtro pasa altas en la punta Vb. La gráfica de Va y Vb puede verse en los diagramas siguientes.
Gráfico 2. Salida en el punto de prueba Va.
Gráfico 3. Salida en el punto de prueba Vb.
En el gráfico Va se puede apreciar la entrada generada directamente por la fotorresistencia pero que es filtrada mediante la resistencia R10 y el condensador C1 los cuales se encargan de eliminar aquellas frecuencias indeseables provenientes del ruido exterior como por ejemplo lámparas fluorescentes, luz solar, ruido de 60Hz, entre otros. Nótese que se tiene un offset bastante elevado de aproximadamente 1,45V este offset que es bastante indeseable debe ser eliminado mediante un filtro pasa altas que se logra con la resistencia R11 y el condensador C2, ambos configurados con valores que resultan en una frecuencia de corte de aproximadamente 33Hz.
Gráfico 4. Salida en el punto de prueba Vc.
Luego de las etapas de filtrado anteriores, se tiene una etapa de amplificación que lleva nuestra señal (que tiene mucha atenuación) a un voltaje pico de aproximadamente 2V, nivel que es bastante aceptable para cualquier procesamiento, sin embargo como podemos observar en el gráfico se puede notar que hay una cantidad exagerada de ruido que puede causar muchísimos problemas si no se considera una etapa de filtrado. En la gráfica siguiente se muestra la etapa de filtrado y la respuesta de los mismos.
Gráfico 5. Salida en el punto de prueba Ve.
En contraste con la señal obtenida del punto de prueba Vc tenemos una señal un poco mas filtrada con una respuesta apreciablemente mas aceptable, sin embargo, como hemos usado solamente filtros pasivos, se puede apreciar como se atenuó la señal bastante, a mucho menos de la mitad, por lo que deberíamos amplificarla nuevamente. La frecuencia de corte del filtro pasa altas constituido por el condensador C3 y la resistencia R12 es de aproximadamente 0,01Hz y solamente se utiliza para eliminar cualquier componente DC que contenga el circuito. Posteriormente la frecuencia de corte del filtro pasa bajas constituido por la resistencia R13 y el condensador C4 es de aproximadamente 2,1Hz, este filtro atenúa demasiado la señal por lo cual debe ser amplificada nuevamente.
Gráfico 6. Salida en el punto de prueba Vf.
Como se aprecio en la gráfica Ve se tiene una señal que ha sido demasiado atenuada por el paso de los filtros pasivos; en la etapa Vf se tiene la misma señal amplificada pero aun con mucho ruido, este se eliminara finalmente con un filtro pasa bajos como se muestra en la gráfica siguiente.
Gráfico 7. Salida en el punto de prueba Vg.
El filtro aplicado en esta etapa esta constituido por la resistencia R16 y el condensador C5 el cual tiene una frecuencia de corte de aproximadamente 7Hz. Con este finalmente se obtiene una señal perfecta que puede ser procesada tranquilamente por el circuito comparador.
Gráfico 8. Salida en el punto de prueba Vh.
En el punto de prueba Vh se puede apreciar una señal que se asemeja mucho a una línea recta, pero esta línea no es cualquiera, esta señal aparentemente DC no es mas que el valor promedio de la señal obtenida en el punto de prueba Vg, este circuito es bastante interesante porque permite hacer una comparación con una señal variable que se va ajustando al nivel de la señal original (Vg). Para obtener el valor de la señal promedio se usa simplemente un filtro pasa bajas configurado con una frecuencia de corte de aproximadamente 0,15Hz y se logra con la resistencia R17 y el condensador C6.
Gráfico 9. Salida en el punto de prueba Vg (azul) y Vh (rojo).
En esta gráfica se aprecia los puntos donde se intersecan ambas señales produciendo un nivel de comparación variable (señal en color rojo), esto quiere decir que si la señal original varia su offset a causa de movimientos del paciente o simplemente varia porque estos niveles no son muy estables, entonces el circuito siempre hará los ajustes en la señal de comparación de colo rojo.
Gráfico 10. Salida en el punto de prueba Vg (azul) y el terminal PPM (rojo).
En este punto podemos ver la salida en el punto de prueba PPM (de color rojo), el cual es el que se conecta a la entrada del microcontrolador, nótese que es una señal cuadrada perfecta que sera tomada por el microcontrolador en cada uno de sus flancos de subida para hacer el debido procesamiento tal como se explica en la etapa siguiente.
Cabe destacar que si no desean hacer uso de un microcontrolador, sino que solamente necesitan una salida visual de cada pulso podría colocar simplemente un led en la salida como se muestra en el circuito siguiente.
Gráfico 11. Circuito fotopletismografo con LED en la salida para visualización únicamente.
Algunas mejoras a este circuito
Aunque el comportamiento de este circuito es bastante aceptable para aplicaciones generales, se pudieran hacer mejoras -que de seguro haré en un futuro-, sobretodo en el tipo de filtros que se están utilizando y la configuración de los mismos, una de estas mejoras es utilizar filtros activos en lugar de los pasivos que atenúan la señal y además son un poco inestables a bajas frecuencias.
Otra mejora inminente es el uso de luz infrarroja, para que esta no sea perceptible por el ojo humano y haya muy poca o nula interferencia por fuentes de luz externas, sin embargo para aplicar este circuito se requeriría algunas etapas adicionales que de seguro les anexare en un futuro como mejora a este articulo.
Por otro lado, el comparador compuesto por el operacional U5:B es de tipo sencillo por lo que tiene mucha sensibilidad al ruido, una mejora bastante aceptable seria el uso de un comparador con histéresis, cabe destacar que no lo hice de esa forma porque fue lo que se me ocurrió en un principio pero les prometo que a futuro les haré todos los cambios correspondientes a esta etapa y las demás.
Como se habrán dado cuenta en este circuito se utiliza solamente una fuente positiva, es muy recomendable la alimentación del LM358 con una fuente dual ya que trabaja mucho mas eficientemente ya que no recorta la señal y de seguro tendrá muchos menos problemas de estabilidad, aunque en este caso no fue necesario el uso de fuentes duales, es recomendable usarla siempre que se tengan amplificadores operacionales.
Etapa de procesamiento de la señal
En esta etapa hacemos referencia básicamente al microcontrolador que se encarga de procesar la señal obtenida (una señal cuadrada como se aprecia en el gráfico 10 de color rojo) y hacer los cálculos necesarios para que dicha señal pueda ser interpretada y mostrada en una pantalla LCD indicando la cantidad de pulsos por segundo que tiene el paciente. El circuito que compone esta etapa esta compuesto de la siguiente forma.
Gráfico 2. Circuito de procesamiento de señal.
En primera instancia tenemos a nuestro microcontrolador PIC18F4550, el cual utiliza un cristal de 4 MHz que al ser pasado por el PLL interno del mismo se convierte a 48MHz, particularmente me gusta la idea de siempre utilizar la máxima frecuencia cuando se trata de hacer cálculos matemáticos debido a que se toma mucho menos tiempo en las rutinas y por ende hay menos latencia, por lo que es mas fácil calibrar el sistema completo. Lo demás que acompaña al microcontrolador es bastante sencillo, tenemos una pantalla LCD configurada a modo de 4 bits únicamente para simplificar el circuito y un LED conectado al terminal RD0/SPP0, el cual se encargara de emitir un pulso luminoso cada ves que ocurra un latido del corazón.
Diagrama de flujo
En este diagrama de flujo se muestra un resumen aproximado de la representación del código implementado en el microcontrolador para el conteo preciso de los latidos del paciente, cabe destacar que esta rutina tiene una aproximación muy aceptable y puede ser ajustada en caso de descalibrarse simplemente variando el valor de una línea de código. El diagrama de flujo es el siguiente:
Gráfico 3. Diagrama de flujo del código del microcontrolador (Cuerpo principal).
En este cuerpo principal tenemos un algoritmo bastante sencillo que simplemente se encarga de inicializar todos los periféricos necesarios para trabajar en la rutina de interrupciones, se decidió hacer todo por rutina de interrupciones ya que así el usuario puede hacer cambios en el cuerpo principal con mucha mayor comodidad y sin riesgos de descalibrar el dispositivo. Una vez que se han iniciado todos los periféricos se entra en un ciclo repetitivo infinito y el dispositivo continuara imprimiendo el valor de las PPM hasta que se apague el mismo. Se pudieran agregar pulsadores y otros elementos para el control del aparato pero eso queda a juicio del usuario quien desee descargar el código y ajustarlo a sus demandas.
Gráfico 4. Diagrama de flujo del código del microcontrolador (Rutina de interrupciones).
El algoritmo es algo un poco complicado pero tratare de explicarlo de la forma mas sencilla y mas resumida posible. Básicamente el algoritmo cuenta el tiempo que transcurre entre cada flanco recibido (esta es la parte importante del algoritmo), esto se hace utilizando el timer 3, el cual contara todos los desbordamientos mas el tiempo transcurrido en el justo momento en que ocurre una interrupción por flanco de subida; esto en el caso ideal, pero, para evitar falsos rebotes se dispone de un tiempo de comprobación de 50 ms el cual esta determinado para evitar falsos flancos o posibles ruidos que ocasionen una interrupción y produjera un conteo incorrecto, algo muy parecido al sistema antirrebote de los pulsadores, solo que en este caso se ha construido mediante interrupciones haciendo uso del timer 0 para llevar a cabo esta tarea.
Conclusión
Este circuito es parte de un sistema mas completo que comprende la captura de y graficación de señales ECG en la computadora, además posee grabación de varios segundos de datos para quienes necesiten hacerlo sin disponer de una computadora, este sistema completo lo publicare a futuro para que puedan sacarle provecho y nos envíen sus comentarios.
puedes publicar de nuevo, las imágenes no se ven
ResponderEliminarno sirve de nada, no hay imagenes, apesta .i.
ResponderEliminar2018 y sigue sin imágenes!
ResponderEliminar