Universidad Tecnológica de Querétaro Firmado digitalmente por Universidad Tecnológica de Querétaro Nombre de reconocimiento (DN): cn=Universidad Tecnológica de Querétaro, o=Universidad Tecnológica de Querétaro, ou, [email protected], c=MX Fecha: 2012.09.03 14:57:57 -05'00' UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Nombre del Proyecto: CARDIORITMÓMETRO TERCERA FASE Empresa: CID TAI de Div. TAI. Memoria Que como parte de los requisitos para obtener el titulo de Ingeniero en Tecnologías de la Automatización Presentan: Alma Cristina Moya Morales Uriel Sánchez Hernández Ing. Jorge Ramiro Alvarado Asesor de la empresa M. en C. Omar Rodríguez Zalapa Asesor de UTEQ 1 Querétaro, Qro., Agosto de 2012 Resumen Este proyecto consistió en la mejora del prototipo de “Cardioritmómetro”. El proyecto esta dividido en tres faces, en las cuales se desarrolló este prototipo. En la tercera fase se modifica el prototipo desarrollado en las etapas anteriores y se compone de dos elementos importantes; que consiste en un sistema de calibración para mejorar la plataforma de programación del Cardioritmómetro. Para poder simular función del sistema cardiovascular fue necesario desarrollar un equipo mecánico, se elabora la programación necesaria y es llamado “Emulador”. Al Cardioritmómetro se remplazan componentes electrónicos para mejorar el diseño del hardware, y al software se realizan modificaciones a la estructura del programa cambiando parámetros de los algoritmos en las formulas matemáticas. Como resultado se obtiene lecturas más factibles del ritmo cardiaco, pero aún se pretende mejorar el prototipo una vez calibrado por el simulador. 2 Abstract This project consisted in the improvement of a prototype called “Cardioritmómetro”. The project consisted in three stages but only the third stage was modified and by doing so, the previous two stages were improved. The third stage consisted on implementing a calibration system and the improvement to the software platform of the Cardioritmómetro. In order to calibrate the system of the Cardioritmómetro, it was necessary to develop mechanical equipment capable of simulate functions of the heart rate system. The equipment was developed and named “Emulador”. Some components from the Cardioritmómetro hardware were change and replaced from the electronic structure and some modifications were made to the original software design in order to improve and modify the structure of its mathematical equations. As a result it is now possible to get accurate rate heart readings through the simulator. 3 Dedicatorias A nuestros padres por estar en los momentos importantes de nuestras vidas, por los consejos que han sido de gran ayuda para nuestro crecimiento personal, por confiar en nosotros y darnos la oportunidad de culminar esta etapa de nuestra vida. Es por eso que les dedicamos esta memoria de estadía. También a nuestros hermanos y amigos a todos ellos por permitirnos formar parte de su vida, por presionarnos a terminar este trabajo, por enseñarnos a creer en nosotros mismos y motivarnos hacer las cosas de mejor manera. A todas aquellas personas importantes durante este tiempo. Agradecimientos Primeramente damos infinitamente las gracias a Dios, por habernos dado fuerza y valor para terminar nuestros estudios de ingeniería. Agradecemos la confianza y el apoyo de nuestros familiares y amigos, porque han contribuido positivamente para llevar a cabo esta difícil etapa. Mil gracias por que han estado con nosotros siempre. 4 A todos los maestros de la universidad que nos asesoraron, porque cada uno, con sus valiosas aportaciones, nos ayudó a crecer como persona y como profesionista. Gracias por sus consejos y su experiencia. Un agradecimiento muy especial, a la empresa HemoDinamics y a nuestra casa de estudios la UTEQ por habernos apoyado, orientado y darnos la oportunidad de realizar nuestra estadía y hacernos participes en el proyecto. Finalmente, agradecemos a nuestros compañeros de grupo, por la constante comunicación con ellos ha contribuido en gran medida a transformar y mejorar mi forma de actuar en mi trabajo, especialmente a aquellos que nos brindaron cariño, comprensión y apoyo, dándonos con ello, momentos muy gratos. 5 Índice Pagina Resumen…………………………………………………………………………………...2 Abstract ................................................................................................................... 3 Dedicatorias ............................................................................................................ 4 Agradecimientos...................................................................................................... 4 Índice ....................................................................................................................... 6 I. INTRODUCCIÓN ................................................................................................. 8 II. ANTECEDENTES ............................................................................................... 9 III. JUSTIFICACIÓN .............................................................................................. 10 IV. OBJETIVOS ..................................................................................................... 11 V. ALCANCES....................................................................................................... 11 VI. FUNDAMENTACIÓN TEÓRICA ...................................................................... 13 VI. I. Fundamentos Médicos.................................................................................. 13 VI.I.I El Aparato Cardiocirculatorio [1]. ............................................................ 13 VI.I.II Corazón [2]. .......................................................................................... 15 VI.I.III Los vasos sanguíneos [3]. .................................................................... 18 VI.I.IV La frecuencia cardiaca [4]. ................................................................... 22 VI.I.V Arritmias [4]. .......................................................................................... 24 VI.I.VI Ciclo cardiaco [5]. ................................................................................. 25 VI.II Fundamentos electrónicos. ......................................................................... 26 VI.II.I Arduino Mega 2560 [6]........................................................................... 26 VI.II.II El Arduino Motor Shield. [8]. ................................................................. 32 6 VI.II.IV Processing (Gráficos por computadora.) [10]. ..................................... 36 VII. PLAN DE ACTIVIDADES................................................................................ 43 VII.I Cronograma de actividades. ....................................................................... 43 VII.II Grafica de Gantt. ....................................................................................... 47 VIII. RECURSOS MATERIALES Y HUMANOS .................................................... 49 VIII.I. Recursos Materiales ................................................................................. 49 VIII.II. Recursos Humanos ................................................................................. 51 IX. DESARROLLO DEL PROYECTO. .................................................................. 52 IX.I Planteamiento del proyecto ......................................................................... 53 IX.II Reconocimiento del Proyecto ..................................................................... 54 IX.III. El emulador. .............................................................................................. 55 IX.III.I. Material eléctrico. ................................................................................. 55 IX.III.II Ensamble de los componentes electrónicos. ....................................... 58 IX.III.III Programación. ..................................................................................... 63 IX.IV.I Componentes eléctricos. ...................................................................... 74 IX.IV.II Esquematico del Cardioritmómetro. .................................................... 79 IX.IV.III Programación. .................................................................................... 86 X. RESULTADOS OBTENIDOS ........................................................................... 93 XI. ANÁLISIS DE RIESGO .................................................................................... 94 XII. CONCLUSIONES ........................................................................................... 95 XIII. RECOMENDACIONES .................................................................................. 96 XIV. REFERENCIAS BIBLIOGRÁFICAS Y VIRTUALES ..................................... 97 ANEXO.................................................................................................................. 99 7 I. INTRODUCCIÓN HemoDinamics es una empresa dedicada a la investigación y fabricación de aparatos médicos, una de sus investigaciones principales es la de la medición del ritmo arterial. Gracias a esta investigación se descubrió que no habían aparatos que midieran los de tiempos de los ciclos y de las fases de la arterias por lo que la empresa comenzaron con el desarrollo de un prototipo que pudiera obtener los datos de arteria. Este proyecto hasta el momento se cuenta con dos fases donde en la primera etapa se desarrolla un prototipo en donde solo obtiene la señal de la arteria en formato de sonido y mide los eventos arrítmicos que ocurren en la arteria, decidiendo utilizar dos sensores: un sensor de presión y un sensor Doppler. En la siguiente etapa se desarrollara un segundo prototipo con la cooperación de la Universidad Tecnológica de Querétaro este mide el ritmo arterial, tiempo de ciclos indicando también las arritmias ocurridas, tiempo de fase sistólica, tiempo de fases diastólica. 8 Como tercera fase se pretende incorporar al hardware y el software, realizar las modificaciones pertinentes en la programación para obtener la medición de la presión arterial, y proponer un diseño factible que establezca la medición del “Cardioritmómetro” de acuerdo con los estándares solicitados en metrología y por el sector salud. Esta última parte se complementa con otro aparato (llamado el “emulador”) para la calibración del Cardioritmómetro. El sistema de calibración se pretende desarrollar la programación necesaria así como su mecanismo y electrónica para su total funcionamiento. II. ANTECEDENTES Los investigadores de la empresa HemoDinamics descubrieron una laguna científica en el campo de la presión arterial, se dice que desde 1905 no se había realizado modificaciones a la determinación de la presión arterial. En cuanto a la presión diastólica, esta no se medía con ningún instrumento electrónico, por lo que se desarrolló el método BEM (Bases Hemodinámicas de México) en el cual se establecen los principios físicos básicos para la determinación de la presión arterial menor. 9 III. JUSTIFICACIÓN El proyecto se desarrolló con base en la solicitud que se hizo al departamento de vinculación de la Universidad Tecnológica de Querétaro (Denominada a lo largo del documento como UTEQ) del proyecto de investigación “Cardioritmómetro” de la empresa HemoDinamics S.A. de C.V. (denominada a lo largo de este documento como HD), enumerando la lista de requerimientos presentados por la misma para el diseño de un sistema médico de sensores de presión y sonido que internamente se ha denominado Cardioritmómetro. Dejando como antecedente HD y la UTEQ que ya cuenta con un software en base LabVIEW, capaz de determinar ciclos arteriales y dividirlos en sístole y diástole, así como la obtención de los tiempos de cada uno y estadísticas determinadas para el estudio posterior de las muestras. Se pretende obtener un prototipo funcional del sistema llamado “Cardioritmómetro”, y con el cual HD generará el producto que es objeto de este documento. 10 IV. OBJETIVOS Desarrollar el software con la programación necesaria para la calibración del “Cardioritmómetro” para que realice la función de simular el Ritmo Cardiaco. Mejorar el prototipo actual para que se pueda comercializar de acuerdo a los estándares establecidos por las instituciones del sector salud y metrología y cumpla con los requerimientos solicitados para el “Cardioritmómetro”. Se pretende realizar desde hardware necesario hasta las modificaciones necesarias al software. Realizar un manual que ayude al usuario en el manejo del prototipo de “Cardioritmómetro”. V. ALCANCES * El sistema de calibración que desarrollara HD y UTEQ será capaz de simular el funcionamiento del Ritmo Cardiaco y presentar al usuario las siguientes secuencias para calibración de “Cardioritmómetro”: 11 o Es un trastorno de la frecuencia cardíaca o del ritmo cardíaco, como latidos demasiado rápidos (taquicardia), demasiado lentos (bradicardia) o con un patrón irregular. o Con respecto al periodo sistólico y diastólico de la frecuencia de ciclos expresada en ciclos arteriales o latidos por minuto: Eventos con menor duración que la normal con respecto a la edad (bradicardias). Eventos con duración normal con respecto a la edad (normocardias). Eventos con mayor duración que la normal con respecto a la edad (taquicardias). Índice de variación de tiempo sistólico y diastólico con respecto a la moda de una frecuencia dada. o Estará programado utilizando el microcontrolador Arduino 560, que cubre con los requerimientos, además contará con el sistema mecánico y calibración del aparato en la mayoría de sus componentes. 12 El diseño del sistema tendrá las características de prototipo, desarrollado con las tecnologías más recientes acordes a los requerimientos. VI. FUNDAMENTACIÓN TEÓRICA VI. I. Fundamentos Médicos VI.I.I El Aparato Cardiocirculatorio [1]. El aparato circulatorio humano está compuesto por el corazón y dos sistemas vasculares que transportan la sangre, posee como función el distribuir los nutrientes, oxigeno a las células y recoger los desechos metabólicos que se han de eliminar después por los riñones, en la orina, y por el aire exhalado en los pulmones, rico en dióxido de carbono (CO2). De toda esta labor se encarga la sangre, que está circulando constantemente por las arterias. El corazón es un órgano con cuatro compartimentos que se llaman aurícula derecha, aurícula izquierda, ventrículo derecho y ventrículo izquierdo, como se observa en la figura 6.1). Las paredes del corazón están formadas principalmente por músculo (llamado miocardio) que se contrae para provocar el latido que enviará la sangre desde el ventrículo izquierdo a la arteria aorta y desde ahí a todo el cuerpo. Las arterias transportan la sangre oxigenada y con nutrientes (azúcar, grasa y proteínas) desde el corazón a todos los órganos del cuerpo. Las venas devuelven 13 la sangre al corazón para que pueda ser de nuevo oxigenada. La sangre sin oxigenar llega a la aurícula derecha por las venas cavas superior e inferior, pasa al ventrículo derecho y desde ahí a los pulmones, donde se “carga” de oxígeno y vuelve a la aurícula izquierda, para pasar al ventrículo izquierdo y con el siguiente latido volver a nutrir a nuestro organismo. Las arterias que llevan la sangre oxigenada al corazón son las arterias coronarias. Figura 6.1 Aparato Cardiocirculatorio [1]. 14 VI.I.II Corazón [2]. El corazón es un órgano que posee cavidades, similar al tamaño del puño, encerrado en la cavidad torácica, en el centro del tórax en un lugar denominado mediastino, entre los pulmones, sobre el diafragma, dando nombre a la "entrada" del estómago o cardias2. Histológicamente en el corazón se distinguen tres capas de diferentes tejidos que, del interior al exterior se denominan endocardio, miocardio y pericardio. El corazón está dividido en dos mitades que no se comunican entre sí: una derecha y otra izquierda, La mitad derecha siempre contiene sangre pobre en oxígeno, procedente de las venas cava superior e inferior, mientras que la mitad izquierda del corazón siempre posee sangre rica en oxígeno y que, procedente de las venas pulmonares, será distribuida para oxigenar los tejidos del organismo a partir de las ramificaciones de la gran arteria aorta. Cada mitad del corazón presenta una cavidad superior, la aurícula, y otra inferior o ventrículo, de paredes musculares muy desarrolladas. Existen, pues, dos atrios o aurículas: derecha e izquierda, y dos ventrículos: derecho e izquierdo. Entre la aurícula y el ventrículo de la misma mitad cardiaca existen unas válvulas llamadas válvulas atrioloventriculares (tricúspide y mitral, en la mitad derecha e izquierda respectivamente) que se abren y cierran continuamente, permitiendo o impidiendo el flujo sanguíneo desde el ventrículo a su correspondiente atrio (en figura 6.2 se observa la anatomía del corazón donde se señalan las partes que 15 componen a este órgano, como las venas, arterias, ventrículos, etc.). Cuando las gruesas paredes musculares de un ventrículo se contraen (sístole ventricular), la válvula atrioventricular correspondiente se cierra, impidiendo el paso de sangre hacia la aurícula, con lo que la sangre fluye con fuerza hacia las arterias. Cuando un ventrículo se relaja, al mismo tiempo la aurícula se contrae, fluyendo la sangre por esta sístole auricular y por la abertura de la válvula auriculoventricular. Figura 6.2. Se muestra la anatomía del corazón exterior e inferior [2]. Como una bomba, el corazón impulsa la sangre por todo el organismo, realizando su trabajo en fases sucesivas. Primero se llenan las cámaras superiores o aurículas, luego se contraen, se abren las válvulas y la sangre entra en las cavidades inferiores o ventrículos. Cuando están llenos, los ventrículos se contraen e impulsan la sangre hacia las arterias. El corazón late unas setenta veces por minuto y bombea todos los días unos 10.000 litros de sangre. 16 VI.I.II.I Movimientos del corazón [2]. El corazón tiene dos movimientos: Uno de contracción llamado sístole y otro dilatación llamado diástole. Pero la sístole y la diástole no se realizan a la vez todo el corazón, se distinguen tres tiempos: Sístole Auricular, se contraen las aurículas y la sangre pasa a los ventrículos que estaban vacíos. Sístole Ventricular, los ventrículos se contraen y la sangre que no puede volver a las aurículas por haberse cerrado las válvulas bicúspide y tricúspide, sale por las arterias, pulmonar y aorta. Estas también tienen, al principio, sus válvulas llamadas válvulas sigmoideas, que evitan el reflujo de la sangre. Diástole general: Las aurículas y los ventrículos se dilatan, al relajarse la musculatura, y la sangre entra de nuevo a las aurículas. Los golpes que se producen en la contracción de los ventrículos originan los latidos, que en el hombre oscilan entre 70 y 80 latidos por minuto. Durante los períodos de reposo el corazón tiene aproximadamente 70 pulsaciones por minuto en un individuo adulto del sexo masculino, y en este mismo intervalo bombea aproximadamente cinco litros de sangre. El estímulo que mantiene este ritmo es completamente autorregulado. Incrustada en la aurícula derecha se encuentra una masa de tejido cardíacos especializados que recibe el nombre dnodo sinusal o ganglio senoauricular (SA) como podemos observar en la figura 6.3 el sistema cardiovascular y su funcionamiento que si se indica con las flechas la trayectoria de la circulación de la sangre por en el sistema. 17 Figura 6.3. Se muestra el funcionamiento del corazón [2]. VI.I.III Los vasos sanguíneos [3]. Los vasos sanguíneos (arterias, capilares y venas, como se puede apreciar en la figura 6.3) son conductos musculares elásticos que distribuyen y recogen la sangre de todos los rincones del cuerpo. Se denominan arterias a aquellos vasos sanguíneos que llevan la sangre, ya sea rica o pobre en oxígeno, desde el corazón hasta los órganos corporales. Las grandes arterias que salen desde los ventrículos del corazón van ramificándose y haciéndose más finas hasta que por fin se convierten en capilares, vasos tan finos que a través de ellos se realiza el intercambio gaseoso y de sustancias entre la sangre y los tejidos. Una vez que este intercambio sangre-tejidos a través de la red capilar, los capilares van 18 reuniéndose en vénulas y venas por donde la sangre regresa a las aurículas del corazón. Figura 6.3 Vasos sanguíneos [3]. Las Arterias: Son vasos gruesos y elásticos que nacen en los ventrículos, aportan sangre a los órganos del cuerpo por ellas circula la sangre a presión debido a la elasticidad de las paredes. Del corazón salen dos Arterias: 1) El tronco pulmonar que sale del ventrículo derecho y lleva la sangre a los pulmones y 2) La aorta que sale del ventrículo izquierdo forma el arco aórtico (cayado) del cual emergen arterias para cabeza, cuello y miembros superiores, desciende como aorta torácica y al atravesar diafragma cambia a aorta abdominal que irriga las estructuras abdominales. Finalmente se divide en dos arterias ilíacas. De la aorta se originan las siguientes ramas: 19 Las carótidas: Aportan sangre oxigenada a la cabeza. Subclavias: Aportan sangre oxigenada a los miembros superiores. Hepática: Aporta sangre oxigenada al hígado. Esplénica: Aporta sangre oxigenada al bazo. Mesentéricas: Aportan sangre oxigenada al intestino. Renales: Aportan sangre oxigenada a los riñones. Ilíacas: Aportan sangre oxigenada a los miembros inferiores. Tronco Celíaco: Es un arteria de la aorta abdominal que se trifurca para dar irrigación al estómago, hígado y bazo. Miembros Superiores: de la subclavia se forma las axilar que se transforma en braquial y ésta en radial y ulnar que se unen en mano formando los arcos arteriales. Miembros Inferiores: de la ilíaca externa se forma la femoral que se continúa como tibial y fibular. Los Capilares: Son vasos sumamente delgados en que se dividen las arterias y que penetran por todos los órganos del cuerpo, al unirse de nuevo forman las venas. 20 Las Venas: Son vasos de paredes delgadas y poco elásticas que recogen la sangre y la devuelven al corazón, desembocan en los atrios. En el atrio derecho desembocan: La Cava superior formada por la unión de las venas braquiocefálicas: yugulares que vienen de la cabeza y las subclavias que proceden de los miembros superiores (venas braquiales, cefálica y basílica). La Cava inferior a la que van las Ilíacas que vienen de los miembros inferiores (venas femorales, safena magna o interna y safena parva o externa), las renales de los riñones, la suprahepática del hígado y genitales. En la siguiente imagen 6.4 se da una breve explicación de la presión arterial, algunos datos importantes para medir la presión condiciones necesarias para considerar. 21 Figura 6.4. En esta imagen se muestran algunos datos importantes para la toma de la presión arterial [3]. VI.I.IV La frecuencia cardiaca [4]. Se define la frecuencia cardiaca como las veces que el corazón realiza el ciclo completo de llenado y vaciado de sus cámaras en un determinado tiempo. Por comodidad se expresa siempre en contracciones por minuto, ya que cuando nos tomamos el pulso lo que notamos es la contracción del corazón (sístole), es decir cuando expulsa la sangre hacia el resto del cuerpo. 22 El numero de contracciones por minuto esta en función de muchos aspectos y por esto y por la rapidez y sencillez del control de la frecuencia hace que sea de una gran utilidad. La frecuencia cardiaca se divide en Bradicárdica, Normocárdica y Taquicárdica. La Bradicárdica es aquella frecuencia cardiaca cuyo valor está por debajo del rango establecido como punto de referencia de acuerdo a la edad de la persona. La Normocárdica es aquella frecuencia cardiaca cuyo valor se encuentra dentro de rango establecido como punto de referencia de acuerdo a la edad de la persona. La Taquicárdica es aquella frecuencia cardiaca cuyo valor está por encima del rango establecido como punto de referencia de acuerdo a la edad de la persona. 23 Figura 6.5.Frecuencia cardiaca. En el electrocardiograma muestra la señal de la frecuencia cardiaca normal [4]. VI.I.V Arritmias [4]. Toda irregularidad en el ritmo natural del corazón se denomina «arritmia». Cualquiera puede sentir latidos irregulares en algún momento de su vida, y estas palpitaciones leves e infrecuentes son generalmente inofensivas. Las arritmias que pueden comprometer su vida son mucho menos frecuentes. Los impulsos eléctricos generados por el músculo cardíaco estimulan la contracción del corazón. Esta señal eléctrica se origina en el nódulo sinusal o sinoauricular (SA) ubicado en la aurícula derecha entorno a la desembocadura de la vena cava superior. El nódulo SA también se denomina el «marcapasos natural» del corazón. 24 VI.I.VI Ciclo cardiaco [5]. Es la actividad mecánica consistente en periodo de contracción (sístole con una duración promedio de 0.22 segundos) y periodo de relajación (diástole con una duración promedio de 0.58 segundos), con una duración total promedio de 0.8 segundos. En la figura 6.6 se puede observar la división de la señal cardiaca en un ciclo cardiaco. En un electro normal tiene una estructura básica que se repite periódicamente: el complejo P-QRS-T, que corresponde con un ciclo cardíaco (un latido, sístole-diástole). Figura 6.6. Señal de ciclo cardiaco o complejo P-QRS-T [5]. Onda P: es el inicio del ciclo. El nodo sinusal, nuestro marcapasos natural, libera una descarga desde su ubicación en la aurícula derecha, provocando la contracción auricular que empuja la sangre a los ventrículos. Segmento PR: es una línea horizontal que se corresponde con el viaje del impulso eléctrico a los ventrículos. No hay ningún movimiento en los milisegundos que dura. 25 Complejo QRS: es la despolarización y contracción de los ventrículos, impulsando la sangre por las arterias. Tiene mucho mayor voltaje que la onda P porque la masa muscular de los ventrículos es mayor que la de las aurículas. La onda Q es el primer pico negativo, si lo hay. Si cumple ciertos criterios puede indicar cicatrices en el miocardio por infartos previos. Las ondas R y S (el primer pico positivo y el negativo que le sigue) se corresponden con la contracción de la masa del corazón. VI.II Fundamentos electrónicos. VI.II.I Arduino Mega 2560 [6]. Arduino es una plataforma básica open source prototipo electrónico basado en hardware y software de fácil uso: está pensando con el objetivo de crear objetos o ambientes interactivos. Tiene dos componentes: Software: Entorno de desarrollo creado: Escribir, corregir errores de estructura al programa, programas (sketches), y cargarlos al hardware. 26 Hardware: Placa arduino (ver figura 6.7 donde se observa la imagen de la placa arduino mega 2560). Arduino mega 2560 es una placa electrónica basada en el microprocesador Atmega2560. Algunas de sus características cuenta con 54 entradas/salidas digitales y 14 de estas pueden utilizarse para salidas PWM (modulación por ancho de pulsos). Además lleva 16 entradas analógicas, UARTs (puerto serie), un oscilador de 16MHz, una conexión USB, un conector de alimentación a un puerto ICSP (In Circuit Serial Programming, en español programación serial y en circuito) que sirve para programar del Microcontrolador ATmega y así poder cargar los programas que crean en el en el software del arduino directamente en el microcontrolador sin tener que necesitar programadores externos y un pulsador para el reset. La placa lleva todo lo necesario para soportar el microprocesador. Para empezar a utilizar la placa sólo es necesario conectarla al ordenador a través de un cable USB, o alimentarla con un adaptador de corriente AC/DC. También, para empezar, puede alimentarse sencillamente con una batería. Una de las características principales de la MEGA 2560 es que no utiliza el convertidor USB-serial FTDI, sino que utiliza el microprocesador Atmega8U2 programado como convertidor USB-serial. Tensión operativa 5V Tensión de alimentación (recomendado) 7-12V 27 Tensión de alimentación (limites) 6-20V Máxima corriente continua para las entradas: 40 mA Máxima corriente continua para los pins 3.3V: 50 mA Memoria Flash 256 KB (el bootloader (cargador de arranque) 1 () usa 8 KB). SRAM 8 KB EEPROM 4 KB Velocidad del reloj 16 MHz Figura 6.7 Placa Arduino mega 2560 [6]. VI.II.I.I Programación [7]. El programa se implementara haciendo uso del entorno de programación propio del arduino en la figura 6.8 se muestra la venta del entrono de programación en el software de arduino y se transferirá empleando el cable USB. Si bien en el caso de la placa USB no es preciso utilizar una fuente de alimentación externa, ya que el propio cable USB la proporciona. 28 Para programar es la placa es necesario tener el entorno de desarrollo (IDE). Proporcionada por arduino en su página web (www.arduino.cc). Se dispone de versiones para Windows y para MAC, así como las fuentes para copilarlas en LINUX. Existen en la web las versiones para distintos sistemas operativos. Figura 6.8 Plataforma de desarrollo del Arduino [7]. Lo primero que tenemos que hacer para comenzar a trabajar con el entorno arduino es configurar las comunicaciones entre la placa Arduino y la PC. Para ello debemos abrir el menú “Tabla” la opción de “puerto serial”. En esta opción debemos seleccionar el puerto serial que esta conectado a nuestra placa. En WindoWs, se desconectamos el puerto al que esta conectado nuestra placa podemos revisarlo a través del administrador de dispositivos (puertos COM, LPT/USB puerto serial). El primer paso para comprobar que la interfaz de desarrollo funciona correctamente es abrir uno de los ejemplos y cargar el programa para verificar. 29 VI.II.I.II Estructura del programa [7]. La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes necesarias, o funciones, encierran bloques que contienen declaraciones, bloques de instrucciones. void setup() { Bloque de instrucciones; } void loop() { Bloque de instrucciones; } En donde setup () es la parte encargada de recoger la configuración y loop() es la que contienen el programa que se ejecutará cíclicamente (de ahí el termino loop –bucle-). 30 Ambas funciones son necesarias para que el programa trabaje. La función de configuración debe contener la declaración de las variables. Es la primera función a ejecutar en el programa, se ejecuta sólo una vez, y se utiliza para configurar o inicializar pinMode (modo de trabajo de las E/S), configuración de la comunicación en serie y otras. La función bucle (loop) siguiente contiene el código que se ejecutara continuamente (lectura de entradas, activación de salidas, etc.) Esta función es el núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo. La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los modos de trabajo de los pins, o el puerto serie. Debe ser incluido en un programa aunque no haya declaración que ejecutar. void setup() { pinMode(pin, OUTPUT); // configura el 'pin' como salida } Después de llamar a setup(), la función loop() hace precisamente lo que sugiere su nombre, se ejecuta de forma cíclica, lo que posibilita que el programa este respondiendo continuamente ante los eventos que se produzcan en la tarjeta. 31 void loop() { digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´ delay(1000); // espera un segundo (1000 ms) digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´ delay (1000); Otras de las funciones básicas de arduino son las del tiempo y las matemáticas: Delay(ms): Realiza la una pausa en el programa la cantidad de tiempo en milisegundos especificada en el parámetro (máximo 1000, mínimo 1). Millis(): Devuelve la cantidad de milisegundos que se lleva la placa arduino ejecutado el programa actual como un valor “long unsigned”. Después de nueve horas el contador vuelve a cero. VI.II.II El Arduino Motor Shield. [8]. El Arduino Motor Shield, figura 6.8, está basado en el L298 (hoja técnica del fabricante), que es un puente H dual para el manejo de cargas inductivas como relevadores, solenoides, motores de DC y motores de pasos. Te permite 32 manejar dos motores de DC con tu Arduino, controlar la velocidad y dirección de cada uno de manera independiente. También puedes medir la corriente consumida por cada uno de ellos entre otras características. Características: Voltaje de operación 5V a 12V Controlador de motor L298P, (maneja 2 motores de DC o 1 motor de pasos) Corriente máxima: 2A por canal o 4A máximo (requiere alimentación externa) Corriente censada 1.65V/A Funciones de freno y rotor libre. Figura 6.8. El Arduino Motor Shield [8]. 33 VI.II.III GLCD 128x64 [9]. Las pantallas LCD (pantalla de cristal líquido y en ingles Liquid Crystal Display) nos permiten mostrar datos o información de nuestro proyecto. Si son gráficas como la LCD 128x64 tipo A, nos permiten incluso mostrar dibujos, gráficas, paneles o casi todo lo que se nos pueda ocurrir. Para controlarlas necesitamos normalmente un mínimo de ocho pines. La LCD monocromo gráfico (GLCD), la podemos controlar con solo un cable de datos. Sus características: LCD monocromo, gráfico 128x64 pixeles. Luz de fondo verde ajustable por software. Contraste ajustable por potenciómetro incluido en placa. Alimentación 6-7v (se puede alimentar perfectamente con el pin de 5v del Arduino) Consumo 220mA con la luz de fondo al 100% Entrada de datos: 0-5v 115200bps (velocidad por defecto, ajustable por software) Dimensiones 7,6 x 5 x 1,5cm 34 Esquema: El montaje para conectarlo al puerto paralelo es muy sencillo y solo necesitaremos 5 componentes pasivos. Dado el bajo consumo del LCD (6090mA) podremos coger sin problemas los +5v necesarios para que funcione del puerto USB o de cualquier conector de la fuente de alimentación que nos proporcione dicho voltaje. En la figura 6.9 se puede ver el diagrama eléctrico de las conexiones de la LCD y en la tabla 1 de abajo se explica como se conectan cada uno de los pins de la LCD con el arduino correspondiente en este caso corresponde a la segunda fila (Arduino mega) y la quinta fila que son los pines de la LCD tipo A. Figura 6.9. Esquema de configuración para la LCD [9]. 35 En la tabla 1 se define las conexiones de la GLCD (de acuerdo al tipo de panel; A, B, C y D) de acuerda al arduino (Uno o Mega). La segunda columna y la cuarta indican la configuración adecuada para los componentes que se utilizan en el proyecto . VI.II.IV Processing (Gráficos por computadora.) [10]. Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas y está orientado a artistas visuales y diseñadores digitales, resultando en un lenguaje de fácil aprendizaje y utilización como una herramienta alternativa al software. 36 Una de sus principales características es que es multiplataforma, que pude ser ejecutado en windows, linux o mac y permitiendo exportar los aplicaciones resultantes a cualquiera de estos entornos, o incluso generar archivos para su visualización en páginas webs. Con processing podemos desarrollar todo tipo de aplicaciones, desde juegos o programas de cálculos hasta software para instalaciones artísticas, el límite está en la imaginación. Este lenguaje fue inspiración para Arduino, fue diseñado realmente para procesamiento de gráficos e imágenes. Entre otras características tenemos que se desarrollar aplicaciones desde muy sencillas a muy complejas, la conexión con dispositivos y prototipos electrónicos: proyectos para Arduino. VI.II.IV.I. Análisis de la interfaz del programa [10]. Como podrán notar la interfaz de processing es muy simple y minimista, ver en la imagen 6.10 donde se presenta el entorno y se divide en cuatro módulos verticales que delimitan las opciones y posibilidades del programa, a continuación detallaremos la utilidad de cada uno. 37 Figura 6.10. Plataforma del Processing. [10]. Cuando guardamos una aplicación, se genera un directorio con ese nombre y el fichero de la aplicación se almacena dentro con la extensión .pde o Los nombres de los ficheros máximo 64 caracteres sin espacios. o Se pueden crear más ficheros asociados a la misma aplicación (gestión de pestañas). Estos ficheros por defecto tendrán la misma extensión .pde, pero también pueden tener la extensión .java (y serán tratados como tales). 38 o Los ficheros adicionales corresponderán a nuevas funciones o clases (en tal caso habrá que definir en el principal la función en la configuración). o Las pestañas visibles serán las que se consideraran al generar la aplicación o Para abrir un proyecto bastará con abrir cualquier .pde del interior del directorio. o Ejecutar (Run) y paro (Stop) permiten iniciar la ejecución de la aplicación y su finalización. o Exportar (Export) permite generar un subprograma de la aplicación. La opción del menú “aplicación de exportar” permite generar una aplicación lista para ejecutarse en Mac OS, Linux o Windows. Todo esto se generará en directorios dentro del directorio principal de la aplicación. Otras opciones interesantes: o Importa la librería. Nos facilita la inclusión de las sentencias importar de las librerías más útiles. 39 o Agregar archivo (Add File). Nos permite añadir imágenes, fuentes u otra información multimedia a un directorio especial en nuestra carpeta de aplicación: la carpeta „data‟. o Crear una fuente. Facilita la creación de subprogramas que utilicen fuentes de nuestro sistema y que queramos garantizar que aparezcan correctamente en cualquier navegador. o Ayuda (Help). Nos permite consultar la información de processing, incluso ver la referencia de la función que tengamos seleccionada en el código. VI.II.IV.II. Estructura de la programación de processing [10]. El hecho de crear un programa implica recurrir a la escritura y aprender un lenguaje. Similar a cuando aprendemos un nuevo lenguaje oral o escrito, necesitamos aprender una sintaxis y una lógica. Comentarios. Processing permite agregar notas en cualquier sector del código. Pueden ser de solo una línea o de muchas líneas. // Dos barras laterales son usadas para comentar 40 /*Una barra lateral seguida por un asterisco permite el comentario de barias líneas.*/ Funciones. Las funciones permiten dibujar formas, colores, realizar cálculos matemáticos, entre otras variadas acciones. Por lo general se escriben en minúsculas y seguidas por paréntesis. Algunas funciones aceptan parámetros, los cuales se escriben entre los paréntesis. Si acepta más de uno, son separados por una coma (,). A continuación un programa que incluye dos funciones: size() y background() //Con esta función establecemos el tamaño de la ventana de presentación //El primer parámetro corresponde al ancho de la ventana //El segundo parámetro corresponde al alto. size(400, 300); //Con esta función establecemos el color de fondo de la ventana. .background(0); //Acepta diversos parámetros, para una escala de grises bastará con valores de 0(negro) a 255 (blanco). Expresiones y Acciones. Si usáramos una analogía, la expresión de un software es como una frase. Las expresiones, por lo general, van acompañadas de algún operador como +, -, *o /, ya sea a la izquierda o a la derecha del valor. Una expresión en programación puede ser básica, como un solo número, o una 41 compleja cadena de elementos. De esta manera, una expresión siempre tiene un valor determinado. Hay expresiones que también pueden usarse en comparación de un valor con otro. Los operadores de “>” /mayor a/ y “<” /menor a/ devuelven solo dos valores: true (verdadero) y false (falso). Lo que en programación equivale a una oración. Se completa cuando se presenta el terminador de la acción. En Processing, el terminador de acción es el punto-y-coma (;). Una acción puede definir una variable, ejecutar una variable, asignar una variable, ejecutar una función, o construir un objeto. A continuación unos ejemplos: size(200, 200); //ejecuta la función size y determina los valores 200 y 200int x; //declara una nueva variable x = 102 //asigna un valor a la variable. Ejemplo sencillo de la estructura del programa. Con este ejemplo se pretende plantear como se forma la estructura con las indicaciones anteriores. void setup(){ // el setup es importante donde definimos el tamaño de la ventana y el color del fondo del documento. background(230); // señalamos que el fondo de nuestra ventana será blanca size(200,200); // y el tamaño de nuestra ventana señalamos que será de 200 x 200 pixeles, puedes cambiar los números para variar el la amplitud de la ventana 42 } void draw(){ // una vez definido el tamaño o dimensión y el fondo de nuestro ejercicio, con esta instrucción definimos lo que dibujamos en él. rect(50,50,50,50); // rect es sinónimo de rectángulo en processing y los primeros dos 50 son la posición en X y Y donde ubicaremos nuestro cuadrado, los otros dos 50 son la dimensión de este. } VII. PLAN DE ACTIVIDADES VII.I Cronograma de actividades. Los tiempos definidos en el cronograma son estipulados y aproximados de acuerdo a la información y la retroalimentación que son proporcionados por la UTEQ y HD. El cronograma se divide en cinco etapas que se describen en los siguientes párrafos. En la primera etapa consiste en el conocimiento del proyecto: Se pretende dar el tiempo necesario para estudiar y conocer la documentación del proyecto ya existente para así poder continuar y realizar las actividades correspondientes. El segundo punto a tratar corresponde a la asignación del proyecto: En este apartado se asignan los objetivos, alcances y la gráfica de Gantt, es 43 necesario definir cada uno de estos puntos para obtener una buena organización y6 se pretende conseguir buenos resultados. La investigación es el siguiente apartado donde se estudia y se busca información de los componentes que corresponden a la elaboración del proyecto, para conocer conceptos técnicos, aprender a utilizarlos así, su función, buscar nuevas alternativas tanto de software como hardware. En la penúltima etapa es la construcción es donde se elabora tanto la programación así como los cambios o acoplamientos ala electrónica. Por ultimo las pruebas: las pruebas se realizan por separado cada mecanismo eléctrico de igual manera la programación para hacer ajustes o modificaciones, para integrarlos y nuevamente realizar las pruebas necesarias y si es necesario tomar las medidas pertinentes para finalmente hacer las últimas pruebas y entregar el proyecto. En la tabla 2 se desarrolla cada una de las etapas así como las actividades correspondientes a cada apartado así como un tiempo estimado. 44 Tabla 2. En esta tabla se describen las actividades correspondientes para llevar a cabo el proyecto. ACTIVIDADES Conocimiento del TIEMPO(DIAS) Investigar conceptos básicos 5 días Estudiar la documentación y 15 días proyecto reconocimiento del proyecto Asignación del proyecto Material necesario 10 días Herramientas a utilizar 5 días Objetivos del proyecto 5 días Alcance 5 días Grafica de Gantt 5 días Arduino Mega 2560 15 días Arduino Motor Shield 5 días Sensor MPX5050 y etapa de amplificación 5 días Investigación 45 LM324N GLCD 164x28 10 días Control NDC06V 4 días Configuración de librerías para arduino 5 días Programas a utilizar 10 días Estructura de los elementos ya existentes. 10 días Instalación del software necesario para la 5 días programa del equipo. Construcción Diseño del diagrama eléctrico para la LCD 6 días Diseño de fuente eléctrica fija para el motor 2 días Programas para el arduino 20 días Modificaciones al equipo ya existente 10 días Realizar las conexiones eléctricas de los 3 días componentes. Impresión de diseños y elaborar la placa 2 días correspondiente. Pruebas A todos los elementos eléctricos por 46 10 días separado Modificaciones al programa 15 días En conjunto todos los componentes y 5 dias programación necesaria. VII.II Grafica de Gantt. La grafica de Gantt es una herramienta que nos permite la planificación de las tareas necesarias para la realización de un proyecto. Cada tarea es representada por una línea, mientras que las columnas representan las semanas, en tiempo estimado. Como se observa en la tabla 3 donde se presenta la gráfica de Gantt de acuerdo a las necesidades del proyecto. 47 Tabla 3. Grafica de Gantt correspondiente a actividades para desarrollar el proyecto del “Cardioritmómetro”. 48 VIII. RECURSOS MATERIALES Y HUMANOS VIII.I. Recursos Materiales Los recursos de los materiales es desarrollar una aproximación (estimado) de los costos de los recursos que se necesitan para completar las actividades del proyecto. En las siguientes tablas se muestran los materiales necesarios, en donde cada una de ellas se describe el de oficina e inmobiliario se puede ver la tabla 4, así como equipo ya existente en la tabla 5 y finalmente en la tabla 6 el material faltante. Tabla 4. En esta tabla se muestran el inmobiliario y herramientas del área de trabajo. Ya se cuenta con este material. INMOBILIARIO Y MATERIAL DEL CANTIDAD COSTO LABORATORIO FABRICANTE 1 Estante UNITARIO $2,100.00 1 Laptop DELL 4 Reguladores de voltaje $4,200.00 $12,000.00 $12,000.00 $600.00 49 COSTO $2,400.00 4 Multicontactos $100.00 $400.00 Cautín con temperatura 1 variable STEREN $1,000.00 $1,000.00 1 kit de soldadura STEREN $75.00 $75.00 1 multímetro STEREN $700.00 $700.00 1 osciloscopio $25,000.00 $25,000.00 1 kit de desarmadores TRUPER $145.00 $145.00 1 Kit de pinzas TRUPER $165.00 $165.00 $1,200.00 $1,200.00 1 Archivero TOTAL $43,085.00 Tabla 5. Material existente del laboratorio. 50 Taba 6. En la siguiente tabla se muestra los componentes faltantes que integran el proyecto y el costo por unidad. VIII.II. Recursos Humanos Se describe el personal encargado de desarrollar, organizan y que dirigen el equipo del proyecto. Los responsables del proyecto está compuesto por cuatro personas; dos especialistas en la rama de la medicina y la electrónica respectivamente, y los dos restantes practicantes de la ing. Tecnologías de la automatización a quienes les han asignado roles y las responsabilidades para concluir el proyecto. En la tabla 7 se describe el recurso humano y se insumirán 480 horas de ingeniería, para la totalidad del proyecto. Y en la tabla 8 el costo aproximado final del proyecto, tomando en cuenta los componentes eléctricos y la mano de obra. 51 Tabla 7.Se desarrolla la descripción del personal y el tiempo correspondiente a la realización del proyecto Tabla 8. Costo final del proyecto . IX. DESARROLLO DEL PROYECTO. En el capítulo nueve se realiza una explicación detallada de las actividades realizadas en el transcurso de la estadía, para desarrollar la tercera fase del proyecto, que se llevó a cabo en la Universidad Tecnológica de Querétaro con la empresa HemoDinamics S.A. de C.V. 52 IX.I Planteamiento del proyecto Esta actividad consistió en definir cada una de las etapas necesarias para el seguimiento del Cardioritmómetro que es la tercera fase del proyecto, donde se desempeña las modificaciones y adaptaciones para mejorar el proyecto así y con seguir los objetivos. Las etapas que se definieron son las siguientes: Reconocimiento del proyecto Ganar el conocimiento básico para la realización del proyecto Realización del proyecto con plataforma de programación Arduino y Processing. Traslado del proyecto a un prototipo portátil para el emulador. Diseñar un software en base Arduino para generar la simulación del sistema cardiovascular, en el emulador. Diseñar un software en base Processing, capaz de obtener dos señales digitales y una señal analógica, capaces de detectarlas y obtener sus gráficas del sensor de presión, del encoder y una señal de reloj, así como la obtención de los tiempos de cada uno y estadísticas determinadas para el estudio posterior de las muestras. Documentación de circuitos impresos realizados particularmente en las etapas anteriores. 53 Adquirir el material necesario para el mejor acoplamiento del proyecto ya existente. Agregar modificaciones y adaptaciones a la programación, de acuerdo al estudio del ciclo arterial. IX.II Reconocimiento del Proyecto La primera parte del reconocimiento del proyecto consistió en la investigación de los conceptos y características de los componentes utilizados en las etapas anteriores del proyecto, así como en la familiarización de los mismos. Mencionados en el marco teórico. La empresa HemoDinamics en un principio ya contaba con material propuesto para su utilización en el sistema mecánico y eléctrico, pero no contaban con la información técnica para el funcionamiento de los componentes electrónicos lo que llevo a la investigación de la posibilidad de utilizarlos. Fue necesario cambiar componentes ya que no eran confiables o no se obtuvieron los resultados esperados en el proyecto. El proyecto se inició con el desarrollo un mecanismo de calibración para el cardioritmómetro, que es llamado “Emulador”. Donde la empresa HemoDinamics propuso la utilización del lenguaje Arduino para la programación del emulador que consiste en simular el funcionamiento del Ritmo Cardiaco 54 y tener la posibilidad de variar los ciclos arteriales. Para así poder calibrar el Cardioritmómetro y certificar que las mediciones obtenidas por este son confiables bajo los estándares de las ramas de metrología y el sector salud. IX.III. El emulador. IX.III.I. Material eléctrico. IX.III.I.I. Motor PAP bipolar. Los motores paso a paso son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos. La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso (90°) y 200 para el segundo caso (1.8°), para completar un giro completo de 360°. Estos motores poseen la habilidad de poder quedar enclavados en una posición o bien totalmente libres. Si una o más de sus bobinas están energizadas, el motor estará enclavado en la posición correspondiente y por el contrario quedará completamente libre si no circula corriente por ninguna de sus bobinas. 55 Es necesario contar con los componentes eléctricos específicos que conforman el “Emulador”, ya que anteriormente se contaba con un motor a pasos unipolar de 3.1 A con una tensión eléctrica de 9VDC (corriente directa) y para el control un puente “H” de 2ª con el transistor Tip101, arduino mega 2560 con alimentación de 5VDC y con una fuente de alimentación de 5VDC a 12VDC. Por las características del motor y el control no era suficiente para que el sistema mecánico funcionara adecuadamente, por consiguiente se reemplazaron por un motor PAP (paso a paso) bipolar de 4ª a 24VDC en la imagen 9.1 se puede observar. Figura 9.1. Motor bipolar modelo SM2861-5052, este tipo de motores generalmente tienen cuatro cables que corresponden a las dos bobinas [11]. 56 IX.III.I.II Drive para el motor. Por las características del motor se encuentra en el mercado un drive para su control NCD 06.V ver en la figura 9.2 donde se señalan las características principales, tiene tres led`s indicadores donde; el verde se enciende cuando la tarje está encendida, el amarillo para indicar que hay un problema para solucionar y el led rojo indica que algún componente dejo de funcionar y es necesario reiniciar o en el peor de los casos cambiar el componente dañado y es posible, tiene unos pin`s de selección para habilitar la tarjeta y el modo de operación automático o por número de revoluciones por minuto, tiene su propio disipador para regular la temperatura de los transistores. Esta tarjeta electrónica cuenta con un voltaje de alimentación de 24 a 75 VCD con una corriente máxima de 6A y corriente mínima de 1.9A la cual por medio de un selector (DIP-SWITCH) podemos manipularla de acuerdo al amperaje que se requiera en nuestro caso es de 4A, también se seleccionar cuantos pasos por revolución trabaje el motor, para activar la dirección del motor solo es necesario mandar una señal TTL (0 a 5V) para determinar el estado de las bobinas y por consiguiente su dirección. Es manipulada por arduino mega 2560 donde se carga el programa que manipula y el encargado de mandar las señales TTL a las entradas dela tarjeta de control NDC 06.V. La fuente de voltaje es fija cuenta con dos tenciones diferentes de alimentación de 5 VDC y 40 VCD, con corriente máxima de 8A, se alimenta con120 VAC (voltaje de corriente continua). 57 Figura 9.2. En la imagen de la izquierda se muestra un esquema donde se señala las características, y en la imagen de la derecha la fotografía del diseño de la tarjeta [12]. IX.III.II Ensamble de los componentes electrónicos. Para realizar las conexiones necesarias para el funcionamiento de los componentes eléctricos citados anterior mente es necesario conocer las especificaciones de los elementos. Para identificar las bobinas del motor utilizamos el multímetro en el modo resistencia o continuidad, donde nos indique una pequeña resistencia o continuidad esos dos cables corresponden a una bobina. Una vez seleccionadas las bobinas se conectan ala entra del canal A o B respectivamente en la tarjeta NDC06, para proteger al drive se cablea del chasis del motor al GND o a la entrada 13 de la tarjeta. 58 En la tabla 8 se describe las entradas y salidas para las conexiones con el motor y el arduino. Las pines marcados de color verde se conectan a las salidas del arduino de acuerdo al programa, el color reojo alimentación de la tarjeta con un voltaje de 24VCD, el naranja corresponde a la tierra para proteger a la tarjeta, y el azul corresponde a las bobinas del motor. Tabla 8.Conexiones del NDC06. Para poder seleccionar la corriente máxima de consumo que necesite el motor es necesario revisar las siguientes tablas 9 y 10 para poder condicionar la tarjeta de control en donde la primer tabla muestra la configuración para el DIPSWITCH que corresponde a los tres primeros pines, de acuerdo a la configuración la corriente, y en la tabla 9.3 nos da las opciones para los jumper‟s de acuerdo a si está en un estado de 1 podemos habilitar la corriente deseada o en ceo automáticamente conforme el motor consuma. 59 Tabla 9. Configuración de los estados lógicos para los dip1, dip2 y dip3, de acuerdo a los diferentes códigos es la corriente demanda por el motor. Tabla 10. Configuración de los jumper’s para poder manipular el DIP-SWITCH. Para poder habilitar el OS en modo de operación RUN es necesario verificar en la tabla 11 los estados de los DIP‟s de 5 al 8 de acuerdo al número de pasos por revolución para el trabajo del motor de forma automático internamente en la NCD06. 60 Tabla 11. Para la configuración de las RPM en modo de operación RUN. Para asegurar el funcionamiento de los elementos es necesario tomar las siguientes medidas de seguridad, en la figura 9.3 se señalan las formas para asegurar el equipo, son unas simples precauciones a considerar pero muy importantes ya que se consigue el buen funcionamiento del equipo. 61 Figura 9.3. Esquema de las conexiones del motor conrespecto ala tarjeta de control y ala fuente de alimentacion donde podemos observar es necesario utilizar unos fusibles de minimo de 4A para protojer de cortos [13]. La tierra física es una conexión de seguridad para proteger de descargas que surgen de eventos imprevistos tales como los fenómenos artificiales o naturales como descargas electrostáticas, interferencia electromagnética, descargas atmosféricas y errores humanos. Con estas medidas de seguridad se pretende reducir los riesgos de accidentes y pérdida de material. En la imagen 9.4 nos muestra un diagrama grafico de las conexiones de los componentes eléctricos que componen al “emulador”. 62 Figura 9.4 Diagrama de conexiones de todos los elementos electronicos. IX.III.III Programación. IX.III.III.I Programa con arritmias. Para la elaboración del programa que controla del emulador, el cual generara arritmias se uso la siguiente lógica: 1. El emulador comenzara a trabajar haciendo trabajar al motor paso a paso con una velocidad constante de “x” RPM (revoluciones por minuto). 2. Al llegar a 10 segundos de operación este frenara completamente durante 1 segundo. 63 3. Comenzara a trabajar de nuevo con la misma velocidad. 4. En el segundo 16 tendrá una aceleración del doble de revoluciones que solo durara una vuelta del motor. 5. El motor seguirá a x rpm hasta completar su ciclo de 20 segundos y comenzara un nuevo ciclo en ese momento. Debido a que estará simulando arritmias del corazón, en el segundo 10 simula una bradicardia y en el segundo 16 una taquicardia; esto con el fin de tener una señal constante y saber que el Cardioritmómetro esta funcionando correctamente. A continuación se muestra el programa. Se declaran las variables a usar en el programa: const int pulso = 13; //variable para establecer el pin donde estará el tren de pulsos int estadopulso = LOW; // variable para establecer el estado del pin de salida long previousMillis = 0; // variable para generar el tren de pulsos long interval; // variable para determinar la frecuencia deseada long x = 0; // variable para contar el numero de pulsos en el momento de acelerar y garantizar una vuelta long rpm = 70; // variable para seleccionar el numero de revoluciones por minuto 64 unsigned long tiempo; // lleva la cuenta de tiempo en milisegundos desde el inicio el programa unsigned long var1 = 10000; //variable de comparación para la primera rutina unsigned long var2 = 16000; // variable de comparación para la segunda rutina unsigned long var3 = 20000; // variable para comparar si ya termino el ciclo volatile int bandera = 0; // esta bandera es para asegurar que solo haga una sola vez la primer rutina por ciclo volatile int bandera2 = 0; // esta bandera es para asegurar que solo haga una sola vez la primer rutina por ciclo. En la función “SETUP” se declara como va a ser el comportamiento de los pines (entradas o salidas), la interrupción externa a usar y la formula que controla la frecuencia de salida del tren de pulsos que ira conectado al driver para el motor a pasos. void setup() { interval = 75000/rpm; // función de inicialización de la arduino // conversión para el intervalo de tiempo pinMode(pulso, OUTPUT); // se declara el pin 13 como salida attachInterrupt (2, interrupción, FALLING); //se declara la interrupción externa 2 y se llama a la función interrupción cuando haya una bajada en la señal } Cada que haya una bajada de alto a bajo en la interrupción externa la función “interrupción” aumentara en uno a la variable llamada “x”. 65 void interrupción() //inicia cuando hay una pasada de nivel alto a bajo en la señal { x++; // aumenta x en uno cada que entra a la función } La función llamada “para1seg” es la encargada de generar la arritmia del corazón “Bradicardia”, cuando el tiempo haya llegado a 10 segundos entrara esta función; la cual hará un retardo en la ejecución del programa durante 1 segundo y con esto garantizar la simulación de la arritmia. void para1seg() { if (bandera == 1){ delay(1000); // función que realiza el paro de un segundo del motor // inicia if (bandera == 1) si es cierto entonces: // retardo de 1 segundo }} La función llamada “acelera”, es la encargada de generar la arritmia del corazón denominada “Taquicardia”; la función entrara cuando hayan transcurrido 16 segundos del ciclo. El driver del motor a pasos funciona con un tren de pulsos a una frecuencia determinada para que el motor gire a las revoluciones requeridas. La cual generamos con el cambio en el estado de alto y bajo del pin 13 de la tarjeta arduino mega 2560, en el momento en que el motor tiene que acelerar esta misma señal entra al pin 21 donde se activa una interrupción externa para asegurar que solo mande los 400 pasos requeridos para que el motor este al 66 doble de velocidad solo en una vuelta y después sigua con las revoluciones normales. void acelera() { // función que realiza la aceleración del motor por un instante if (bandera2==1) { x = 0; // inicia if (bandera2==1) si es cierto entonces: //pone a cero a la variable que lleva el conteo de los pulsos while (x<=400) { //inicia while y estará aquí dentro hasta que x llege a ser 400 unsigned long currentMillis = micros(); // se declara variable que lleva el tiempo en microsegundos if(currentMillis - previousMillis > (((75000)/(rpm*2))-21)) { //si es cierto entonses: previousMillis = currentMillis; // se iguala previusmillis a if (estadopulso == LOW) // si el pin 13 esta en bajo current millis entonces: estadopulso = HIGH; // pone el pin 13 en estado else //si no: estadopulso = LOW; //pone el pin13 en estado alto bajo 67 digitalWrite(pulso, estadopulso); // escribe en el pin el la variable estadopulso } } } } Cabe mencionar que en el programa se usan funciones que nos sirven para que el programa se quede ciclado; esta función que se llama “millis()” nos devuelve el valor de los milisegundos transcurridos después de empezar a ejecutarse el programa, las variables llamadas “var1,var2,var3”, nos ayudan a verificar que el tiempo transcurrido desde el inicio del programa es el indicado para realizar funciones que simularan las arritmias, después de haber pasado 20 segundos estas variables son aumentadas en 20000 para que el programa se quede ciclado infinitamente. void loop() { tiempo = millis(); // se le asigna el valor de milisegundos después de que alla comenzado a ejecutarse el programa a la variable tiempo unsigned long currentMillis = micros(); // se declara variable que lleva el tiempo en microsegundos if(currentMillis - previousMillis > interval) { //si es cierto entonces: 68 previousMillis = currentMillis; // se iguala previusmillis a current millis if (estadopulso == LOW) // si el pin 13 esta en bajo entonces: estadopulso = HIGH; // pone el pin 13 en estado alto else //si no: estadopulso = LOW; //pone el pin13 en estado bajo digitalWrite(pulso, estadopulso); // escribe en el pin el la variable estadopulso if (var1 <= tiempo) { // si es cierto entonces: bandera ++; // aumenta bandera en 1; para1seg (); // manda llamar a la función para1seg (); } if (var2 <= tiempo) { // inicia if (var2 <= tiempo) si es cierto entonces: bandera2 ++; // aumenta bandera2 en uno acelera(); // manda llamar la función acelera(); } if (tiempo >= var3) { // si es cierto entonces: bandera =0; // resetea la variable bandera bandera2=0; // resetea la variable bandera2 69 var1 = var1 + 20005; // incrementa la variable var1 en 20000 var2 = var2 + 20005; // incrementa la variable var2 en 20000 var3 = var3 + 20005; // incrementa la variable var3 en 20000 } En la tabla 12 nos muestra las variables que seleccionan entre si para variar las revoluciones por minuto (RPM) en el motor y la frecuencia en el arduino con la variable indicada como VA. Con los siguientes datos conseguimos variar la velocidad del motor por medio de la frecuencia. Tabla 12. Donde la primera columna corresponde a la frecuencia, la segunda es la variable a modificar en arduino y finalmente RPM las revoluciones por minuto. 70 IX.III.III.II Programa sin arritmias. Para el emulador hubo un segundo programa requerido; este generara una frecuencia constante simulando un corazón sano (sin arritmias). En ciclos de 20 segundos con un periodo de descanso de 5 segundos. La lógica que sigue el programa es la siguiente: 1. El motor comenzara a trabajar a una velocidad de x rpm. 2. Cuando hayan transcurrido 20 segundos el motor frenara completamente durante 5 segundos 3. Inicia un nuevo ciclo. En el programa sin arritmias al igual que en el anterior programa; genera una frecuencia para el driver del motor y generar las revoluciones requeridas en el motor. Se emplea nuevamente la función “millis();” para garantizar que los ciclos realmente son de 20 segundos y 5 segundos de frenado. A continuación se muestra el programa que realiza esta función. Se declaran las variables que se usaran en el programa: ///////////////////// inicio programa////////////////////// const int pulso = 13; int estadopulso = LOW; long previousMillis = 0; 71 long interval; int x = 0; long rpm = 70; unsigned long tiempo; unsigned long var1=20000; unsigned long var2=25000; En la función “SETUP” se declara como va a ser el comportamiento de los pines (entradas o salidas) y la formula que controla la frecuencia de salida del tren de pulsos que ira conectado al driver para el motor a pasos. void setup() { interval = 75000/rpm; pinMode (pulso, OUTPUT); } Dentro del loop el programa genera un tren de pulsos con una frecuencia constante, hasta que termine el ciclo de 20 segundos después de esto se manda llamar la función de frenado de 5 segundos para el motor. He inicia de nuevo quedando enclavado infinitamente. void loop() { if (x==1) { tiempo = millis(); 72 unsigned long currentMillis = micros(); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; if (estadopulso == LOW) estadopulso = HIGH; else estadopulso = LOW; digitalWrite(pulso, estadopulso); } if (tiempo<=var1){ void paro(); } if (tiempo<=var2){ void continua(); } } } En la función “paro”, el programa deja de generar el tren de pulsos durante un retardo de 5 segundos y esta función también aumenta a var1 en 25000 para que el programa siga enclavado infinitamente. void paro() { 73 x=0; var1=var1+25000; } En la función “continua”, el programa comienza a generar el tren de pulsos nuevamente a una velocidad constante y esta función también aumenta a var1 en 25000 para que el programa siga enclavado infinitamente. void continua(){ x=1; var2=var2+25000; } /////////////////// Fin del programa////////////////////////////// IX.IV Cardioritmómetro. IX.IV.I Componentes eléctricos. Para el Cardioritmómetro ya se contaba con el hardware necesario para su funcionamiento, pero fue necesario estudiarlo ya que en algunos de sus componentes no se cuenta con la información necesaria. 74 IX.IV.I.I Tarjeta para la LCD Las pantallas LCD nos permiten mostrar datos o información de nuestro proyecto que nos permiten incluso mostrar dibujos, gráficas, paneles o casi todo lo que se nos pueda ocurrir. La única desventaja de estas pantallas es que para controlarlas necesitamos normalmente un mínimo de ocho pines para el envió de datos al arduino. Originalmente se contaba con un diseño del circuito de la LCD para acoplarla al arduino mega 2560 pero se percato de uno corto por lo tanto no estaba trabajando el equipo, así que se realizaron las modificaciones necesarias. Se propuso cambiar la tarjeta anterior por un nuevo diseño para la LCD, al remplazarlo obtuvimos buenos resultados ya que se consigue que funcione correctamente tanto la LCD como el programa ya existente. Para el cableado de la LCD es necesario tener correctamente identificados cada uno de los pines tanto de arduino como el circuito impreso de acoplamiento de la LCD, sino se tomarse las medidas necesarias se comenten errores que retrasan el trabajo del proyecto. En la figura 9.5 se observa una ventana para realizar el diseño del circuito impreso se utiliza el software PCB-Wizard amigable por lo que se decide utilizarlo. 75 este programa es muy Una vez creado el diseño se imprime en la placa de cobre para después colocarla en el acido, revisar las pistas, perforar el circuito impreso y finalmente soldar los componentes, para después implementarla con los demás elementos electrónicos del proyecto. Figura 9.5. Ventana del programa PCB-Wizard. Este circuito solo se pretende utilizarlo para pruebas ya que por el cableado es muy facil que se deconencte y teniendo asi falsos contactos entre las tarjetas electronicas, asi que se propuso cambiar por un circuito impreso comercial el cual nos reduce las conexiones y por lo tanto nos reduce el margen de error. 76 IX.IV.I.II Tarjeta para controlar el envió de datos atreves de un solo cable. Como se menciono anteriormente la tarjeta y la LCD se tenía problemas de conexiones en falso contacto, esto nos retrasaba con las pruebas ya que era necesario conectar el cable del arduino para la programación ya se realizaron varias modificaciones al programa y por consiguiente se tendía a mover el cableado constantemente. Con esta tarjeta queda obsoleta la LCD anterior así como el circuito de acondicionamiento para la LCD en este caso no es necesario utilizar ninguna tabla para su configuración. Con esta pantalla logramos mejorar de estos aspectos, es un gran LCD monocromo gráfico, y que podemos controlar con solo un cable de datos. Se trata de una LCD normal que trae soldado un modulo basado en el Atmega 168 que nos permite enviarle por el puerto serial del arduino Tx3 donde un conjunto de comandos que nos brindan las siguientes posibilidades; Escribir texto Situar el un puntero de la escritura en las coordenadas deseadas Ajustar la intensidad de la luz en la pantalla Dibujar gráficos, figuras geométricas, logos etc. Empezamos soldando pines a la LCD para conectarla la tarjeta del puerto serial, y tres pines para el arduino en la siguiente figura 9.6 se muestra un esquema de conexiones entre la LCD al arduino, como se puede observan es muy 77 sencillo, de los pin de 5V y GND de arduino se alimenta la LCD y el TX para enviar datos. Figura 9.6 Conexiones de la LCD y arduino. Finalmente para concluir con el motitor de equipo se desarrollo un pequeño circuito para abilitar los los botones y arduino. Donde las entradas digitales corresponde a la 46,48 y 50 del arduino en la figura 9.7 podemos observar dicha conexión, donde estan indicadas con los cables de color amarillo, rosa y verde. Figura 9.7. diagrama de conexiones de arduino a la placa de los botonera. 78 IX.IV.II Esquematico del Cardioritmómetro. Se desarrollo el diseño del esquemático eléctrico del proyecto, ya se contaba con los componentes necesarios para que el equipo funcionara pero no se tenia ningún diagrama de conexiones y función de algunos de los circuitos impresos del proyecto, así que se investigo las características de algunos de los componentes y se elaboran los diagramas eléctricos. IX.IV.II.I Sensor de presión MPX5050. El uso del sensor de presión MPX5050 y su sistema lee la presión de un brazal (presiómetro) y extrae los pulsos para el análisis y la posible determinación de la presión sistólica y diastólica. Manda los datos a arduino en voltaje para poder realizar el control del equipo. Cabe mencionar que el circuito impreso del sensor ya se había elaborado en faces anteriores pero no se tenía un esquema eléctrico, por lo que no vamos a hablar de cálculos. Se obtuvo la información necesaria y se realizaron los siguientes diagramas eléctricos. Refiriéndonos al sensor de presión MPX5050 puede ser conectado ya sea directamente al dispositivo de adquisición de datos o al circuito acondicionador con su etapa de amplificación con un LM324. 79 En la figura 9.8 se muestra el diagrama si se conecta el sensor de presión directamente al equipo de adquisición de datos este nos muestra una señal de entrada que va de 0.2VCD a 0 mmHg (milímetros de mercurio) hasta 4.7 VCD a 375 mmHg de presión; mientras que si se conecta este sensor al circuito acondicionador y este a su vez al equipo de adquisición de datos en la entrada del convertidor aparece una señal que va de 0.23V hasta 1.78 V en nuestro caso. Figura 9.8 Sensor de presion MPX5050. El sistema de adquisicion de datos se tiene un convertidor cuyo voltaje es de 5V y ademas una resolucion del convertidor A/D (analogico digital)de 10 bits con esto es posible definir el conteo que envia el convertidor A/D a la computadora de tal manera que se puden definir los limites de unidades de presion, donde nuestra resolucion es 0.2258 mmHg este resultado es por el voltaje de referencia de 6.7V que es alimentado por el arduino mega 2560. 80 IX.IV.II.I.II Circuito Acondicionador. La salida de este sensor puede ser usada de dos maneras, una consisite en medir la presion del brazal, mientras que la otra es usar esta salida para prosesarla analogicamente para asi obtener las oscilaciones o pulsos necesarios. El sensor usado tiene su propio circuito de acondicionamiento internamente mediante su propio opamp, la presion del brazal puede ser directamente conectada a un convertidor analogico – digital. El otro metodo descrito, amplificara y filtrara la señal de presion del brazal para extraer una version amplificada de las oscilaciones dentro de las señal de presion en el brazo se incrementa durante la sistole del corazon. La figura 9.9 muestra el circuito amplificado de la señal de soilacion (los valores de las resisitencias y capacitores no corresponden al circuito impreso para proteger los derechos de autor y de la empresa HM) y en la figura 9.10 se muestra la señal de oscilación tomada de la salida de amplificasion del sensor de presion con la ayuda de un osiloscopio. 81 Figura 9.9 Amplificador de la señal de oscilación. Figura 9.10 Señal de oscilación extraida de la salida del amplificador [14]. 82 IX.IV.II.II Diagrama del equipo del Cardioritmómetro. Haciendo referencia a la figura 9.11 donde se presenta el esquema que se elaboro de las conexiones de los elementos electrónicos que componen el equipo del Cardioritmómetro. Algunos de estos elemtos se describen a detallen en los apartados anteriores. Figura 9.11 Esquema grafico de las conexiones electricas del proyecto. Como podemos observar en la fugura anterior se indican las tarjenas con etiquetas que a continuacion vamos a dar una breve descripcion de cada una de ellas: 83 CM; Arduino Motor Shield esta tarjeta esta conectada en serie con Arduino mega con los pines ARFED hasta el RX0 y a su vez con el RESET asta la entrada analógica A7, se alimenta del arduino mega. Al puente “H” se conecta el motor de DC al canal B y la válvula esta en el canal A. PB; corresponde al circuito para habilitar los botones selectores. Donde las entradas digitales del arduino corresponden a la 46,48 y 50 para habilitar la función correspondiente donde el la entrada digital 50 es para subir, la 48 para bajar y 46 para elegir una opción en el programa que se despliegan en la LCD. SP; es la tarjeta del sensor de presión MPX5050. Donde se alimenta de arduino a 5V y GND, y la salida del sensor se conecta a la entrada analógica A8 de arduino. Arduino Mega se alimenta por medio de una fuente de 9V o con el puerto USB, como se indica en la figura. La LCD cuenta con tarjeta del puerto serial en la parte posterior de esta ver figura 9.13 donde se pueden observar la conexión entre la LCD y el circuito acondicionado para el puerto serial. 84 Figura 9.13 La flecha indica la tarjeta del circuito impreso para el acondicionamiento de la GLCD y el puerto serial [15l. También se realizo un esquemático eléctrico del prototipo del Cardioritmómetro en la imagen 9.12 podemos observar los componentes y las conexiones, este diagrama se realizo con la finalidad de cambiar los componentes (arduino mega y el arduino motor shield), por otros componentes electrónicos esto para reducir a un solo circuito impreso, reduciendo espacio y sobre todo el precio del equipo. 85 Figuara 9.12. Esquema Eléctrico. En el esquema anterior se puede observar que el microcontrolador aun esta definido ya que se pretende realizar un estudio mas especifico para elegir el adecuado deacuerdo a las caracteristicas solicitadas por la empresa. IX.IV.III Programación. El código del programa que controla al cardioritmómetro; por petición de la empresa no puede mostrarse en esta memoria; así que mostraremos los cambios y mejoras echas al código en la etapa tres del cardioritmómetro. 86 IX.IV.III.I Funciones para la GLCD serial. El circuito para la glcd presentaba errores de conexión por la cantidad de cables que son conectados de la glcd a la tarjeta arduino; por lo que se decidió adaptar el circuito mencionado en capítulos anteriores al cual se le mandan comandos vía serial y este los traduce para que la glcd coloque el puntero en alguna coordenada, cambiar la luz de fondo, borrar un espacio en la glcd, etc. Estas funciones se describen a continuación: //borra un área determinada de la pantalla void borra_espacio (int desde_x, int desde_y, int hasta_x, int hasta_y){ Serial.write(0x7C); Serial.write(0x05); Serial.write(desde_x); Serial.write(desde_y); Serial.write(hasta_x); Serial.write(hasta_y); } //coloca el puntero de escritura en la posicion que le indiquemos void coordenadas(int x, int y){ Serial.write(0x7C); //x de 0 a 127 //y de 0 a 63 Serial.write(0x18); 87 Serial.write(x); Serial.write(0x7C); Serial.write(0x19); Serial.write(y); } //dibuja o borra un rectangulo void rectangulo (int desde_x, int desde_y, int hasta_x, int hasta_y, int on_off) { Serial.write(0x7C); Serial.write(0x0F); Serial.write(desde_x); Serial.write(desde_y); Serial.write(hasta_x); Serial.write(hasta_y); Serial.write(on_off); } //dibuja o borra una linea void linea (int desde_x, int desde_y, int hasta_x, int hasta_y, int on_off){ Serial.write(0x7C); Serial.write(0x0C); Serial.write(desde_x); Serial.write(desde_y); 88 Serial.write(hasta_x); Serial.write(hasta_y); Serial.write(on_off); } void cambiar_fondo(){ Serial.write(0x7C); Serial.write(0x12); delay(20); } El programa debe de desplegar en qué estado está el programa, así que estas funciones son invocadas dentro del programa en el momento en que son requeridas para que se pueda visualizar que está realizando el cardioritmómetro. Dichas invocaciones se muestran a continuación. Al inicio del proceso la pantalla muestra el nombre de la empresa como inicialización, borra la pantalla completa, coloca el puntero en las coordenadas (1,20), escribe el nombre de la empresa durante 3 segundos y después borra la pantalla. void splashScreen(){ borra_espacio (0,0,127,63); coordenadas(1,20); 89 Serial3.print("HEMODINAMICS CMR"); delay(3000); borra_espacio (0,10,127,40); } Después de la inicialización muestra un menú del porcentaje de tolerancia en las mediciones del tiempo de pulso a pulso; el cual seleccionas dependiendo la tolerancia deseada. void showMainMenu(){ // +++ ******* showMainMenu Begins ************** coordenadas(1,63); Serial3.print("PORCENTAJE:"); coordenadas(1,50); Serial3.print("A. 20"); coordenadas(1,40); Serial3.print("B. 25"); coordenadas(1,30); Serial3.print("C. 30"); } En seguida debe de mostrarse el porcentaje que selecciono para la tolerancia. void readyMenu(){ borra_espacio (0,20,127,63); coordenadas(1,63); Serial3.print("LISTO PARA INICIAR EN"); 90 coordenadas(5,50); Serial3.print(numberOfOptions[currentSelection]); coordenadas(17,50); Serial3.print("%"); } Después de mostrar el porcentaje seleccionado debe mostrarse una leyenda de inflando. void inflating(){ borra_espacio (0,43,127,63); coordenadas(1,63); Serial3.print("INFLANDO..."); } Una vez que la presión requerida para la lectura de los datos es la adecuada la glcd debe de mostrarla leyenda de calculando. void calculating(){ borra_espacio (0,50,127,63); coordenadas(1,63); Serial3.print("CALCULANDO..."); } Después de calcular la glcd debe de mortar un leyenda de listo. void done(){ borra_espacio (0,50,127,63); coordenadas(1,63); 91 Serial3.print("LISTO..."); } Por último la glcd debe de desplegar los datos calculados por el algoritmo, estos datos son las arritmias, la frecuencia cardiaca y la aceleración. void terminado() { borra_espacio (0,0,128,63); coordenadas(1,63); Serial3.print("Fc:"); Serial3.print(pulse); Serial3.print("/"); Serial3.print(tiempototal); Serial3.print("seg"); coordenadas(1,30); Serial3.print("C/s^2: "); Serial3.print(accelerationToShow); coordenadas(1,20); Serial3.print("Cf/s^2:"); Serial3.print(azelfuera); coordenadas(80,50); Serial3.print(aboveMode); Serial3.print(">M"); coordenadas(80,30); Serial3.print(underMode); 92 Serial3.print("<M"); coordenadas(80,40); Serial3.print(atMode); Serial3.print("=M"); screenFirst=false; } X. RESULTADOS OBTENIDOS En este capitulo se describen los resultados obtenidos planteados al inicio del desarrollo del proyecto realizado en la empresa HemoDinamics y la Universidad Tecnológica del estado de Querétaro durante el periodo de estadía mayo- agosto del 2012, dio como resultado un prototipo donde su funcionamiento fue modificado para obtener mediciones confiables y mas reales, conforme a los requerimientos de la empresa. Este proyecto ya se encuentra funcionando, tomando la presión arterial de diversas personas realizando las mediciones de forma estable en los resultados arrojados por el equipo del Cardioritmómetro y así se obtuvo muestras reales de los pacientes. 93 De acuerdo a los objetivos planteados al inicio estos fueron los resultados: Desarrollar el software con la programación necesaria para el “Emulador”: Esta etapa fue concluida con éxito y con las especificaciones requeridas ya que se consiguió simular el funcionamiento del Ritmo Cardiaco. Se realizo un programa extra en prosecing para graficar las señales del encoder, la señal de salida del sensor de presión MPX5050 y una señal de reloj, además se consigue guardar estos datos en una hoja de calculo (Excel) y obtener la grafica de las tres señales. Mejorar el prototipo actual: esta etapa se consigue mejorar los algoritmos del programa original y se consigue mejorar el hardware reduciendo conexiones. Manual para el usuario: Este objetivo no se consigue ya que el proyecto aun esta en prototipo y se pretende seguir realizando modificaciones en las siguientes etapas. XI. ANÁLISIS DE RIESGO Una de las recomendaciones para continuar con este proyecto, es la de estudiar los fundamentos teóricos del proyecto esto con el fin de comprender mejor su funcionamiento y así poder desarrollar las mejoras a este. Otro de los factores que constituyeron un riesgo para cumplir en forma y tiempo con la programación del proyecto, fueron los retrasos en la entrega de materiales por parte de los proveedores. Este riesgo obligó a reprogramar en más de una ocasión el cronograma inicial del proyecto. 94 Limitante fue la perdida de tiempo de trabajo en trasladarse de un lugar a otro ya que era necesario ir a CENAM tomar muestras, era necesario esperar para poder modificar la programación de acuerdo a las recomendaciones de metrología del CENAM. XII. CONCLUSIONES Al final del desarrollo del proyecto se obtuvo el resultado esperado. Los conocimientos y las investigaciones que se realizaron y se consigue mejorar el prototipo en el funcionamiento, obteniendo mejores mediciones en las pruebas que se realizaron a diferentes pacientes se obtuvieron exitosos resultados. Así como se consiguió simular el ritmo cardiaco en el emulador. Cumpliendo con los requerimientos que se solicitaron. El trabajar en el área de la medicina es muy interesante adquirir nuevos conocimientos, pero también es muy importante seguir ciertos parámetros y condiciones para resolver los problemas que se presentaron sobretodo cuando se trata de un proyecto de investigación ya que constantemente se cambian los parámetros y condiciones de este. Se buscaban generar bases para desarrollar mejores opciones de equipos médicos para poder diagnosticar enfermedades y padecimientos arteriales. 95 XIII. RECOMENDACIONES Se recomienda estudiar nuevas alternativas para el proyecto y poder mejorarlo para diseñar un prototipo más versátil, reducir el precio y que sea más factible para su venta y distribución en el mercado. Cambiar la presentación del prototipo por un diseño mas compacto para poder manejarlo y trasladarlo en cualquier lugar, es un prototipo muy accesible para poder operarlo. Otra recomendación seria cambiar la alimentación del equipo en lugar de utilizar un eliminador que suministra un voltaje de 9V por una batería de la misma capacidad, con esto se espera una mayor eficiencia y con un costo menor. Por ultimo otro punto a considerar es mejorar la programación investigando nuevas alternativas de software que mejore el código y modificaciones en el funcionamiento del equipo para reducir el rango de error en cada medición. 96 XIV. REFERENCIAS BIBLIOGRÁFICAS Y VIRTUALES [1]. TEXAS HEART INSTITUT, Centro de información cardiovascular. (Julio 2010). Disponible en: http://www.texasheart.org/hic/anatomy_esp/anat1_sp.cfm [2]. Pontificia Universidad de Valparaíso, Aula virtual del laboratorio de anatomía humana. Disponible en: http://www.anatomiahumana.ucv.cl/efi/modulo24.html [3]. MEDILINE PLUS. (2010). Disponible en: http://www.nlm.nih.gov/medlineplus/spanish/ency/esp_imagepages/9124.htm [4]. TEXAS HEART INSTITUTE, Centro de información cardiovascular. (Julio 2010). Disponible en: http://www.texasheart.org/hic/anatomy_esp/anat1_sp.cfm5.http://www.cirugiacardi aca.eu/mppal_seccion_2/eltomenu_arritmias/c_arritmias.html, Disponible en: http://www.frecuencia-cardiaca.com/ [5]. MEDILINE PLUS. (2010). Disponible en: http://www.move.va.gov/download/sHandouts/PhysicalActivity/P09_HowToTakeYo urHeartRateSPANISH.pdf [6]. Pagina web de Arduino, disponible en: www.arduino.cc, http://creativecommons.org/licenses/by-nc-/ 97 [7].-Universidad de alicante 2009 Pagina web de Arduino,disponible en: www.arduino.cc [8]. Arduino Motor Shield Rev 3.0. Hoja técnica. Disponible en : http://www.carrodelectronica.com/store/index.php?_a=viewProd&productId=17715 [9]. Crystalfontz America,Inc. disponible en: http://www.crystalfontz.com [10]. Tutorial de procesing. Disponible en: http://es.scribd.com/doc/91548733/Processing-Un-Lenguaje-Al-Alcance-de-Todos [11]. Pagina web principal de processing. Disponible en: http://processing.org [12]. Hoja técnica de Electronic componets distribuidor SANYODENKI. [13]. R.T.A.s.r.l.NDC_MED.Via E.Mattel-Frz Divisa, disponible en: http:/www.rta.lt [14].Foros de electrónica. Disonible en: http://www.neoteo.com/foro/f29/libreriaglcd-128x64-esquema-de-conexion-676/ [15]. Martín Fernández, Martín.(Abril 2002).Contribuciones al análisis automático y semiautomático de ecografía fetal tridimensional mediante campos aleatorios de Markov y contornos activos. Ayudas al diagnóstico precoz de malformaciones. Tesis de maestría. Disponible en: http://www.lpi.tel.uva.es/ ~nacho/docencia/ ing_ond_1/trabajos_04_05/io2/public_html/5Aplicaciones_diagnostico_3.htm 98 ANEXO Glosario Bootloader Que se traduce como placa de entrenamiento, dispositivo de plástico que sirve para conectar cables y componentes entre si sin necesidad de soldar .Este sistema aparece en los ordenadores, tablets, smartphones... es el sistema de arranque, "manda" al sistema operativo iniciarse. http://arduino.cc/es/Main/Glossary Bradicardias f. disminución del número de contracciones cardíacas inferior a 60 por minuto. Pulso anormalmente lento. DiccionariMedico.net,http://www.diccionariomedico.net/diccionarioterminos/Diccionario-terminos-2/B/ Cardias Esfínter superior del estómago. / PÍLORO: Esfínter inferior del estómago. / El CARDIAS comunica el ESÓFAGO con el ESTÓMAGO. Glosario de términos médicos http://elsalvador.medicosdoctores.com/diccionario-medico/cardias/c 99 Taquicardia Aumento de la frecuencia cardíaca. Pulso Hace referencia a las variaciones de presión en los vasos sanguíneos, que se producen durante la sístole, es decir, durante la fase en la que el corazón se contrae y bombea la sangre a los vasos. El pulso normal de los adultos sanos oscila entre 60 y 100 latidos por minuto. El pulso puede fluctuar y aumentar con el ejercicio, las enfermedades, las lesiones y las emociones. http://www.onmeda.es/enciclopedia/anatomia/presion_sanguinea-pulso-145337.html 100 101