INSTITUTO POLITÉCNICO NACIONAL -...
Transcript of INSTITUTO POLITÉCNICO NACIONAL -...
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
“DESARROLLO DE UN BAUMANÓMETRO Y TERMÓMETRO
CORPORAL DE TIPO INALÁMBRICO”
TESIS
QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
P R E S E N T A N
Camacho Franco Oscar Alejandro
Diosdado Aranda Carla Beatriz
ASESORES:
Ing. Armando Mancilla León
M. en C. Roberto Galicia Galicia
M. en C. Genaro Zavala Mejía
México D.F. Diciembre 2012
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELECTRICA
UNIDAD PROFESIONAL "ADOLF O LÓPEZ MATEOS"
TEMA DE TE SIS
QUE PARA OBTENER EL TITlJLO DE INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
POR LA OPCIÓN DE TITULACIÓN TESIS COLECTIVA y EXAMEN ORAL INDIVIDUAL
DEBERA(N) DESARROLLAR C. OSCAR ALEJANDRO CAMACHO FRANCO C. CARLA BEATRIZ DIOSDADO ARANDA
"DESARROLLO DE UN BAUMANOMETRO y TERMOMETRO CORPORAL DE TIPO INALÁMBRICO"
DISEÑAR Y CONSTRUIR UN PROTOTIPO DE UN INSTRUMENTO MÉDICO, QUE MIDA LA PRESIÓN ARTERIAL Y TEMPERATURA CORPORAL, Y SE COMUNIQUE DE MANERA INALÁMBRICA CON UNA PC, PARA VISUALIZAR Y ALMACENAR LOS RESULTADOS DE LAS MEDICIONES.
• SIGNOS VITALES y SU MEDICIÓN • COMPONENTES DEL SISTEMA, DESCRIPCIÓN Y FUNCIONAMIENTO • DISEÑO DE HARDWARE • DESARROLLO DE LA INTERFAZ GRÁFICA • PRUEBAS Y RESULTADOS • CONCLUSIONES
MÉXICO D.F. A 07 DE OCTUBRE DE 2013
-A).L..19- 2j..,~~ ANCILLA LEON M. EN C. ROBERTO GALlCIA GALlCIA
Índice
i
Índice
Índice de ilustraciones ................................................................................. v
Índice de diagramas .................................................................................... vi
Índice de figuras .......................................................................................... vi
Objetivos ...................................................................................................... vii
Objetivo general ....................................................................................................................... vii
Objetivos particulares ............................................................................................................. vii
Justificación ................................................................................................ viii
Introducción .................................................................................................. ix
Capítulo 1 .- Signos vitales y su medición ................................................. 1
1.1 Antecedentes .......................................................................................................................... 1
1.2 Estado del arte ....................................................................................................................... 3
Cirugía a distancia .................................................................................................................... 3
Proyecto Lobin .......................................................................................................................... 4
Avances médicos: tiritas digitales .......................................................................................... 4
Baumanómetro Digital Automático con Conexión a PC ..................................................... 5
1.3 Presión arterial ....................................................................................................................... 6
Clasificación de la presión arterial ......................................................................................... 6
Medición de la presión arterial ................................................................................................ 7
Medición no invasiva ................................................................................................................ 7
Métodos de auscultación ......................................................................................................... 7
Métodos oscilométricos ........................................................................................................... 8
Medición invasiva ..................................................................................................................... 9
Instrumentos de medición ..................................................................................................... 10
Baumanómetro ....................................................................................................................... 11
Tensiómetros de dedo y muñeca ......................................................................................... 11
1.4 Temperatura corporal .......................................................................................................... 12
Termómetro ............................................................................................................................. 12
Índice
ii
Medición de la temperatura corporal ................................................................................... 14
Oral ........................................................................................................................................... 14
Rectal ....................................................................................................................................... 14
Axilar ......................................................................................................................................... 15
1.5 Elementos típicos de un instrumento ................................................................................ 16
Sensores .................................................................................................................................. 16
Transductor ............................................................................................................................. 16
Sensor ...................................................................................................................................... 16
Sensores de presión .............................................................................................................. 17
Sensores de temperatura ...................................................................................................... 18
Capítulo 2 .- Componentes del sistema, descripción y funcionamiento
...................................................................................................................... 20
2.1 Elementos auxiliares para la medición ............................................................................. 22
Características ........................................................................................................................ 26
2.2 Elementos de la interfaz gráfica ........................................................................................ 28
Microsoft Visual Studio .......................................................................................................... 29
Capítulo 3 .- Diseño de hardware ............................................................. 30
3.1 Etapa de acondicionamiento .............................................................................................. 30
Acondicionamiento de la señal de presión ......................................................................... 30
Acondicionamiento en el sensor de temperatura .............................................................. 32
3.2 Etapa de potencia ................................................................................................................ 34
3.3 Programación del microcontrolador (Funcionamiento del programa) ......................... 35
Capítulo 4 .- Diseño del software ............................................................. 44
4.1 Descripción general ............................................................................................................. 44
4.2 Cargar datos previamente almacenados ......................................................................... 45
4.3 Registro y edición de usuarios ........................................................................................... 46
4.4 Lista de usuarios registrados ............................................................................................. 49
4.5 Visualización de datos personales del usuario seleccionado ....................................... 49
4.6 Visualización del historial del usuario activo ................................................................... 50
4.7 Visualización de la medición más reciente y control remoto del instrumento ............ 52
Capítulo 5 .- Pruebas y resultados ........................................................... 54
Índice
iii
Pruebas y resultados del individuo 1 ................................................................................... 54
Pruebas y resultados del individuo 2 ................................................................................... 57
Pruebas y resultados del individuo 3 ................................................................................... 59
Pruebas y resultados del individuo 4 ................................................................................... 62
Pruebas y resultados del individuo 5 ................................................................................... 65
Pruebas y resultados del individuo 6 ................................................................................... 67
Observaciones ........................................................................................................................ 70
Capítulo 6 Conclusiones ............................................................................ 71
Glosario ....................................................................................................... 72
Referencias ................................................................................................. 73
Bibliografía .................................................................................................. 75
Anexo A ....................................................................................................... 77
Código del microcontrolador ..................................................................................................... 77
Bibliotecas utilizadas .............................................................................................................. 77
Funciónes ................................................................................................................................ 77
Declaración de variables ....................................................................................................... 78
Mensajes de la LCD ............................................................................................................... 78
Programa principal ................................................................................................................. 78
Función de espera para las mediciones ............................................................................. 83
Función de espera para el desplegado en LCD ................................................................ 84
Conversión de dato de presión y temperatura a ASCII .................................................... 85
Conversión de dato de presión a ASCII .............................................................................. 85
Conversión de dato de temperatura a ASCII ..................................................................... 86
Habilitar medición de presión y temperatura ...................................................................... 86
Habilitar medición de temperatura ....................................................................................... 87
Función para el envío de comandos en la LCD................................................................. 87
Anexo B ....................................................................................................... 89
Código del formulario 1.......................................................................................................... 89
Bibliotecas utilizadas .............................................................................................................. 89
Descripción de la clase .......................................................................................................... 89
Índice
iv
Recepcion de datos del puerto serial .................................................................................. 89
Prediagnóstico para presión diastólica ............................................................................... 90
Prediagnóstico para presión sistólica .................................................................................. 90
Prediagnóstico para la temperatura .................................................................................... 90
Carga de datos en el expediente ......................................................................................... 91
Botón “Nuevo” ......................................................................................................................... 91
Botón “Editar” .......................................................................................................................... 92
Comunicación de la PC al Microcontrolador ...................................................................... 92
Almacenamiento de datos en el archivo de Word ............................................................. 92
Carga de datos del archivo de Word ................................................................................... 95
Opción de imprimir ................................................................................................................. 97
Selección de puerto serial ..................................................................................................... 98
Medición de temperatura ....................................................................................................... 98
Medición de presión ............................................................................................................... 98
Graficar presión ...................................................................................................................... 98
Gráfica de temperatura ........................................................................................................ 100
Interpretación de datos recibidos por el microcontrolador ............................................. 101
Código del formulario 2........................................................................................................ 101
Bibliotecas utilizadas ............................................................................................................ 101
Inicialización del formulario ................................................................................................. 101
Carga de datos ..................................................................................................................... 102
Registro nuevo ...................................................................................................................... 102
Botón “Ok” ............................................................................................................................. 104
Botón “Cancelar” ................................................................................................................... 105
Actualizar datos .................................................................................................................... 106
Código de la clase “Graficas” ............................................................................................. 106
Bibliotecas utilizadas ............................................................................................................ 106
Inicialización del formulario ................................................................................................. 107
Desplegado de gráficas ....................................................................................................... 107
Graficación de puntos .......................................................................................................... 108
Anexo C : Costo del prototipo ................................................................................................. 109
Anexo D: Diagrama de clases de la interfaz gráfica ........................................................... 113
Índice de ilustraciones
v
Índice de ilustraciones
Ilustración 1.1 Antiguo ritual de curación [1] ............................................................. 1
Ilustración 1.2 a) Uso del primer estetoscopio, b) Primer estetoscopio (1819)[2] ............ 2
Ilustración 1.3 Microrobots en la medicina ............................................................... 3
Ilustración 1.4 Proyecto Lobin ................................................................................ 4
Ilustración 1.5 Tirita digital .................................................................................... 5
Ilustración 1.6 Baumanómetro digital con conexión a PC[3] ........................................ 5
Ilustración 1.7 Método de auscultación[5] ................................................................ 7
Ilustración 1.8 Baumanómetro digital[6] ................................................................... 8
Ilustración 1.9 Método invasivo[7]......................................................................... 10
Ilustración 1.10 a) Esfigmomanómetro de mercurio, b) Baumanómetro aneroide de
mercurio, c) Tensiómetro digital[8] ........................................................................ 10
Ilustración 1.11 Tensiómetro de dedo[9] ................................................................ 12
Ilustración 1.12 a )Termómetro de mercurio, b) Termómetro digital.[11] ...................... 13
Ilustración 1.13 Medición oral[12] ......................................................................... 14
Ilustración 1.14 Medición rectal[13] ....................................................................... 14
Ilustración 1.15 Medición axilar[13] ....................................................................... 15
Ilustración 1.16 Medición por el oído[14] ................................................................ 15
Ilustración 1.17 Termómetro cutáneo[15] ............................................................... 15
Ilustración 1.18 Diagrama a bloques de un transductor ............................................ 16
Ilustración 1.19 Diagrama a bloques de un sensor .................................................. 17
Ilustración 2.1 Brazalete con sensor LM35 ............................................................. 21
Ilustración 2.2 Bomba de aire .............................................................................. 22
Ilustración 2.3 Electroválvula .............................................................................. 23
Ilustración 2.4 Modulo bluetooth ........................................................................... 26
Ilustración 4.1 Ventana inicial de la interfaz ............................................................ 46
Ilustración 4.2 Ventana de Datos personales .......................................................... 46
Ilustración 4.3 Ventana de datos personales después de verificar los campos .............. 47
Ilustración 4.4 Documento "Historial.docx" después de registrar al primer usuario ......... 47
Ilustración 4.5 Pestaña Datos personales después de seleccionar a un usuario............ 50
Ilustración 4.6 Pestaña Historial ........................................................................... 51
Ilustración 4.7 Gráfica de Temperatura corporal ...................................................... 51
Ilustración 4.9 Pestaña Medición .......................................................................... 53
Índice de diagramas
vi
Índice de diagramas
Diagrama 2.1 Funcionamiento general del sistema .................................................. 20
Diagrama 3.1 Diagrama a bloques de la inicialización de la LCD ............................... 35
Diagrama 3.2 Menú principal (parte 1) .................................................................. 38
Diagrama 3.3 Menú principal (parte 2) .................................................................. 39
Diagrama 3.4 Máximos y mínimos ........................................................................ 40
Diagrama 3.5 Medición Sistólica-Diastólica ............................................................ 41
Diagrama 4.1 Funcionamiento de la función “Load” ................................................. 45
Diagrama 4.2 Funcionamiento de las funciones de la ventana de Datos personales ...... 48
Diagrama 4.3 Funcionamiento del evento Seleccionar_usuario() ............................... 49
Diagrama 4.4 Control remoto del instrumento ......................................................... 52
Índice de figuras
Figura 2.1 Terminales del sensor MPX5050DP[16] .................................................. 23
Figura 2.2 Vista inferior de un LM35[17] ................................................................ 24
Figura 2.3 LCD de 2 líneas[18] ............................................................................ 25
Figura 2.4 Matriz de representación de caracteres, representación del carácter A[19] .... 25
Figura 2.5 Distribución de patas del microcontrolador m9s08sh8[20] .......................... 27
Figura 2.6 Asignación de funciones a pines del microcontrolador m9s08sh8 ................ 28
Figura 3.1 Configuración recomendada por el fabricante[16] ..................................... 30
Figura 3.2 Filtro pasa banda ................................................................................ 31
Figura 3.3 Amplificación en el sensor de temperatura .............................................. 33
Figura 3.4 Etapa de potencia ............................................................................... 34
Figura 3.5 Configuración del convertidor analógico digital ......................................... 36
Figura 3.6 Configuración de la comunicación serial ................................................. 37
Figura 3.7 Diseño del circuito (1) ..................................................................................... 42
Figura 3.8 Diseño del circuito (2) .......................................................................... 42
Figura 3.9 Fuente de alimentación........................................................................ 42
Objetivos
vii
Objetivos
Objetivo general
Diseñar y construir un prototipo de un instrumento médico,que mida la presión
arterial y temperatura corporal,y se comunique de manera inalámbrica con una
PC, para visualizar y almacenarlos resultados de las mediciones.
Objetivos particulares
Diseñar los circuitos de acondicionamiento, de las señales de los
sensores de presión y de temperatura.
Establecer el sistema de comunicación inalámbrica entre el instrumento y
la PC.
Diseñar la interfaz gráfica, para la visualizaciónde los
resultados,enviados por el prototipo.
Justificación
viii
Justificación
En la actualidad, existe un gran número de prototipos e investigaciones que
pretenden ofrecer innovaciones en la tecnología médica,con el fin de obtener un
diagnóstico más preciso y facilitar al médico o usuario en general, obtener dicha
información. Estos prototipos se centran en diversas cualidades,tales como, el ser
portables, precisos, fáciles de operar, entre otros aspectos.
El presente proyecto surge como propuesta de un instrumento médicoque, aparte
de ser preciso y fácil de operar, pueda ser accesible para el usuario en otros
aspectos, ya que se busca que el instrumento cuente con una interfaz gráfica
amable, para que pueda ser manipulada con facilidad y que además, permita un
seguimiento constante para los pacientes que así lo requieran.
Desafortunadamente, muchas enfermedades afectan a las personas, de tal forma
que le imposibilita realizar algunos movimientos cotidianos, por lo que es
necesario que permanezcan en cama bajo constante monitoreo, por parte de
personal médico.
Introducción
ix
Introducción
La presente tesis tiene como propósito,el desarrollo de un instrumento para la
medición de la presión arterial y temperatura corporal. Además del diseño de una
aplicación para PC, en la cual se muestren y almacenen los resultados obtenidos y
enviados de manera inalámbrica por el instrumento, asimismo permita el registro
de diferentes usuarios y /o pacientes.
La medición de la presión arterial, se realiza de forma no invasiva, utilizando el
métodooscilométrico, el cual se describe posteriormente. Mientras que la medición
de la temperatura corporal,se obtiene en base a la temperatura axilar. Por otra
parte, la comunicación inalámbrica se realiza mediante un módulo bluetooth.
El primer capítulo de la tesis tiene carácter introductorio, por lo que consiste en
una descripción general de los signos vitales, sus métodos de medición y los
instrumentos utilizados para su obtención. Abarcando desde los orígenes de los
instrumentos médicos, hasta los avances más recientes.
En el segundo capítulo, se presenta el diagrama a bloques del instrumento,
además, se describen las características de interés de cada uno de los elementos
que lo conforman, así como su funcionamiento.
A lo largo del tercer capítulo se describe el diseño de los circuitos que forman
parte del instrumento, tales como los circuitos utilizados para el acondicionamiento
de las señales, de los sensores de presión y temperatura, la comunicación
bluetooth, el control de la bomba de aire y la electroválvula, etc.
Dentro del cuarto capítulo se habla del diseño de la aplicación, su funcionamiento,
y la descripción de cada uno de los algoritmos utilizados dentro de la interfaz
gráfica, con sus respectivos diagramas de flujo.
Finalmente, los capítulos cinco y seis contienen los resultados y conclusiones,
obtenidas de las diferentes pruebas que se realizaron.
Antecedentes Capítulo 1.- Signos vitales y su medición
1
Capítulo 1 .- Signos vitales y su
medición
En este capítulo se realiza una descripción general de los signos vitales, sus
métodos de medición y los instrumentos utilizados para su obtención. Abarcando
desde los orígenes de los instrumentos médicos, hasta los avances más recientes.
1.1 Antecedentes
Las enfermedades han sido partícipes en la vida del ser humano desde sus
orígenes, pero, antiguamente estos males eran vistos y tratados de diferente
manera a lo que se hace hoy en día.
En la antigüedad, cuando un hombre era invadido por alguna enfermedad,
existía la creencia de que este malestar tenía un origen espiritual, por lo que era
llevado con el curandero de la tribu, el cual tenía ciertos conocimientos de
herbolaria, que le permitían sanar a la persona, pero, para poder saber las
hierbas necesarias para su sanación, el curandero debía pasar por una serie de
ritos, en los cuales se daba cuenta del tipo de mal al que se enfrentaba. Tal
como se muestra en laIlustración 1.1.
Ilustración 1.1 Antiguo ritual de curación[1]
Antecedentes Capítulo 1.- Signos vitales y su medición
2
En las épocas siguientes, el ser humano, con mayores conocimientos sobre las
enfermedades y el efecto de éstas en las personas, desarrolló una serie de
métodos y estudios para la detección de enfermedades específicas, y de esta
forma poder aliviarlas con el uso de medicamentos.
Sin embargo, en sus inicios, la búsqueda de estos síntomas dependía
íntegramente de la habilidad y experiencia del médico, puesto que, en ausencia
de la instrumentación adecuada, los procedimientos para la detección de
síntomas consistían en el uso de los cinco sentidos del médico para lograr
hacer alguna conjetura.
Con el desarrollo de nuevas herramientas y tecnologías, se ha logrado tener
una mayor eficiencia cuando se requiere realizar algún diagnóstico médico, por
ejemplo, la invención del estetoscopio en 1819, (Ilustración 1.2).
a) b)
Ilustración 1.2 a) Uso del primer estetoscopio, b) Primer estetoscopio (1819)[2]
En la actualidad, además de buscar el desarrollo de nuevos instrumentos para
el diagnóstico médico, se busca innovar tecnológicamente los instrumentos ya
creados, todo esto enfocado siempre a lograr establecer el mejor diagnóstico, y
poder aliviar prontamente los malestares biológicos de los seres humanos.
Estado del arte Capítulo 1.- Signos vitales y su medición
3
1.2 Estado del arte
Inicialmente, para el desarrollo del prototipo, es necesario conocer los avances
tecnológicos en el campo de la medicina, para lograr establecer un punto de
partida y tener referencias sólidas para justificar la utilidad del instrumento a
elaborar. Por consiguiente, se hará mención de algunos instrumentos médicos
desarrollados en la actualidad.
Cirugía a distancia1
Esta novedosa forma de practicar lamedicina,permite a los doctores realizar
cirugías en el lugar donde se encuentre el paciente, estando ellos en otro. Los
investigadores, están desarrollando micro robots que pueden ser insertados en el
abdomen del paciente, para ser controlados por cirujanos a cientos de kilómetros
de distancia.
Están ideados para trabajar en zonas de desastre, campos de batalla o cualquier
circunstancia en la que el paciente no pueda ser trasladado a un hospital. Este
micro robot (Ilustración 1.3) es capaz de frenar hemorragias internas, que es la
causa principal de muerte en situaciones traumáticas.
Ilustración 1.3 Microrobots en la medicina
1 Andres,C. Cirugía a distancia. http://www.avancestecnologicos.org/proyecto-cirugia-as-distancia.html. 21-
09-2012
Estado del arte Capítulo 1.- Signos vitales y su medición
4
Proyecto Lobin2
Un grupo de investigadores de la Universidad de Carlos III en Madrid, han
desarrollado una prenda de vestir, que incorpora sensores para monitorear
constantemente los signos vitales. Con este dispositivo, lo que se busca es que el
paciente tenga mayor movimiento cuando se encuentre en observación o
cualquier pabellón de un hospital.
El proyecto Lobin (localización y biomonitorización), es una prenda de vestir muy
parecida a una camisa (Ilustración 1.4), que está fabricada por un material muy
liviano, y tiene adherida sensores que le harán un seguimiento a un paciente
(electrocardiograma, los ritmos respiratorios, la temperatura, la posición relativa
del paciente), los datos recogidos serán enviados de forma inalámbrica a las
personas encargadas del paciente, dentro del hospital.
Ilustración 1.4 Proyecto Lobin
Avances médicos: tiritas digitales
Una empresa spin-off del Imperial College de Londres, ha desarrollado un nuevo
sistema de sensor para vigilar el estado de salud de las personas, y enviar
diagnósticos a un ordenador. Según sus creadores, esta tirita digital que lleva un
aparato electrónico diminuto, podría resultar especialmente útil para controlar la
salud de personas mayores que viven solas. Las primeras pruebas con humanos
empezarán dentro de unos pocos meses.
Esta tirita digital, (Ilustración 1.5) mide tan sólo tres milímetros por cinco, y tiene un
chip de silicio que lleva sensores capaces de detectar diversos síntomas. Uno
2 Andres,C. Proyecto Lobin camisetas que vigilan los signos vitales.
http://www.avancestecnologicos.org/proyecto-lobin-camisetas-que-vigilan-los-signos-vitales.html. 21-09-2012
Estado del arte Capítulo 1.- Signos vitales y su medición
5
puede detectar la actividad cardiaca, otro la temperatura corporal y otro niveles de
azúcar en la sangre. Toda la información recopilada es procesada por el chip de
silicio Sensium, cuya fuente de energía es una pequeña pila, parecida a las que
llevan los relojes digitales.
Ilustración 1.5 Tirita digital
Baumanómetro Digital Automático con Conexión a PC
En la actualidad, se tiene a la venta un baumanómetro digital (Ilustración 1.6), el
cual es capaz de conectarse a una computadora mediante el puerto de la
impresora. El instrumento presenta las siguientes características:
Selección del modo estándar o MAM (modo media).
Tecnología PAD (Detección de arritmia).
99 memorias
Memoria de 2x30
Puerto de impresora
Cambio sencillo de pila
Lógica difusa.
Método oscilométrico para mediciones.
Ilustración 1.6 Baumanómetro digital con conexión a PC[3]
Presión arterial Capítulo 1.- Signos vitales y su medición
6
1.3 Presión arterial
La presión arterial, representa la presión ejercida por la sangre contra la pared de
las arterias, cada vez que el corazón se contrae. La presión arterial o tensión
arterial, es la resultante del volumen por minuto cardíaco, es decir, el volumen de
sangre que bombea el corazón hacia el cuerpo en un minuto; por la resistencia
arteriolar periférica, esta última determinada por el tono y estado de las arteriolas.
Se distingue una presión sistólica y otra diastólica. La presión sistólica es la
presión sanguínea máxima. Representa la presión que sufren las arterias, cuando
el corazón se contrae y bombea sangre por ellas. La presión diastólica es la
presión mínima de la sangre, que se registra cuando el corazón se relaja.
La presión arterial varía en las personas a lo largo de las 24 horas del día . Los
factores que influyen son: las emociones, la actividad física, la presencia de dolor,
estimulantes como el café, tabaco, algunas drogas, etc.
Clasificación de la presión arterial
En la Tabla 1.1se muestra la clasificación de la presión arterial, según la
Organización Mundial de la Salud OMS.
Tabla 1.1 Clasificación de la presión arterial (OMS)[4]
Clasificación de la presión arterial
Clasificación Sistólica (mmHg) Diastólica
Óptima <120 y/o <80
Normal 120-129 y/o 80-84
Normal alta 130-139 y/o 85-89
Hipertensión
Etapa 1 140-159 y/o 90-99
Etapa 2 160-179 y/o 100-109
Etapa 3 180 y/o 110
Medición de la presión arterial Capítulo 1.- Signos vitales y su medición
7
Medición de la presión arterial
La presión arterial puede ser medida de manera no invasiva o invasiva. Cada una
de ellas se explica a continuación.
Medición no invasiva
Método de palpación:Este método se basa en la palpación del pulso radial, se
infla el manguito del baumanómetro o manómetro, hasta la desaparición del pulso
que se palpa, y posteriormente se infla 30mmHg más, después debe
desinflarselentamente, hasta el punto en que se vuelve a palpar el pulso en la
arteria radial.
Este método sólo permite medir la presión sistólica, un valor sistólico mínimo
puede ser estimado aproximadamente por palpación, éste es un método usado
más frecuentemente en situaciones de emergencia.
Sin embargo, este método no es lo suficientemente exacto, y con frecuencia,
sobrestima la presión sanguínea sistólica del paciente.
Métodos de auscultación
El método auscultorio usa un estetoscopio y un esfigmomanómetro. Se utiliza un
brazalete inflable que se coloca alrededor de la parte superior del brazo izquierdo
(puede ser tomada en el derecho, pero sería erróneo pues la medición obtenida no
sería exacta debido al recorrido propio de las arterias), arriba del codo, a
aproximadamente la misma altura vertical que el corazón. El brazalete va
conectado a un manómetro de mercurio o aneroide (Ilustración 1.7).
Ilustración 1.7 Método de auscultación[5]
Medición de la presión arterial Capítulo 1.- Signos vitales y su medición
8
El manómetro de mercurio, que se considera el estándar para la medición de la
presión sanguínea, mide la altura de una columna del mercurio, dando un
resultado absoluto sin la necesidad de calibración, y por lo tanto, no sujeto a los
errores y a la posible inexactitud de la calibración que afecta a otros métodos.
En ambos casos, el brazalete, del tamaño apropiado, es ajustado e inflado
manualmente al apretar repetidamente un bulbo de goma, hasta que la arteria
braquial es ocluida totalmente. Escuchando con el estetoscopio la arteria radial en
el antebrazo, el examinador libera lentamente la presión en el brazalete. Cuando
la sangre apenas comienza a fluir en la arteria, el flujo turbulento crea un sonido.
La presión en la cual este sonido se oye primero, es la presión sanguínea sistólica.
La presión del brazalete sigue liberándose, hasta que no se puede oír ningún
sonido en la presión sanguínea diastólica.
Métodos oscilométricos
En los métodos oscilométricos, el equipo es funcionalmente similar al del método
de auscultación, pero, en vez de usar el estetoscopio y el oído del experto, tiene
en el interior un sensor de presión electrónico para detectar el flujo de sangre
(Ilustración 1.8).
Ilustración 1.8 Baumanómetro digital[6]
La medición oscilométrica requiere menos habilidad que la técnica auscultatoria, y
puede ser conveniente para uso del personal inexperto, y para la supervisión
automatizada del paciente en su hogar.
El brazalete, es inicialmente inflado a una presión superior a la presión sanguínea
sistólica, y después, durante un período de cerca de 30 segundos, se reduce
hasta llegar a un nivel por debajo de la presión diastólica. Cuando el flujo de
Medición de la presión arterial Capítulo 1.- Signos vitales y su medición
9
sangre es nulo, o sin obstáculo, la presión del brazalete será esencialmente
constante. Es importante que el tamaño del brazalete sea el correcto: los
brazaletes de tamaño insuficiente pueden dar una presión demasiado alta,
mientras que los brazaletes de gran tamaño, muestran una presión demasiado
baja.
Los monitores oscilométricos, pueden producir lecturas inexactas en pacientes con
problemas en el corazón y la circulación, esto incluye esclerosis arterial, arritmia,
preeclampsia, pulso alternante, y pulso paradójico.
En la práctica, los diferentes métodos no dan resultados idénticos; un algoritmo y
los coeficientes experimentales obtenidos, son usados para ajustar los resultados
oscilométricos para dar lecturas que sean similares, tanto como sea posible, con
los resultados de la auscultación. Algunos equipos, usan el análisis asistido por
computadora, de la forma de onda de la presión arterial instantánea para
determinar los puntos sistólicos, medios, y diastólicos.
Las mediciones no invasivas por auscultación y oscilométrica, son más simples y
más rápidas que las mediciones invasivas, requieren menos pericia para llevarlas
a cabo, virtualmente no tienen complicaciones, y son menos desagradables y
dolorosas para el paciente.
Sin embargo, las mediciones no invasivas pueden tener una exactitud algo más
baja, y pequeñas diferencias sistemáticas en los resultados numéricos. Los
métodos de medición no invasivos, son más comúnmente usados para exámenes
y monitoreos rutinarios.
Medición invasiva
La presión sanguínea arterial, es medida con mayor precisión al utilizar la
medición invasiva, medida a través de una línea arterial. La medición invasiva de
la presión arterial con cánulas intravasculares, implica la medición directa de la
presión arterial, colocando una aguja de cánula en una arteria, usualmente se
mide en las arterias radial, femoral, dorsal del pie o braquial. Esto es hecho en un
hospital generalmente por un anestesiólogo o un cirujano. Como se muestra en
laIlustración 1.9.
La cánula se debe conectar con un sistema lleno de fluido estéril, que está
conectado con un transductor de presión electrónico. La ventaja de este sistema,
es que la presión está constantemente supervisada, latido por latido.
Medición de la presión arterial Capítulo 1.- Signos vitales y su medición
10
Ilustración 1.9 Método invasivo[7]
Esta técnica invasiva, es regularmente empleada en la medicina humana y
veterinaria de cuidados intensivos, anestesiología, y para propósitos de
investigación.
Instrumentos de medición
Existen diferentes dispositivos para medir la presión arterial, los más conocidos
son: el esfigmomanómetro de mercurio (Ilustración 1.10.a), el baumanómetro
aneroide (Ilustración 1.10.b)y los tensiómetros digitales (Ilustración 1.10.c).
a) b)
c)
Ilustración 1.10 a) Esfigmomanómetro de mercurio, b) Baumanómetro aneroide de mercurio, c) Tensiómetro digital[8]
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
11
Baumanómetro
El baumanómetro, es un instrumento neumático de gran importancia para el
diagnóstico médico, ya que, nos permite medir la fuerza que ejerce la sangre
sobre las paredes de las arterias y, por lo tanto, ayuda a detectar cualquier
anomalía relacionada con la presión sanguínea y el corazón.
En la actualidad, la instrumentación médica cuenta con una diversidad de
baumanómetros, para su apoyo en el diagnóstico médico, por ejemplo, el
baumanómetro analógico, probablemente el más conocido, éste consiste en una
bomba manual de aire, la cual infla una cámara colocada en el brazo del paciente,
de manera que, con ayuda de un estetoscopio, se pueda escuchar el flujo
sanguíneo y de esta manera, detectar los niveles de presión arterial que tiene el
paciente.
Este instrumento se puede clasificar en dos tipos:
Baumanómetro analógico
Baumanómetro digital
El primero, como anteriormente se hizo mención, consiste en el bombeo manual
de aire, para detectar la fuerza ejercida por la sangre sobre las paredes de las
arterias, utiliza como herramienta auxiliar un estetoscopio y, además, las
mediciones se observan de manera analógica en una aguja indicadora. Este
instrumento, usado por personas capacitadas, puede ser muy preciso.
En contraste, el baumanómetro digital generalmente está formado por una bomba
automática, la cual infla el brazalete y además, cuenta con un sensor de presión,
el cual registra instantáneamente la medida de presión del paciente, procesando
esos datos y desplegándolos en una pantalla (display). Es un instrumento muy
práctico para aquellas personas que requieren de una medición rápida y que no
cuentan con los conocimientos para utilizar el baumanómetro manual, el cual,
tiene mayor preferencia por los médicos debido a la precisión que presenta, ya
que, aunque el baumanómentro electrónico es muy efectivo, suele tener ligeras
variaciones en los resultados, normalmente despreciables.
Tensiómetros de dedo y muñeca
Existen algunos tensiómetros para medir la presión en el dedo o en la muñeca
(Ilustración 1.11), pero se ha demostrado que estos aparatos no son tan exactos
como los demás tipos de monitores.
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
12
Ilustración 1.11 Tensiómetro de dedo[9]
1.4 Temperatura corporal
La temperatura, es una magnitud referida a las nociones comunes de caliente,
tibio, frío que puede ser medida, específicamente, con un termómetro. La
temperatura normal del cuerpo de una persona varía dependiendo de su sexo, su
actividad reciente, el consumo de alimentos y líquidos, la hora del día y, en las
mujeres, de la fase del ciclo menstrual en la que se encuentren. La temperatura
corporal, de acuerdo con la Organización Mundial de la Salud, se clasifica según
laTabla 1.2.
Tabla 1.2 Clasificación de la temperatura corporal según la OMS[10]
Clasificación Temperatura (°C)
Hipotermia <35.5
Temperatura normal 35.5-37
Febrícula 37.1-37.9
Fiebre >38
Termómetro
El termómetro, es un instrumento utilizado para la medición de temperaturas.
Dentro de la instrumentación médica, los termómetros más comunes están
formados por un tubo de vidrio, el cual contiene un cilindro interior con mercurio,
este se expande o se contrae, dependiendo de la temperatura a la que se
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
13
encuentre, y, para poder medir la temperatura, éste cuenta con una escala en
grados centígrados, la cual nos permite observar el avance del mercurio dentro del
tubo.
Al igual que el baumanómetro, los termómetros se pueden clasificar de la
siguiente manera:
Termómetro analógico
Termómetro digital
Los termómetros analógicos (Ilustración 1.12.a), se encuentran comúnmente
formados por mercurio como componente principal, debido a que este metal
presenta propiedades que favorecen la medición de la temperatura, como lo son
su maleabilidad y su capacidad de dilatación con el calor. La medición que
proporciona este instrumento, varía de acuerdo a la parte del cuerpo en donde se
coloque, generalmente se entrega un valor con poco error.
a) b)
Ilustración 1.12a )Termómetro de mercurio, b) Termómetro digital.[11]
Los termómetros digitales (Ilustración 1.12.b), obtienen su resultado a través de
dispositivos electrónicos y que transforman la cantidad de calor en señales
eléctricas, y a partir de éstas, gracias a un convertidor analógico digital, dicha
información se despliegan típicamente en pequeñas pantallas digitales,
comúnmente llamadas display.
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
14
Medición de la temperatura corporal
Oral
La temperatura se puede tomar en la boca (Ilustración 1.13), utilizandoel
termómetro clásico o los termómetros digitales más modernos, que usan una
sonda electrónica para medir la temperatura.
Ilustración 1.13 Medición oral[12]
La toma de temperatura por vía oral, es generalmente recomendada para niños a
partir de 4 años, y que pueden mantener fácilmente el termómetro dentro de la
boca. Una lectura de 37.5ºC o superior, generalmente se considera fiebre. Se
considera que hay fiebre, cuando la temperatura corporal es mayor de 98,6° F (37°
C) en la boca, o de 99,8° F (37,6 ° C) en el recto. La hipotermia, se define como
una disminución de la temperatura corporal por debajo de los 95° F (35° C).
Rectal
Las temperaturas que se toman en el recto (Ilustración 1.14), utilizando un
termómetro de vidrio o digital, tienden a ser de 0,5 a 0,7° F más altas que si se
toman en la boca. Una lectura de 38°C o superior, generalmente se considera
fiebre.
Ilustración 1.14 Medición rectal[13]
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
15
Axilar
La temperatura se puede tomar debajo del brazo (Ilustración 1.15), utilizando un
termómetro de vidrio o digital. Las temperaturas que se toman en esta zona,
suelen ser de 0,3 a 0,4°F más bajas que las que se toman en la boca. Éste es un
método sencillo y seguro para niños de todas las edades. Una lectura de 37ºC o
superior generalmente se considera fiebre.
Ilustración 1.15 Medición axilar[13]
Un termómetro especial puede medir rápidamente la temperatura del tímpano, que
refleja la temperatura central del cuerpo (la temperatura de los órganos internos).
Tal como se muestra en laIlustración 1.16.
Ilustración 1.16 Medición por el oído[14]
Un termómetro especial (Ilustración 1.17), puede medir rápidamente la
temperatura de la piel en la frente.
Ilustración 1.17 Termómetro cutáneo[15]
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
16
1.5Elementos típicos de un instrumento
Los instrumentos dedicados a la medición de la presión arterial con el método
oscilométrico y la temperatura corporal, se componen principalmente de: sensores
tanto de presión como de temperatura.
Sensores
Los sensores provienen de los tranductores, pues un sensor es un tipo de
transductor.
Transductor
Un transductor, es un dispositivo capaz de convertir cierta energía de entrada
en otra energía de salida diferente. LaIlustración 1.18muestra el diagrama a
bloques de los transductores; a la entrada reciben una magnitud física, mientras
que a la salida entregan una señal analógica normalizada. Este proceso será el
mismo que realizará un sensor.
Ilustración 1.18 Diagrama a bloques de un transductor
Sensor
Un sensor, como se explica en la Ilustración 1.19 es aquel dispositivo que
permite transformar variables, físicas o químicas, tales como la temperatura,
presión, pH, humedad; en variables eléctricas, como, resistencia, voltaje, etc.
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
17
Ilustración 1.19 Diagrama a bloques de un sensor
Sensores de presión
Sensores de presión resistivos
Este tipo de sensores, basan su funcionamiento en dispositivos como, las células
de carga y las galgas extensiométricas, las cuales son elementos metálicos, que
cuando se someten a un esfuerzo, sufren una deformación del material, y por lo
tanto, una variación de su resistencia interna.
La configuración más utilizada para las galgas extensiométricas, es el puente de
Wheatstone, el cual está formado por tres resistencias conocidas y una resistencia
desconocida, conectadas entre sí en forma de diamante. Su función es facilitar la
obtención de valor de una resistencia, aplicando una corriente continua a través de
dos puntos opuestos del diamante. Cuando todas las resistencias se nivelan, las
corrientes que fluyen por los dos brazos del circuito, se igualan, lo que elimina el
flujo de corriente por los otros dos puntos del diamante, el puente puede ajustarse
a cualquier valor de la resistencia desconocida, que se calcula a partir los valores
de las otras resistencias. En el caso del sensor, la galga extensiométrica, pasa a
ser la resistencia de valor desconocido.
Sensores de presión piezo-cerámicos/multicapa
Para este tipo de sensor, se utiliza la combinación de la tecnología piezo-
cerámica y multicapa, para producir una señal eléctrica, cuando se le aplica
una fuerza mecánica.
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
18
Sensor de presión con semiconductores
Una variación de presión sobre una membrana, hace actuar un único elemento
piezo-resistivo semiconductor.
Sensores de temperatura
Termopar
Un termopar, es un dispositivo de estado sólido, que consta de dos metales
diferentes empalmados, tales como: hierro y constantano, cobre y constantano o
antimonio y bismuto. Se emplean como sensores de temperatura e instrumentos
semejantes a los termómetros.
Untermoparfunciona bajo el efecto Seebeck, que es función de la diferencia
de temperatura entre uno de los extremos, denominado "punto caliente" o unión
caliente o de medida, y el otro denominado "punto frío" o unión fría o de
referencia.
En instrumentación industrial, los termopares son ampliamente usados
como sensores de temperatura. Son económicos, intercambiables, tienen
conectores estándar y son capaces de medir un amplio rango de temperaturas. Su
principal limitación es la exactitud, ya que los errores del sistema inferiores a
ungrado Celsius,son difíciles de obtener.
RTD (Detector de Temperatura Resistivo)
Es unsensordetemperatura,basado en la variación de la resistencia de un
conductor, con la temperatura. Esto se debe a que al calentarse un metal habrá
una mayor agitación térmica, dispersándose más los electrones, lo cual, aumenta
la resistencia. A mayor temperatura, mayor agitación y mayor resistencia.
Los materiales empleados para la construcción de sensores RTD, suelen ser
conductores, tales como el cobre, el níquel o el platino.
Dentro de las ventajas de este sensor, se encuentra que el margen de
temperatura es bastante amplio, proporciona medidas de temperatura con gran
exactitud y repetitividad, y tiene una sensibilidad mayor que los termopares.
Dentro de los inconvenientes de este dispositivo, está su costo elevado, su
tamaño y su masa será también mayor que el de un termopar o un termistor,
Instrumentos de medición Capítulo 1.- Signos vitales y su medición
19
limitando además su velocidad de reacción. Además, no son tan durables como
los termopares ante vibraciones y golpes.
Termistor NTC (Coeficiente de Temperatura Negativo)
Un termistor es un sensor resistivo de temperatura. Su funcionamiento se basa en
la variación de la resistividad, que presenta un semiconductor con la temperatura.
El funcionamiento de este tipo de termistor, consiste en que la resistencia
disminuye cuando aumenta la temperatura. Esto sucede porque al aumentar la
temperatura, aumentará también la concentración de portadores, por lo que la
resistencia será menor, de ahí que el coeficiente sea negativo.
Sin embargo, a diferencia de los sensores RTD, la variación de la resistencia con
la temperatura es no lineal. Para un termistor NTC, la característica es hiperbólica.
Para pequeños incrementos de temperatura, se darán grandes incrementos de
resistencia, lo cual representa la mayor desventaja de este sensor.
Termistor PTC
Al igual que con termistor NTC, la resistencia de este dispositivo es sensible a los
cambios de temperatura. Sin embargo, funciona a la inversa, es decir, la
resistencia aumenta cuando aumenta la temperatura.
Bimetal-Termostato
Untermostatoes el componente de un sistema de control simple, que abre o cierra
un circuito eléctrico en función de la temperatura.
Su versión más simple consiste en una lámina bimetálica, como la que utilizan los
equipos de aire acondicionado para apagar o encender el compresor.
Descripción general del sistema Capítulo 2.- Componentes del sistema, descripción y funcionamiento
20
Capítulo 2 .-Componentes del sistema,
descripción y funcionamiento
En este capítulo, se presentan los bloques que componen al instrumento desarrollado,
además, se describen las características de interés de cada uno de sus elementos, así como
su funcionamiento.
El sistema representado en el Diagrama 2.1está formado por cinco etapas, las cuales llevan
a cabo el proceso de alimentación, control, medición, interpretación y visualización de la
presión arterial y temperatura corporal.
Diagrama 2.1 Funcionamiento general del sistema
Descripción general del sistema Capítulo 2.- Componentes del sistema, descripción y funcionamiento
21
Estas etapas son:
Etapa de acondicionamiento
Etapa de potencia
Fuente de alimentación
Funcionamiento del microcontrolador
Interfaz gráfica
Las variables a medir, son la presión arterial y la temperatura corporal, cada una de ellas
requiere de un método específico para su obtención.
En el caso de la presión arterial, es necesario usar un brazalete, colocado alrededor del
brazo izquierdo del sujeto, por encima del codo, debido a que el sensor MPX5050DP no
mide la presión directamente de la arteria, sino que utiliza la presión del aire ejercida en el
interior del brazalete.
Por lo tanto, la señal obtenida del sensor, no contiene únicamente los valores de la presión
arterial, sino que además, contiene los valores debido al inflado y desinflado del brazalete,
dichas acciones son realizadas por una bomba de aire y una electroválvula.
Para la medición de la temperatura corporal, se utiliza el sensor LM35, el cual se coloca
directamente debajo de la axila izquierda del sujeto, puesto que el sensor se encuentra
unido al brazalete, como se muestra en laIlustración 2.1.
Una vez realizadas las lecturas de ambas variables, es necesario adecuarlas para que
puedan ser procesadas por el microcontrolador M9S08SH8. El cual, además de procesar
las señales provenientes de los sensores, controla el encendido y apagado de la bomba de
Ilustración 2.1 Brazalete con sensor LM35
Descripción general del sistema Capítulo 2.- Componentes del sistema, descripción y funcionamiento
22
aire y la electroválvula, la visualización inmediata de los datos mediante la LCD y la
comunicación inalámbrica.
Finalmente, la información recibida del microcontrolador, se visualiza y almacena mediante
una aplicación realizada en Visual Studio 2010. Además, esta aplicación, lleva el registro de
las diferentes personas que utilicen el instrumento, y permite que el usuario determine el
momento en el que desea que se realice una medición, ya sea programándole un horario o
de manera inmediata.
2.1 Elementos auxiliares para la medición
Brazalete inflable
El brazalete utilizado para medir la presión arterial de forma oscilométrica, está formado
por una banda rectangular compuesta por una cámara inflable. De la que parte una
manguera hacia los dispositivos de control (bomba, electroválvula y sensor de presión), y
además está formado por una funda flexible y no extensible, con una sección que
contiene dos caras de velcro, permitiéndole así tener una adherencia al momento de
rodear el brazo, y ser inflado por la bomba de aire.
Bomba de aire
La bomba de aire utilizada para el prototipo se muestra en la Ilustración 2.2 y presenta las
siguientes características generales:
- Voltaje: 6v.
- Corriente: 120 mA.
- Presión: 400mmHg.
- Ruido: 55dB.
- Dimensiones: Cilindro h= 6cm, r=1.5cm.
Ilustración 2.2 Bomba de aire
Elementos auxiliares para la medición Capítulo 2.- Componentes del sistema, descripción y funcionamiento
23
Ilustración 2.3 Electroválvula
Electroválvula
La electroválvula que se muestra en la Ilustración 2.3 tiene la función de liberar la presión
de aire del sistema. Ésta posee las siguientes características generales:
- Voltaje: 6v.
- Corriente: 120mA.
- Resistencia: 100Ω.
- Dimensiones: 2cm x 1.4cm x 1.4cm.
Sensor mpx5050
El sensor MPX5050 (Figura 2.1) fabricado por la empresa Freescale, entrega un valor
proporcional en voltaje, de la diferencia de presión medida entre sus dos terminales.
Este sensor, realiza una comparación entre dos presiones diferentes, y entrega la
diferencia de éstas, esto favorece la precisión del dispositivo, puesto que puede
utilizarse una de las dos presiones como referencia.
Características:
Compensación entre temperaturas desde -40° hasta 125°C.
Rango de presión de 0 a 50 kPa.
Sensibilidad de 90 mV/ kPa.
Tiempo de respuesta de 1ms.
Voltaje suministrado de 4.75Vcd a 5.25Vcd.
Corriente suministrada de 7.0mAdc a 10mAdc.
Terminales del sensor MPX5050DP
1. Voltaje de salida.
2. Tierra.
3. Vcc.
4. No se utiliza.
5. No se utiliza.
6. No se utiliza.Figura 2.2 Terminales del sensor MPX5050DP[16]
Sensores Capítulo 2: Componentes del sistema, descripción y funcionamiento
24
Sensor LM35
El LM35 es un sensor de temperatura integrado de precisión (Figura 2.3), cuya tensión de
salida es linealmente proporcional a temperatura en ºC (grados centígrados). El LM35 por
lo tanto, tiene una ventaja sobre los sensores de temperatura lineal calibrada en grados
Kelvin, ya que el usuario no está obligado a restar un valor de tensión constante para
obtener la conversión a grados centígrados. El LM35 no requiere ninguna calibración
externa o ajuste, para proporcionar una precisión típica de ± 1.4 ºC a temperatura
ambiente, y ± 3.4 ºC a lo largo de su rango de temperatura (de -55 a 150 ºC). El
dispositivo se ajusta durante el proceso deproducción. La baja impedancia de salida, la
salida lineal y la precisa calibración inherente, permiten la creación de circuitos de lectura
o control especialmente sencillos. El LM35 puede funcionar con alimentación simple o
alimentación doble (+ y -).
Figura 2.3 Vista inferior de un LM35[17]
LCD (pantalla de cristal líquido)
Es una pantalla plana formada por un número de píxeles en color o monocromos. Es un
tipo de visualizador pasivo, esto significa que no emite luz. (Figura 2.4)
La LCD tiene muy bajo consumo de energía si se le compara con el display de 7
segmentos, y es compatible con la tecnología CMOS, característica que permite que se
utilice en equipos portátiles.
Tiene una vida aproximada de 50,000 horas. Hay diferentes tipos de presentaciones y son
muy fáciles de configurar. Desde visualizadores comunes tipo alfanuméricos hasta
gráficos.
LCD Capítulo 2.- Componentes del sistema, descripción y funcionamiento
25
La LCD modifica la luz que lo incide. Dependiendo de la polarización que se esté
aplicando, la LCD reflejará o absorberá más o menos luz.
Cuando un segmento recibe la tensión de polarización adecuada, no reflejará la luz, y
aparecerá en la pantalla del dispositivo como un segmento oscuro.
Las ventajas de utilizarlo son, que se tiene un dispositivo pequeño, de bajo consumo de
energía, de bajo costo, fácil de configurar y utilizar, y que presenta undespliegue de
información prácticamente inmediata.
Figura 2.4 LCD de 2 líneas[18]
El modelo de LCD que se emplea para el instrumento desarrollado, es una LCD
monocromática, está constituido por un circuito impreso, en el que están integrados los
controladores del display y sus pines para la conexión. Sobre el circuito impreso se
encuentra el LCD en sí, rodeado por una estructura metálica que lo protege.
En total se pueden visualizar 2 líneas de 16 caracteres cada una, es decir, 2x16=32
caracteres
El LCD dispone de una matriz de 5x8 puntos para representar cada carácter (). En total
se pueden representar 256 caracteres diferentes. 240 de estos caracteres están
grabados dentro del LCD y representan las letras mayúsculas, minúsculas, signos de
puntuación, números, etc.
Figura 2.5 Matriz de representación de caracteres, representación del carácter A[19]
Bluetooth Capítulo 2.- Componentes del sistema, descripción y funcionamiento
26
La tensión nominal alimentación de la LCD es de 5V, con un consumo menor de 5mA.
Bluetooth
Esta tecnología, es una especificación abierta para la comunicación inalámbrica de
datos y voz, está basada en un enlace de radio de corto alcance, el principal objetivo
de esta tecnología, es la posibilidad de reemplazar el cableado, para aquellas
aplicaciones que requieren comunicación de corto alcance, de esta forma se evitan un
sin fin de desventajas que se presentan en los cables.
El transmisor está integrado por un microchip de que
opera en una frecuencia de banda global (2.4 GHz),
frecuencia utilizada comúnmente para usos médicos y
científicos, lo cual asegura la compatibilidad universal.
En una comunicación entre dispositivos Bluetooth, el canal de comunicación permanece abierto, y no requiere de la intervención directa del usuario.
La velocidad máxima que puede soportar un sistema de
este tipo es de 700kb/seg, y el consumo es 97% menor
al de un teléfono móvil, además de que existe un estado bajo en el dispositivo, el cual
se activa cuando disminuye el tránsito de datos por el transmisor.
Microntrolador mc9s08sh8
La familia S08SH es una serie de los microcontroladores S08 de 8 bits, que ofrece un
menor consumo de energía, a diferencia de aquellos que requieren 5 volts.
También ofrece una gran gama de periféricos, como la interfaz de comunicación serie
(SCI), la interfaz serial de periféricos (SPI), un convertidor analógico digital, un
comparador analógico y un sensor de temperatura.
Características
Memoria Flash de tercera generación integrada y memoria RAM
Contiene una memoria flash con una velocidad de 20µs/byte, puede ser programada y
borrada más de 100,000 veces.
Puede almacenar información en condiciones habituales durante 100 años (mínimo
15años).
Ilustración 2.4 Modulo bluetooth
Microcontrolador Capítulo 2.- Componentes del sistema, descripción y funcionamiento
27
Entradas/Salidas
Posee 17 patas de entrada/salida de propósito general y una pata de solo salida. Ocho
patas para interrupciones. Opción de salida con ganancia para PTB (5:2) y PTC (3:2).
Permite seleccionar mediante software, los resistores de levantamiento para los
puertos que serán utilizados como entrada. Tiene resistores de levantamiento en el
reset e interrupciones externas
Periféricos Analógicos Integrados
Contiene un convertidor analógico-digital de 16 canales, con una resolución de 10 bits,
y un tiempo de conversión de 2.5µs. También contiene, una fuente de reloj asíncrona y
un sensor de temperatura. La distribución de patas del microcontrolador se muestra en
la Figura 2.6.
Figura 2.6 Distribución de patas del microcontrolador m9s08sh8[20]
Cada pin del microcontraldor tiene diferentes funciones multiplexadas, el uso de cada
una de ellas en el proyecto se muestra en la Figura 2.7.
Microcontrolador Capítulo 2.- Componentes del sistema, descripción y funcionamiento
28
Figura 2.7 Asignación de funciones a pines del microcontrolador m9s08sh8
Para realizar la programación del microcontrolador, se utiliza como entorno de
desarrollo a Code Warrior y Processor Expert
Code Warrior y Processor Expert
Codewarrior (CW) IDE es un completo sistema para editar, compilar y enlazar, simular,
programar y depurar para los DSC de Freescale. La versión 8.0 del CW IDE está
compuesta por un editor, ensamblador, compilador C/C++ optimizado, enlazador,
simulador, programador y depurador.
En el paquete se incluye Processor Expert, el cual es una herramienta que automatiza
la generación de código, configuración de periféricos, dispositivos externos y
algoritmos.
2.2 Elementos de la interfaz gráfica
La interfaz gráfica, permite visualizar las mediciones enviadas de manera inalámbrica,
por el instrumento. Además, realiza un diagnóstico preliminar con base a estos
resultados, y los almacena en un documento de texto. De esta manera, se forma
paulatinamente un historial de los signos vitales medidos. Asimismo, la interfaz permite
el registro de varios usuarios.
La interfaz gráfica está formada por los siguientes elementos principales:
Elementos de la interfaz gráfica Capítulo 2.- Componentes del sistema, descripción y funcionamiento
29
Cargar datos previamente almacenados.
Registro y edición de usuarios.
Lista de usuarios registrados.
Visualización de datos personales del usuario seleccionado.
Visualización del historial del usuario activo.
Visualización de la medición más reciente y control remoto del instrumento.
Para el diseño e implementación de la interfaz gráfica se utiliza el entorno de desarrollo
Microsoft Visual Studio 2010.
Microsoft Visual Studio
Microsoft Visual Studio es un entorno de desarrollo integrado, para sistemas operativos
Windows. Soporta varios lenguajes de programación, tales como: Visual C++, Visual
C#, Visual J#, y Visual Basic .NET, al igual que entornos de desarrollo Web, como
ASP.NET.
Visual Studio permite crear aplicaciones, sitios y aplicaciones Web, así como servicios
Web en cualquier entorno que soporte la plataforma .NET. También se pueden crear
aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas Web y
dispositivos móviles.
Visual Studio 2010, es una de las versiones más recientes de esta herramienta,
acompañada por .NET Framework 4.0.
Entre sus características más destacables, se encuentran la capacidad para utilizar
múltiples monitores, así como la posibilidad de desacoplar las ventanas de su sitio
original, y acoplarlas en otros sitios de la interfaz de trabajo.
Etapa de acondicionamiento Capítulo 3: Desarrollo del instrumento
30
Capítulo 3 .-Diseño de hardware
A lo largo de este capítulo, se describe el diseño de los circuitos que forman parte del
instrumento, tales como los circuitos utilizados para el acondicionamiento de las señales de
los sensores de presión y temperatura, la comunicación bluetooth, el control de la bomba de
aire y la electroválvula, etc. Además se presentan los algoritmos de la programación del
microcontrolador.
3.1 Etapa de acondicionamiento
Acondicionamiento de la señal de presión
Para el sensor MPX5050DP, se utiliza el circuito recomendado por el fabricante (Figura 3.1),
el cual contiene filtros, tanto en la entrada, como en la salida del mismo, para evitar ruido en
las señales.
Figura 3.1 Configuración recomendada por el fabricante[16]
La señal de salida no requiere ser amplificada, debido a que se encuentra en un intervalo de
voltaje adecuado para el microcontrolador. En la Tabla 3.1, se muestra una comparación
entre los valores voltaje/presión ideales y los valores obtenidos.
Tabla 3.1 Medición real de la presión vs. voltaje sugerido por el fabricante
Presión Voltaje Voltaje ideal
mmHg real 90 mV/ KP
20 0.469333333 V 0.239980263 V
30 0.600666667 V 0.359970395 V
40 0.729333333 V 0.479960526 V
50 0.861666667 V 0.599950658 V
60 1.004 V 0.719940789 V
Etapa de acondicionamiento Capítulo 3: Desarrollo del instrumento
31
70 1.141333333 V 0.839930921 V
80 1.266333333 V 0.959921053 V
90 1.401333333 V 1.079911184 V
100 1.554 V 1.199901316 V
110 1.674 V 1.319891447 V
120 1.814 V 1.439881579 V
130 1.946 V 1.559871711 V
140 2.043333333 V 1.679861842 V
150 2.173333333 V 1.799851974 V
160 2.316666667 V 1.919842105 V
170 2.45 V 2.039832237 V
180 2.59 V 2.159822368 V
En promedio, la diferencia entre el voltaje ideal y el voltaje real, es de 0.3 V, el cual entra en
la tolerancia que el fabricante indica. Para compensar este voltaje, se le agrega un valor,
mediante software.
El sensor, recibe la presión proveniente del brazalete, a partir de la cual se obtienen dos
señales. La primera, corresponde a la presión suministrada por la bomba de aire, esta señal
se usa para el control del inflado y desinflado del brazalete; mientras que la segunda, es
producida por el flujo sanguíneo, y es ésta la que interesa medir.
Puesto que el ritmo cardiaco tiene una frecuencia comprendida entre 0.7 y 2 Hz, basta con
utilizar un filtro pasa banda para separar ambas señales.
Filtro pasa banda
Para obtener un filtro pasa banda (Figura 3.2), es necesario unir un filtro pasa bajas y un
filtro pasa altasCon el filtro pasa bajas, se busca eliminar la interferencia producida por la red
3
2
6
74 1 5
U2
LF411
3
2
6
74 1 5
U3
LF411
3
2
6
74 1 5
U4
LF411
C1
R1
R2
C2
R3 R4
BAT15V
BAT25V
Figura 3.2 Filtro pasa banda
Etapa de acondicionamiento Capítulo 3: Desarrollo del instrumento
32
eléctrica (60Hz), para ello se utiliza un filtro pasivo RC.
Los cálculos de los valores de los componentes, se fijan de la siguiente manera:
o Se propone una frecuencia de corte, aun menor que la red eléctrica (50Hz).
o Se fija el valor de C2 a 220nF.
o A partir de la ecuación 1, se calcula el valor de R2:
...................(1)
Para el diseño del filtro pasa altas, se busca eliminar al máximo, las posibles aportaciones
de DC por lo que de igual forma se utiliza un filtro pasivo RC.
Los cálculos de los valores de los componentes se fijan de la siguiente manera:
o Se propuso una frecuencia de corte de 0.5Hz
o Se fija el valor de C1 a 2.2 uF.
o A partir de la ecuación 2 se calcula el valor de R1:
...................(2)
Finalmente se colocó una etapa con un amplificador seguidor, por lo que se fijanlos valores
de las resistencias R3 y R4 a 1KΩ.
Acondicionamiento en el sensor de temperatura
El sensor LM35 entrega 10mV/°C y, puesto que, la temperatura promedio corporal oscila
entre los 34°C y los 40°C aproximadamente, el intervalo de voltajes entregado se muestra en
la Tabla 3.2:
Tabla 3.2 Respuesta del sensor LM35
°C Voltaje Salida(V)
34 0.34
34.5 0.345
35 0.35
35.5 0.355
36 0.36
36.5 0.365
37 0.37
37.5 0.375
Etapa de acondicionamiento Capítulo 3: Desarrollo del instrumento
33
38 0.38
38.5 0.385
39 0.39
39.5 0.395
40 0.4
Debido a que los voltajes resultantes se encuentran en el rango de los mV, es necesario
colocar un amplificador a la salida del sensor (Figura 3.3), para obtener un nivel de voltaje
óptimo. Los cálculos de los valores de los componentes, se fijaron de la siguiente manera:
o Se considera una ganancia de 10 para el diseño del amplificador no inversor, la cual
está dada por:
...................(3)
o Se propone R1 de 10KΩ, por lo tanto:
...................(4)
Figura 3.3 Amplificación en el sensor de temperatura
Etapa de potencia Capítulo 3: Desarrollo del instrumento
34
3.2 Etapa de potencia
Para el control de la bomba de aire y de la electroválvula, es necesaria una etapa de
potencia (Figura 3.4), esto debido a que la corriente suministrada por el microcontrolador, no
es suficiente para alimentar a ambos dispositivos, ya que cada uno de éstos requiere una
corriente de 120mA para su funcionamiento.
Es por ello que se utiliza el transistor 2n3904, el cual soporta una corriente máxima de
200mA, suficiente para suministrar los 120mA a los diferentes dispositivos, se utiliza una
resistencia de base de 5.8kΩ, suficiente para suministrar al transistor una corriente de
saturación.
...................(5)
...................(6)
Figura 3.4 Etapa de potencia
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
35
3.3 Programación del
microcontrolador(Funcionamiento del programa)
El programa del microcontrolador cuenta con diferentes bloques de programación, los cuales
se describen a continuación.
LCD(Pantalla de cristal líquido)
Para el despliegue de caracteres en la LCD es necesaria una inicialización previa para
configurar los parámetros con los que se trabajará, como lo son, el número de líneas, el
número de bits de datos, y el borrado inicial de la pantalla. Esta inicialización es dada por el
fabricante del dispositivo, y su proceso se muestra en elDiagrama 3.1
Diagrama 3.1 Diagrama a bloques de la inicialización de la LCD
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
36
Además de la inicialización, se cuenta con 3 funciones, las cuales nos permitirán enviar
algún comando, dato o imprimir algún carácter en la pantalla. Estas funciones reciben el
nombre de: Comando_LCD, Dato_LCD y Mensaje.
Convertidor analógico-digital
La herramienta Processor Expert incluida en el software Code Warrior, permite configurar de
una manera más accesible los diferentes registros del convertidor analógico digital, esta
configuración se realiza seleccionando las características deseadas, como el número de
canales, la velocidad de conversión y la resolución. La configuración utilizada se muestra en
la Figura 3.5.
Figura 3.5 Configuración del convertidor analógico digital
De esta forma, únicamente se requiere utilizar los métodos de recepción de datos del ADC,
inicio de conversión y habilitación del convertidor.
Comunicación Serial
Para la configuración de la comunicación serial, se utilizó, al igual que para la configuración
del ADC, la herramienta Processor Expert, por lo que únicamente se tuvieron que asignar los
valores deseados para la comunicación. La configuración se muestra en laFigura 3.6
Configuración de la comunicación serial
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
37
Figura 3.6 Configuración de la comunicación serial
Menú
Para que el usuario pueda manipular el instrumento, se programó un menú, en el cual se
manejarán 5 opciones diferentes:
1. Chequeo (Medición de presión arterial y temperatura corporal simultáneamente)
2. Tomar temperatura
3. Tomar presión
4. Conexión a PC
5. Salir
Con estas opciones, se podrá realizar un chequeo completo (medición de temperatura y
presión) al usuario, o simplemente tomar una muestra de alguna de las dos variables de
forma individual. Además de contar con una opción la cual permite al instrumento establecer
una comunicación inalámbrica para su control vía PC. El menú se encuentra descrito en el
Diagrama 3.2 y en el Diagrama 3.3.
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
38
Diagrama 3.2 Menú principal (parte 1)
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
39
Diagrama 3.3 Menú principal (parte 2)
Algoritmos de medición
Para efectuar la medición de la presión, se debe considerar la etapa del control del inflado y
desinflado de la bomba, ya que el brazalete debe inflarse hasta llegar a una presión de
160mmHg, y posteriormente comenzar a disminuir la presión poco a poco, para permitir al
microcontrolador registrar los valores de la presión sistólica y diastólica. Los pasos para
lograr la medición de la presión, se enlistan a continuación:
1. Se infla la bomba hasta medir una presión de 160mmHg en el sensor MQX5050DP.
2. Se detiene el inflado para disminuir la presión del brazalete lentamente.
3. Una vez alcanzados los 20mmHg se activa la electroválvula, permitiendo el escape de
la presión restante en el brazalete.
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
40
En el Diagrama 3.4 y el Diagrama 3.5se muestra el algoritmo utilizado para la obtención de las
presiones sistólica y diastólica.
Diagrama 3.4 Máximos y mínimos
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
41
Diagrama 3.5 Medición Sistólica-Diastólica
Diseño del circuito impreso
Una vez que se realizó el diseño de los diferentes bloques del instrumento, se elaboró el
circuito impreso (Figura 3.7), el cual está montado en una placa de cobre de doble cara de
8x10cm. Para el diseño del circuito se utilizó el software PCB Wizard, y se realizó de forma
manual, debido a que, aunque el software contiene un sistema automático para la
elaboración del circuito impreso, éste no se adecuaba a las necesidades del instrumento.
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
42
Figura 3.7 Diseño del circuito (1) Figura 3.8 Diseño del circuito (2)
Fuente de alimentación utilizada
Para la elaboración de la fuente de alimentación simétrica, se utilizó un diseño de laFigura
3.9, en el cual se utilizan los reguladores LM337 y LM317, esto debido a que para la etapa
de los filtros, es necesario contar con voltajes tanto positivos como negativos.
Figura 3.9 Fuente de alimentación
En este circuito los potenciómetros R1 y R4 fueron sustituidos por resistores fijos, ya que se
busca tener una alimentación de 5v. Los materiales utilizados para la fuente fueron los
siguientes:
o R1 2.2 kΩ
o R2 240 Ω
o R3 240 Ω
Programación del microcontrolador Capítulo 3: Desarrollo del instrumento
43
o R4 2.2 kΩ
o C1 2200 µf
o C2 2200 µf
o C3 1 µf
o C4 1 µf
o C5 1 µf
o C6 100 µf
o C7 1 µf
o C8 100 µf
o BR1 puente rectificador de 2A
o U1 LM317
o U2 LM337
o Transformador 24V 1ª
Descripción general Capítulo 4.- Diseño del software
44
Capítulo 4 .-Diseño del software
Dentro este capítulo se habla del diseño de la aplicación para PC, su funcionamiento, y la
descripción de cada uno de los algoritmos utilizados dentro de la interfaz gráfica, con sus
respectivos diagramas de flujo.
Las interfaces gráficas son un medio, que facilita el ingreso de información, así como el
despliegue en forma más ilustrativa y exacta. Asimismo, son intuitivas y en la mayoría de los
casos, no requieren de indicaciones.
4.1 Descripción general
La interfaz gráfica, permite visualizar las mediciones enviadas de manera inalámbrica, por el
instrumento. Además, realiza un diagnóstico preliminar con base a estos resultados, y los
almacena en un documento de texto. De esta manera, se forma paulatinamente un historial
de los signos vitales medidos. Asimismo, la interfaz permite el registro de varios usuarios.
La interfaz gráfica está formada por los siguientes elementos principales:
Cargar datos previamente almacenados.
Registro y edición de usuarios.
Lista de usuarios registrados.
Visualización de datos personales del usuario seleccionado.
Visualización del historial del usuario activo.
Visualización de la medición más reciente y control remoto del instrumento.
La información que se maneja durante el programa, es almacenada y leída de un archivo de
texto de Microsoft Office Word. Se almacena de esta forma, debido a que la información a
manipular no requiere de un gran espacio de memoria, por lo tanto, puede ser almacenada
sin problemas en un documento de este tipo. Además, al ser un programa de uso habitual,
resulta más práctico para los usuarios el acceder a sus resultados, y poder fácilmente
imprimirlos y enviarlos, entre otras acciones.
Visual Studio permite la interacción con Microsoft Office Word, de esta forma se pueden
utilizar funciones, para crear y editar documentos utilizando esta aplicación.
4.1 Descripción general Capítulo 4.- Diseño del software
45
Para poder interactuar con Microsoft Office Word, es necesario agregar la biblioteca
Microsoft.Office.Interop.Word la cual permite acceder a las propiedades y funciones de la
aplicación. De esta manera, se pueden realizar tareas, como: crear un documento nuevo,
abrir uno ya existente, editar un documento, escribir y leer texto, cambiar el formato del
contenido, agregar tablas, etc.
4.2 Cargar datos previamente almacenados
Al iniciarse el programa, éste verifica si en el documento “Historial.docx” hay información
almacenada. Cuenta el número de tablas existentes, y carga en la lista de usuarios de la
ventana principal, los nombres de los usuarios de las tablas encontradas (Diagrama 4.1).
Diagrama 4.1Funcionamiento de la función “Load”
Registro y edición de usuarios Capítulo 4.- Diseño del software
46
4.3 Registro y edición de usuarios
Ilustración 4.1 Ventana inicial de la interfaz
Para el registro de nuevos usuarios, se encuentra un botón en la ventana principal
(Ilustración 4.1), que abre un segundo formulario. Este formulario cuenta con varias cajas de
texto, en las cuales, el usuario puede ingresar sus datos personales.
Ilustración 4.2 Ventana de Datos personales
Registro y edición de usuarios Capítulo 4.- Diseño del software
47
Al presionar el botón cancelar, la ventana simplemente se cierra y cualquier información que
el usuario haya ingresado es ignorada. En cambio, al presionar el botón de Aceptar, el
programa indica si alguno de los rubros se deja vacío, y el proceso no puede concretarse
hasta que todos los campos hayan sido llenados, como se muestra en la Ilustración 4.3
Ilustración 4.3 Ventana de datos personales después de verificar los campos
Si se aprueba la etapa de verificación, se llama a la función Nuevo(), para que agregue una
tabla al documento “Historial.docx”, le dé el formato deseado y almacene la información del
nuevo usuario, como se muestra en laIlustración 4.4. Finalmente, guarde los cambios en el
documento y cierre, tanto el documento como, la aplicación Microsoft Office Word.
Ilustración 4.4 Documento "Historial.docx" después de registrar al primer usuario
Registro y edición de usuarios Capítulo 4.- Diseño del software
48
A continuación, en el Diagrama 4.2se muestra el funcionamiento de los botones que
intervienen en el registro de nuevos usuarios.
Diagrama 4.2 Funcionamiento de las funciones de la ventana de Datos personales
Los datos pueden ser editados, al presionar el botón de Editar, el cual abre nuevamente el
formulario de Datos personales, pero esta vez, en las cajas de texto aparecen los datos que
el usuario haya proporcionado anteriormente. Con base en el número de usuario, edita la
tabla del documento de Word cuyo índice corresponda al usuario, y escribe la información
editada en las celdas correspondientes.
Visualización de datos del usuario seleccionado Capítulo 4.- Diseño del software
49
4.4 Lista de usuarios registrados
En la parte izquierda de la ventana principal, se muestra la lista de los usuarios. Al dar clic
sobre el nombre de alguno de ellos, las pestañas de Datos personales, Historial y Medición,
se cargan con la información que se tenga almacenada, de este usuario, en el documento
“Historial.docx”, como se muestra en el Diagrama 4.3.
Diagrama 4.3 Funcionamiento del evento Seleccionar_usuario()
4.5 Visualización de datos personales del usuario
seleccionado
En la primera pestaña de la ventana principal, se visualizan los datos personales del usuario
activo, en los cuales se encuentran: Número de usuario, nombres, apellido materno, apellido
Visualización de datos del usuario seleccionado Capítulo 4.- Diseño del software
50
materno, sexo, grupo sanguíneo, teléfono, dirección y la edad que es calculada con base a
la fecha de nacimiento, como se muestran la Ilustración 4.5.
Ilustración 4.5 Pestaña Datos personales después de seleccionar a un usuario
4.6 Visualización del historial del usuario activo
En la pestaña de Historial, aparece en dos tablas diferentes, la información de todas las
mediciones realizadas, de la presión arterial y temperatura corporal, con la fecha de su
registro. Además, a lado de cada tabla se presentan graficados estos resultados (Ilustración
4.6). Cada una de las gráficas tiene colores diferentes, los cuales corresponden al estado de
los signos vitales, y están acompañadas de títulos, como:Hipertensión 1, Norma alta,
Normal, Normal baja, Baja o su correspondiente en temperatura, para que sea más sencillo
para el usuario interpretar sus resultados, y ver la comparación entre las mediciones
anteriores y las más recientes El historial tiene un botón de Imprimir, el cual manda a
imprimir el documento “Historial.docx”.
Visualización del historial del usuario activo Capítulo 4.- Diseño del software
51
Ilustración 4.6 Pestaña Historial
Cada gráfica tiene un botón de Ampliar, el cual al ser presionado, abre una ventana en laque
se muestra cada gráfica, pero con mayor tamaño. En las gráficas se muestran las últimas 31
mediciones realizadas (Ilustración 4.7).
Ilustración 4.7 Gráfica de Temperatura corporal
Visualización de resultados Capítulo 4.- Diseño del software
52
4.7 Visualización de la medición más reciente y
control remoto del instrumento
La pestaña de medición se encuentra dividida en dos partes, la primera corresponde a la
temperatura corporal y la segunda a la presión arterial, cada una de ellas, cuenta con tres
cajas de fecha para que el usuario indique la hora en la que desea que se realicen las
mediciones automáticamente (Diagrama 4.4). Además, cuentan con un botón de “Tomar
medición” para que se le mande instantáneamente al instrumento la orden de tomar una
medición.
Diagrama 4.4 Control remoto del instrumento
La comunicación entre el instrumento y la aplicación sólo puede ser posible después de
habilitar el puerto en el que esté conectado el módulo bluetooth. Para habilitar el puerto, el
programa cuenta con un botón en la parte superior, el cual despliega la lista de los puertos
para habilitar uno de ellos.
Visualización de resultados Capítulo 4.- Diseño del software
53
Asimismo, puede recibir información de mediciones, cuando el usuario seleccione la opción
desde el propio instrumento.
Después de recibir la información, se despliega en la caja de texto correspondiente, colorea el
círculo que se encuentra a su lado, de acuerdo al valor registrado y determina un pre
diagnóstico. Finalmente, almacena la información obtenida en la tabla del usuario activo.
A continuación, en laIlustración 4.8 se muestra la pestaña Medición en uso.
Ilustración 4.8 Pestaña Medición
Pruebas y resultados del individuo 1 Capítulo 5.- Pruebas y resultados
54
Capítulo 5 .- Pruebas y resultados
Se realizaron diez pruebas a seis individuos, tomando como referencia dos instrumentos
comerciales. Para la presión arterial, se utilizó un tensiómetro marca BRAUN modelo Bp
2550, y para la temperatura corporal, se usó un termómetro marca CITIZEN modelo CT461C.
Pruebas y resultados del individuo 1
El individuo 1, es un hombre de 22 años, sin ningún padecimiento cardiovascular.
Tabla 5.1 Resultados de la presión arterial del individuo 1
Individuo 1
Prototipo(mmHg)
Baumanómetro
Error absoluto(mmHg) Error relativo(%) BRAUN(mmHg)
Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica
Medición 1 105 73 105 70 0 3 0.0 4.3
Medición 2 102 77 109 74 7 3 6.4 4.1
Medición 3 97 73 100 68 3 5 3.0 7.4
Medición 4 105 73 111 73 6 0 5.4 0.0
Medición 5 102 71 109 73 7 2 6.4 2.7
Medición 6 105 71 109 74 4 3 3.7 4.1
Medición 7 102 71 108 76 6 5 5.6 6.6
Medición 8 102 73 109 76 7 3 6.4 3.9
Medición 9 102 73 108 75 6 2 5.6 2.7
Medición 10 102 68 108 74 6 6 5.6 8.1
Promedio 102.4 72.3 107.6 73.3 5.2 3.2 4.81 4.39
Tabla 5.2 Resultados de la temperatura corporal del individuo 1
Individuo 1
Prototipo Termómetro Error Abs. Error Rel.
(°C) CITIZEN (°C) (°C) (%)
Temperatura
Medición 1 36.35 36.6 0.25 0.68306011
Medición 2 36.2 36.5 0.3 0.82191781
Medición 3 36.4 36.6 0.2 0.54644809
Medición 4 36.25 36.5 0.25 0.68493151
Pruebas y resultados del individuo 1 Capítulo 5.- Pruebas y resultados
55
Medición 5 36.25 36.3 0.05 0.13774105
Medición 6 36.4 36.7 0.3 0.81743869
Medición 7 36.1 36.4 0.3 0.82417582
Medición 8 36.3 36.5 0.2 0.54794521
Medición 9 36.1 36.3 0.2 0.55096419
Medición 10 36.2 36.5 0.3 0.82191781
Promedio 36.255 36.49 0.235 0.6436
Gráfica 5.1 Presión sistólica en el individuo 1
80
85
90
95
100
105
110
115
120
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión sistólica en individuo 1
Prototipo
Baumanómetro BRAUN
Pruebas y resultados del individuo 1 Capítulo 5.- Pruebas y resultados
56
Gráfica 5.2 Presión diastólica en el individuo 1
Gráfica 5.3 Temperatura corporal en el individuo 1
60
65
70
75
80
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión diastólica en individuo 1
Prototipo
Baumanómetro BRAUN
35.8
35.9
36
36.1
36.2
36.3
36.4
36.5
36.6
36.7
36.8
1 2 3 4 5 6 7 8 9 10
°C
Temperatura en individuo 1
Prototipo
Termómetro CITIZEN
Pruebas y resultados del individuo 2 Capítulo 5.- Pruebas y resultados
57
Pruebas y resultados del individuo 2
El individuo 2, es una mujer de 22 años, con arritmia leve.
Tabla 5.3 Resultados de la presión arterial del individuo 2
Individuo 2
Prototipo(mmHg)
Baumanómetro
Error absoluto(mmHg) Error relativo(%) BRAUN(mmHg)
Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica
Medición 1 122 79 112 68 10 11 8.9 16.2
Medición 2 118 77 109 71 9 6 8.3 8.5
Medición 3 122 77 110 76 12 1 10.9 1.3
Medición 4 122 77 113 71 9 6 8.0 8.5
Medición 5 118 73 107 68 11 5 10.3 7.4
Medición 6 118 77 106 71 12 6 11.3 8.5
Medición 7 113 68 104 70 9 2 8.7 2.9
Medición 8 113 73 110 71 3 2 2.7 2.8
Medición 9 113 74 112 70 1 4 0.9 5.7
Medición 10 113 75 107 68 6 7 5.6 10.3
Promedio 117.2 75 109 70.4 8.2 5 7.56 7.21
Tabla 5.4 Resultados de la temperatura corporal del individuo 2
Individuo 2
Prototipo Termómetro Error Abs. Error Rel.
(°C) CITIZEN (°C) (°C) (%)
Temperatura
Medición 1 35.9 36.3 0.4 1.10192837
Medición 2 35.9 35.9 0 0
Medición 3 35.8 36.2 0.4 1.10497238
Medición 4 36.1 35.9 0.2 0.55710306
Medición 5 35.8 36.2 0.4 1.10497238
Medición 6 35.9 36.2 0.3 0.82872928
Medición 7 36.1 36.2 0.1 0.27624309
Medición 8 35.9 36.2 0.3 0.82872928
Medición 9 36.15 36.3 0.15 0.41322314
Medición 10 36.1 36.2 0.1 0.27624309
Promedio 35.96 36.16 0.235 0.6492
Pruebas y resultados del individuo 2 Capítulo 5.- Pruebas y resultados
58
Gráfica 5.4 Presión sistólica en el individuo 2
Gráfica 5.5 Presión diastólica en el individuo 2
80
90
100
110
120
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión sistólica en individuo 2
Prototipo
Baumanómetro BRAUN
60
65
70
75
80
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión diastólica en individuo 2
Prototipo
Baumanómetro BRAUN
Pruebas y resultados del individuo 2 Capítulo 5.- Pruebas y resultados
59
Gráfica 5.6 Temperatura corporal en el individuo 2
Pruebas y resultados del individuo 3
El individuo 3, es un hombre de 17 años, sin ningún padecimiento cardiovascular.
Tabla 5.5 Resultados de la presión arterial del individuo 3
Individuo 3
Prototipo(mmHg)
Baumanómetro
Error absoluto(mmHg) Error relativo(%) BRAUN(mmHg)
Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica
Medición 1 118 81 124 75 6 6 4.8 8.0
Medición 2 118 77 121 80 3 3 2.5 3.8
Medición 3 110 76 119 75 9 1 7.6 1.3
Medición 4 113 77 119 74 6 3 5.0 4.1
Medición 5 118 77 121 74 3 3 2.5 4.1
Medición 6 118 73 121 76 3 3 2.5 3.9
Medición 7 113 68 119 75 6 7 5.0 9.3
Medición 8 118 74 124 80 6 6 4.8 7.5
Medición 9 118 74 113 75 5 1 4.4 1.3
35.8
35.9
36
36.1
36.2
36.3
36.4
36.5
36.6
36.7
36.8
1 2 3 4 5 6 7 8 9 10
°C
Temperatura en individuo 2
Prototipo
Termómetro CITIZEN
Pruebas y resultados del individuo 3 Capítulo 5.- Pruebas y resultados
60
Medición 10 113 73 115 77 2 4 1.7 5.2
Promedio 115.7 75 119.6 76.1 4.9 3.7 4.08 4.85
Tabla 5.6 Resultados de la temperatura corporal del individuo 3
Individuo 3
Prototipo Termómetro Error Abs. Error Rel.
(°C) CITIZEN (°C) (°C) (%)
Temperatura
Medición 1 36.1 36.35 0.25 0.69
Medición 2 35.9 36.1 0.2 0.55
Medición 3 35.95 36.2 0.25 0.69
Medición 4 36.2 36.3 0.1 0.28
Medición 5 36.1 35.9 0.2 0.56
Medición 6 36.15 36.1 0.05 0.14
Medición 7 35.9 35.9 0 0.00
Medición 8 35.9 36.2 0.3 0.83
Medición 9 36.1 36.2 0.1 0.28
Medición 10 36.1 36.25 0.15 0.41
Promedio 36.04 36.15 0.16 0.443
Pruebas y resultados del individuo 3 Capítulo 5.- Pruebas y resultados
61
Gráfica 5.7 Presión sistólica en individuo 3
Gráfica 5.8 Presión diastólica en individuo 3
80
85
90
95
100
105
110
115
120
125
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión sistólica en individuo 3
Prototipo
Baumanómetro BRAUN
60
65
70
75
80
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión diastólica en individuo 3
Prototipo
Baumanómetro BRAUN
Pruebas y resultados del individuo 3 Capítulo 5.- Pruebas y resultados
62
Gráfica 5.9 Temperatura en individuo 3
Pruebas y resultados del individuo 4
El individuo 4, es un hombre de 25 años, sin ningún padecimiento cardiovascular
Tabla 5.7 Resultados de la presión arterial del individuo 4
Individuo 4
Prototipo Baumanómetro Error absoluto Error relativo
(mmHg) BRAUN (mmHg) (mmHg) %
Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica
Medición 1 128 85 126 81 2 4 0.02 0.05
Medición 2 124 85 122 83 2 2 0.02 0.02
Medición 3 126 84 124 81 2 3 0.02 0.04
Medición 4 124 83 124 79 0 4 0 0.05
Medición 5 124 86 125 84 1 2 0.01 0.02
Medición 6 125 85 126 83 1 2 0.01 0.02
Medición 7 126 85 125 78 1 7 0.01 0.09
Medición 8 127 84 125 83 2 1 0.02 0.01
Medición 9 128 86 125 81 3 5 0.02 0.06
Medición 10 127 84 124 82 3 2 0.02 0.02
Promedio 125.90 84.70 124.60 81.50 1.70 3.20 0.02 0.04
35.8
35.9
36
36.1
36.2
36.3
36.4
36.5
36.6
36.7
36.8
1 2 3 4 5 6 7 8 9 10
°C
Temperatura en individuo 3
Prototipo
Termómetro CITIZEN
Pruebas y resultados del individuo 4 Capítulo 5.- Pruebas y resultados
63
Tabla 5.8 Resultados de la temperatura corporal del individuo 4
Individuo 4
Prototipo Termómetro Error abs. Error rel.
(°C) CITIZEN (°C) (°C) %
Temperatura
Medición 1 36.1 36.2 0.10 0.28
Medición 2 35.95 36.1 0.15 0.42
Medición 3 36.12 36.3 0.18 0.50
Medición 4 36.1 36.3 0.20 0.55
Medición 5 35.9 36.35 0.45 1.24
Medición 6 36.3 36.2 0.10 0.28
Medición 7 36.1 36.4 0.30 0.82
Medición 8 36.25 36.35 0.10 0.28
Medición 9 36.2 36.1 0.10 0.28
Medición 10 36.2 36.2 0.00 0.00
Promedio 36.12 36.25 0.17 0.46
Gráfica 5.10 Presión sistólica en el individuo 4
100
105
110
115
120
125
130
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión sistólica en individuo 4
Prototipo
Baumanómetro BRAUN
Pruebas y resultados del individuo 4 Capítulo 5.- Pruebas y resultados
64
Gráfica 5.11 Presión diastólica en el individuo 4
Gráfica 5.12 Temperatura corporal en el individuo 4
70
75
80
85
90
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión diastólica en individuo 4
Prototipo
Baumanómetro BRAUN
35.6
35.7
35.8
35.9
36
36.1
36.2
36.3
36.4
36.5
1 2 3 4 5 6 7 8 9 10
°C
Temperatura en individuo 4
Prototipo
Termómetro CITIZEN
Pruebas y resultados del individuo 5 Capítulo 5.- Pruebas y resultados
65
Pruebas y resultados del individuo 5
El individuo 5, es un hombre de 61 años, sin ningún padecimiento cardiovascular.
Tabla 5.9 Resultados de la presión arterial del individuo 5
Individuo 5
Prototipo Baumanómetro Error absoluto Error relativo
(mmHg) BRAUN (mmHg) (mmHg) %
Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica
Medición 1 127 84 125 86 2 2 1.6 2.3
Medición 2 126 85 129 88 3 3 2.3 3.4
Medición 3 127 83 128 88 1 5 0.8 5.7
Medición 4 127 85 129 87 2 2 1.6 2.3
Medición 5 128 84 127 87 1 3 0.8 3.4
Medición 6 129 85 126 86 3 1 2.4 1.2
Medición 7 130 85 128 85 2 0 1.6 0.0
Medición 8 127 84 128 86 1 2 0.8 2.3
Medición 9 125 86 129 87 4 1 3.1 1.1
Medición 10 126 86 124 86 2 0 1.6 0.0
Promedio 127.20 84.70 127.30 86.60 2.10 1.90 1.66 2.17
Tabla 5.10 Resultados de la temperatura corporal del individuo 5
Individuo 5
Prototipo Termómetro Error abs. Error rel.
(°C) CITIZEN (°C) (°C) %
Temperatura
Medición 1 36.1 36.6 0.5 1.366
Medición 2 36.1 36.4 0.3 0.824
Medición 3 36.25 36.5 0.25 0.685
Medición 4 36.2 36.3 0.1 0.275
Medición 5 35.9 36.3 0.4 1.102
Medición 6 36.3 36.7 0.4 1.090
Medición 7 36.1 36.4 0.3 0.824
Medición 8 36.25 36.5 0.25 0.685
Medición 9 36.2 36.3 0.1 0.275
Medición 10 36.2 36.5 0.3 0.822
Promedio 36.16 36.45 0.29 0.79
Pruebas y resultados del individuo 5 Capítulo 5.- Pruebas y resultados
66
Gráfica 5.13 Presión sistólica en el individuo 5
Gráfica 5.14 Presión diastólica en el individuo 5
100
105
110
115
120
125
130
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión sistólica en individuo 5
Prototipo
Baumanómetro BRAUN
70
75
80
85
90
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión diastólica en individuo 5
Prototipo
Baumanómetro BRAUN
Pruebas y resultados del individuo 5 Capítulo 5.- Pruebas y resultados
67
Gráfica 5.15 Temperatura corporal en el individuo 5
Pruebas y resultados del individuo 6
El individuo 6, es una mujer de 19 años, sin ningún padecimiento cardiovascular
Tabla 5.11 Resultados de la presión arterial del individuo 6
Individuo 6
Prototipo(mmHg)
Baumanómetro
Error absoluto(mmHg) Error relativo(%) BRAUN(mmHg)
Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica Sistólica Diastólica
Medición 1 96 68 101 70 5 2 5.0 2.9
Medición 2 93 71 99 70 6 1 6.1 1.4
Medición 3 95 69 99 71 4 2 4.0 2.8
Medición 4 93 68 98 70 5 2 5.1 2.9
Medición 5 93 69 97 69 4 0 4.1 0.0
Medición 6 94 72 97 70 3 2 3.1 2.9
Medición 7 94 71 98 69 4 2 4.1 2.9
Medición 8 93 69 96 70 3 1 3.1 1.4
Medición 9 95 68 99 68 4 0 4.0 0.0
Medición 10 89 73 98 69 9 4 9.2 5.8
Promedio 93.50 69.80 98.20 69.60 4.70 1.60 4.78 2.30
35.8
35.9
36
36.1
36.2
36.3
36.4
36.5
36.6
36.7
36.8
1 2 3 4 5 6 7 8 9 10
°C
Temperatura en individuo 5
Prototipo
Termómetro CITIZEN
Pruebas y resultados del individuo 6 Capítulo 5.- Pruebas y resultados
68
Tabla 5.12 Resultados de la temperatura corporal del individuo 6
Individuo 6
Prototipo Termómetro Error Abs. Error Rel.
(°C) CITIZEN (°C) (°C) (%)
Temperatura
Medición 1 36.35 36.1 0.25 0.69
Medición 2 36.1 35.9 0.2 0.56
Medición 3 36.2 36.1 0.1 0.28
Medición 4 36.1 36.1 0 0.00
Medición 5 36.2 36.15 0.05 0.14
Medición 6 36.3 36.2 0.1 0.28
Medición 7 35.9 36.1 0.2 0.55
Medición 8 36.2 36.1 0.1 0.28
Medición 9 36.2 36.15 0.05 0.14
Medición 10 36.25 36.2 0.05 0.14
Promedio 36.18 36.11 0.11 0.31
Gráfica 5.16 Presión sistólica en el individuo 6
80
85
90
95
100
105
110
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión sistólica en individuo 6
Prototipo
Baumanómetro BRAUN
Pruebas y resultados del individuo 6 Capítulo 5.- Pruebas y resultados
69
Gráfica 5.17 Presión diastólica en el individuo 6
Gráfica 5.18 Temperatura corporal en el individuo 6
60
65
70
75
80
1 2 3 4 5 6 7 8 9 10
mm
Hg
Presión diastólica en individuo 6
Prototipo
Baumanómetro BRAUN
35.8
35.9
36
36.1
36.2
36.3
36.4
36.5
36.6
36.7
36.8
1 2 3 4 5 6 7 8 9 10
°C
Temperatura en individuo 6
Prototipo
Termómetro CITIZEN
Observaciones Capítulo 5.- Pruebas y resultados
70
Observaciones
Al analizar los resultados de la temperatura corporal, se observa que en promedio, los valores
obtenidos por el prototipo, se encuentran 0.2°C por debajo de los valores del termómetro
comercial. Sin embargo, en la mayoría de los casos, los resultados son más consistentes en
el prototipo.
Para el caso de la presión arterial, el prototipo presenta algunas inconsistencias en personas
con presión sistólica superior a 120 mm Hg. Mientras que, para la presión diastólica, el
prototipo muestra variaciones en la medición de personas con presiones menores a 68 mm
Hg.
Tabla 5.13 Promedio total de errores de presión arterial
Error absoluto Error relativo
(mmHg) %
Sistólica Diastólica Sistólica Diastólica
Promedio1 5.2 3.2 4.81 4.39
Promedio2 8.2 5 7.56 7.21
Promedio3 4.9 3.7 4.08 4.85
Promedio4 1.7 3.2 0.02 0.04
Promedio5 2.1 1.9 1.66 2.17
Promedio6 4.7 1.6 4.78 2.3
PromedioTotal 4.47 3.10 3.82 3.49
Tabla 5.14 Promedio total de errores de temperatura corporal
Error abs. Error rel.
(°C) %
Temperatura
Promedio1 0.235 0.6436
Promedio2 0.235 0.6492
Promedio3 0.16 0.443
Promedio4 0.17 0.46
Promedio5 0.29 0.79
Promedio6 0.11 0.31
PromedioTotal 0.20 0.55
Capítulo 6: Conclusiones
71
Capítulo 6 Conclusiones
El prototipo construido para medir la presión arterial y temperatura corporal demostró con
base a las pruebas realizadas, ser un instrumento funcional debido a que los resultados
difieren muy poco de los instrumentos de referencia con los cuales se comparó. Un factor a
considerar en la diferencia de resultados obtenidos, es que, cuando se mide la presión arterial
de forma oscilométrica, los resultados pueden variar debido a las condiciones en las que se
efectúe la medición. Es por ello que se recomienda que al momento de tomar la presión de un
paciente, éste se encuentre sentado y sin ejercer alguna fuerza en el brazo izquierdo.
Los datos registrados de temperatura corporal muestran una ligera variación de los resultados
obtenidos en el termómetro digital utilizado como referencia, esta variación no es muy
significativa al momento de hacer un diagnóstico, debido a que este tipo de variaciones no
representan un factor significativo.
Por otra parte, la comunicación entre el instrumento y la PC, demostró ser eficiente, debido a
la practicidad en el muestreo o seguimiento del usuario. Los datos recibidos se despliegan de
una forma accesible y fácil de interpretar, para ello, la aplicación se auxilia de gráficos con los
diferentes niveles tanto de presión como de temperatura.
El tipo de visualización y diagnóstico previo utilizado en este instrumento, puede ser llevado a
otros instrumentos médicos, o, inclusive, es posible adicionar otras variables a medir para
lograr un diagnóstico más preciso, tales como el nivel de azúcar en la sangre, el ritmo
cardiaco, etc. De esta forma se podría lograr un monitoreo completo del usuario ya sea para
uso particular o en hospitales.
Glosario
72
Glosario
Arritmia cardíaca: Es la variación del ritmo regular de los latidos cardíacos.
Arteriola: Una arteriola es un vaso sanguíneo de pequeña dimensión, que resulta de
ramificaciones de las arterias.
Baumanómetro: Es un instrumento médico empleado para la medición indirecta de la presión
arterial
Diastólica: La presión diastólica es la presión mínima de la sangre, que se registra cuando el
corazón se relaja después de la contracción, y devuelve la sangre a sus cavidades.
Esfigmomanómetro:Es un instrumento que proporciona una medida indirecta de la presión
arterial.Se compone de un sistema de brazalete hinchable, más un manómetro,
tradicionalmente una columna de mercurio, en la cual se refleja la presión. La palabra
proviene etimológicamente del griegosphygmós que significa pulso y de las palabrasμανός,
ligero y μέτρον, medida.
Estetoscopio: Es un aparato acústico usado en medicina, fisioterapia, enfermería,
kinesiología, fonoaudiología y veterinaria, para la auscultación o para oír los sonidos internos
del cuerpo humano o animal. Generalmente se usa en la auscultación de los ruidos cardíacos
o los ruidos respiratorios, aunque algunas veces también se usa para objetivar ruidos
intestinales o soplos por flujos anómalos sanguíneos en arterias y venas.
Manómetro: Es un instrumento de medición que sirve para medir la presión de fluidos
contenidos en recipientes cerrados.
Sistólica: La presión sistólica es la presión sanguínea máxima. Representa la presión que
sufren las arterias, cuando el corazón se contrae y bombea sangre por ellas.
Referencias
73
Referencias
[1] “La medicina desde la antigüedad hasta los tiempos modernos”
http://lamedicinacmc.blogspot.mx/2012/06/medicina-prehistorica.html
[2] a)“Laennec auscultando un paciente con el estetoscopio de su invención”
http://www.cucaiba.gba.gov.ar/historia.htm b) “Primer estetoscopio”
http://enroquedeciencia.blogspot.mx/2012/10/a-proposito-del-fonendo-2.html
[3] “Baumanometro con conexión a PC” http://www.librerialeo.com.mx/baumanometro-digital-automatico-
con-conexion-pc-p-774.html?currency=EUR
[4] “Clasificación de la presión arterial (OMS)” http://scielo.isciii.es/scielo.php?pid=S1695-
61412009000100012&script=sci_arttext
[5] “Método auscultorio” http://default.qa.adam.com/content.aspx?productId=39&pid=5&gid=003398&print=1
[6] “Baumanómetro digital” http://www.pacienteplus.com/tienda/product_info.php?products_id=1679
[7]”Canalización vascular” http://www.sepeap.org/archivos/revisiones/urgencias/venas.htm
[8] a) “Esfigmomanómetro de mercurio” http://www.leches-dietas-yotros.es/esfigmomanometro-mercurio-
mide-tension-arterial/3-210-160-210.htm, b) “Baumanómetro analógico”
http://micasamexico.orgshowthread.php/?sid=30668, c) “Baumanómetro digital”
http://distritofederal.quebarato.com.mx/gustavo-a-madero/baumanometro-digital__434718.html.
[9] “Tensiómetro de dedo” http://www.hospitecnia.com/Compra-Venta-Pulsioximetros/Valencia/Pulsioximetro-
dedo/id-Lbhcbiafedaicbc.xsql
[10] “Tabla de temperaturas” http://www.une.edu.ve/salud/notas/clases/ClaseIntroductoriaSalud/sld013.htm
[11] a) “Termómetro de mercurio”http://www.bebesymas.com/noticias/la-muerte-anunciada-del-termometro-
de-mercurio, b)”Termómetro digital” http://gustavoamadero.olx.com.mx/termometro-digital-rigido-iid-
123746100
[12] “Medición oral” http://html.rincondelvago.com/fiebre_2.html
[13] “Medición rectal” , “Medición axilar” http://www.infermeravirtual.com/es-es/problemas-de-salud/signos-
sintomas/fiebre/informacion-relacionada.html
[14] “Medición por el oído” http://www.drugs.com/cg_esp/c%C3%B3mo-tomar-la-temperatura-en-el-
o%C3%ADdo.html
[15] “Termómetro cutáneo” http://inventos.teoriza.net/thermofocus-para-medir-la-temperatura-termometro-
infrarojos-para-ninos-no-invasivo
Referencias
74
[16] Integrated Silicon Pressure Sensro On-Chip Signal Conditioned, Temperature Compesated and
Calibratedhttp://www.datasheetcatalog.org/datasheet/motorola/MPX5050GVS.pdf
[17] LM35 LM35 Precision Centigrade Temperature Sensorshttp://www.ti.com/lit/ds/symlink/ lm35.pdf
[18] “LCD” http://mikropic.delphiaccess.com/forum/index.php%3Ftopic%3D18.0&docid=
QU5e32lBo33UrM&imgurl
[19]“Matriz LCD” http://server-die.alc.upv.es/asignaturas/lsed/2002-03/Pantallas_LCD/2lcd.htm
[20] MC9S08SH8 Family Data Sheethttp://www.freescale.com/files/microcontrollers/doc/
data_sheet/MC9S08SH8.pdf
Bibliografía
75
Bibliografía
- “Microsoft 2012 . C# Programming Guide”. Enlace:http://msdn.microsoft.com
- “MC9S08SH8 Family Data Sheet”
Enlace: http://www.freescale.com/files/microcontrollers/doc/ data_sheet/MC9S08SH8.pdf
- “LM35 Precision Centigrade Temperature Sensors” Enlace: http://www.ti.com/lit/ds/symlink/ lm35.pdf
- “Integrated Silicon Pressure Sensro On-Chip Signal Conditioned, Temperature Compesated and Calibrated” Enlace: http://www.datasheetcatalog.org/datasheet/motorola/MPX5050GVS.pdf
- “MedLine Plus Enciclopedia médica”
Enlace: http://www.nlm.nih.gov/medlineplus/spanish/ ency/article/002341.html
- Del Examen Físico General PRESIÓN ARTERIAL Enlace: http://escuela.med.puc.cl/Publ/ ManualSemiologia /210PresionArterial.htm
- Organización Mundial de la Salud
Enlace: http://www.who.int/es/
- MEDICAL RENTAL Como Usar el Baumanómetro para Medir la Presión Arterial Enlace: http://medicalrental.com.mx/blog/como-usar-el-baumanometro-para-medir-la-presion-arterial-2/
- Diccionario médico Enlace: www.esacademic.com/dic.nsf/es_mediclopedia/52192/temperatura
- Signos vitales
Enlace: http://med.unne.edu.ar/catedras/medicinai/semioclas/sig_vit.pdf Autores: Dr. Jorge Alberto Costa y Dra. Silvia Rodríguez Cuimbra
- Historia del tensiómetro y la tensión arterial
Enlace:http://www.tensiometrovirtual.com/upload/81-001_a.pdf
- Historia de la hipertensión Enlace: http://files.sld.cu/hta/files/2010/07/historia-de-la-hipertension-arterial.pdfAutor: David García Barreto
- La medicina interna, su historia y sus textos
Enlace: http://www.nietoeditores.com.mx/download/med%20interna/noviembre-diciembre2009/MI%206-12%20MEDICINA.pdf Autor: Guillermo Murillo-Godínez
Bibliografía
76
- Pantalla de cristal líquido
Enlace: http://es.wikipedia.org/wiki/Pantalla_de_cristal_l%C3%ADquido
- Bluetooth Enlace: http://es.wikipedia.org/wiki/Bluetooth
- Amplificadores Operacionales Y Circuitos Integrados Lineales
Escrito por Robert Francis Coughlin,Frederick F. Driscoll Pag. 311-313
- Sensores y acondicionadores de señal: prácticas
Escrito por Ramón Pallás Areny Pag. 3-7,Terminología
Anexo A
77
Anexo A
Código del microcontrolador
Bibliotecas utilizadas
#include "Cpu.h"
#include "Events.h"
#include "Bits1.h"
#include "Bits2.h"
#include "TI1.h"
#include "AD1.h"
#include "KB1.h"
#include "EInt1.h"
#include "Bit1.h"
#include "Bit2.h"
#include "AS1.h"
#include "PE_Types.h"
#include "PE_Error.h"
#include "PE_Const.h"
#include "IO_Map.h"
#define DDRAM_L1 0x80
#define DDRAM_L2 0xC0
Funciónes
void BCD_ASCIIP2(void);
void BCD_ASCIIP1(void);
void BCD_ASCIIT(void);
void medirpt(void);
void medirp(void);
void medirt(void);
void midiendo(void);
void Comando_LCD2(char);
void espera(void);
void esperapt(void);
Anexo A
78
Declaración de variables
int w=15;
char s='S',d='D',t='T';
byte c,d;
word presion=0,pulso=0,dato=0,x=15;
word sistolica=0,diastolica=0;
intz=0,menu=0,seleccion=1,tiempo=0,
program=15,medicion=0,mediciont=0,ban=0,primeravez=0,comu=0;
char inicio=0,ok=0,presion1=0,presion2=0,temperatura=0, orden=0;
Mensajes de la LCD
char TITULO[] = " PRESION & TEMP.",
NOMBRES[] = "CAMACHO&DIOSDADO",
PRESION1[]= "S:000 D:000 MMHG",
PRESION2[]= "DIAS:000000 MMHG",
TEMPERA[]= "000000 C ",
VACIO[]= " ",
TIEMPO[] = "PROGRAMACION: ",
TIEMPO2[] = " 000 MIN",
MEDIR1[] = "1 CHEQUEO ",
MEDIR2[] = "2 TEMPERATURA ",
MEDIR3[] = "3 TOMAR PRESION ",
SALIR[] = "5 SALIR ",
MENU[] = " MENU: ",
PROGRAMAR[] = "4 CONECTAR A PC ",
MIDIENDO2[] = " MIDIENDO ",
ACTIV[] = " ACTIVADA ",
DESACTIV[] = " DESACTIVADA";
Programa principal
void main(void)
char *Puntero;
PE_low_level_init();
c=TI1_Disable();
Inicializa_LCD();
while(1)
if(inicio==0)
Puntero = &TITULO[0]; // Puntero a mensaje1 "IPN"
Anexo A
79
Comando_LCD2(DDRAM_L1); // Cursor en linea No. 1
Mensaje(Puntero); // Mensaje No. 1, IPN
Puntero = &NOMBRES[0]; // Puntero a mensaje2 "Escuela"
Comando_LCD2(DDRAM_L2); // Cursor en linea No. 2
Mensaje(Puntero);
while(menu==1)
inicio=1;
if(seleccion==1 && ok==0)
Puntero = &MENU[0]; // Puntero a mensaje1 "IPN"
Comando_LCD2(DDRAM_L1); // Cursor en linea No. 1
Mensaje(Puntero); // Mensaje No. 1, IPN
Puntero = &MEDIR1[0]; // Puntero a mensaje2 "Escuela"
Comando_LCD2(DDRAM_L2); // Cursor en linea No. 2
Mensaje(Puntero);
if(seleccion==2 && ok==0)
Puntero = &MENU[0]; // Puntero a mensaje1 "IPN"
Comando_LCD2(0x80); // Cursor en linea No. 1
Mensaje(Puntero); // Mensaje No. 1, IPN
Puntero = &MEDIR2[0]; // Puntero a mensaje2 "Escuela"
Comando_LCD2(0xC0); // Cursor en linea No. 2
Mensaje(Puntero);
if(seleccion==3 && ok==0)
Puntero = &MENU[0]; // Puntero a mensaje1 "IPN"
Comando_LCD2(0x80); // Cursor en linea No. 1
Mensaje(Puntero); // Mensaje No. 1, IPN
Puntero = &MEDIR3[0]; // Puntero a mensaje2 "Escuela"
Comando_LCD2(0xC0); // Cursor en linea No. 2
Mensaje(Puntero);
if(seleccion==4 && ok==0)
Puntero = &MENU[0]; // Puntero a mensaje1 "IPN"
Comando_LCD2(0x80); // Cursor en linea No. 1
Mensaje(Puntero); // Mensaje No. 1, IPN
Puntero = &PROGRAMAR[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
if(seleccion==5 && ok==0)
Puntero = &MENU[0];
Comando_LCD2(0x80);
Anexo A
80
Mensaje(Puntero);
Puntero = &SALIR[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
if(seleccion==1 && ok==1)
sistolica=0;diastolica=0;dato=0;
esperapt();
medirpt();
if (comu==0)
while(ok!=2)
medicion=0;
EInt1_Disable();
//midiendo();
//while(!medicion);
BCD_ASCIIP1();
Puntero = &PRESION1[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
Puntero = &TEMPERA[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
if(comu==1)
while(!medicion);
medicion=0;
EInt1_Disable();
//midiendo();
//while(!medicion);
BCD_ASCIIP1();
Puntero = &PRESION1[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
Puntero = &TEMPERA[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
AS1_SendChar(PRESION1[2]);AS1_SendChar(PRESION1[3]);AS1_SendChar(PRESION1[4]);
AS1_SendChar(83);//S
AS1_SendChar(PRESION1[8]);AS1_SendChar(PRESION1[9]);AS1_SendChar(PRESION1[10]);
AS1_SendChar(68);//D
AS1_SendChar(TEMPERA[3]);AS1_SendChar(TEMPERA[4]);AS1_SendChar(46);//.
AS1_SendChar(TEMPERA[6]);AS1_SendChar(TEMPERA[7]);AS1_SendChar(84);//T
Anexo A
81
EInt1_Enable();
medicion=0;
inicio=0;
menu=0;
tiempo=0;
seleccion=1;
ok=0;
if(seleccion==2 && ok==1)
EInt1_Disable();
medicion=1;
medirt();
midiendo();
espera();
AD1_Disable();
TEMPERA[0]=' ';TEMPERA[1]=' ';TEMPERA[2]='T';TEMPERA[3]='E';
TEMPERA[4]='M';TEMPERA[5]='P';TEMPERA[6]='E';TEMPERA[7]='R';
TEMPERA[8]='A';TEMPERA[9]='T';TEMPERA[10]='U';TEMPERA[11]='R';
TEMPERA[12]='A';TEMPERA[13]=':';TEMPERA[14]=' ';TEMPERA[15]=' ';
Puntero = &TEMPERA[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
BCD_ASCIIT();
Puntero = &TEMPERA[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
if(comu==1)
int c=0;
for(c=0;c==4;c++)
AS1_SendChar(TEMPERA[5]);AS1_SendChar(TEMPERA[6]);AS1_SendChar(46);//.
AS1_SendChar(TEMPERA[8]);AS1_SendChar(TEMPERA[9]);AS1_SendChar(84);//T
if(comu==0)
while(ok!=2);
medicion=0;
inicio=0;
menu=0;
tiempo=0;
seleccion=1;
ok=0;
EInt1_Enable();
Anexo A
82
if(seleccion==3 && ok==1)
sistolica=0;diastolica=0;dato=0;
medirpt();
if(comu==0)
while(ok!=2)
medicion=0;
EInt1_Disable();
//midiendo();
//while(!medicion);
BCD_ASCIIP2();
Puntero = &PRESION1[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
Puntero = &PRESION2[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
if(comu==1)
int c=0;
medicion=0;
EInt1_Disable();
for(c=0; c<=5;c++)
AS1_SendChar(PRESION1[6]);AS1_SendChar(PRESION1[7]);AS1_SendChar(PRESION1[8]);
AS1_SendChar('S');
AS1_SendChar(PRESION1[7]);AS1_SendChar(PRESION1[8]);AS1_SendChar(PRESION1[9]);
AS1_SendChar('D');
EInt1_Enable();
medicion=0;
inicio=0;
menu=0;
tiempo=0;
seleccion=1;
ok=0;
if(seleccion==4 && ok==1)
if (comu==0)
AS1_Enable(); comu=1;
Puntero = &ACTIV[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
Puntero = &VACIO[0];
Anexo A
83
Comando_LCD2(0xC0);
Mensaje(Puntero);
else if (comu==1)
AS1_Disable(); comu=0;
Puntero = &DESACTIV[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
Puntero = &VACIO[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
while(ok!=2);
EInt1_Enable();
medicion=0;
inicio=0;
menu=0;
tiempo=0;
seleccion=1;
ok=0;
if(seleccion==5 && ok==1)
medicion=0;
inicio=0;
menu=0;
tiempo=0;
seleccion=1;
ok=0;
Función de espera para las mediciones
void espera(void)
long time,t,s;char *Puntero;
int b=0;
int time2;
for(b=0;b<=15;b++)VACIO[b]=' ';
for(s=0;s<=15;s++)
VACIO[s]=219;
Puntero = &VACIO[0];
Anexo A
84
Comando_LCD2(0xC0);
Mensaje(Puntero);
for(t=0;t<=11;t++)
for(time=0;time<=6000; time++)
time2=1;
for(b=0;b<=15;b++)VACIO[b]=' ';
Puntero = &VACIO[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
Función de espera para el desplegado en LCD
void esperapt(void)
long time,t,s;char *Puntero;
int b=0;
int time2;
MIDIENDO2[0] =' ';MIDIENDO2[1] =' ';MIDIENDO2[2] =' ';
MIDIENDO2[3] ='P';MIDIENDO2[4] ='R';MIDIENDO2[5] ='E';MIDIENDO2[6] ='P';
MIDIENDO2[7] ='A';MIDIENDO2[8] ='R';MIDIENDO2[9] ='A';MIDIENDO2[10] ='N';
MIDIENDO2[11] ='D';MIDIENDO2[12] ='O';MIDIENDO2[13] =' ';MIDIENDO2[14] =' ';
Puntero = &MIDIENDO2[0];
Comando_LCD2(0x80);
Mensaje(Puntero);
for(b=0;b<=15;b++)VACIO[b]=' ';
for(s=0;s<=8;s++)
VACIO[s]=219;
Puntero = &VACIO[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
for(t=0;t<=10;t++)
for(time=0;time<=6000; time++)
time2=1;
for(b=0;b<=15;b++)VACIO[b]=' ';
Puntero = &VACIO[0];
Comando_LCD2(0xC0);
Mensaje(Puntero);
MIDIENDO2[0] =' ';MIDIENDO2[1] =' ';MIDIENDO2[2] =' ';MIDIENDO2[3] =' ';
MIDIENDO2[4] ='M';MIDIENDO2[5] ='I';MIDIENDO2[6] ='D';MIDIENDO2[7] ='I';
Anexo A
85
MIDIENDO2[8] ='E';MIDIENDO2[9] ='N';MIDIENDO2[10] ='D';MIDIENDO2[11]
='0';
MIDIENDO2[12] =' ';MIDIENDO2[13] =' ';MIDIENDO2[14] =' ';MIDIENDO2[15]
=' ';
Conversión de dato de presión y temperatura a ASCII
void BCD_ASCIIP1(void)
word valor;
int j;
valor = (dato*5);
for(j=7; j>=3; j--)
if(j==5)j--;TEMPERA[j] = valor % 10 + 0x30;
TEMPERA[5]='.';
TEMPERA[0]='T';TEMPERA[1]=':';TEMPERA[2]=' ';TEMPERA[9]='C';TEMPERA[8]=223;
TEMPERA[11]=' ';TEMPERA[12]=' '; TEMPERA[13]=' '; TEMPERA[14]='
';TEMPERA[15]=' ';
valor /= 10; // Divide entre 10
valor = (((((sistolica/10)*48)/10)*85)/100);
for(j=4; j>=2; j--)
PRESION1[j] = valor % 10 + 0x30;
PRESION1[0]='S';PRESION1[1]=':';PRESION1[5]=' ';
valor /= 10; // Divide entre 10
valor = (((((diastolica/10)*48)/10)*85)/100); // Recorre el
punto flotante
for(j=10; j>=8; j--)
PRESION1[j] = valor % 10 + 0x30;
PRESION1[6]='D';PRESION1[7]=':';PRESION1[12]='M';PRESION1[13]='M';
PRESION1[14]='H';PRESION1[15]='G';PRESION1[11]=' ';
valor /= 10; // Divide entre 10
Conversión de dato de presión a ASCII
Anexo A
86
void BCD_ASCIIP2(void)
word valor;
int j;
valor = (((((sistolica/10)*48)/10)*85)/100);
for(j=8; j>=6; j--)
PRESION1[j] = valor % 10 + 0x30;
PRESION1[0]=' ';PRESION1[1]='S';PRESION1[2]='I';
PRESION1[3]='S';PRESION1[4]=':';PRESION1[5]=' ';
PRESION1[9]=' ';PRESION1[10]='M';PRESION1[11]='M';
PRESION1[12]='H';PRESION1[13]='G';PRESION1[14]=' ';PRESION1[15]=' ';
valor /= 10; // Divide entre 10
valor = (((((diastolica/10)*48)/10)*85)/100); // Recorre el
punto flotante
for(j=9; j>=7; j--)
PRESION2[j] = valor % 10 + 0x30;
PRESION2[0]=' ';PRESION2[1]='D';PRESION2[2]='I';
PRESION2[3]='A';PRESION2[4]='S';PRESION2[5]=':';PRESION2[6]=' ';
PRESION2[10]=' ';PRESION2[11]='M';PRESION2[12]='M';
PRESION2[13]='H';PRESION2[14]='G';PRESION2[15]=' ';
valor /= 10; // Divide entre 10
Conversión de dato de temperatura a ASCII
void BCD_ASCIIT(void)
word valor;
int j;
valor = (dato*5)+65;
for(j=9; j>=5; j--)
if(j==7)j--;TEMPERA[j] = valor % 10 + 0x30;
TEMPERA[7]='.';
TEMPERA[0]=' ';TEMPERA[1]=' ';TEMPERA[2]=' ';TEMPERA[3]=' ';TEMPERA[4]='
';
TEMPERA[10]=' ';TEMPERA[11]=223; TEMPERA[12]='C';TEMPERA[13]=' ';
valor /= 10; // Divide entre 10
Habilitar medición de presión y temperatura
Anexo A
87
void medirpt(void)
Bit2_SetVal();
Bit1_SetVal();
AD1_Enable();
AD1_Start();
Habilitar medición de temperatura
void medirt(void)
Bit1_ClrVal();Bit2_ClrVal();
AD1_Enable();
AD1_Start();
Función para el envío de comandos en la LCD
void Comando_LCD2(char dato)
char temp;
temp = dato; // Respalda dato en temp
dato = dato >> 4; // Corrimiento de cuatro lugares a la derecha
Bits1_PutVal(dato);//PTBD = dato; // Nible alto en Puerto
Bits2_PutBit(1,0);//Byte1_PutBit(6,0);//PTB_PTB5 = 0; //
Escribir en LCD
Bits2_PutBit(0,0);//Byte1_PutBit(4,0);//PTB_PTB4 = 0;
// Indica comando para LCD
Bits2_PutBit(2,1);//Byte1_PutBit(5,1);//PTB_PTB6 = 1;
// Activa Pulso de reloj
d=TI1_Enable();
while(ban<1)// Retardo de 15 mseg.
d=TI1_Disable();
ban=0;
Bits2_PutBit(2,0);//PTB_PTB6 = 0; // Desactiva Pulso
de reloj
temp = temp & 0b00001111;
Bits1_PutVal(temp);//PTBD = temp; // Nible bajo en Puerto
Bits2_PutBit(1,0);//PTB_PTB5 = 0; // Escribir en LCD
Bits2_PutBit(0,0);//PTB_PTB4 = 0; // Indica comando
para LCD
Bits2_PutBit(2,1);//PTB_PTB6 = 1; // Activa Pulso de
reloj
d= TI1_Enable();
while(ban<1)// Retardo de 15 mseg.
Anexo A
88
d= TI1_Disable();
ban=0;
Bits2_PutBit(2,0);//PTB_PTB6 = 0; // Desactiva Pulso
de reloj
Anexo B
89
Anexo B
Código del formulario 1
Bibliotecas utilizadas
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Word = Microsoft.Office.Interop.Word; using Microsoft.Office.Tools.Word; using System.Drawing.Text; using System.IO;
Descripción de la clase
namespace Historial public partial class Form1 : Form string datos, texto=""; double sis1=75, sis2=90, sis3=100, sis4=125, sis5=135, sis6=150, sis7=160, dias1=50, dias2=60, dias3=65, dias4=77.5, dias5=82.5, dias6=90, dias7=95, te1=33.5, te2=34.5, te3=36, te4=37.5, te5=39,te6=40; public Form1() InitializeComponent(); serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Recibe);
Recepcion de datos del puerto serial
private void Recibe(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) datos = serialPort1.ReadExisting(); this.Invoke(new EventHandler(Actualiza));
Anexo B
90
Prediagnóstico para presión diastólica
private void Actualiza(object sender, EventArgs e) if (datos == "D") labeldiast.Text = texto; texto = ""; if (Double.Parse(labeldiast.Text) >= dias1 && Double.Parse(labeldiast.Text) < dias2) ovaldias.FillColor = Color.DeepSkyBlue; rdias.Text = "Baja"; if (Double.Parse(labeldiast.Text) >= dias2 && Double.Parse(labeldiast.Text) < dias3) ovaldias.FillColor = Color.MediumAquamarine; rdias.Text = "Normal baja"; if (Double.Parse(labeldiast.Text) >= dias3 && Double.Parse(labeldiast.Text) < dias4) ovaldias.FillColor = Color.LimeGreen; rdias.Text = "Normal"; if (Double.Parse(labeldiast.Text) >= dias4 && Double.Parse(labeldiast.Text) < dias5) ovaldias.FillColor = Color.Lime; rdias.Text = "Óptima"; if (Double.Parse(labeldiast.Text) >= dias5 && Double.Parse(labeldiast.Text) < dias6) ovaldias.FillColor = Color.Red; rdias.Text = "Normal alta"; if (Double.Parse(labeldiast.Text) >= dias6 && Double.Parse(labeldiast.Text) < dias7) ovaldias.FillColor = Color.Firebrick; rdias.Text = "Hipertensión 1"; if (Double.Parse(labeldiast.Text) > dias7) ovaldias.FillColor = Color.Maroon; rdias.Text = "Hipertensión 2";
Prediagnóstico para presión sistólica
else if (datos == "S") labelsist.Text = texto; texto = ""; if (Double.Parse(labelsist.Text) >= sis1 && Double.Parse(labelsist.Text) < sis2) ovalsis.FillColor = Color.DeepSkyBlue; rsis.Text = "Baja"; if (Double.Parse(labelsist.Text) >= sis2 && Double.Parse(labelsist.Text) < sis3) ovalsis.FillColor = Color.MediumAquamarine; rsis.Text = "Normal baja"; if (Double.Parse(labelsist.Text) >= sis3 && Double.Parse(labelsist.Text) < sis4) ovalsis.FillColor = Color.LimeGreen; rsis.Text = "Normal"; if (Double.Parse(labelsist.Text) >= sis4 && Double.Parse(labelsist.Text) < sis5) ovalsis.FillColor = Color.Lime; rsis.Text = "Óptima"; if (Double.Parse(labelsist.Text) >= sis5 && Double.Parse(labelsist.Text) < sis6) ovalsis.FillColor = Color.Red; rsis.Text = "Normal alta"; if (Double.Parse(labelsist.Text) >= sis6 && Double.Parse(labelsist.Text) < sis7) ovalsis.FillColor = Color.Firebrick; rsis.Text = "Hipertensión 1"; if (Double.Parse(labelsist.Text) > sis7) ovalsis.FillColor = Color.Maroon; rsis.Text = "Hipertensión 2";
Prediagnóstico para la temperatura
Anexo B
91
else if (datos == "T") labeltemp.Text = texto; texto = ""; if (Double.Parse(labelsist.Text) >= te1 && Double.Parse(labelsist.Text) < te2) ovalsis.FillColor = Color.DeepSkyBlue; rsis.Text = "Hipotermia"; if (Double.Parse(labelsist.Text) >= te2 && Double.Parse(labelsist.Text) < te3) ovalsis.FillColor = Color.MediumAquamarine; rsis.Text = "Hipotermia"; if (Double.Parse(labelsist.Text) >= te3 && Double.Parse(labelsist.Text) < te4) ovalsis.FillColor = Color.Lime; rsis.Text = "Normal"; if (Double.Parse(labelsist.Text) >= te4 && Double.Parse(labelsist.Text) < te5) ovalsis.FillColor = Color.Red; rsis.Text = "Fiebre"; if (Double.Parse(labelsist.Text) >= te5 && Double.Parse(labelsist.Text) < te6) ovalsis.FillColor = Color.Firebrick; rsis.Text = "Fiebre"; texto += datos;
Carga de datos en el expediente
private void Form1_Activated(object sender, EventArgs e) if (Datos.matricula >= 1) button2.Enabled = true; labnom.Text = Datos.NOM; labapp.Text = Datos.APP; labapm.Text = Datos.APM; labgpo.Text = Datos.GPO; labedd.Text = Datos.EDD.ToString(); labtel.Text = Datos.TEL; labdrc.Text = Datos.DIR; labsx.Text = Datos.SX; labmat.Text = Datos.matricula.ToString(); ldia.Text = Datos.dia.ToString(); lmes.Text = Datos.mes.ToString(); lan.Text = Datos.anio.ToString(); if (Datos.nuevo2 == true) listBox1.Items.Add(Datos.APP + " " + Datos.APM + " " + Datos.NOM); listBox1.SelectedIndex = Datos.matricula - 1;Datos.nuevo2=false; Datos.nuevo1=false; else if (Datos.edit2 == true) listBox1.Items.Insert(Datos.matricula - 1, (Datos.APP + " " + Datos.APM + " " + Datos.NOM)); listBox1.Items.RemoveAt(Datos.matricula ); listBox1.SelectedIndex = Datos.matricula - 1;Datos.edit2 = false; Datos.edit1 = false; listBox1.SelectedIndex = 0;
Botón “Nuevo”
private void button1_Click_1(object sender, EventArgs e)
Anexo B
92
if (Datos.edit1 == false && Datos.nuevo1 == false) Datos.nuevo1 = true; Datos.edit1 = false; Form2 ventana2 = new Form2(); ventana2.Show();
Botón “Editar”
private void button2_Click(object sender, EventArgs e) if (Datos.edit1 == false && Datos.nuevo1 == false) Datos.edit1 = true; Datos.nuevo1 = false; Datos.NOM = labnom.Text; Datos.APP = labapp.Text; Datos.APM = labapm.Text; Datos.GPO = labgpo.Text; Datos.EDD = Int32.Parse(labedd.Text); Datos.TEL = labtel.Text; Datos.DIR = labdrc.Text; Datos.SX = labsx.Text; Datos.matricula = Int32.Parse(labmat.Text); Datos.dia = Int32.Parse(ldia.Text); Datos.mes = Int32.Parse(lmes.Text); Datos.anio = Int32.Parse(lan.Text); Form2 ventana2 = new Form2(); ventana2.Show();
Comunicación de la PC al Microcontrolador
private void timer1_Tick(object sender, EventArgs e) toolStripStatusLabel4.Text = DateTime.Now.ToString(); if (date1.Value == DateTime.Now && checkBox1.Checked && serialPort1.IsOpen) serialPort1.WriteLine("TTT"); if (date2.Value == DateTime.Now && checkBox2.Checked && serialPort1.IsOpen) serialPort1.WriteLine("TTT"); if (date3.Value == DateTime.Now && checkBox3.Checked && serialPort1.IsOpen) serialPort1.WriteLine("TTT"); if (dateTimePicker4.Value == DateTime.Now && checkBox4.Checked && serialPort1.IsOpen) serialPort1.WriteLine("PPP"); if (dateTimePicker5.Value == DateTime.Now && checkBox5.Checked && serialPort1.IsOpen) serialPort1.WriteLine("PPP"); if (dateTimePicker6.Value == DateTime.Now && checkBox6.Checked && serialPort1.IsOpen) serialPort1.WriteLine("PPP");
Almacenamiento de datos en el archivo de Word
Anexo B
93
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); object miss = System.Reflection.Missing.Value; object path = "C:\\Users\\Oscar\\Dropbox\\Tesis\\Historial\\Historial\\bin\\Debug\\HistorialC.docx"; object readOnly = false; Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); Datos.matricula = listBox1.SelectedIndex + 1; Word.Table tabla = docs.Tables[Datos.matricula]; //Datos.matricula++; Datos.NOM = tabla.Cell(2, 1).Range.Text.Substring(0, tabla.Cell(2, 1).Range.Text.Length - 1); Datos.APP = tabla.Cell(2, 2).Range.Text.Substring(0, tabla.Cell(2, 2).Range.Text.Length - 1); Datos.APM = tabla.Cell(2, 3).Range.Text.Substring(0, tabla.Cell(2, 3).Range.Text.Length - 1); Datos.SX = tabla.Cell(2, 4).Range.Text.Substring(0, tabla.Cell(2, 4).Range.Text.Length - 1); Datos.GPO = tabla.Cell(2, 6).Range.Text.Substring(0, tabla.Cell(2, 6).Range.Text.Length - 1); Datos.TEL = tabla.Cell(2, 7).Range.Text.Substring(0, tabla.Cell(2, 7).Range.Text.Length - 1); Datos.DIR = tabla.Cell(3, 2).Range.Text.Substring(0, tabla.Cell(3, 2).Range.Text.Length - 1); Datos.ddmmaa = DateTime.Parse(tabla.Cell(2, 5).Range.Text.Substring(0, tabla.Cell(2, 5).Range.Text.Length - 1)); Datos.dia = Datos.ddmmaa.Day; Datos.mes = Datos.ddmmaa.Month; Datos.anio = Datos.ddmmaa.Year; int dia = DateTime.Now.Day - Datos.dia; int mes = DateTime.Now.Month - Datos.mes; int anio = DateTime.Now.Year - Datos.anio; Datos.EDD = anio; if (mes < 0) Datos.EDD = anio - 1; if (mes == 0 && dia < 0) Datos.EDD = anio - 1; labnom.Text = Datos.NOM; labapp.Text = Datos.APP; labapm.Text = Datos.APM; labgpo.Text = Datos.GPO; labedd.Text = Datos.EDD.ToString(); labtel.Text = Datos.TEL; labdrc.Text = Datos.DIR; labsx.Text = Datos.SX; labmat.Text = Datos.matricula.ToString(); ldia.Text = Datos.dia.ToString(); lmes.Text = Datos.mes.ToString(); lan.Text = Datos.anio.ToString(); string fecha1; string di; string si; string tep; int ft = 0, fp = 0; fp = data1.RowCount; ft = data2.RowCount;
Anexo B
94
for (int h = fp - 2; h >= 0; h--) data1.Rows.RemoveAt(h); data1[0, 0].Value = ""; data1[1, 0].Value = ""; data1[2, 0].Value = ""; for (int h = ft - 2; h >= 0; h--) data2.Rows.RemoveAt(h); data2[0, 0].Value = ""; data2[1, 0].Value = ""; for (int f = 5; f <= 8; f++) fecha1 = tabla.Cell(f, 1).Range.Text.Substring(0, tabla.Cell(f, 1).Range.Text.Length - 1); di = tabla.Cell(f, 2).Range.Text.Substring(0, tabla.Cell(f, 2).Range.Text.Length - 1); si = tabla.Cell(f, 3).Range.Text.Substring(0, tabla.Cell(f, 3).Range.Text.Length - 1); tep = tabla.Cell(f, 4).Range.Text.Substring(0, tabla.Cell(f, 4).Range.Text.Length - 1); if (fecha1 == di || fecha1 == si || fecha1 == tep) f = 23; if (fecha1 != di || di != si || si != tep) if (tep != fecha1) if (f == 5) data2[0, 0].Value = fecha1; data2[1, 0].Value = tep; else data2.Rows.Add(); ft = data2.RowCount; data2[0, ft - 2].Value = fecha1; data2[1, ft - 2].Value = tep; if (si != di) if (f == 5) data1[0, 0].Value = fecha1; data1[1, 0].Value = si; data1[2, 0].Value = di; else data1.Rows.Add(); fp = data1.RowCount; data1[0, ft - 2].Value = fecha1; data1[1, ft - 2].Value = si; data1[2, ft - 2].Value = di; data1.Sort(data1.Columns[0], ListSortDirection.Descending); data2.Sort(data2.Columns[0], ListSortDirection.Descending); docs.Close(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss);
Anexo B
95
Carga de datos del archivo de Word
private void Form1_Load(object sender, EventArgs e) if (System.IO.File.Exists("Historial1.docx")) ReadMsWord(); else MessageBox.Show("No se ha encontrado el archivo Historial.docx. Espere mientras se crea"); creardocumentoword(); public void creardocumentoword() Word.Application objWordApplication; Word.Document objWordDocument; Object oMissing = System.Reflection.Missing.Value; objWordApplication = new Word.Application(); objWordDocument = objWordApplication.Documents.Add(ref oMissing, ref oMissing, ref oMissing,ref oMissing ); object fileName = "C:\\Users\\Oscar\\Dropbox\\Tesis\\Historial\\Historial\\bin\\Debug\\Historial1.docx"; objWordDocument.SaveAs(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); private void ReadMsWord() Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); object miss = System.Reflection.Missing.Value; object path = "C:\\Users\\Oscar\\Dropbox\\Tesis\\Historial\\Historial\\bin\\Debug\\HistorialC.docx"; object readOnly = false; Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); int ntablas = 0; ntablas = docs.Tables.Count; Datos.matultimo = ntablas; for (int g = 1; g <= ntablas; g++) Word.Table tabla = docs.Tables[g]; string ap, am, nm; nm = tabla.Cell(2, 1).Range.Text.Substring(0,tabla.Cell(2, 1).Range.Text.Length - 1); ap = tabla.Cell(2, 2).Range.Text.Substring(0, tabla.Cell(2, 2).Range.Text.Length - 1); am = tabla.Cell(2, 3).Range.Text.Substring(0, tabla.Cell(2, 3).Range.Text.Length - 1); listBox1.Items.Add(ap + " " + am + " " + nm); if (ntablas > 0) Datos.matricula = 1; Word.Table tabla = docs.Tables[1]; Datos.NOM = tabla.Cell(2, 1).Range.Text.Substring(0, tabla.Cell(2, 1).Range.Text.Length - 1); Datos.APP = tabla.Cell(2, 2).Range.Text.Substring(0, tabla.Cell(2, 2).Range.Text.Length - 1);
Anexo B
96
Datos.APM = tabla.Cell(2, 3).Range.Text.Substring(0, tabla.Cell(2, 3).Range.Text.Length - 1); Datos.SX = tabla.Cell(2, 4).Range.Text.Substring(0, tabla.Cell(2, 4).Range.Text.Length - 1); Datos.GPO = tabla.Cell(2, 6).Range.Text.Substring(0, tabla.Cell(2, 6).Range.Text.Length - 1); Datos.TEL = tabla.Cell(2, 7).Range.Text.Substring(0, tabla.Cell(2, 7).Range.Text.Length - 1); Datos.DIR = tabla.Cell(3, 2).Range.Text.Substring(0, tabla.Cell(3, 2).Range.Text.Length - 1); Datos.ddmmaa = DateTime.Parse(tabla.Cell(2, 5).Range.Text.Substring(0, tabla.Cell(2, 5).Range.Text.Length - 1)); Datos.dia = Datos.ddmmaa.Day; Datos.mes = Datos.ddmmaa.Month; Datos.anio = Datos.ddmmaa.Year; int dia = DateTime.Now.Day - Datos.dia; int mes = DateTime.Now.Month - Datos.mes; int anio = DateTime.Now.Year - Datos.anio; Datos.EDD = anio; if (mes < 0) Datos.EDD = anio - 1; if (mes == 0 && dia < 0) Datos.EDD = anio - 1; labnom.Text = Datos.NOM; labapp.Text = Datos.APP; labapm.Text = Datos.APM; labgpo.Text = Datos.GPO; labedd.Text = Datos.EDD.ToString(); labtel.Text = Datos.TEL; labdrc.Text = Datos.DIR; labsx.Text = Datos.SX; labmat.Text = Datos.matricula.ToString(); ldia.Text = Datos.dia.ToString(); lmes.Text = Datos.mes.ToString(); lan.Text = Datos.anio.ToString(); string fecha1; string di; string si; string tep; int ft = 0, fp = 0; fp = data1.RowCount; ft = data2.RowCount; for (int h = fp - 1; h > 2; h--) data1.Rows.RemoveAt(h); for (int h = ft - 1; h > 2; h--) data2.Rows.RemoveAt(h); for (int f = 5; f <= 22; f++) fecha1 = tabla.Cell(f, 1).Range.Text.Substring(0, tabla.Cell(f, 1).Range.Text.Length - 1); di = tabla.Cell(f, 2).Range.Text.Substring(0, tabla.Cell(f, 2).Range.Text.Length - 1); si = tabla.Cell(f, 3).Range.Text.Substring(0, tabla.Cell(f, 3).Range.Text.Length - 1); tep = tabla.Cell(f, 4).Range.Text.Substring(0, tabla.Cell(f, 4).Range.Text.Length - 1); if (fecha1 == di || fecha1 == si || fecha1 == tep) f = 23; if (fecha1 != di || di != si || si != tep) if (tep != fecha1) if (f == 5) data2[0, 0].Value = fecha1; data2[1, 0].Value = tep; else
Anexo B
97
data2.Rows.Add(); ft = data2.RowCount; data2[0, ft - 2].Value = fecha1; data2[1, ft - 2].Value = tep; if (si != di) if (f == 5) data1[0, 0].Value = fecha1; data1[1, 0].Value = si; data1[2, 0].Value = di; else data1.Rows.Add(); fp = data1.RowCount; data1[0, ft - 2].Value = fecha1; data1[1, ft - 2].Value = si; data1[2, ft - 2].Value = di; data1.Sort(data1.Columns[0], ListSortDirection.Descending); data2.Sort(data2.Columns[0], ListSortDirection.Descending); docs.Close(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss); listBox1.SelectedIndex = 0; else docs.Close(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss);
Opción de imprimir
private void button3_Click(object sender, EventArgs e) object missing= System.Reflection.Missing.Value; object copies = "1"; object pages = Datos.matricula; object range = Word.WdPrintOutRange.wdPrintFromTo; object items = Word.WdPrintOutItem.wdPrintDocumentContent; object pageType = Word.WdPrintOutPages.wdPrintAllPages; object oTrue = true; object oFalse = false; object start= Datos.matricula; object end= Datos.matricula+1;
Anexo B
98
PrintOut(ref oTrue, ref oFalse, ref range, ref missing, ref start, ref end, ref items, ref copies, ref pages, ref pageType, ref oFalse, ref oTrue, ref missing, ref oFalse, ref missing, ref missing, ref missing, ref missing); private void PrintOut(ref object oTrue, ref object oFalse, ref object range, ref object missing, ref object start, ref object end, ref object items, ref object copies, ref object pages, ref object pageType, ref object oFalse_2, ref object oTrue_2, ref object missing_2, ref object oFalse_3, ref object missing_3, ref object missing_4, ref object missing_5, ref object missing_6) throw new NotImplementedException();
Selección de puerto serial
private void menuItem1_Click(object sender, EventArgs e) if (serialPort1.IsOpen) serialPort1.Close(); serialPort1.PortName = menuItem1.Text; menuItem3.Text = "Iniciada en COM1"; if (serialPort1.IsOpen == false) serialPort1.Open();
Medición de temperatura
private void button7_Click(object sender, EventArgs e) if (serialPort1.IsOpen) serialPort1.WriteLine("TTT"); else MessageBox.Show("No se ha establecido la comunicación con el instrumento");
Medición de presión
private void button8_Click(object sender, EventArgs e) if (serialPort1.IsOpen) serialPort1.WriteLine("PPP"); else MessageBox.Show("No se ha establecido la comunicación con el instrumento");
Graficar presión
private void button4_Click(object sender, EventArgs e) Datos.graf = 1; int filast = data2.RowCount, contt = 0; int filas = data1.RowCount, cont = 0; for (int j = 0; j < 32; j++)
Anexo B
99
Datos.sistol[j] = 600; for (int j = 0; j < 32; j++) Datos.diastol[j] = 600; cont = 0; for (int j = filas - 1; j >= 0; j--) Datos.diastol[cont] = Condias(Double.Parse(data1[2, j].Value.ToString())); cont++; cont = 0; for (int j = filas - 1; j >= 0; j--) Datos.sistol[cont] = Consis(Double.Parse(data1[1, j].Value.ToString())); cont++; for (int j = 0; j < 32; j++) Datos.temper[j] = 600; contt = 0; for (int j = filast - 1; j >= 0; j--) Datos.temper[contt] = Contemp(Double.Parse(data2[1, j].Value.ToString())); contt++; Graficas ob = new Graficas(); ob.Show(); private void button9_Click(object sender, EventArgs e) Datos.graf = 2; int filast = data2.RowCount, contt = 0; int filas = data1.RowCount, cont = 0; for (int j = 0; j < 32; j++) Datos.sistol[j] = 600; for (int j = 0; j < 32; j++) Datos.diastol[j] = 600; cont = 0; for (int j = filas - 1; j >= 0; j--) Datos.diastol[cont] = Condias(Double.Parse(data1[2, j].Value.ToString())); cont++; cont = 0; for (int j = filas - 1; j >= 0; j--) Datos.sistol[cont] = Consis(Double.Parse(data1[1, j].Value.ToString())); cont++;
Anexo B
100
for (int j = 0; j < 32; j++) Datos.temper[j] = 600; contt = 0; for (int j = filast - 1; j >= 0; j--) Datos.temper[contt] = Contemp(Double.Parse(data2[1, j].Value.ToString())); contt++; Graficas ob = new Graficas(); ob.Show();
Gráfica de temperatura
private void button5_Click(object sender, EventArgs e) Datos.graf = 3; int filast = data2.RowCount, contt = 0; int filas = data1.RowCount, cont = 0; for (int j = 0; j < 32; j++) Datos.sistol[j] = 600; for (int j = 0; j < 32; j++) Datos.diastol[j] = 600; cont = 0; for (int j = filas - 1; j >= 0; j--) Datos.diastol[cont] = Condias(Double.Parse(data1[2, j].Value.ToString())); cont++; cont = 0; for (int j = filas - 1; j >= 0; j--) Datos.sistol[cont] = Consis(Double.Parse(data1[1, j].Value.ToString())); cont++; for (int j = 0; j < 32; j++) Datos.temper[j] = 600; contt = 0; for (int j = filast - 1; j >= 0; j--) Datos.temper[contt] = Contemp(Double.Parse(data2[1, j].Value.ToString())); contt++; Graficas ob = new Graficas(); ob.Show();
Anexo B
101
Interpretación de datos recibidos por el microcontrolador
private int Condias(double valor) int valord=0; valord = (int)((160 - valor) * ((465 - 35) / (160 - 75)) + 35); return valord; private int Consis(double valor) int valors = 35; valors= (int)((95-valor)*((465-35)/(95-52.5))+35); return valors; private int Contemp(double valor) int valort = 0; valort = (int)((40 - valor) * ((466 - 36) / (40 - 33.5)) + 36); return valort;
Código del formulario 2
Bibliotecas utilizadas
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Word = Microsoft.Office.Interop.Word; using Microsoft.Office.Tools.Word; using System.Windows.Forms; using System.IO;
Inicialización del formulario
namespace Historial public partial class Form2 : Form public Form2() InitializeComponent();
Anexo B
102
Carga de datos
public void Editar(int indice) Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); object miss = System.Reflection.Missing.Value; object path = "C:\\Users\\Oscar\\Dropbox\\Tesis\\Historial\\Historial\\bin\\Debug\\HistorialC.docx"; object readOnly = false; Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); object True = true; Word.Table tabla = docs.Tables[indice]; Word.Cell celda1 = tabla.Cell(2, 1); Word.Cell celda2 = tabla.Cell(2, 2); Word.Cell celda3 = tabla.Cell(2, 3); Word.Cell celda4 = tabla.Cell(2, 4); Word.Cell celda5 = tabla.Cell(2, 5); Word.Cell celda6 = tabla.Cell(2, 6); Word.Cell celda7 = tabla.Cell(2, 7); Word.Cell celda8 = tabla.Cell(2, 8); celda1.Range.Text = Datos.NOM; celda2.Range.Text = Datos.APP; celda3.Range.Text = Datos.APM; celda4.Range.Text = Datos.SX; celda5.Range.Text = (Datos.dia.ToString() + "/" + Datos.mes.ToString() + "/" + Datos.anio.ToString()); celda6.Range.Text = Datos.GPO; celda7.Range.Text = Datos.TEL; celda8.Range.Text = Datos.matultimo.ToString(); celda2 = tabla.Cell(3, 2); celda2.Range.Text = Datos.DIR; docs.Save(); docs.Close(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss);
Registro nuevo
public void Nuevo() Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); object miss = System.Reflection.Missing.Value; object path = "C:\\Users\\Oscar\\Dropbox\\Tesis\\Historial\\Historial\\bin\\Debug\\HistorialC.docx"; object readOnly = false; Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); object start = "\\endofdoc";
Anexo B
103
object end = "\\endofdoc"; object True = true; Microsoft.Office.Interop.Word.Range ubicacion = docs.Bookmarks.get_Item(ref start).Range; Word.Paragraph para = docs.Content.Paragraphs.Add(ubicacion); para.Range.Text = Environment.NewLine + "Usuario " + Datos.matultimo.ToString() + Environment.NewLine; start = "\\endofdoc"; ubicacion = docs.Bookmarks.get_Item(ref start).Range; docs.Tables.Add(ubicacion, 21, 8, ref miss, ref True); Word.Table tabla = docs.Tables[Datos.matultimo]; tabla.Borders.Enable = 1; Word.Cell celda1 = tabla.Cell(1, 1); Word.Cell celda2 = tabla.Cell(1, 2); Word.Cell celda3 = tabla.Cell(1, 3); Word.Cell celda4 = tabla.Cell(1, 4); Word.Cell celda5 = tabla.Cell(1, 5); Word.Cell celda6 = tabla.Cell(1, 6); Word.Cell celda7 = tabla.Cell(1, 7); Word.Cell celda8 = tabla.Cell(1, 8); celda1.Range.Text = "Nombres:"; celda2.Range.Text = "Apellido paterno:"; celda3.Range.Text = "Apellido materno:"; celda4.Range.Text = "Sexo:"; celda5.Range.Text = "Fecha de nacimiento:"; celda6.Range.Text = "Grupo sanguíneo:"; celda7.Range.Text = "Teléfono:"; celda8.Range.Text = "No. de usuario:"; celda1 = tabla.Cell(2, 1); celda2 = tabla.Cell(2, 2); celda3 = tabla.Cell(2, 3); celda4 = tabla.Cell(2, 4); celda5 = tabla.Cell(2, 5); celda6 = tabla.Cell(2, 6); celda7 = tabla.Cell(2, 7); celda8 = tabla.Cell(2, 8); tabla.Columns[1].SetWidth((float)97, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[2].SetWidth((float)67, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[3].SetWidth((float)68.6, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[4].SetWidth((float)69.5, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[5].SetWidth((float)104, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[6].SetWidth((float)55.9, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[7].SetWidth((float)51.33, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Columns[8].SetWidth((float)51.33, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone); tabla.Rows.SetHeight((float)28.36, Microsoft.Office.Interop.Word.WdRowHeightRule.wdRowHeightExactly); // celda1.Range.Text = Datos.NOM; celda2.Range.Text = Datos.APP; celda3.Range.Text = Datos.APM; celda4.Range.Text = Datos.SX; celda5.Range.Text = (Datos.dia.ToString() + "/" + Datos.mes.ToString() + "/" + Datos.anio.ToString()); celda6.Range.Text = Datos.GPO; celda7.Range.Text = Datos.TEL; celda8.Range.Text = Datos.matultimo.ToString(); celda1 = tabla.Cell(3, 1); celda5 = tabla.Cell(3, 5); celda2 = tabla.Cell(3, 2); celda6 = tabla.Cell(3, 6); celda3 = tabla.Cell(3, 3); celda7 = tabla.Cell(3, 7); celda4 = tabla.Cell(3, 4); celda8 = tabla.Cell(3, 8); celda7.Merge(celda8); celda6.Merge(celda7); celda5.Merge(celda6); celda4.Merge(celda5); celda3.Merge(celda4); celda2.Merge(celda3); celda1 = tabla.Cell(3, 1); celda2 = tabla.Cell(3, 2); celda1.Range.Text = "Dirección:"; celda2.Range.Text = Datos.DIR;
Anexo B
104
celda1 = tabla.Cell(4, 1); celda5 = tabla.Cell(4, 5); celda2 = tabla.Cell(4, 2); celda6 = tabla.Cell(4, 6); celda3 = tabla.Cell(4, 3); celda7 = tabla.Cell(4, 7); celda4 = tabla.Cell(4, 4); celda8 = tabla.Cell(4, 8); celda1.Range.Text = "Horarios:"; celda2.Range.Text = "Diastólica"; celda3.Range.Text = "Sistólica"; celda4.Range.Text = "Temp."; celda5.Range.Text = "Fecha"; celda6.Range.Text = "Diastólica"; celda7.Range.Text = "Sistólica"; celda8.Range.Text = "Temp."; tabla.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter; docs.Save(); docs.Close(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss);
Botón “Ok”
private void button1_Click(object sender, EventArgs e) bool bien = true; bien = Verificar(); if (bien == true) int dia = DateTime.Now.Day - date1.Value.Day; int mes= DateTime.Now.Month - date1.Value.Month; int anio = DateTime.Now.Year - date1.Value.Year; Datos.NOM = txtnom.Text.Trim(); Datos.APP = txtapp.Text.Trim(); Datos.APM = txtam.Text.Trim(); Datos.TEL = txttel.Text.Trim(); Datos.DIR = txtdir.Text.Trim(); Datos.dia = date1.Value.Day; Datos.mes = date1.Value.Month; Datos.anio = date1.Value.Year; Datos.GPO = txtgpo.SelectedItem.ToString(); Datos.EDD = anio; if(mes < 0 ) Datos.EDD= anio-1; if(mes==0 && dia<0) Datos.EDD= anio - 1; if (radioButton1.Checked) Datos.SX = "Femenino"; else Datos.SX = "Masculino"; if (Datos.edit1 == true && bien == true) Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); object miss = System.Reflection.Missing.Value; object path = "C:\\Users\\Oscar\\Dropbox\\Tesis\\Historial\\Historial\\bin\\Debug\\HistorialC.docx"; object readOnly = false; Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); object True = true;
Anexo B
105
Word.Table tabla = docs.Tables[Datos.matricula]; Word.Cell celda1 = tabla.Cell(2, 1); Word.Cell celda2 = tabla.Cell(2, 2); Word.Cell celda3 = tabla.Cell(2, 3); Word.Cell celda4 = tabla.Cell(2, 4); Word.Cell celda5 = tabla.Cell(2, 5); Word.Cell celda6 = tabla.Cell(2, 6); Word.Cell celda7 = tabla.Cell(2, 7); Word.Cell celda8 = tabla.Cell(2, 8); celda1.Range.Text = Datos.NOM; celda2.Range.Text = Datos.APP; celda3.Range.Text = Datos.APM; celda4.Range.Text = Datos.SX; celda5.Range.Text = (Datos.dia.ToString() + "/" + Datos.mes.ToString() + "/" + Datos.anio.ToString()); celda6.Range.Text = Datos.GPO; celda7.Range.Text = Datos.TEL; celda8.Range.Text = Datos.matricula.ToString(); celda2 = tabla.Cell(3, 2); celda2.Range.Text = Datos.DIR; docs.Save(); docs.Close(ref miss, ref miss, ref miss); docs = null; word.Quit(ref miss, ref miss, ref miss); word = null; for(double tiempo=0; tiempo<1000;tiempo++) //docs = null; // word.Quit(ref miss, ref miss, ref miss); Datos.edit1 = false; Datos.edit2 = true; else if (Datos.nuevo1==true && bien == true) Datos.matultimo++; Datos.nuevo1 = false; Datos.nuevo2 = true; Nuevo(); if(bien == true) Close();
Botón “Cancelar”
private void button2_Click(object sender, EventArgs e) Datos.edit1 = false; Datos.nuevo1 = false; Datos.edit2= false; Datos.nuevo2 = false; Close(); private void Form2_Load(object sender, EventArgs e) txtgpo.SelectedIndex = 0; public bool Verificar()
Anexo B
106
bool bien = true; if (txtnom.Text == null || txtnom.Text == "") label2.Text = "* Nombre(s):"; label2.ForeColor = Color.Red; bien = false; else label2.Text = "Nombre(s):"; label2.ForeColor = Color.Black; if (txtapp.Text == null || txtapp.Text == "") label5.Text = "* Apellido paterno:"; label5.ForeColor = Color.Red; bien = false; else label5.Text = "Apellido paterno:"; label5.ForeColor = Color.Black; if (txtam.Text == null || txtam.Text == "") label7.Text = "* Apellido materno"; label7.ForeColor = Color.Red; bien = false; else label7.Text = "Apellido materno:"; label7.ForeColor = Color.Black; if (txttel.Text == null || txttel.Text == "") label15.Text = "* Teléfono:"; label15.ForeColor = Color.Red; bien = false; else label15.Text = "Teléfono"; label15.ForeColor = Color.Black; if (txtdir.Text == null || txtdir.Text == "") label17.Text = "* Dirección:"; label17.ForeColor = Color.Red; bien = false; else label17.Text = "Dirección:"; label17.ForeColor = Color.Black; return (bien);
Actualizar datos
private void Form2_Activated(object sender, EventArgs e) if (Datos.edit1 == true) txtnom.Text = Datos.NOM ; txtapp.Text =Datos.APP ; txtam.Text =Datos.APM ; txttel.Text = Datos.TEL; txtdir.Text = Datos.DIR; if (Datos.SX == "Femenino") radioButton1.Checked=true; else radioButton2.Checked = true; txtgpo.SelectedItem = Datos.GPO; date1.Value = DateTime.Parse(Datos.dia.ToString()+"/"+ Datos.mes.ToString()+"/"+Datos.anio.ToString()); //Datos.edit1 = false;
Código de la clase “Graficas”
Bibliotecas utilizadas
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
Anexo B
107
Inicialización del formulario
namespace Historial public partial class Graficas : Form Pen Pluma = new Pen(Color.Black, 3); public Graficas() InitializeComponent();
Desplegado de gráficas
private void menuItem1_Click(object sender, EventArgs e) if (pictureBox1.ImageLocation != "Presion1.png") Graphics g = pictureBox1.CreateGraphics(); g.Clear(Color.White); pictureBox1.ImageLocation = "Presion1.png"; private void menuItem2_Click(object sender, EventArgs e) if (pictureBox1.ImageLocation != "Presion2.png") Graphics g = pictureBox1.CreateGraphics(); g.Clear(Color.White); pictureBox1.ImageLocation = "Presion2.png"; private void menuItem3_Click(object sender, EventArgs e) if (pictureBox1.ImageLocation != "Temperatura.png") Graphics g = pictureBox1.CreateGraphics(); g.Clear(Color.White); pictureBox1.ImageLocation = "Temperatura.png"; private void Graficas_Activated(object sender, EventArgs e) if (Datos.graf == 1) pictureBox1.ImageLocation = "Presion1.png"; else if (Datos.graf == 2) pictureBox1.ImageLocation = "Presion2.png"; else if (Datos.graf == 3) pictureBox1.ImageLocation = "Temperatura.png";
Anexo B
108
Graficación de puntos
private void timer1_Tick(object sender, EventArgs e) int ajusteh = 85; Graphics g = pictureBox1.CreateGraphics(); if (pictureBox1.ImageLocation == "Presion1.png") for (int i = 0; i < 32; i++) g.DrawEllipse(Pluma, ajusteh + (i * 20), Datos.sistol[i], 3, 3); else if (pictureBox1.ImageLocation == "Presion2.png") for (int j = 0; j < 32; j++) g.DrawEllipse(Pluma, ajusteh + (j * 20), Datos.diastol[j], 3, 3); else if (pictureBox1.ImageLocation == "Temperatura.png") for (int j = 0; j < 32; j++) g.DrawEllipse(Pluma, ajusteh + (j * 20),Datos.temper[j], 3, 3);
Anexo C
109
Anexo C: Costo del prototipo
DISEÑO DEL CIRCUITO DEL INSTRUMENTO
Materiales Cantidad Precio unitario Total
Microcontrolador M9S08SH8 1 $ 60.00 $ 60.00
Sensor MPX5050DP 1 $ 246.00 $ 246.00
Sensor LM35 1 $ 17.00 $ 17.00
Resistor 1/4 W 15 $ 0.30 $ 4.50
Capacitor cerámico 4 $ 4.00 $ 16.00
Capacitor electrolítico 2 $ 5.00 $ 10.00
Amplificador operacional LF411 3 $ 15.60 $ 46.80
Amplificador operacional LM741 1 $ 4.30 $ 4.30
LCD de 2 líneas 1 $ 160.00 $ 160.00
Modulo bluetooth 1 $ 150.00 $ 150.00
Base para integrados de 20 pines 1 $ 4.00 $ 4.00
Base para integrados de 8 pines 4 $ 3.00 $ 12.00
Botón de presión 2 $ 9.00 $ 18.00
Interruptor 2 polos 1 $ 29.00 $ 29.00
Placa fenolica 10 x10 cm doble cara 1 $ 18.00 $ 18.00
Transistor 2N3904 2 $ 1.70 $ 3.40
Bomba de aire 1 $ 80.00 $ 80.00
Electroválvula 1 $ 70.00 $ 70.00
Jack de audio estereo 1 $ 4.00 $ 4.00
Plug de audio estereo 1 $ 8.00 $ 8.00
Anexo C
110
Header hembra 1 $ 7.00 $ 7.00
Metro de alambre de cobre 2 $ 5.00 $ 10.00
Licencia de la aplicación PCB Wizard 1 Libre $ -
Subtotal 49 $ 900.90 $ 978.00
DISEÑO DEL CIRCUITO DE LA FUENTE
Materiales Cantidad Precio unitario Total
Transformador 24V 2A 1 $ 198.00 $ 198.00
Puente rectificador 2A 1 $ 9.00 $ 9.00
Regulador LM317 1 $ 25.00 $ 25.00
Regulador LM337 1 $ 11.30 $ 11.30
Capacitor electrolítico 6 $ 19.00 $ 114.00
Resistor 1/4 W 4 $ 0.30 $ 1.20
Fusible 2A europeo 1 $ 5.00 $ 5.00
Base para fusible 1 $ 8.00 $ 8.00
Disipador 2 $ 9.00 $ 18.00
Placa fenolica 5x10 cm 1 $ 9.00 $ 9.00
Subtotal 19 $ 293.60 $ 398.50
HERRAMIENTAS PARA LA ELABORACIÓN DE LOS CIRCUITOS
Herramienta Cantidad Precio unitario Total
Cautín de lápiz de 25 W 1 $ 260.00 $ 260.00
Metros de soldadura 3 $ 8.00 $ 24.00
Litros de cloruro férrico 0.5 $ 26.00 $ 13.00
Taladro 1 $ 460.00 $ 460.00
Anexo C
111
Broca de 0.5 mm 2 $ 16.00 $ 32.00
Broca de 0.7 mm 2 $ 23.00 $ 46.00
Pinzas de punta 1 $ 120.00 $ 120.00
Pinzas de corte 1 $ 120.00 $ 120.00
Botella de Flux líquido 1 $ 76.00 $ 76.00
Cinta de aislar 1 $ 14.00 $ 14.00
Malla para desoldar 1 $ 19.00 $ 19.00
Tijeras 1 $ 16.00 $ 16.00
Envase plástico 1 $ 3.00 $ 3.00
Hoja de papel couche 2 $ 2.00 $ 4.00
Cutter 1 $ 18.00 $ 18.00
Barra de silicon 1 $ 6.50 $ 6.50
Subtotal 20.5 $ 1,187.50 $ 1,231.50
OTROS ELEMENTOS
Elemento Cantidad Precio unitario Total
DEMOM9S08SH8 1 $ 800.00 $ 800.00
Cable USB 1 $ 52.00 $ 52.00
Caja de plástico de 16x 9x7 cm 1 $ 67.00 $ 67.00
Caja de madera 12x12x8 cm 1 $ 25.00 $ 25.00
Brazalete inflable 1 $ 140.00 $ 140.00
Tornillos 6 $ 0.20 $ 1.20
Pegamento para plásticos 1 $ 40.00 $ 40.00
Pegamento multiusos 1 $ 19.00 $ 19.00
Metro de termofit 11 $ 11.00 $ 121.00
Anexo C
112
Metro de manguera 1 $ 15.00 $ 15.00
Metro de alambre galvanizado 3 $ 5.00 $ 15.00
Clavija 1 $ 6.00 $ 6.00
Bote de pintura 100ml 1 $ 25.00 $ 25.00
Subtotal 30 $ 1,205.20 $ 1,326.20
COSTO DE LICENCIAS
Licencia Cantidad Precio unitario Total
Microsoft Office Office 2010
Hogar/Estudiantes
1 $1,799.00 $1,799.00
Microsoft Visual Studio 2010 1 $ 4, 999.00 $4,999.00
Code Warrior 10.2 1 Libre $ -
Microsoft Windows 7 Ultimate 1 $3,499.00 $3,499.00
Subtotal 4 $10,297.00 $10,297.00
COSTO DEL PERSONAL CALIFICADO
Personal calificado Días Sueldo por día Total
Ingeniero de diseño 30 $1,100.00 $33,000.00
Técnico 40 $226.00 $9,040.00
Subtotal 70 $1,326.00
$42,040.00
TOTAL $59,863.50
Indiscutiblemente, tanto el uso de paquetería como el gasto que implica emplear personal
especializado, son lo que representan la mayor parte del costo del proyecto.
Sin embargo, si éste se produjera en masa, el costo individual representaría la décima parte
del total presentado.
Anexo D
113
Anexo D: Diagrama de clases de la interfaz gráfica