Академический Документы
Профессиональный Документы
Культура Документы
ESCOM
Trabajo Terminal
PRESENTAN:
ALANIS TAMEZ MARIANA DAYANARA
VELÁZQUEZ RODRÍGUEZ JOSÉ LUIS
DIRECTORES
DR. JORGE CORTÉS GALICIA DR. JULIO CÉSAR SOSA SAVEDRA
DICIEMBRE, 2015
1
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
Documento técnico
PRESENTAN:
ALANIS TAMEZ MARIANA DAYANARA 1
VELÁZQUEZ RODRÍGUEZ JOSÉ LUIS 2
DIRECTORES
DR. JORGE CORTÉS GALICIA DR. JULIO CÉSAR SOSA SAVEDRA
3
4
5
Agradecimientos
Le agradezco a Dios por haberme acompañado y guiado a lo largo de mi carrera, por ser mi
fortaleza en los momentos de debilidad y por brindarme una vida llena de aprendizajes,
experiencias y sobre todo felicidad.
A mis hermanas Paola y Sofía por ser parte importante de mi vida, por llenar mi vida de alegrías
y amor cuando más lo he necesitado.
A mi compañero de trabajo terminal, José Luis, por haber sido un excelente compañero y amigo,
por haberme tenido la paciencia necesaria y por motivarme a seguir adelante en los momentos de
desesperación.
A mis directores de trabajo, los doctores Jorge Cortés Galicia y Julio César Sosa Savedra por
creer en José Luis y en mí, y habernos brindado su tiempo y paciencia en el desarrollo de nuestro
trabajo, por todo el apoyo y por darnos la oportunidad de crecer profesionalmente y aprender
cosas nuevas.
Le agradezco la confianza, apoyo y dedicación de tiempo a mis profesores: Víctor Hugo García
Ortega y Miguel Olvera Aldana. Por haber compartido conmigo sus conocimientos y sobre todo
su amistad.
A mis amigos, sobre todo a Alan, Daniel, Claudio, Julio, Sam, Miguel, Gonzalo, Jair, Ricardo,
Nayeli, Jesús, y Oscar por confiar y creer en mí y haber hecho de mi etapa universitaria un
trayecto de vivencias que nunca olvidaré, también quiero agradecer especialmente a mis
compañeros de sala por ayudarnos en lo que llegáramos a necesitar, los quiero mucho.
A mis bebés A&L por hacerme muy feliz y estar ahí cuando más las necesito. Las amo
muchísimo.
6
Al Instituto Politécnico Nacional que me ha formado desde la educación media superior (Cecyt
14) y superior (ESCOM) y me ha abierto las puertas para recibir una educación y formación de la
más alta calidad.
Son muchas las personas que han formado parte de mi vida profesional a las que me
encantaría agradecerles su amistad, consejos, apoyo, ánimo y compañía en los momentos
difíciles. Algunas están aquí conmigo y otras en mis recuerdos y en mi corazón, sin importar en
donde estén quiero darles las gracias por formar parte de mí, por todo lo que me han brindado y
por todas sus bendiciones. Para ellos: Muchas gracias y que Dios los bendiga.
Mariana.
A mi padre Luis Velázquez Soto, por ser la inspiración de todo lo que hago, quien con sus
consejos ha sabido guiarme, para culminar mi carrera profesional. A mi madre, Leonor
Rodríguez Lara, por sus sacrificios, orientación, comprensión y apoyo incondicional en todo
momento de mi formación.
A mi hermana Daniela, a quien quiero mucho, y que siempre ha estado junto a mí, bridándome su
apoyo.
A todos mis familiares y amigos a los que generalizo por no omitir nombres, por todo el apoyo
incondicional que me han brindado y compartir conmigo buenos y malos momentos.
A mis directores de trabajo terminal, Dr. Jorge Cortes Galicia y Dr. Julio Cesar Sosa Savedra por
su esfuerzo y dedicación, quien con sus conocimientos, su experiencia, su paciencia y su
motivación han logrado que Mariana y yo podamos terminar nuestro trabajo con éxito.
También me gustaría agradecer a mis profesores que durante toda mi carrera profesional han
aportado con un granito de arena a mi formación, y en especial a mi Prof. Víctor Hugo García
Ortega y Miguel Olvera Aldana por sus consejos, su enseñanza y más que todo por su
acompañamiento.
Con respeto a nuestra escuela porque en ella formamos nuestra vida profesional.
José Luis
7
Índice General
Agradecimientos ............................................................................................................................................6
Estructura del documento .............................................................................................................................10
CAPÍTULO 1. INTRODUCCIÓN ...........................................................................................................11
1.1. Antecedentes ................................................................................................................................11
1.2. Objetivo general ...........................................................................................................................12
1.3. Objetivos específicos....................................................................................................................12
1.4. Justificación..................................................................................................................................13
1.5. Marco teórico ...............................................................................................................................13
1.5.1. Sistema embebido ................................................................................................................13
8
3.9. Diagrama de bloques ....................................................................................................................97
3.10. Diagramas de actividades .......................................................................................................101
3.11. Diagramas de estado...............................................................................................................104
3.12. Diagramas de contexto ...........................................................................................................107
3.13. Diagramas de flujo de datos ...................................................................................................110
3.14. Diagramas electrónicos ..........................................................................................................131
3.15. Interfaz de comunicación .......................................................................................................137
3.16. Avances ..................................................................................................................................138
CAPÍTULO 4. IMPLEMENTACIÓN ....................................................................................................147
4.1. Aplicación web...........................................................................................................................148
4.2. Aplicación móvil ........................................................................................................................155
4.3. Dispositivo electrónico ...............................................................................................................158
CAPÍTULO 5. PRUEBAS ......................................................................................................................170
5.1. Pruebas modulares......................................................................................................................170
5.1.1. Aplicación web.........................................................................................................................170
9
Trabajo Terminal No. 2014B 004
Prototipo de sistema de alerta y monitoreo de signos vitales de participantes en
carreras deportivas.
Capítulo 2. Análisis: Se describe la especificación detallada del sistema que sirve como base
para el diseño.
Capítulo 3. Diseño: Se definen detalladamente los componentes del sistema mediante diagramas.
Referencias: Lista ordenada de todas las fuentes consultadas que ayudaron al desarrollo del
documento y construcción del prototipo.
10
CAPÍTULO 1. INTRODUCCIÓN
En este capítulo se presentan una introducción al prototipo propuesto, el cual está integrado por
las secciones de antecedentes, objetivos generales y específicos, justificación del problema,
marco teórico y estado del arte.
1.1. Antecedentes
El atletismo es una buena manera para mantener el cuerpo sano, en forma además de que evita
enfermedades causadas por el sedentarismo, el estrés y el riesgo cardiovascular, fortalece los
músculos para que no se atrofien por falta de actividad, previene a la larga la hipertensión
arterial, ayuda a regular el sobrepeso, a estar en una buena condición física, entre otras cosas [1].
En México, específicamente en el Distrito Federal, el gobierno de este distrito ha organizado
diversas carreras deportivas para fomentar el atletismo en sus habitantes. Como ejemplo de
algunas de estas carreras están: Corriendo con las Estrellas 5k, The Run 2 Ciudad de México 5k y
10k, 30va Carrera del Día del Niño Corredores del Bosque de Tlalpan, Maratón de la Ciudad de
México 2014, entre otras [2].
En 2014, el Instituto Politécnico Nacional (IPN) Canal Once y la Fundación Politécnico A.C.,
organizaron la 7a edición de la carrera IPNONCE K que tiene como objetivo fomentar la
actividad física entre su comunidad, esta carrera se lleva a cabo en distintas ciudades de México
como Cancún, Campeche, Culiacán, Ensenada, Los Mochis, Mazatlán, Morelia, Oaxaca,
Reynosa, Querétaro, Silao Guanajuato, Tampico y Tlaxcala. En la ciudad de México la carrera
inicia en el Casco de Santo Tomás terminando en la unidad Adolfo López Mateos en Zacatenco
completando una ruta de 11 kilómetros, también se realizan carreras de 5 Km, en la que
participan cerca de 10 mil corredores entre los que se rifan 2 automóviles [3].
En el IPN, también se realizan carreras atléticas anuales parecidas a la ONCEK organizadas por
sus unidades académicas, como ejemplo la Escuela Superior de Cómputo (ESCOM) año con año
en el marco de la Semana Cultural y Deportiva se realiza la “Carrera Atlética”, siendo la tercera
vez que se realiza en el año 2014.
Con fundamento en lo anteriormente mencionado, es importante por la seguridad de todos los que
participan en estos eventos tener un control de cada uno de los participantes para así evitar
accidentes o percances fatales, por lo que se propone dar solución a este problema diseñando una
herramienta que permita el monitoreo frecuente de signos vitales del participante y emita alertas
preventivas en caso de ser necesario. De esta forma, los organizadores de dichos eventos
deportivos tendrán un mejor control de la salud de los participantes, y a su vez los participantes
se sientan más seguros de realizar este tipo de actividades.
1.4. Justificación
Las carreras deportivas son una manera sana y divertida de mantener al cuerpo saludable, por lo
que la cantidad de personas interesadas en estas competencias va en aumento. Debido a esto es
difícil para los organizadores de estos eventos mantener un control de cada uno de sus
participantes para evitar cualquier tipo de percance de salud.
Este prototipo será una herramienta de apoyo útil en el monitoreo de cada uno de los
participantes de una carrera. Dicha herramienta está construida mediante un dispositivo
electrónico que el participante llevará consigo, este en conjunto con su teléfono inteligente se
comunicarán inalámbricamente a un servidor, indicando: signos vitales, posición aproximada e
información del participante. Con esta herramienta los organizadores de estos eventos deportivos
podrán tener un mejor control de los participantes. Los participantes, que portarán el dispositivo
electrónico consigo, podrán ir consultando su información en su teléfono inteligente además de
que podrán enviar una alerta ellos mismos si llegasen a necesitarlo.
Por definición del Instituto Balseiro en Argentina tenemos que: Un sistema embebido consiste en
una electrónica programable especialmente diseñada para aplicaciones específicas,
frecuentemente en tiempo real y con requerimientos de alta confiabilidad.
Lo cual nos da a entender que el nombre de “embebido o empotrado” se deriva del hecho que
forma parte de un sistema mucho más amplio como puede ser un proceso o una máquina de las
que vemos hoy en día.
13
Algunos ejemplos de sistemas embebidos son algunos electrodomésticos, todo tipo de
dispositivos para comunicaciones, equipo de cómputo, motores para auto, tabletas electrónicas
etc.
Por definición: Una aplicación móvil (o App como comúnmente se dice) es una aplicación de
software que se instala en dispositivos móviles o tabletas electrónicas para ayudar a los usuarios
en una labor específica, ya sea de carácter profesional o de ocio y entretenimiento.
El objetivo de una aplicación móvil es facilitarnos ciertas tareas que nos llevarían mayor tiempo a
nosotros o asistirnos en operaciones y gestiones del día a día.
Según el autor, una aplicación siendo una palabra de uso común en el mundo del software, el
término App comenzó a utilizarse especialmente para referirse a las aplicaciones para móviles en
2008, tras la consecución de tres sucesos muy importantes en la historia de las aplicaciones, el
14
lanzamiento del App Store de Apple, la publicación del primer SDK para Android y la posterior
pero casi inmediata inauguración de la tienda de Android para bajar aplicaciones [7].
Hoy en día, el sistema GPS está al alcance de todos en el mercado. El usuario puede determinar
con exactitud su ubicación y desplazarse fácilmente al lugar a donde este desee trasladarse, ya sea
caminando, conduciendo, volando o navegando. El GPS es indispensable en todos los sistemas de
transporte del mundo ya que sirve de apoyo a la navegación aérea, terrestre y marítima. Los
servicios de emergencia y socorro en casos de desastre dependen del GPS para la localización y
coordinación de misiones que se encargan de salvar vidas. Actividades cotidianas como
15
operaciones bancarias, de telefonía móvil e incluso de las redes de distribución eléctrica, ganan
en eficiencia gracias a la exactitud que proporciona el GPS.
Muchas personas hoy en día hacen uso de este servicio lo cual los ayuda mucho en sus
actividades diarias [8].
Google nos indica lo siguiente: Como todas las demás aplicaciones Google, Maps está
desarrollado principalmente en JavaScript. La carga y el deslizamiento de imagen no podrían
efectuarse sin este código. Es decir, cada cuadrado es almacenado en un fichero cuyo nombre
indica su longitud, su latitud, y el valor del zoom. Recuperar esta información para todos los
cuadrados a colocar, no es sino una cuestión de derivación de los datos conocidos para un solo
cuadrado. Esto podría ser de gran utilidad en el desarrollo del prototipo propuesto para generar
ubicaciones aproximadas [9].
Modelo cliente-servidor
En un sistema distribuido, cada máquina puede cumplir el rol de servidor para algunas tareas y el
rol de cliente para otras.
La idea es tratar a una computadora como un instrumento, que por sí sola pueda realizar
muchas tareas, pero con la consideración de que realice aquellas que son más adecuadas a sus
características. Si esto se aplica tanto a clientes como servidores se entiende que la forma más
estándar de aplicación y uso de sistemas cliente-servidor es mediante la explotación de las PC a
través de interfaces gráficas de usuario; mientras que la administración de datos, y su seguridad
e integridad se deja a cargo de computadoras centrales tipo mainframe.
17
Usualmente, la mayoría del trabajo que hace una aplicación se realiza en el servidor y los clientes
sólo se ocupan de la interacción con el usuario (aunque esto puede variar). En otras palabras, el
modelo cliente-servidor es una diferente forma de programar, es una extensión de la
programación modular en la que la base fundamental es separar una gran pieza de software en
módulos y así poder trabajar más eficazmente, esto con el fin de hacer más fácil el desarrollo y
mejorar el mantenimiento de dicho software.
Toda la información es almacenada en el lado del servidor que es el que va a estar obteniendo las
peticiones del cliente, suele tener mayor seguridad que los clientes. Este modelo permite
distribuir físicamente los procesos y los datos en forma más eficiente, lo que en computación
distribuida afecta directamente al tráfico de la red, reduciéndolo grandemente. [11]
Por definición: Una computadora está formada por un parte física y otra lógica (hardware &
software), la primera de estas está conformada por los elementos físicos que la conforman
(dispositivos electrónicos y mecánicos), la parte lógica es aquella que determina que procesos se
van a realizar con la información de entrada.
La instrumentación electrónica, que se encarga del diseño y manejo de los aparatos electrónicos,
sobre todo para su uso en mediciones. La instrumentación electrónica se aplica en el uso de un
sensor y el procesamiento de la información proveniente de variables físicas y químicas, a partir
de las cuales realiza el monitoreo y control de procesos industriales, empleando dispositivos,
tecnologías electrónicas e interfaces con sistemas computacionales.
La información de las variables a medir o que se quiera capturar se almacenan en algún tipo de
variable eléctrica, generalmente tensión. Esa variable eléctrica es lo que se denomina señal.
Variables analógicas: Es aquella que tiene un margen de variación infinito, esto es que
puede tomar infinitos valores.
18
En un sistema de medida se pueden distinguir tres funciones principales: adquisición de datos,
procesamiento de datos y distribución de los datos.
La adquisición de datos o adquisición de señales, consiste en la toma de muestras del mundo real
(sistema analógico) para generar datos que puedan ser manipulados por un ordenador u otras
electrónicas (sistema digital). Consiste, en tomar un conjunto de señales físicas, convertirlas en
tensiones eléctricas y digitalizarlas.
Se requiere una etapa de acondicionamiento, que adecua la señal del sensor a niveles compatibles
con el elemento que hace la transformación a señal digital (ADC).
La variable del mundo físico es convertida a una señal eléctrica a través de un sensor. Con
frecuencia, la señal procedente del sensor tiene características no aptas para ser procesadas:
señal de muy baja amplitud, espectro grande, baja linealidad, etc. Para ello se necesita la etapa
de acondicionamiento de la señal. El acondicionamiento consiste en la manipulación electrónica
de la señal proveniente directamente del sensor, a través de circuitos acondicionadores, para
obtener rangos de voltajes o corrientes adecuados a las características del diseño
(amplificación, filtrado, liberalización o modulación/demodulación).
Linealización: Obtener una señal de salida que varié linealmente con la variable que se
desea medir.
19
Modulación / Demodulación: Modificar la forma de la señal a fin de poder transmitirla a
largas distancias o a fin de reducir su sensibilidad frente a interferencias durante el
transporte.
La distribución de los datos implica codificar los datos procesados bajo algún principio eléctrico
hacia algún modulo capaz de presentarlos al usuario y/o distribuirlos a otros sistemas de medida
y/o controladores.
Sensores
Como nos dice R. Pallas en su libro titulado Sensores y acondicionadores de señal [12] Un sensor
es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de
20
instrumentación, y transformarlas en variables eléctricas un sensor a diferencia de un
transductor en que el sensor está siempre en contacto con la variable de instrumentación con lo
que puede decirse también que es un dispositivo que aprovecha una de sus propiedades con el fin
de adaptar la señal que mide para que la pueda interpretar otro dispositivo.
El número de sensores disponibles para distintas magnitudes físicas es tan elevado que existen
diversas clasificaciones de estos.
Su aporte de energía
Su modo de funcionamiento
o Deflexión: La magnitud medida produce algún efecto físico, que engendra algún
efecto similar, pero opuesto en alguna parte del instrumento, y que está
relacionado con alguna variable útil.
Su relación de entrada-salida
Según el tipo de relación entrada-salida, los sensores pueden ser de orden cero, de primer orden,
de segundo orden o de orden superior.
21
Su señal de salida
Su magnitud medida
Para el estudio de un gran número de sensores se suele acudir a su clasificación de acuerdo con la
magnitud medida; temperatura, presión, caudal, humedad, posición velocidad, aceleración fuerza,
par, etc.
Transmisión de datos es la transferencia física de datos (un flujo digital de bits) por un canal de
comunicación punto a punto o punto a multipunto.
Convertidor analógico-digital
Para procesar señales analógicas por medios digitales es necesario convertirlas a formato
digital, esto es, transformarlas en una secuencia de números. Este procedimiento se denomina
conversión analógico-digital (ADC) [13].
Conceptualmente, se puede ver que la ADC posee un proceso de tres pasos los cuales son (Ver
figura 1.4):
1. Muestreo. Esta es la conversión de una señal en tiempo continuo a una señal en tiempo
discreto obtenida tomando muestras de la señal en tiempo continuo en instantes de tiempo
discreto.
22
2. Cuantificación. Esta es la conversión de una señal en tiempo discreto con valores
continuos a una señal en tiempo discreto con valores discretos (señal digital). El valor de
cada muestra de la señal se representa mediante un valor seleccionado de un conjunto
finito de valores posibles.
J. L. H. David A. Patterson [14] nos indica que un dispositivo programable es un elemento capaz
de realizar una tarea específica de procesamiento de información mediante el uso de un lenguaje
de programación para su configuración. Los dispositivos programables de mayor relevancia son
los dispositivos lógicos programables (PLD), microprocesadores y microcontroladores, para
efectos del desarrollo de este prototipo indicaremos las características de un microcontrolador.
Microcontrolador
Es un circuito integrado que contiene un microprocesador de forma interna, con todos los
componentes para poder funcionar de forma autónoma.
Procesador.
Memoria RAM.
Memoria de programa ROM/PROM/EPROM.
Módulos de E/S para comunicarse con el exterior.
23
Módulos para el control de procesos
Oscilador interno para generar la señal de reloj
Cada fabricante tiene numerosas variantes de microcontroladores con diferentes prestaciones.
Temporizadores (Timers).
Perro guardián (Watchdog).
Protección frente a fallo de alimentación (Brown-out).
Estado de bajo consumo.
Conversores AD y DA.
Modulador de anchura de pulsos PWM.
Comparadores Analógicos.
Puertos de E/S digital.
Unidad DSP (Procesador digital de señales)
Interfaces de comunicación: UART, I2C, SPI, CAN, USB.
Algunos microcontroladores cuentan con módulos ADC (Convertidor analógico-digital) para
digitalizar señales que son obtenidas de manera análoga. El voltaje de salida de este sensor es
convertido a valores digitales (0 y 1).
En la actualidad existen diversos sistemas similares al prototipo propuesto, entre los más
destacados se encuentran:
24
2. Proyecto de investigación “Vigilancia y Análisis Continuo de Signos Vitales (VACS)” del
Instituto de Ciencias Nucleares (ICN) de la UNAM.
Detectar en tiempo real arritmias cardiacas, temperatura, desplazamientos e incluso caídas
de adultos mayores es posible con un brazalete electrónico, cuyo diseño coordina
Benjamín Alejandro Morales Ruiz en el Instituto de Ciencias Nucleares (ICN) de la
UNAM. Este desarrollo, equivalente a un botón de ayuda inteligente, es parte del
proyecto Vigilancia y Análisis Continuo de Signos Vitales (VACS), que además integra
plataforma de servicios de telemetría y tele-asistencia.
Mediante el monitoreo en tiempo real del pulso cardiaco, la movilidad, geolocalización y
temperatura, el sistema pretende tomar control del estado de salud general del usuario
mediante la generación de una serie de servicios, lo que permitirá ofrecer seguridad y
tranquilidad, tanto a los usuarios como a sus familiares [16].
3. Proyecto de investigación “Sistema Telemétrico De Monitoreo Cardiaco Y Variables
Hombre-Máquina Aplicado Al Ciclismo” de la Facultad de Ingeniería, Escuela de
Ingeniería Electrónica, Universidad Central
Sistema de monitorización mediante telemetrías del ritmo cardiaco y variables hombre-
máquina empleadas en el entrenamiento de ciclistas tanto en ruta como en pista.
Este sistema consta de una unidad remota móvil (URM) acoplada a la bicicleta que
digitaliza, registra, procesa y envía la información por un medio inalámbrico, a una
unidad base móvil (UBM) la cual se conecta a un computador donde se visualizan en
tiempo real las variables monitoreadas en el deportista. Además el equipo tiene la
capacidad de operar con uno u ocho ciclistas al mismo tiempo, almacenar, visualizar,
graficar e imprimir la información adquirida [17].
4. “Podium. Chamarra inteligente para corredores”.
La prenda, llamada Podium, está dirigida a corredores. Cuenta con sensores para medir el
ritmo cardiaco, temperatura corporal, cantidad de calorías quemadas en cada rutina y
hasta puede registrar los recorridos en tiempo real. Puede conectarse a teléfonos y guardar
información en la nube [18].
5. “Simband. Salud Digital de Samsung”.
Samsung tiene su propio diseño de sensores, su Plataforma de Sensores Avanzada. El
sensor se basa en la detección de luz. La luz reflejada proporciona información sobre lo
25
que hay en el cuerpo, y junto con otros sensores, permiten medir de forma continua la
temperatura de la piel, la presión arterial, etc. [19].
6. “Smart Run. El reloj al ritmo de los atletas.”
Adidas, a la vanguardia de la innovación en equipamiento deportivo, diseñó el Smart Run,
un reloj multifuncional que tiene como objetivo optimizar el entrenamiento atlético. Este
dispositivo cuenta con monitoreo cardiaco integrado a través de un sensor óptico, por
medio de un GPS incorporado controla la velocidad, distancia y ruta recorridas, además
de que se conecta por Bluetooth 4.0 a audífonos [20].
A continuación se muestra una tabla comparativa (Tabla 1) entre los sistemas existentes y el
Trabajo Terminal que se propone.
FORMA DE
INTERFAZ DE
SOFTWARE CARACTERÍSTICAS SALIDA DE
COMUNICACIÓN
INFORMACIÓN
Trabajo Terminal Medición del pulso
“Sistema de cardíaco y temperatura
Monitoreo de Pulso corporal de forma Comunicación
Cardiaco y inalámbrica para su uso Interfaz gráfica Serial Mediante
Temperatura Corporal en la sesión de Radiofrecuencia
para el Entrenamiento entrenamiento
Deportivo” deportivo.
Proyecto de
investigación
Monitoreo en tiempo
“Vigilancia y Análisis
real del pulso cardiaco,
Continuo de Signos Conexión de datos
la movilidad, geo- Interfaz gráfica
Vitales (VACS)” del de telefonía móvil.
localización y
Instituto de Ciencias
temperatura.
Nucleares (ICN) de la
UNAM
Proyecto de
investigación
“Sistema Telemétrico
De Monitoreo
Cardiaco Y Variables Monitoreo de ritmo
Hombre-Máquina cardíaco, porcentaje de Radiofrecuencia con
Aplicado Al esfuerzo, velocidad, Interfaz gráfica una banda de 902-
Ciclismo” de la cadencia, metros 928MHz
Facultad de recorridos.
Ingeniería, Escuela de
Ingeniería
Electrónica,
Universidad Central
26
Monitoreo del ritmo
“Podium. Chamarra cardiaco, temperatura
Bluetooth, wi-fi,
inteligente para corporal, calorías Interfaz gráfica
conexión de datos
corredores” quemadas y recorridos
en tiempo real.
Monitoreo de: presión
arterial, su ritmo de
respiración, la
“Simband. Salud
frecuencia cardíaca, el Pantalla LCD WiFi y Bluetooth
Digital de Samsung”
nivel de hidratación y
cantidad de dióxido de
carbono en sangre.
Sensor de ritmo cardíaco
sin correas totalmente
integrado; velocidad,
distancia, cadencia y
“Smart Run. El reloj ruta basadas en el GPS
Pantalla LCD WiFi y Bluetooth
al ritmo de los atletas” Interacción del usuario
con un solo botón
SMART RUN requiere
acceso a Internet con
WLAN para funcionar.
Monitoreo del
participante mediante el
uso de un dispositivo
electrónico que, en
conjunto con un teléfono
inteligente se
comunicarán
Sistema de alerta y Aplicación que
inalámbricamente a un
monitoreo de reciba la Bluetooth, Wifi y
servidor y que indicarán
participantes en información del conexión de datos
en una aplicación que
carreras deportivas. participante, de telefonía móvil
reciba la información
(Solución Propuesta). Aplicación móvil
del atleta: signos vitales,
posición exacta e
información del
participante. Además
emitirá alertas
preventivas en caso de
ser necesario
Tabla 1.1. Resumen de sistemas o productos similares.
27
CAPÍTULO 2. ANÁLISIS
2.1. Metodología
Antes que nada, definiremos la metodología que se seguirá durante el desarrollo de este
prototipo. Durante el desarrollo de este proyecto, se pretende en una primera instancia analizar
las características técnicas y operativas del sistema.
Posteriormente se diseñará y desarrollará tanto la parte del hardware como del software que
consta principalmente de: el dispositivo electrónico, la aplicación móvil y la aplicación de web.
Se pretende usar una metodología en V [21] que consiste en 7 fases que se enlistan a
continuación:
• DEFINICIÓN DE ESPECIFICACIONES (Fase 1): Se definirán y documentarán los
diferentes requisitos del sistema a desarrollar, identificando los valores numéricos más
concretos posibles. Entre ellos debe estar la especificación del nivel de integridad, o
SIL, en caso de ser requerido.
• DISEÑO GLOBAL (Fase 2): También llamado diseño de alto nivel. Su objetivo es
obtener un diseño y visión general del sistema.
• DISEÑO EN DETALLE (Fase 3): Consiste en detallar cada bloque de la fase anterior.
• IMPLEMENTACIÓN (Fase 4): Es la fase en la que se materializa el diseño en detalle.
• TEST UNITARIO (Fase 5): En esta fase se verifica cada módulo de hardware y software
de forma unitaria, comprobando su funcionamiento adecuado.
• INTEGRACIÓN (Fase 6): En esta fase se integran los distintos módulos que forman el
sistema. Se comprueba el cumplimiento de los requisitos establecidos.
• TEST OPERACIONAL DEL SISTEMA (Fase 7): Se realizan las últimas pruebas pero
sobre un escenario real, en su ubicación final, anotando una vez más las pruebas
realizadas y los resultados obtenidos.
En la Figura 2.1 se indican las etapas del proceso que sigue esta metodología para el desarrollo
del sistema.
28
Figura 2.1. Modelo en V del ciclo de vida del sistema.
En este punto se hará un análisis de cada una de las aplicaciones que conforman el prototipo
propuesto, indicando también los requerimientos funcionales y no funcionales.
Dispositivo electrónico
En caso de que el participante desee consultar su historial de signos vitales o sus signos vitales
actuales, la aplicación móvil deberá desplegarla en pantalla.
30
Aplicación Web
La aplicación mandará una petición al servidor para obtener los datos enviados desde la
aplicación móvil.
La aplicación desplegará la información obtenida por el servidor en una interfaz web, a su vez irá
generando un historial de los participantes de la carrera y resaltará a los participantes que
necesiten auxilio.
Se propuso como aplicación que reciba la información del participante a una aplicación web,
estos requerimientos se indicarán en la tabla 2.3.
31
Requerimientos generales del sistema
A continuación en la tabla 2.4 se indica un listado de las principales reglas del negocio que rigen
el sistema.
Regla Descripción
RN0 El sistema: El sistema contará con organizadores (organizadores de las carreras) y participantes (atleta o
participante). Además de estar conformado por tres módulos principales (dispositivo electrónico, dispositivo
móvil y aplicación principal)
RN1 Alertas: Las alertas generadas se enviarán directamente al servidor y de ahí a la aplicación principal del
sistema.
RN2 Ubicación: La ubicación enviada desde el dispositivo del participante es aproximada.
RN3 Información: Toda la información enviada entre los diferentes módulos del sistema está sujeta al servicio
de datos con el que cuente el teléfono móvil del participante o el servicio WiFi de la zona.
RN4 Información personal: Toda la información proporcionada por el participante se usará únicamente como
prevención de un accidente.
RN5 Registro de participantes: Los números de participante son únicos y no se podrán duplicar. Solo los
participantes podrán registrar los organizadores.
RN6 Registro de organizadores: El organizador podrá registrar organizadores en la aplicación web y móvil.
RN7 Búsqueda de los datos: El organizador podrá buscar al participante por medio de su número de
participante.
RN8 Evaluación de signos vitales: Los diagnósticos hechos por el sistema no sustituyen a las de un médico, se
utilizarán como base para el diagnóstico los signos vitales mostrados en la tabla 3.
32
RN9 Generación de historiales de signos vitales: El participante y los organizadores podrán usar los historiales
como mejor les convenga.
RN10 El participante: Deberá portar en el lugar indicado por el organizador el dispositivo electrónico, además de
contar con un dispositivo móvil con servicio de datos para el correcto envío de información.
RN11 El participante: Deberá ser mayor de edad (mayor de 18 años) y no deberá sobrepasar la edad de 70 años,
ya que el rango que se considera para hacer el diagnostico no permite a personas que no cumplan con este
requisito.
RN12 Aplicación web. La aplicación web podrá utilizarse sujeto al servicio de internet del área donde se realice la
carrera.
RN13 Carreras: Las carreras deportivas únicamente englobarán a las que el participante no esté en contacto con
ambientes que impliquen agua o humedad, debido a que puede haber fallas en el dispositivo electrónico.
Viabilidad técnica
33
Los autores de libro Fundamentos de enfermería Vol. 1 y Vol. 2, J.M. Wilkinson.B. Kozier. G.
Erb y K. Blais [24] nos indican que al momento de medir la frecuencia respiratoria, la persona a
evaluar debe permanecer en reposo, no debe estar consiente que su frecuencia respiratoria será
medida y preferentemente debe estar en decúbito supino (acostado boca arriba) por esta razón no
será posible tomar este signo vital en cuenta para la realización de este prototipo ya que el
participante estaría consiente de que su respiración está siendo medida y se va a encontrar
realizando actividad física.
Adicionalmente, un artículo escrito por Gatorade “Sports Science Institute” [25] nos indica que
La evaluación inicial de un deportista que sufre un colapso en el terreno de juego debe de
comenzar con una evaluación rápida del nivel de consciencia del deportista. Si el deportista está
despierto y alerta, la causa del colapso es probablemente benigna. En aquellos con un nivel de
consciencia reducido se debería evaluar si se requiere resucitación cardiorrespiratoria. Los
signos vitales a monitorizar tan pronto como sea posible incluyen la temperatura corporal y la
frecuencia cardiaca. El cerebro es el órgano más delicado del que dispone el ser humano. La
falta de oxígeno ocasionará, en poco tiempo, lesiones irreversibles produciéndose la muerte en 8
- 10 minutos. Por lo tanto cualquier paro cardiaco (fracaso de las funciones cardíaca y/o
respiratoria, con la consiguiente incapacidad para hacer llegar sangre oxigenada a las células)
es una situación de máxima emergencia ya que del tratamiento inmediato dependerá la vida del
paciente, la temperatura corporal alta o el llamado golpe de calor puede conducir a un daño
orgánico serio o incluso a la muerte si no se tratan rápidamente y de manera apropiada. El
lugar donde el deportista sufre el colapso es una pista de la gravedad del episodio, un colapso
tras la competencia es menos importante que si sucede durante ésta.
J.M. Wilkinson.B. Kozier. G. Erb y K. Blais [24] nos indican que el pulso cardíaco de una
persona es la pulsación provocada por la expansión de sus arterias como consecuencia de la
circulación de sangre bombeada por el corazón. Se obtiene por lo general en partes del cuerpo
donde las arterias se encuentran más próximas a la piel. Para la correcta medición del pulso
cardíaco se debe situar el aparato de medición cerca de alguna de estas arterias principales, que
son: arteria carótida (cuello), femoral (pierna) o braquial (brazo). Esta medición puede hacerse en
cualquier momento para evaluar la condición del paciente y en actividad física nos sirve para
saber si el corazón está soportando la actividad que está realizando, así que se podrá incluir en la
realización de este prototipo.
34
Health Information [26] nos indica que la temperatura corporal, para mayor exactitud, debe
medirse en el lóbulo de la oreja, la frente, la axila o el recto, ya que es una medida de la
capacidad del cuerpo para generar y liberarse del calor, se propone que la medición sea en el
lóbulo de la oreja así que podrá incluirse en el prototipo. Cuando se tiene demasiado calor, los
vasos sanguíneos en la superficie de la piel se expanden (dilatan), para llevar el exceso de calor a
la superficie de la piel. En el deporte pueden llegar a suceder los llamados “golpes de calor” o
aumento considerable en la temperatura en los deportistas, el golpe de calor no suele ser la causa
de los colapsos pero cuando lo es, puede ser fatal si no se diagnostica pronto y si no se trata
inmediatamente con inmersión en agua helada hasta enfriar.
Por lo anteriormente mencionado, concluimos que las variables a medir para este prototipo serán:
El pulso cardíaco y la temperatura corporal.
Hombres Mujeres
Temperatura Temperatura
Pulso Cardíaco Pulso Cardíaco
Corporal Corporal
Edad (mínimo- (mínimo-
(mínimo- (mínimo-
máximo) máximo)
máximo) máximo)
18-20 90-200 35.5 – 39 °C 88-190 35.5 – 39 °C
25 86-196 35.5– 39 °C 86-198 35.5– 39 °C
30 82-192 35.6 – 39 °C 80-195 35.6 – 39 °C
35 77-187 35.9 – 39 °C 76-193 35.9 – 39 °C
40 73-183 36.1 – 39 °C 71-190 36.1 – 39 °C
45 69-179 36.3 – 39 °C 70-185 36.3 – 39 °C
50 65-175 36.7 – 39 °C 65-180 36.7 – 39 °C
55 60-170 36.8 – 39 °C 60-176 36.8 – 39 °C
60 60-166 36.8 – 39 °C 60-170 36.8 – 39 °C
65 60-162 36.9 – 39 °C 60-167 36.9 – 39 °C
70 60-158 36.9 – 39 °C 60-163 36.9 – 39 °C
Tabla 2.5. Signos vitales
35
Es de importancia indicar que los valores manejados en este prototipo varían de acuerdo a edad,
sexo, salud y estilo de vida de cada persona, entre otros factores
Ya definidos los signos vitales a medir y con base a los requerimientos previamente establecidos,
a continuación se muestra un estudio comparativo de los componentes electrónicos principales a
usar, los cuales serán:
En la tabla 2.6 se muestra un estudio comparativo para el primer componente (sensor de pulso
cardíaco). En esta tabla se indica remarcado el sensor que se eligió y después la justificación del
porqué se eligió.
Interfaz
Corriente
de Bits de Voltaje de
Dispositivo Tipo que Fabricante Precio
comunica- resolución alimentación
consume
ción
PulseSensor Analógi- 25.00
N/A N/A 3V a 5V 4mA pulsesensor.com
[29] co USD
Model 1020
Analógi-
infrared pulse 25.00
co (5-50 N/A N/A 6V a 9V 20mA UFI
plethysmograph USD
mV)
[30]
3V cuando
14.95
RMCM01 [31] Digital detecta N/A 2.5V a 3.4V 60 mA POLAR
USD
latido
Analógi-
Heartbeat Pulse
co SUNROM 22.64
Sensor - Analog N/A N/A 3V a 5.25V 7 mA
(Rango TECHNOLOGIES USD
Out [32]
0-5V)
Tabla 2.6. Estudio Comparativo Sensor de Pulso Cardíaco
36
Justificación: Se eligió el componente PulseSensor como sensor de pulso cardíaco, ya que es el
que consume menor corriente.
¿Cómo medirá PulseSensor el pulso cardíaco? Las arterias principales son las que transportan
oxígeno a todo el cuerpo, cuando en las arterias pasan grandes cantidades de sangre oxigenada
estas cambian de color, es aquí cuando el sensor de pulso cardíaco capta el cambio de color. El
sensor consiste en un emisor infrarrojo y un detector montado a un lado y debe estar presionado
contra la piel. Cuando el corazón bombea, la presión en las arterias (por el transporte de la
sangre) se eleva considerablemente y lo mismo ocurre con la cantidad de luz infrarroja
procedente del emisor que se refleja en el detector. [29] [33].
Al ser este sensor uno de tipo “Analógico” requerirá que el microcontrolador tenga puertos A/D
para convertir la señal analógica obtenida a digital.
Hay que tener en cuenta para la medición del pulso cardíaco lo siguiente:
Uno de contracción llamado sístole y otro de dilatación llamado diástole. Pero la sístole y la
diástole no se realizan a la vez en todo el corazón, se distinguen tres tiempos:
Sístole: se contraen las aurículas y la sangre pasa a los ventrículos que estaban vacíos.
Diástole: Las aurículas y los ventrículos se dilatan, al relajarse la musculatura, y la sangre entra
de nuevo a las aurículas.
Los golpes que se producen en la contracción de los ventrículos originan los latidos [34].
La señal de pulso cardiaco habitual tiene dos principales ondas (Ver figura 2.2):
37
Onda T: Representa la repolarización ventricular (Diástole).
Para el procesamiento de esta señal, es decir pasar del dominio del tiempo al dominio de la
frecuencia, proponemos un algoritmo para esto. En la tabla indicamos los diferentes algoritmos
que existen y su grado de complejidad computacional.
Transformada discreta de n2
Fourier
Auto-correlación n
2.7. Algoritmos de procesamiento
Para elegir el componente encargado del filtrado de la señal, en la tabla 2.7 se indica un estudio
comparativo entre los principales filtros en el mercado, considerando principalmente su tamaño y
que sea de bajo consumo de energía. El filtrado [35] es un proceso por el que el contenido de
frecuencia de una señal es alterado.
38
Los filtros eliminan frecuencias indeseadas. Dependiendo del rango de frecuencia que dejan pasar
o minimizan, se clasifican de la siguiente forma:
Filtro de paso bajo: Deja pasar frecuencias bajas pero minimiza las altas frecuencias.
Filtro de paso alto: Deja pasar frecuencias altas pero minimiza las bajas.
Filtro de paso de banda : Pasan las frecuencias que están dentro de un cierta banda de
frecuencias
Voltaje
Corriente
Máxima de Voltaje de
de Preci
Dispositivo Tipo frecuencia Orden alimenta alimentació Fabricante
alimentació o
de corte ción n
n
Dual
TEXAS
LMF100 Pasa 0.1 - 100 4.16
2do ±5V 5V 8 -12 mA INSTRUMENT
[38] bajas Hz USD
S
El filtro recibirá dos frecuencias, una es la frecuencia cardíaca y otra será nuestra frecuencia de
corte. Para saber la frecuencia de corte tenemos que un Hercio (Hz) es equivalente a un ciclo por
39
segundo. Si tomamos en cuenta los valores indicados en la tabla 2.8, considerando un máximo de
200 latidos por minuto, entonces frecuencia de corte (fc) = 200/60=3.3 (Redondeado a 4). La hoja
de datos del filtro MAX295 elegido en la tabla, nos indica que debemos suministrar 50 veces la
frecuencia máxima de corte. Por lo que se tiene 4x50=200 Hz, estos son los Hertz que se le
suministrarán al filtro. Lo anterior nos servirá para la fase de pruebas.
Corriente
Interfaz de Bits de Voltaje de Precio
Dispositivo Tipo que Fabricante
comunicación resolución alimentación aproximado
consume
170 – 430
EMC1414 [42] Digital SMBus 8 3.3V Microchip 1.09 USD
µA
0.750 – 1
DS18B20 [43] Digital 1-Wire 12 3.0V – 5.5V MAXIM $50.00 M.N.
mA
1 – 200
MCP9801 [44] Digital 2-Wire 12 2.7V – 5.5V Microchip 1.12 USD
µA
0.1 - 250
TC77 [45] Digital SPI 13 2.7V - 5.5V Microchip 0.92 USD
μA
Tabla 2.9. Estudio Comparativo Sensor de Temperatura
Justificación: Se eligió el componente TC77 como sensor de temperatura por su bajo consumo de
corriente y su costo menor al de los demás componentes considerados. Adicionalmente de los
dos encapsulados disponibles, elegimos el encapsulado SOT-23-5 por ser de menor tamaño a
comparación del SOIC. ¿Cómo medirá TC77 la temperatura? Al aumentar la temperatura
aumenta la conducción en los semiconductores. Al ser el TC77 un diodo (tiene semiconductores)
al aumentar la temperatura, aumenta el voltaje de salida y si baja disminuye el voltaje [45].
40
Corriente
Interfaz de Voltaje de
Dispositivo Standard Modo que Fabricante Precio
comunicación alimentación
consume
Master
Bluetooth 25 – 65 Roving 26.40
RN-41 [46] and UART 3V a 3.6V
2.1 mA Network USD
Slave
Bluetooth $129.00
HC-06 [47] Slave UART 3V a 4.2V 25-40mA rcscomponents
2.1 M.N.
Master 0.348 - ISSSC
Bluetooth 13.77
BM77 [48] and UART 3.2 a 4.3V 13.073 Techonologies
4 USD
Slave mA Corp.
Master
SPBT2632C1A Bluetooth 0.49-27.7 Life 15.00
and UART 2.0 – 3.6V
[49] 3 mA augmented USD
Slave
Master
Bluetooth 79.55
OBS421 [50] and UART 3.0 – 6.0V 0.6-44 mA u-blox
4 USD
Slave
Tabla 2.10. Estudio Comparativo Módulo Bluetooth
Justificación: Se eligió el componente HC-06 como módulo bluetooth ya que solo se ocupará en
modo esclavo porque no es necesario que el inicie la conexión esto debido a que el que siempre
va a iniciar la conexión es el dispositivo móvil para la recopilación de la información, este
último posee una interfaz de gestión de conexión para ello.
Co-
M No. U Memoria Voltaje
Puer S I rrien-
Micro – I Arquitec Oscila de A de Fabri- de Pre
tos P 2 te que
controlador P tura dor puer R programa cante alimenta cio
A/D I C consu
S tos T (KB) ción
me
30 3.3
PIC24F08K 1 8 Microc 1.8V a nA - 7
Harvard 20 12 1 1 1 8 150
L201 [51] 6 MHz hip 3.6V US
µA D
30 3.3
PIC24F08K 1 8 Microc 1.8V a nA - 7
Harvard 20 12 2 2 2 3
L302 [52] 6 MHz hip 3.6V 150 US
µA D
30 2.5
PIC24F16K 1 Microc 1.8V a nA- 0
Harvard 8MHz 20 12 2 2 2 16
L401 [53] 6 hip 3.6V 150 US
µA D
41
1- 3.0
ATtiny87 1 16MH 1.8V a 100 9
RISC 20 11 1 2 1 8 Atmel
[54] 6 z 5.5V µA US
D
0.1 - 1.5
Texas
MSP430F1 1 1.8V a 200 7
RISC 8MHz 20 6 2 2 0 10 Instrum
10 [55] 6 3.6V µA US
ents
D
Tabla 2.11. Estudio Comparativo Microcontrolador
En la tabla 2.12 se muestra un estudio comparativo para el sexto componente (regulador). En esta
tabla se indica remarcado el regulador que se eligió y después la justificación del porqué se
eligió.
Corriente de Voltaje de
Dispositivo Voltajes de salida Fabricante Precio
salida entrada
Analog 1.10
ADP7142 [57] 1.8, 2.5, 3.3, 5.5 200 mA 2.7V - 40V
Devices USD
Texas 2.18
LM2936 [60] 3, 3.3 , 5 50 mA 3.0 – 5.0V
Instruments USD
42
incluye un circuito de reset interno que indica cuando la salida del regulador cae por debajo
tolerancias de suministro de microprocesador estándar lo cual nos ayudará a saber cuándo es
necesario cambiar la pila que lo alimentará. Adicionalmente, el encapsulado será el SOT23-6
por ser el de menor tamaño.
El costo que tendrá cada uno de los componentes electrónicos en pesos mexicanos con tipo de
cambio de $15.37 es el siguiente:
PulseSensor: $ 384.25
TC77: $14.14
PIC24F16KL401: $38.43
HC-06: $129.00
MAX295: $60.25
MAX6349TLUT-T: $368.57
Total: $ 994.64
Fuente de alimentación.
Para el dispositivo electrónico, necesitamos definir una fuente de alimentación que satisfaga
correctamente a cada uno de sus componentes principales tanto en modo standby (modo
dormido) como en modo activo. Para esto tenemos que la corriente que consumen cada uno de
ellos y su suma total en la tabla 2.13.
Debemos considerar una fuente de alimentación portátil que soporte el consumo del dispositivo
electrónico, además de tener un margen de error en caso de necesitarlo, para esto necesitamos
43
saber la duración de la fuente en relación al consumo del dispositivo para eso utilizaremos la
siguiente ecuación [61]:
En la tabla 2.14 indica las principales marcas de baterías que son de menor tamaño en el
mercado. Consideraremos que el voltaje de alimentación que se va a estar manejando para
todo el dispositivo electrónico será de 3.3 volts. 194,19.025
44
Terminando con la parte del dispositivo electrónico, ahora seleccionaremos el sistema operativo
móvil en el cual la aplicación se desenvolverá y el cual recopilará la información enviada del
dispositivo electrónico. En la tabla 2.15 se muestra un estudio comparativo entre los diferentes y
más comunes sistemas operativos móviles el cual será el ambiente en donde la aplicación se
desenvuelva, además de ser atractiva para el o los usuarios.
Windows Blackberry
Sistema operativo IOS [62] Android [63]
Mobile [64] OS [65]
Open Handset
Compañía desarrolladora Apple Inc. Microsoft RIM
Alliance/Google
Visual Basic,
Lenguaje de desarrollo Objective-C Java Java
Visual C#
Precio del SDK (Software
$99 USD al
Development Kit-kit de desarrollo Gratis Gratis Gratis
año
software)
Windows, Linux, Mac
Plataformas soportadas por el SDK Mac OS Windows Windows
OS
Tabla 2.15. Sistemas operativos móviles
Para poder elegir adecuadamente un sistema operativo móvil, también nos basamos en las
tendencias del mercado actual, por lo que según un artículo de la CNN titulado “Android dominó
el mercado de los smartphones” en donde se aprecia en la Figura 2.4 [66] el aumento de la
preferencia por Android y afirman seguirá en aumento, y el periódico el Universal en donde se
aprecia la siguiente información:
“…los teléfonos con sistema operativo Android registran la mayor dinámica del mercado
nacional, junto con los dispositivos que vienen de marcas y proveedores muy conocidos…” [67]
45
Figura 2.4. Actividad en el mercado mundial
Concluimos que con base al mercado y la tabla 2.14 hemos decidido que para el desarrollo de
nuestro prototipo, el sistema operativo Android será el sistema operativo en la cual nuestra
aplicación (de prueba) se desenvuelva.
46
Portabilidad: se ejecutan desde cualquier ordenador con Es necesaria una conexión a Internet.
conexión a internet.
La comunicación constante con el
La información que manejan es accesible a través de servidor que ejecuta la aplicación,
internet, por lo que son especialmente interesantes para establece una dependencia a una
desarrollar aplicaciones multiusuario basadas en buena conexión a internet.
compartir información.
El servidor debe tener las
Son aplicaciones muy ligeras (el Navegador de Internet no prestaciones necesarias para ejecutar
contiene el programa) por lo que el Usuario no necesita la aplicación de manera fluida, no
tener un ordenador de grandes prestaciones para trabajar sólo para un usuario sino para todos
con ellas. los que la utilicen de forma
concurrente.
Consumen muy pocos recursos del equipo en el que están
Aplicaciones instaladas. Se pierde tiempo de desarrollo
web haciéndolas compatibles con los
Son fáciles de actualizar y mantener. distintos navegadores (aunque los
Los usuarios pueden participar en la elaboración de los frameworks ayudan a solventar
contenidos. Se pueden distribuir e instalar en miles de algunos de estos problemas).
equipos sin limitación o restricción alguna. Su tiempo de respuesta es más lento
Su funcionalidad es independiente del sistema operativo que el de las aplicaciones desktop
instalado en el ordenador del usuario. (esto ha mejorado mucho utilizando
tecnologías como AJAX).
No hay problemas de incompatibilidad entre versiones,
porque todos los Usuarios trabajan con la misma versión.
Seguridad.
Debido a que se requiere que nuestra aplicación pueda correr en múltiples plataformas (por
ejemplo Windows, Mac, Linux), se optó por que la aplicación que reciba la información del
participante sea una aplicación web (de prueba), además de que nos ofrece muchas ventajas como
por mencionar algunas están que las aplicaciones web siempre se mantienen actualizadas y no
requieren que el usuario deba descargar actualizaciones y realizar tareas de instalación, también
no necesitan ser descargadas, instaladas y configuradas. Además pueden los usuarios pueden
acceder a ella desde cualquier computadora conectada a la red.
Pueden funcionar en cualquier equipo que disponga de un navegador web. Esto aplica tanto a
celulares, tabletas electrónicas y otros dispositivos modernos. Otra razón es que con aplicaciones
basadas en web todos utilizan la misma versión, y los bugs pueden ser corregidos tan pronto
como son descubiertos beneficiando inmediatamente a todos los usuarios del sistema.
Por lo tanto con base en lo anterior y en la tabla 2.16 hemos decidido que para el desarrollo de
este prototipo, una aplicación web será la que monitoreará a los participantes.
47
Debido a que se eligió una aplicación web, en la tabla 2.17 se muestra un estudio comparativo
para elegir los lenguajes de programación con el que se desarrollará esta aplicación.
Con base en la tabla 2.17, se decidió que para este prototipo se utilizarán CSS (para un diseño
cómodo y agradable para los usuarios), HTML (lo admiten todos los exploradores) y finalmente
Javascript principalmente para la localización de los participantes por medio de google maps y
para la parte del servidor, para esto será necesario utilizar un framework (ya que javascript los
49
utiliza). Con base en lo anterior, en la tabla 2.18 se indica un estudio comparativo entre los
principales frameworks [77].
50
Con base en la tabla 2.18, se eligió Node.js, ya que es bueno para aplicaciones que pretenden ser
en un tiempo real, que necesitan mantener una conexión persistente con servidor. Además se
eligió Angular.js para que nuestra aplicación web sea más dinámica en cuanto a diseño.
Con base en la tabla 2.19 y debido a su costo (gratuito), velocidad, funcionalidad y portabilidad
seleccionamos como SGBD a Mysql.
Viabilidad Legal
En esta sección se detallan los aspectos legales a considerar para este prototipo, como son los
contratos a los usuarios finales que son los organizadores de carreras deportivas y el aviso de
privacidad simplificado para el tratamiento de datos personales.
El Responsable del tratamiento y protección de tus datos personales son los desarrolladores de
este prototipo (Instituto Politécnico Nacional. Escuela Superior de Cómputo), con domicilio en
Av. Juan de Dios Bátiz esq. Av. Miguel Othón de Mendizábal, Gustavo A. Madero, Lindavista,
07738 Ciudad de México, Distrito Federal. Los datos personales que recabamos los utilizamos
para la siguiente finalidad primaria: El monitoreo de tu estado de salud en una carrera deportiva,
utilizaremos tu información personal para la siguientes finalidades secundarias: Fines
académicos.
En caso de que no desees que tus datos personales sean tratados para las finalidades secundarias,
desde este momento nos puedes comunicar lo anterior al correo electrónico:
malanist1100@alumno.ipn.mx o jvelazquezr1105@alumno.ipn.mx y manifestar tu negativa para
el uso de tus datos personales, para estas finalidades secundarias, no podrá ser un motivo para
impedirte el uso del sistema.
CLÁUSULA 2. LICENCIA. IPN le otorga a usted una licencia limitada, exclusiva, para el uso
del software que se acompaña, sujeta a los términos y condiciones recogidos en el presente. No se
le permite el uso del software en ninguna otra manera que no esté expresamente autorizada por
esta Licencia.
El Software es objeto de licencia para su uso en cualquier ordenador personal que disponga el
sistema operativo correspondiente para el software adquirido.
Usted podrá reproducir y usar solo las copias previamente de acuerdo del Software.
53
El uso del Software por parte de terceros o para el beneficio de cualquier otra persona queda
expresamente prohibido. IPN tiene el derecho de invalidar la Licencia del Software en cualquier
momento, notificándole al Cliente con sólo un día de anticipación; el Cliente no tendrá derecho a
reclamar o solicitar compensación. Igualmente, el Cliente no podrá (a) arrendar o transferir
mediante ningún título, o incluso por causa sin ánimo de lucro, el uso del Software a terceros; (b)
tomar aquellos pasos para, mediante la ingeniería inversa o cualquier otro método, descompilar,
desensamblar, analizar o convertir el Software; (c) transferir el Software a otro Equipo, suyo o
no. El Cliente se compromete a cumplir estrictamente las instrucciones de IPN para el uso
adecuado del Software.
54
CLÁUSULA 11. PLAZO Y TERMINACIÓN este contrato será efectivo hasta que sea
terminado.
Usted podrá terminarlo en cualquier momento, mediante la destrucción en cualquier forma del
software.
CLÁUSULA 12. FACTURACIÓN Y FORMAS DE PAGO. IPN facturará al cliente por los
servicios y/o productos con las tarifas vigentes en cada momento, que serán incrementadas con el
IVA correspondiente. El pago se realizará mediante ingreso o transferencia bancaria, siempre por
anticipado, no realizándose el suministro o prestación del servicio correspondiente hasta la
confirmación efectiva del mismo.
Con este análisis determinamos si nuestro proyecto se puede realizar, si resultará útil y si tenemos
los medios necesarios para lograr su realización de manera correcta.
También podremos decidir si debemos realizar modificaciones para lograr que se desarrolle con
éxito y si nuestros objetivos sean alcanzables.
Desde el punto de vista operativo, creemos que el impacto del prototipo propuesto en las carreras
deportivas en los cuales será aplicado será positivo, actualmente existen muchas aplicaciones que
tienen un funcionamiento similar al prototipo propuesto, sin embargo, estos no dan soporte a la
salud del participante como enviar alertas y ubicación en caso de alguna emergencia aparte de
que podemos ofrecer una alternativa más económica para los coordinadores de estas carreras en
un futuro, así estos podrán monitorear a los participantes sin necesidad de que compren equipos
muy sofisticados. Al ser este un prototipo no es posible aún hacer un estudio económico del
55
impacto que tendrá, este se considerará en otras versiones del mismo. La idea surge sobre el
cuidado de la salud, ya que para lograrlo es necesario un constante monitoreo de los signos
vitales más importantes sobre todo en actividades que generan un gran impacto en el cuerpo
humano como es el atletismo, y que mejor que en las carreras deportivas donde se ve con más
claridad ese punto.
56
CAPÍTULO 3. DISEÑO
57
En la figura 3.1 se puede observar que la persona que portará el dispositivo electrónico, el
participante, estará mandando de manera frecuente su información. El dispositivo electrónico
enviará la información captada a un dispositivo móvil que desplegará la información obtenida.
Posteriormente, la aplicación móvil enviará está información a un servidor, para que finalmente
todo esto sea recibido por la aplicación de web y así los encargados de las carreras podrán
monitorear adecuadamente a cada uno de los participantes.
58
Figura 3.3. Diagrama de arquitectura de los componentes del dispositivo electrónico
59
Figura 3.5. Diagrama de arquitectura del servicio de datos
60
3.2. Diagramas de casos de uso
Un diagrama de casos de uso se hace para resumir quién usa la aplicación o sistema y qué pueden
hacer cada uno de los actores. A continuación en la figura 3.8 se indican los actores que tendrán
contacto con las aplicaciones y dispositivo electrónico además de una descripción.
61
Figura 3.9. Diagrama caso de uso aplicación web (organizador)
62
En la figura 3.9 se indican las acciones en la aplicación web, la descripción de los casos de uso se
indica de la tabla 3.1 a la 3.21.
Caso de uso 1.0. Iniciar sesión
Actores Organizador
Tipo Básico
Propósito Iniciar sesión en la aplicación web
Resumen El usuario indicará su nombre de usuario y contraseña para poder
acceder a la aplicación web.
Precondiciones El usuario debe estar previamente registrado
Flujo principal No aplica
Excepciones El usuario no podrá acceder si la contraseña no es correcta o si no se
encuentra previamente registrado.
Tabla 3.1. Descripción de caso de uso iniciar sesión
Caso de uso 1.1. Recuperar contraseña
Actores Organizador
Tipo Extend
Propósito Recuperar contraseña para poder iniciar sesión en la aplicación web
Resumen El usuario indicará que desea recuperar su contraseña, y al indicar su
correo electrónico se le enviará la contraseña a él.
Precondiciones El usuario debe estar previamente registrado
Flujo principal No aplica
Excepciones El usuario no podrá recuperar su contraseña si no se encuentra
previamente registrado o si indica un correo erróneo.
Tabla 3.2. Descripción de caso de uso recuperar contraseña
Caso de uso 2.0. Cerrar sesión
Actores Organizador
Tipo Básico
Propósito Cerrar sesión en la aplicación web
Resumen El usuario indicará que quiere cerrar la sesión en la aplicación web.
Precondiciones El usuario debe haber iniciado sesión previamente
Flujo principal Se requiere que el usuario haya iniciado sesión
Excepciones El usuario no podrá cerrar sesión si no la ha iniciado previamente.
Tabla 3.3. Descripción de caso de uso cerrar sesión
Caso de uso 3.0. Gestionar organizadores
Actores Organizador
Tipo Básico
Propósito Administrar a los organizadores
Resumen El usuario administrará a los organizadores
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión
Excepciones El usuario no podrá gestionar organizadores si no se encuentra
previamente registrado o si no ha iniciado sesión.
Tabla 3.4. Descripción de caso de uso gestionar organizadores
63
Caso de uso 3.1. Crear organizadores
Actores Organizador
Tipo Include
Propósito Crear a los organizadores
Resumen El usuario creará a los organizadores
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar organizador.
Excepciones El usuario no podrá crear organizadores si no se encuentra
previamente registrado, si no ha iniciado sesión y si no llena el
formulario de datos.
Tabla 3.5. Descripción de caso de uso crear organizadores
Caso de uso 3.2. Modificar organizadores
Actores Organizador
Tipo Include
Propósito Modificar a los organizadores
Resumen El usuario modificará a los organizadores
Precondiciones El usuario debe haber iniciado previamente la sesión y el organizador
a modificar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar organizador, además el organizador a modificar ya debe
estar previamente registrado.
Excepciones El usuario no podrá modificar organizadores si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el organizador a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.6. Descripción de caso de uso modificar organizadores
Caso de uso 3.3. Eliminar organizadores
Actores Organizador
Tipo Include
Propósito Eliminar a los organizadores
Resumen El usuario eliminará a los organizadores
Precondiciones El usuario debe haber iniciado previamente la sesión y el organizador
a eliminar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar organizador, además el organizador a eliminar ya debe
estar previamente registrado.
Excepciones El usuario no podrá eliminar organizadores si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el organizador a
modificar no está previamente registrado.
Tabla 3.7. Descripción de caso de uso eliminar organizadores
Caso de uso 3.4. Ver organizadores
Actores Organizador
Tipo Include
64
Propósito Ver a los organizadores
Resumen El usuario verá a los organizadores
Precondiciones El usuario debe haber iniciado previamente la sesión y el organizador
a visualizar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar organizador, además el organizador a visualizar ya debe
estar previamente registrado.
Excepciones El usuario no podrá visualizar organizadores si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el organizador a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.8. Descripción de caso de uso ver organizadores
Caso de uso 3.5. Buscar organizadores
Actores Organizador
Tipo Include
Propósito Buscar a los organizadores
Resumen El usuario buscará a los organizadores
Precondiciones El usuario debe haber iniciado previamente la sesión y el organizador
a ser buscado ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar organizador, además el organizador a ser buscado ya debe
estar previamente registrado.
Excepciones El usuario no podrá visualizar organizadores si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el organizador a ser
buscado no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.9. Descripción de caso de uso buscar organizadores
Caso de uso 4.0. Gestionar participante
Actores Organizador
Tipo Básico
Propósito Administrar a los participantes
Resumen El usuario administrará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión
Excepciones El usuario no podrá gestionar participantes si no se encuentra
previamente registrado o si no ha iniciado sesión.
Tabla 3.10. Descripción de caso de uso gestionar participante
Caso de uso 4.1. Crear participante
Actores Organizador
Tipo Include
Propósito Crear a los participantes
Resumen El usuario creará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
65
de gestionar participante.
Excepciones El usuario no podrá crear participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión y si no llena el
formulario de datos.
Tabla 3.11. Descripción de caso de uso crear participante
Caso de uso 4.2. Modificar participante
Actores Organizador
Tipo Include
Propósito Modificar a los participantes
Resumen El usuario modificará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a modificar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a modificar ya debe
estar previamente registrado.
Excepciones El usuario no podrá modificar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.12. Descripción de caso de uso modificar participante
Caso de uso 4.3. Eliminar participante
Actores Organizador
Tipo Include
Propósito Eliminar a los participantes
Resumen El usuario eliminará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a eliminar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a eliminar ya debe
estar previamente registrado.
Excepciones El usuario no podrá eliminar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a
modificar no está previamente registrado.
Tabla 3.13. Descripción de caso de uso eliminar participante
Caso de uso 4.4. Ver participante
Actores Organizador
Tipo Include
Propósito Ver a los participantes
Resumen El usuario verá a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a visualizar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a visualizar ya debe
estar previamente registrado.
66
Excepciones El usuario no podrá visualizar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.14. Descripción de caso de uso ver participante
Caso de uso 4.5. Buscar participante
Actores Organizador
Tipo Include
Propósito Buscar a los participantes
Resumen El usuario buscará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a ser buscado ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a ser buscado ya debe
estar previamente registrado.
Excepciones El usuario no podrá visualizar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a ser
buscado no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.15. Descripción de caso de uso buscar participante
Caso de uso 5.0. Gestionar carrera
Actores Organizador
Tipo Básico
Propósito Administrar a los carreras
Resumen El usuario administrará a los carreras
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión
Excepciones El usuario no podrá gestionar carreras si no se encuentra previamente
registrado o si no ha iniciado sesión.
Tabla 3.16. Descripción de caso de uso gestionar carrera
Caso de uso 5.1. Crear carrera
Actores Organizador
Tipo Include
Propósito Crear a los carreras
Resumen El usuario creará a los carreras
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar carrera.
Excepciones El usuario no podrá crear carreras si este no se encuentra previamente
registrado, si no ha iniciado sesión y si no llena el formulario de datos.
Tabla 3.17. Descripción de caso de uso crear carrera
Caso de uso 5.2. Modificar carrera
Actores Organizador
Tipo Include
67
Propósito Modificar a los carreras
Resumen El usuario modificará a los carreras
Precondiciones El usuario debe haber iniciado previamente la sesión y el carrera a
modificar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar carrera, además el carrera a modificar ya debe estar
previamente registrado.
Excepciones El usuario no podrá modificar carreras si este no se encuentra
previamente registrado, si no ha iniciado sesión, si la carrera a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.18. Descripción de caso de uso modificar carrera
Caso de uso 5.3. Eliminar carrera
Actores Organizador
Tipo Include
Propósito Eliminar a los carreras
Resumen El usuario eliminará a los carreras
Precondiciones El usuario debe haber iniciado previamente la sesión y el carrera a
eliminar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar carrera, además el carrera a eliminar ya debe estar
previamente registrado.
Excepciones El usuario no podrá eliminar carreras si este no se encuentra
previamente registrado, si no ha iniciado sesión, si la carrera a
modificar no está previamente registrado.
Tabla 3.19. Descripción de caso de uso eliminar carrera
Caso de uso 5.4. Ver carrera
Actores Organizador
Tipo Include
Propósito Ver a los carreras
Resumen El usuario verá a los carreras
Precondiciones El usuario debe haber iniciado previamente la sesión y el carrera a
visualizar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar carrera, además el carrera a visualizar ya debe estar
previamente registrado.
Excepciones El usuario no podrá visualizar carreras si este no se encuentra
previamente registrado, si no ha iniciado sesión, si la carrera a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.20. Descripción de caso de uso ver carrera
Caso de uso 5.5. Buscar carrera
Actores Organizador
Tipo Include
68
Propósito Buscar a los carreras
Resumen El usuario buscará a los carreras
Precondiciones El usuario debe haber iniciado previamente la sesión y el carrera a ser
buscado ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar carrera, además el carrera a ser buscado ya debe estar
previamente registrado.
Excepciones El usuario no podrá visualizar carreras si este no se encuentra
previamente registrado, si no ha iniciado sesión, si la carrera a ser
buscado no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.21. Descripción de caso de uso buscar carrera
En la figura 3.10 se indican las acciones en la aplicación web, la descripción de los casos de uso
se indica de la tabla 3.22 a la 3.30.
Caso de uso 6.0. Iniciar carrera
Actores Participante
Tipo Básico
Propósito Indica que la carrera ha iniciado
Resumen El usuario ha iniciado carrera
Precondiciones El usuario debe estar previamente registrado y asociado a una carrera
69
Flujo principal Se requiere que el organizador haya registrado al participante y este lo
haya asociado a una carrera.
Excepciones El participante no podrá iniciar la carrera si no se encuentra
previamente registrado.
Tabla 3.22. Descripción de caso de uso iniciar carrera
Caso de uso 6.1. Recibir información del servidor
Actores Aplicación web, participante
Tipo Include
Propósito La aplicación web va a enviar peticiones al servidor
Resumen Se recibirá información solicitada del servidor
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que el participante ya haya iniciado la carrera.
Excepciones La aplicación no podrá hacer las peticiones si el participante no está
participando en la carrera.
Tabla 3.23. Descripción de caso de uso recibir información del servidor
Caso de uso 6.2. Recibir alerta
Actores Aplicación web, participante
Tipo Extend
Propósito La aplicación web va a recibir las alertas generadas por el participante
en caso de ser necesario.
Resumen Se recibirá alertas en su caso.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que el participante ya haya iniciado la carrera, este
continuando la carrera o estarla terminando.
Excepciones La aplicación no recibirá alertas si no es el caso.
Tabla 3.24. Descripción de caso de uso recibir alerta
Caso de uso 6.3. Procesar información
Actores Aplicación web, servidor, participante
Tipo Include
Propósito La aplicación web junto con el servidor van a procesar la información
del participante en la carrera.
Resumen Se procesará la información recibida a la aplicación.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que la aplicación ya haya recibido la información del
participante.
Excepciones La aplicación no podrá hacer las peticiones si el participante no está
participando en la carrera.
Tabla 3.25. Descripción de caso de uso procesar información
Caso de uso 6.4. Generar historial
Actores Aplicación web, servidor, participante
Tipo Include
70
Propósito La aplicación web va a generar un historial del participante en la
carrera.
Resumen Se generará un historial del desempeño del participante en la carrera.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que la aplicación ya haya procesado la información del
participante.
Excepciones La aplicación no podrá generar un historial si el participante no está
participando en la carrera.
Tabla 3.26. Descripción de caso de uso generar historial
Caso de uso 6.5. Enviar historial al servidor
Actores Aplicación web, servidor, participante
Tipo Include
Propósito La aplicación web va a generar un historial del participante en la
carrera, este se almacenará en el servidor.
Resumen Se almacenará el historial del desempeño del participante en la carrera
del lado del servidor.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que ya se haya generado el historial del participante.
Excepciones No se podrá generar un historial si el participante no está participando
en la carrera.
Tabla 3.27. Descripción de caso de uso enviar historial al servidor
Caso de uso 6.6. Enviar información a la aplicación móvil
Actores Servidor, participante
Tipo Include
Propósito El servidor enviará la información necesaria a la aplicación web
Resumen El servidor enviará información solicitada de la aplicación móvil
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que ya se haya almacenado información en el servidor
además la aplicación móvil debe realizar las peticiones con la
información que este requiera.
Excepciones No se podrá enviar información si es que no está almacenada en el
servidor.
Tabla 3.28. Descripción de caso de uso enviar información a la aplicación móvil
Caso de uso 6.7. Continuar carrera
Actores Participante
Tipo Include
Propósito Indica que la carrera continua
Resumen El usuario continua la carrera
Precondiciones El usuario debe haber iniciado la carrera, estar previamente registrado
y asociado a una carrera
Flujo principal Se requiere que el organizador haya registrado al participante y este lo
71
haya asociado a una carrera.
Excepciones El participante no podrá continuar la carrera si no la ha iniciado y si no
se encuentra previamente registrado.
Tabla 3.29. Descripción de caso de uso continuar carrera
Caso de uso 6.8. Terminar carrera
Actores Participante
Tipo Include
Propósito Indica que la carrera ha terminado
Resumen El usuario termina la carrera
Precondiciones El usuario debe haber iniciado la carrera, estar previamente registrado
y asociado a una carrera
Flujo principal Se requiere que el organizador haya registrado al participante y este lo
haya asociado a una carrera.
Excepciones El participante no podrá terminar la carrera si no la ha iniciado y si no
se encuentra previamente registrado.
Tabla 3.30. Descripción de caso de uso terminar carrera
72
Figura 3.11. Diagrama caso de uso aplicación móvil
En la figura 3.11 se indican las acciones en la aplicación móvil, la descripción de los casos de uso
se indica de la tabla 3.31 a la 3.49.
Caso de uso 1.0. Iniciar sesión
Actores Organizador, participante
Tipo Básico
Propósito Iniciar sesión en la aplicación móvil
Resumen El usuario indicará su nombre de usuario y contraseña para poder
acceder a la aplicación móvil
Precondiciones El usuario debe estar previamente registrado
Flujo principal No aplica
Excepciones El usuario no podrá acceder si la contraseña no es correcta o si no se
encuentra previamente registrado.
Tabla 3.31. Descripción de caso de uso iniciar sesión
73
Caso de uso 1.1. Recuperar contraseña
Actores Organizador, participante
Tipo Extend
Propósito Recuperar contraseña para poder iniciar sesión en la aplicación móvil
Resumen El usuario indicará que desea recuperar su contraseña, y al indicar su
correo electrónico se le enviará la contraseña a él.
Precondiciones El usuario debe estar previamente registrado
Flujo principal No aplica
Excepciones El usuario no podrá recuperar su contraseña si no se encuentra
previamente registrado o si indica un correo erróneo.
Tabla 3.32. Descripción de caso de uso recuperar contraseña
Caso de uso 2.0. Cerrar sesión
Actores Organizador, participante
Tipo Básico
Propósito Cerrar sesión en la aplicación móvil
Resumen El usuario indicará que quiere cerrar la sesión en la aplicación móvil.
Precondiciones El usuario debe haber iniciado sesión previamente
Flujo principal Se requiere que el usuario haya iniciado sesión
Excepciones El usuario no podrá cerrar sesión si no la ha iniciado previamente.
Tabla 3.33. Descripción de caso de uso cerrar sesión
Caso de uso 3.0. Gestionar participante
Actores Organizador
Tipo Básico
Propósito Administrar a los participantes
Resumen El usuario administrará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión
Excepciones El usuario no podrá gestionar participantes si no se encuentra
previamente registrado o si no ha iniciado sesión.
Tabla 3.34. Descripción de caso de uso gestionar participante
Caso de uso 3.1. Crear participante
Actores Organizador
Tipo Include
Propósito Crear a los participantes
Resumen El usuario creará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante.
Excepciones El usuario no podrá crear participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión y si no llena el
formulario de datos.
Tabla 3.35. Descripción de caso de uso crear participante
Caso de uso 3.2. Modificar participante
Actores Organizador
74
Tipo Include
Propósito Modificar a los participantes
Resumen El usuario modificará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a modificar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a modificar ya debe
estar previamente registrado.
Excepciones El usuario no podrá modificar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.36. Descripción de caso de uso modificar participante
Caso de uso 3.3. Eliminar participante
Actores Organizador
Tipo Include
Propósito Eliminar a los participantes
Resumen El usuario eliminará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a eliminar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a eliminar ya debe
estar previamente registrado.
Excepciones El usuario no podrá eliminar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a
modificar no está previamente registrado.
Tabla 3.37. Descripción de caso de uso eliminar participante
Caso de uso 3.4. Ver participante
Actores Organizador
Tipo Include
Propósito Ver a los participantes
Resumen El usuario verá a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a visualizar ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a visualizar ya debe
estar previamente registrado.
Excepciones El usuario no podrá visualizar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a
modificar no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.38. Descripción de caso de uso ver participante
Caso de uso 3.5. Buscar participante
Actores Organizador
75
Tipo Include
Propósito Buscar a los participantes
Resumen El usuario buscará a los participantes
Precondiciones El usuario debe haber iniciado previamente la sesión y el participante
a ser buscado ya debe estar previamente registrado.
Flujo principal Se requiere que el usuario haya iniciado sesión y accedido a la opción
de gestionar participante, además el participante a ser buscado ya debe
estar previamente registrado.
Excepciones El usuario no podrá visualizar participantes si este no se encuentra
previamente registrado, si no ha iniciado sesión, si el participante a ser
buscado no está previamente registrado y si no llena el formulario de
datos.
Tabla 3.39. Descripción de caso de uso buscar participante
Caso de uso 4.0. Consultar información
Actores Organizador
Tipo Básico
Propósito Consultar la información enviada del dispositivo electrónico
Resumen El participante podrá consultar su información
Precondiciones El usuario debe haber iniciado previamente la sesión y el dispositivo
electrónico debe encontrarse activo.
Flujo principal Se requiere que el usuario haya iniciado sesión.
Excepciones El usuario no podrá visualizar su información si este no se encuentra
previamente registrado, si no ha iniciado sesión.
Tabla 3.40. Descripción de caso de uso consultar información
Caso de uso 4.1. Consultar historial
Actores Organizador
Tipo Extend
Propósito Consultar el historial del participante
Resumen El participante podrá consultar su historial.
Precondiciones El usuario debe haber iniciado previamente la sesión y haber
terminado la carrera. Solo se podrá consultar en ese caso.
Flujo principal Se requiere que el usuario haya iniciado sesión.
Excepciones El usuario no podrá visualizar su información si este no se encuentra
previamente registrado, si no ha iniciado sesión. Solo podrá consultar
el historial si la carrera ha finalizado.
Tabla 3.41. Descripción de caso de uso consultar historial
Caso de uso 5.0. Iniciar carrera
Actores Participante
Tipo Básico
Propósito Indica que la carrera ha iniciado
Resumen El usuario ha iniciado carrera
Precondiciones El usuario debe estar previamente registrado y asociado a una carrera
Flujo principal Se requiere que el organizador haya registrado al participante y este lo
haya asociado a una carrera.
76
Excepciones El participante no podrá iniciar la carrera si no se encuentra
previamente registrado.
Tabla 3.42. Descripción de caso de uso iniciar carrera
Caso de uso 5.1. Recibir información y signos vitales
Actores Aplicación móvil, dispositivo electrónico, participante
Tipo Include
Propósito La aplicación móvil va a recibir información del dispotivio electrónico
Resumen Se recibirá información y signos vitales
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que el participante ya haya iniciado la carrera.
Excepciones La aplicación no podrá recibir la información si el participante no está
participando en la carrera.
Tabla 3.43. Descripción de caso de uso recibir información del servidor
Caso de uso 5.2. Generar alerta
Actores Aplicación móvil, participante
Tipo Extend
Propósito La aplicación móvil va a enviar las alertas generadas por el
participante en caso de ser necesario.
Resumen Se generarán alertas en su caso.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que el participante ya haya iniciado la carrera, este
continuando la carrera o estarla terminando.
Excepciones La aplicación no generará alertas si no es el caso.
Tabla 3.44. Descripción de caso de uso recibir alerta
Caso de uso 5.3. Enviar información al servidor
Actores Aplicación móvil, servidor, participante
Tipo Include
Propósito La aplicación móvil va a enviar la información para su
almacenamiento en el servidor.
Resumen Se enviará la información del participante en la carrera del lado del
servidor.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que ya se haya capturado la información del participante.
Excepciones No se podrá enviar la información si el participante no está
participando en la carrera. Además de que el envío está sujeto a
conectividad.
Tabla 3.45. Descripción de caso de uso enviar información al servidor
Caso de uso 5.4. Enviar información a la aplicación web
Actores Aplicación web, servidor, participante
Tipo Include
Propósito El servidor va a enviar la información para su despliegue en la
77
aplicación web.
Resumen Se enviará la información del participante para ser desplegado.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que ya se haya almacenado la información del participante
en el servidor.
Excepciones No se podrá enviar la información si el participante no está
participando en la carrera. Además de que el envío está sujeto a
conectividad.
Tabla 3.46. Descripción de caso de uso enviar información a la aplicación web
Caso de uso 5.5. Desplegar información
Actores Aplicación web, servidor, participante
Tipo Include
Propósito La aplicación web recibe la información y la despliega
Resumen Se enviará la información del participante para ser desplegado.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando.
Flujo principal Se requiere que ya se haya almacenado la información del participante
en el servidor y está ya haya sido enviada a la aplicación web.
Excepciones No se podrá enviar la información si el participante no está
participando en la carrera. Además de que el envío está sujeto a
conectividad.
Tabla 3.47. Descripción de caso de uso desplegar información
Caso de uso 5.6. Continuar carrera
Actores Participante
Tipo Include
Propósito Indica que la carrera continua
Resumen El usuario continua la carrera
Precondiciones El usuario debe haber iniciado la carrera, estar previamente registrado
y asociado a una carrera
Flujo principal Se requiere que el organizador haya registrado al participante y este lo
haya asociado a una carrera.
Excepciones El participante no podrá continuar la carrera si no la ha iniciado y si no
se encuentra previamente registrado.
Tabla 3.48. Descripción de caso de uso continuar carrera
Caso de uso 5.7. Terminar carrera
Actores Participante
Tipo Include
Propósito Indica que la carrera ha terminado
Resumen El usuario termina la carrera
Precondiciones El usuario debe haber iniciado la carrera, estar previamente registrado
y asociado a una carrera
Flujo principal Se requiere que el organizador haya registrado al participante y este lo
haya asociado a una carrera.
78
Excepciones El participante no podrá terminar la carrera si no la ha iniciado y si no
se encuentra previamente registrado.
Tabla 3.49. Descripción de caso de uso terminar carrera
En la figura 3.12 se indican las acciones del dispositivo electrónico, la descripción de los casos de
uso se indica de la tabla 3.50 a la 3.51.
Caso de uso 1.0. Encender el dispositivo
Actores Organizador
Tipo Básico
Propósito El organizador enciende el dispositivo
Resumen Se enciende el dispositivo
Precondiciones El organizador debe encender el dispositivo y colocarlo en los
participantes.
Flujo principal No aplica.
Excepciones No aplica.
Tabla 3.50. Descripción de caso de uso terminar carrera
Caso de uso 1.0. Apagar el dispositivo
Actores Organizador
Tipo Básico
Propósito El organizador apaga el dispositivo
Resumen Se enciende el dispositivo
Precondiciones El organizador debe apagar el dispositivo y retirarlo de los
participantes.
Flujo principal No aplica.
Excepciones No aplica.
Tabla 3.51. Descripción de caso de uso terminar carrera
79
Figura 3.13. Diagrama caso de uso dispositivo electrónico (participante)
En la figura 3.13 se indican las acciones del dispositivo electrónico, la descripción de los casos de
uso se indica de la tabla 3.52 a la 3.57.
Caso de uso 3.0. Usar dispositivo
Actores Participante, dispositivo
Tipo Básico
Propósito El participante usa el dispositivo
Resumen El participante usa el dispositivo
Precondiciones El organizador debe ajustar el dispositivo y retirarlo de los
participantes.
Flujo principal El dispositivo debe estar encendido
Excepciones No aplica.
Tabla 3.52. Descripción de caso de uso usar dispositivo
Caso de uso 4.0. Iniciar carrera
Actores Participante
Tipo Básico
Propósito Indica que la carrera ha iniciado
Resumen El usuario ha iniciado carrera
Precondiciones El usuario debe estar usando el dispositivo
Flujo principal El usuario debe estar usando el dispositivo
Excepciones El participante no podrá iniciar la carrera si no está usando el
dispositivo
Tabla 3.53. Descripción de caso de uso iniciar carrera
Caso de uso 4.1. Captar signos vitales
Actores Participante, dispositivo
Tipo Básico
80
Propósito El dispositivo capta los signos vitales del participante.
Resumen Captar signos vitales del participante
Precondiciones El usuario debe estar usando el dispositivo e iniciado la carrera
Flujo principal El usuario debe estar usando el dispositivo e iniciado la carrera
Excepciones El dispositivo no podrá captar los signos vitales si el participante no
está usando el dispositivo
Tabla 3.54. Descripción de caso de uso captar signos vitales
Caso de uso 5.4. Enviar información a la aplicación móvil
Actores Aplicación móvil, servidor, participante
Tipo Include
Propósito El dispositivo va a enviar la información para su despliegue en la
aplicación móvil.
Resumen Se enviará la información del participante para ser desplegado.
Precondiciones El participante debe haber iniciado la carrera, continuar la carrera o
estarla terminando y estar usando el dispositivo.
Flujo principal Se requiere que ya se hayan captado los signos vitales
Excepciones No se podrá enviar la información si el participante no está
participando en la carrera. Además de que el envío está sujeto a
conectividad.
Tabla 3.55. Descripción de caso de uso enviar información al móvil
Caso de uso 4.3. Continuar carrera
Actores Participante
Tipo Include
Propósito Indica que la carrera continua
Resumen El usuario continua la carrera
Precondiciones El usuario debe estar usando el dispositivo
Flujo principal El usuario debe estar usando el dispositivo
Excepciones El participante no podrá continuar la carrera si no la ha iniciado y si no
está usando el dispositivo
Tabla 3.56. Descripción de caso de uso continuar carrera
Caso de uso 4.4.. Terminar carrera
Actores Participante
Tipo Include
Propósito Indica que la carrera ha terminado
Resumen El usuario termina la carrera
Precondiciones El usuario debe estar usando el dispositivo
Flujo principal El usuario debe estar usando el dispositivo
Excepciones El participante no podrá continuar la carrera si no la ha iniciado y si no
está usando el dispositivo
Tabla 3.57. Descripción de caso de uso terminar carrera
81
Figura 3.14. Diagrama de caso de uso de componentes electrónicos (dispositivo electrónico)
En la figura 3.14 se indican las acciones de los componentes del dispositivo electrónico, la
descripción de los casos de uso se indica de la tabla 3.58 a la 3.70.
82
Caso de uso 1.0. Iniciar funcionamiento
Actores Dispositivo electrónico
Tipo Básico
Propósito Indica que el dispositivo ha iniciado el funcionamiento
Resumen El dispositivo ha iniciado el funcionamiento
Precondiciones No aplica
Flujo principal No aplica
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.58. Descripción de caso de uso iniciar funcionamiento
Caso de uso 2.0. Suministrar energía al dispositivo
Actores Fuente de alimentación Pila AAA
Tipo Básico
Propósito Suministra energía al dispositivo
Resumen Suministra energía al dispositivo
Precondiciones La fuente debe tener carga de energía.
Flujo principal No aplica
Excepciones La fuente no tiene carga de energía
Tabla 3.59. Descripción de caso de uso suministrar energía al dispositivo
Caso de uso 3.0. Regular la energía
Actores Regulador MAX6349
Tipo Básico
Propósito Regula energía del dispositivo
Resumen Regula energía del dispositivo
Precondiciones Se debe suministrar energía al dispositivo
Flujo principal Suministrar energía
Excepciones Tener problemas de funcionamiento.
Tabla 3.60. Descripción de caso de uso regular la energía
Caso de uso 4.0. Captar pulso cardíaco
Actores Pulse Sensor
Tipo Básico
Propósito Capta la señal del pulso cardiaco
Resumen Capta la señal del pulso cardiaco
Precondiciones Estar conectado
Flujo principal No aplica
Excepciones Tener problemas de funcionamiento.
Tabla 3.61. Descripción de caso de uso captar pulso cardíaco
Caso de uso 5.0. Filtrado de la señal
Actores Filtro MAX295
Tipo Básico
Propósito Elimina las componentes no deseadas del pulso cardíaco
Resumen Elimina las componentes no deseadas del pulso cardíaco
Precondiciones Capta la señal del pulso cardiaco
Flujo principal Capta la señal del pulso cardiaco
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.62. Descripción de caso de uso filtrado de la señal
83
Caso de uso 5.1 Enviar al microcontrolador
Actores Filtro MAX295, PICK24F16KL401
Tipo Include
Propósito Envía información al microcontrolador para su conversión A/D y su
procesamiento
Resumen Envía información al microcontrolador para su conversión A/D y su
procesamiento
Precondiciones Captar la señal del pulso cardiaco y filtrarla
Flujo principal Captar la señal del pulso cardiaco y filtrarla
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.63. Descripción de caso de uso enviar al microcontrolador
Caso de uso 6.0. Captar temperatura
Actores TC77
Tipo Básico
Propósito Capta la temperatura corporal (la salida es digital)
Resumen Capta la temperatura corporal (la salida es digital)
Precondiciones Que esté previamente conectado
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.64. Descripción de caso de uso captar temperatura
Caso de uso 6.1 Enviar al microcontrolador
Actores TC77, PICK24F16KL401
Tipo Include
Propósito Envía información al microcontrolador, la salida es digital
Resumen Envía información al microcontrolador, la salida es digital
Precondiciones Que esté previamente conectado
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.65. Descripción de caso de uso enviar al microcontrolador
Caso de uso 7.0 Obtener información de los sensores
Actores PICK24F16KL401
Tipo Básico
Propósito Obtiene información de los sensores
Resumen Obtiene información de los sensores
Precondiciones Que esté previamente conectado
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.66. Descripción de caso de uso obtener información de los sensores
Caso de uso 7.1 Procesar información
Actores PICK24F16KL401
Tipo Include
Propósito Procesar la información obtenida
Resumen Procesar la información obtenida
Precondiciones Que esté previamente conectado
84
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.67. Descripción de caso de uso procesar información
Caso de uso 8.0 Enviar información al módulo bluetooth
Actores PICK24F16KL401, HC-06
Tipo Básico
Propósito Enviar información al módulo bluetooth
Resumen Enviar información al módulo bluetooth
Precondiciones Que esté previamente conectado
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.68. Descripción de caso de uso enviar información al módulo bluetooth
Caso de uso 9.0 Obtener información
Actores HC-06
Tipo Básico
Propósito Obtiene información del microcontrolador (UART)
Resumen Obtiene información del microcontrolador (UART)
Precondiciones Que esté previamente conectado
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.69. Descripción de caso de uso obtener información
Caso de uso 9.1. Enviar información a la aplicación móvil
Actores HC-06, aplicación móvil
Tipo Include
Propósito Envía la información del HC-06 a la aplicación móvil
Resumen Envía la información del HC-06 a la aplicación móvil
Precondiciones Que esté previamente conectado
Flujo principal Que esté previamente conectado
Excepciones Tener problemas para iniciar funcionamiento.
Tabla 3.70. Descripción de caso de uso enviar a la aplicación móvil
En esta sección se muestra un catálogo de los principales mensajes que puedan desplegar las
aplicaciones, estos se indican en la figura 3.15.
85
Redacción: Error en la conexión con la base de datos.
Mensaje 3: Campos vacíos
Tipo: Notificación.
Objetivo: Notificar al usuario que un campo obligatorio (marcado con *) se
encuentra vacío.
Redacción: Los campos “campos vacíos” se encuentran vacíos.
Mensaje 4: Registro inexistente
Tipo: Notificación.
Objetivo: Indicar al usuario que el registro que desea buscar no existe.
Redacción: El registro “número de registro o identificador” no existe en la base
de datos.
Mensaje 5: Mensaje de confirmación
Tipo: Notificación.
Objetivo: Indicar al usuario que la acción solicitada fue realizada exitosamente.
Redacción: La operación fue realizada exitosamente.
Mensaje 6: Confirmar acción
Tipo: Notificación.
Objetivo: Solicitar al usuario la confirmación de una acción.
Redacción: ¿Desea “Acción”?
Mensaje 7: Error de confirmación
Tipo: Notificación.
Objetivo: Indicar al usuario que la confirmación no se realizó exitosamente,
debido a que algún campo no coincide o, si es el caso, no hay conexión a
internet o red de datos.
Redacción: El/los registros no coinciden. No hay conexión con la red de datos.
Mensaje 8: Datos duplicados
Tipo: Notificación.
Objetivo: Indicar al usuario que los valores que quiere ingresar y que son
consideradores identificadores están duplicados
Redacción: El registro “número de registro o identificador” ya existe. Por favor
ingrese otro.
Mensaje 9: Mensaje de error
Tipo: Notificación.
Objetivo: Indicar al usuario que ocurrió un error y no se pudo realizar la acción
solicitada.
Redacción: Error al intentar “Acción solicitada“.
Mensaje 10: Sin resultados
Tipo: Notificación.
Objetivo: Notificar al usuario que la consulta no devolvió ningún dato.
Redacción: No hubo resultados de tu búsqueda
Mensaje 11: Alerta enviada
Tipo: Notificación.
Objetivo: Notificar al usuario que su alerta fue enviada
86
Redacción: Se ha enviado su alerta.
Mensaje 12: Alerta recibida
Tipo: Notificación.
Objetivo: Notificar al organizador que recibió una alerta de un usuario.
Redacción: Ha recibido una alerta del participante “Número de participante“.
Mensaje 13: Sin alertas pendientes
Tipo: Notificación.
Objetivo: Notificar al organizador que tiene alertas pendientes que atender.
Redacción: No hay alertas pendientes.
Mensaje 14: Excedió el número de participantes registrados
Tipo: Notificación.
Objetivo: Notificar al organizador que ya no puede registrar más participantes a
una carrera.
Redacción: Excedió el número de participantes registrados.
Mensaje 15: Fecha u hora inválidas
Tipo: Notificación.
Objetivo: Notificar al organizador que la fecha en la que registra una carrera es
inválida.
Redacción: Fecha u hora inválidos
Mensaje 16: Campo inválido
Tipo: Notificación.
Objetivo: Notificar al usuario que el campo ingresado no cumple con los
requerimientos de validación de variables (poner letras cuando se requieren
números o viceversa).
Redacción: Campo inválido. Vuelva a intentarlo.
Mensaje 17: Carrera concluida
Tipo: Notificación.
Objetivo: Notificar al usuario que la carrera ha llegado a su fin.
Redacción: Ha terminado la carrera.
Mensaje 18: El participante llegó a la meta
Tipo: Notificación.
Objetivo: Confirmar que un participante ya llegó a la meta
Redacción: El participante llegó a la meta
Mensaje 19: La conexión no se ha establecido
Tipo: Notificación
Redacción: La conexión de algún componente no fue exitosa.
Figura 3.15. Catálogo de mensajes
87
3.4. Diagramas de clases
Clase monitoreo: Este va a tener como variables iDMonitoreo (Integer), Pulso Cardiaco
(Integer), Temperatura (Integer), Hora_monitoreo (String), Ubicación (String). Y como
acciones tendrá: Captar pulso y temperatura.
Clase genera historial: Este va a tener como variables IdHistorial (Integer), Hora_Historial
(String), Alerta (String), Hora_Alerta(la hora en la que se generó la alerta) (String),
Intervalo_genera_historial (El intervalo de tiempo en el que se va a estar almacenando
los datos para generar el historial )(String). Y como acciones tendrá: Guardar
información del participante, guardar pulso y temperatura.
89
3.5. Diagrama Entidad-Relación
90
3.6. Diccionario de datos
En las figuras 3.18 a 3.24 se indica el diccionario de datos del diagrama entidad-relación (Ver
figura 25).
91
Figura 3.22 Tabla monitoreo
A continuación, en la figuras 3.25 y 3.26 se indican los diagramas de secuencia del prototipo
propuesto.
92
Figura 3.25. Diagrama de secuencia del organizador
En la figura 3.25 se indican las acciones del organizador en las aplicaciones con las que tendrá contacto (aplicación móvil y web).
92
Figura 3.26. Diagrama de secuencia participante
En la figura 3.26 se indican las acciones del participante en las aplicaciones con las que tendrá contacto (aplicación móvil).
93
3.8. Diagramas de procesos
94
Figura 3.28. Diagrama de procesos aplicación móvil
95
Figura 3.29. Diagrama de procesos del dispositivo electrónico
96
3.9. Diagrama de bloques
A continuación en las figuras 3.30 a la 3.33 se indican los diagramas de bloques del prototipo
propuesto.
97
Figura 3.31. Diagrama de bloques aplicación móvil
98
Figura 3.32 Diagrama de bloques del dispositivo electrónico
En la figura 3.32 se puede observar el primer diagrama de bloques correspondiente al dispositivo
electrónico que consta de lo siguiente:
El pulso cardíaco y la temperatura las estarán obteniendo los sensores correspondientes, el sensor
de pulso cardíaco pasará a una etapa de filtrado para limitar el ancho de banda de la señal y
eliminar las frecuencias no deseadas, inmediatamente el microcontrolador va a procesar la
información obtenida de ambos sensores, se enviará al módulo bluetooth que se encargará de
enviarlo al dispositivo móvil.
99
Figura 3.33. Diagrama de bloques del dispositivo electrónico (componentes)
100
3.10. Diagramas de actividades
A continuación en las figuras 3.34, 3.35 y 3.36 se indican los diagramas de actividades del
prototipo propuesto.
101
Figura 3.35. Diagrama de actividades de la aplicación móvil
102
Figura 3.36. Diagrama de actividades del dispositivo electrónico
103
3.11. Diagramas de estado
A continuación en las figuras 3.37, 3.38 y 3.39 se indican los diagramas de estado del prototipo
propuesto.
104
Si se ingresando datos nuevos habrá un registro y se solicitará información al servidor para
procesarla, si el acceso al servidor es exitoso se desplegará la información solicitada, no el acceso
es fallido se verificará la conectividad. Si en la verificación la conectividad es correcta se
solicitará nuevamente la información y si es fallida se intentará conectar a la red. Finalmente se
cerrará sesión.
105
En la figura 3.38 se indica el diagrama de estado de la aplicación móvil y consiste en lo siguiente:
Va iniciar estando fuera de línea, se ingresarán los datos, se autentificarán; si los datos son
inválidos se rechazará el inicio de sesión, si los datos son válidos se iniciará sesión y estará en
estado: En línea.
Si se ingresando datos nuevos habrá un registro y se solicitará información al dispositivo
electrónico para procesarla, si la recepción es exitosa se desplegará la información solicitada, no
el acceso es fallido se verificará la conectividad. Si en la verificación la conectividad es correcta
se solicitará nuevamente la información y si es fallida se intentará conectar a la red.
A continuación en las figuras 3.40 y 3.41 se indican los diagramas de contexto del prototipo.
CRUD de Organizadores
Verifica datos
Verifica datos CRUD de Participantes
Verifica datos
Inicio de sesión
Verifica datos
Monitoreo
Historial
Aplicación móvil
107
La aplicación web va a tener las siguientes acciones:
Inicio de sesión: Para esta acción habrá una previa verificación de datos, es decir que el
usuario y contraseña existan en la base de datos. Solo los organizadores podrán iniciar
sesión
CRUD Organizadores: Quiere decir que se crearán, leerán, actualizarán y eliminarán los
organizadores, para esta parte se verificará que los datos ingresados sean válidos.
CRUD Participantes: Quiere decir que se crearán, leerán, actualizarán y eliminarán los
participantes, para esta parte se verificará que los datos ingresados sean válidos.
CRUD Carreras: Quiere decir que se crearán, leerán, actualizarán y eliminarán los
carreras, para esta parte se verificará que los datos ingresados sean válidos.
Monitoreo: En esta acción los organizadores podrán monitorear las carreras para poder
verificar el desenvolvimiento en la carrera del participante.
108
La aplicación web va a tener las siguientes acciones:
Inicio de sesión: Para esta acción habrá una previa verificación de datos, es decir que el
usuario y contraseña existan en la base de datos. Solo los participantes podrán iniciar
sesión
CRUD Participantes: Quiere decir que se crearán, leerán, actualizarán y eliminarán los
participantes, para esta parte se verificará que los datos ingresados sean válidos. Esto lo
hará un organizador.
Monitoreo: En esta acción los participantes podrán visualizar los datos para poder
verificar su desenvolvimiento en la carrera
109
3.13. Diagramas de flujo de datos
A continuación de las figuras 3.42 al 3.46 a la se indican los diagramas de flujo de datos de la
aplicación web y móvil. Y en las figuras 3.47 a la 3.53 se indican los diagramas de flujo de datos
de la programación de microcontrolador. Los CRUD’s son en caso de que sea un organizador.
Inicio
Id=0
Contraseña=0
Ingresa usuario y
Verificando
contraseña
Id=idbase
Servidor contraseña= Volver a
Error=TRUE
contraseñabase intentarlo=TRUE
Acceso
exitoso=TRUE
Seleccione una
opción
Genera historial
110
CRUD
Op=0
Nombre
Appaterno
Apmaterno
Email
contraseña
Reg Nombre id
id
Reg Appaterno id ERROR
Reg Apmaterno
Reg Email
Reg contraseña
Id=idbase
Id=idbase
Error
Id=idbase Error
Error
111
CRUD
Op=0
Nombre
Appaterno
Apmaterno
Email
contraseña
Edad
Sexo
Dirección
Observaciones
Pulso
Temperatura
id
id
Reg Nombre
id ERROR
Reg Appaterno
Reg Apmaterno
Reg Email
Reg contraseña Id=idbase
Reg Edad Id=idbase
Error
Reg Sexo Id=idbase Error
Error
Reg Dirección
Reg Observaciones
Reg Pulso
Información
Reg Temperatura Información
Información Fin
Información
Distancia
Duración
Fecha
Hora de inicio
Hora de fin
id
id
id ERROR
Reg Información
Reg Distancia
Reg Duración Id=idbase
Id=idbase
Reg Fecha Error
Id=idbase Error
Reg Hora de inicio Error
Reg Hora de fin
Información
Información
Información Fin
Base de datos
Información
Base de datos == NULL
Base de datos
Reg Información Distancia
Reg Distancia == NULL
Reg Duración Duración
Reg Fecha Fecha
Reg Hora de inicio == NULL
Reg Hora de fin Hora de inicio== NULL
Hora de fin== NULL
113
Monitoreo
id
Id=idbase Error
Número de carrera
Nombre
Temperatura
Ritmo cardíaco
Ubicación
Alerta
Fin
114
Figura 3.47. Diagrama de flujo del programa principal
115
Figura 3.48. Diagrama de flujo del sensor de pulso cardíaco
116
Figura 3.49. Diagrama de flujo de la ISR TIMER 1
117
Figura 3.50. Diagrama de flujo del sensor de temperatura
118
Figura 3.51. Diagrama de flujo del envío de datos (1)
119
Figura 3.52. Diagrama de flujo del envío de datos (2)
120
Figura 3.53. Diagrama de flujo del envío de datos (3)
121
Descripción general del diagrama de flujo del microcontrolador
Variables:
A continuación se hace una pequeña descripción de las variables utilizadas en los diagramas de
flujo del microcontrolador.
Variables:
AD1COM1=Buffer de 16 bits que configura en convertidor analógico-digital:
Bit 15: ADON: Modo de operación del A/D.
0 = Convertidor A/D está operando.
1 = Convertidor A/D está apagado.
Bit 14: Se lee como 0.
Bit 13: ADSIDL: A/D para en modo de inicio.
0 = En modo de discontinuidad de operación cuando se está en modo inactivo.
1 = En modo de operación cuando se entra en modo inactivo.
Bit 12-10 Se leen como 0.
Bit 9-8 FORM<1:0>: Formato de salida.
11 = Fracción con signo (sddd dddd dd00 0000)
10 = Fracción sin singo (dddd dddd dd00 0000)
01 = Entero con signo (ssss sssd dddd dddd)
00 = Entero sin signo (0000 00dd dddd dddd)
Bit 7-5 SSRC<2:0>: Conversión.
111 = Al termino del contador interno y empieza la conversión.
110 = Reservado
101 = Reservado
100 = Reservado
011 = Reservado
010 = El comparador del Timer1 termina y empieza la conversión.
001 = Al término de la transacción activo del pin INT0 y empieza la conversión.
Bit 4-3 Se leen como 0.
Bit 2 ASAM: Auto-comienzo.
122
1 = Muestreo comienza inmediatamente después de la última conversión completada.
0 = Muestreo comienza cuando el bit SAMP se establece.
Bit 1 SAMP: Permisos de muestras A/D.
1 = La muestra-y-amplificación es el muestre de entrada.
0 = La muestra-y-amplificación es la amplificación.
Bit 0 DONE: Estado de la conversión.
1 = Conversión es realizada
0 = Conversión no realizada
AD1COM2=Buffer de 16 bits que configura en convertidor analógico-digital:
Bit 15-13 VCFG<2:0>: Modo de operación
VCFG<2:0> VR+ VR-
000 AVDD AVSS
001 Pin VREF+ externo AVSS
010 AVDD Pin VREF- externo
011 Pin VREF+ externo Pin VREF- externo
1xx AVDD AVSS
Bit 12 OFFCAL: Calibración de compensación
1 = Conversiones para obtener el valor de calibración.
0 = Conversiones para obtener el valor de entrada real.
Bit 11 Se lee como 0.
Bit 10 CSCNA: Selección de entrada digitalizada para la entrada del multiplexor MUX A
1 = Entradas digitales.
0 = No entradas digitales.
Bit 9-8 Se lee como 0.
Bit 7 Bit reservado.
Bit 6 Se lee como 0.
Bit 5-2 SMPI<3:4>: Convertir bits de secuencias por interrupción de selección
1111 =
* =
123
* = Reservados
* =
0010 =
0001 = Interrupciones en la terminación de la conversión para cada segunda secuencia de
conversión o muestra.
0000 = Interrupciones en la terminación de la conversión para cada secuencia de conversión o
muestra.
Bit 1 Bit reservado. Siempre mantenerlo como 0
Bit 0 ALTS: Alternativa de selección de la muestra de entrada.
1 = Utiliza el multiplexor MUX A para configurar para la primera muestra, después, alterna
entre los multiplexores MUX B y MUX A para configurar las muestras posteriores.
0 = Siempre utiliza el multiplexor MUX A para configurar.
AD1CON3= Buffer de 16 bits que configura en convertidor analógico-digital:
Bit 15 ADRC: Conversión fuente del reloj
1 = Reloj interno RC
0 = Reloj derivado del sistema del reloj
Bit 14 EXTSAM: Tiempo de muestreo
1 = Convertidor A/D está muestreando aun después de que SAMP = 0
0 = A/D termina el muestreo
Bit 13 PUMPEN: Bomba de carga activada.
1 = Bomba de carga para los interruptores está activado
0 = Bomba de carga para los interruptores está desactivado
Bit 12-8 SAMC<4:0>: Tiempo de Auto-muestra
11111 = 31 TAD
00001 = 1 TAD
00000 = 0 TAD
Bit 7-6 Mantener como 0.
Bit 5-0 ADCS: Selección del tiempo de conversión
11111 = 64 • TCY
11110 = 63 • TCY
124
00001 = 2 • TCY
00000 = TCY
AD1CHS = Buffer de 16 bits que configura en convertidor analógico-digital:
bit 15 CH0NB: Selección de la entrada negativa del canal 0 para la configuración del
multiplexor MUX B
1 = La entrada negativa del canal 0 es AN1
0 = La entrada negativa del canal 0 es VR-
bit 14-12 Se lee como 0.
bit 11-8 CH0SB<3:0>: Selección de la entrada positiva del canal 0 para la configuración
del multiplexor MUX B.
1111 = AN15
1110 = AN14
1101 = AN13
1100 = AN12
1011 = AN11
1010 = AN10
1001 = AN9
1000 = (0.785 * VDD)
0111 = (0.215 * VDD)
0110 = Referencia interna (VBG)
0101 = Reservado
0100 = AN4
0011 = AN3
0010 = AN2
0001 = AN1
0000 = AN0
bit 7 CH0NA: Selección de la entrada negativa del canal 0 para la configuración del
multiplexor MUX A
1 = La entrada negativa del canal 0 es AN1
0 = La entrada negativa del canal 0 es VR-
125
bit 6-4 Leer como 0
bit 3-0 CH0SA<3-0>: Selección de la entrada positiva del canal 0 para la configuración del
multiplexor MUX A. Las combinaciones son idénticas a CH0SB<3:0>.
ADC1BUF0=Buffer de 16 bits que contiene los datos de entrada y salida del convertidor A/D
ADCValue=Buffer de 10 bits
MRx: Registro timer contador de 16 bits
PR1: Registro de periodo de 16 bits asociado con el timer.
T1CON: Registro de control de 16 bits asociado con el timer.
SSP1STAT= Registro de control de 16 bits asociado con el módulo SPI
bit 15-8 Se lee como 0.
bit 7 SMP: Muestra
SPI modo maestro:
1 = Los datos de entrada se muestrea al final del tiempo de salida de datos
0 = Los datos de entrada se muestrea en la mitad del tiempo de salida de datos
SPI modo esclavo:
SMP debe ser 0 cuando SPI está en modo esclavo.
bit 6 CKE: Selección de reloj.
1 = Transmisión se produce en la transición de activo a inactivo del estado del reloj.
0 = Transmisión se produce en la transición de inactivo a activo del estado del reloj.
bit 5-1 Reservados.
bit 0 BF: Estado del buffer
1 = si SSPxBUF está lleno.
0 = si SSPxBUF no está lleno.
SSP1CON1= Registro de control de 16 bits asociado con el módulo SPI
bit 15-8 Se leen como 0.
bit 7 WCOL: Detección de colisiones en la escritura
1= El registro SSPxBUF está escrito cuando todavía está transmitiendo la palabra anterior (debe
ser despejado en el software).
0 = Sin colisión
126
bit 6 SSPOV: MSSPx Recibe Indicador de desbordamiento bits
SPI Slave mode:
1 = Un nuevo byte se recibe mientras que el registro SSPxBUF aún mantiene los datos anteriores.
En caso de desbordamiento, se pierden los datos en SSPxSR. El desbordamiento sólo puede
producirse en el modo esclavo. El usuario debe leer el SSPxBUF, aunque si sólo se transmiten
datos, para evitar el desbordamiento (debe ser aclarado en el software).
0 = Sin desbordamientos
bit 5 SSPEN: Permite MSSPx
1 = Permite puertos seriales y configuraciones SCKx, SDOx, SDIx y SSx
0 = Deshabilita el puerto serial y sus configuraciones
bit 4 CKP: Selección de la polaridad del reloj
1 = Reloj en estado de reposo en alto nivel
0 = Reloj en estado de reposo en bajo nivel
bit 3-0 SSPM<3:0>: Selección de modo MSSPx
1010 = SPI modo maestro, Clock = FOSC/(2 * ([SSPxADD] + 1))
0101 = SPI modo esclavo, Clock = pin SCKx; control del pin SSx esta desactivado, SSx puede
ser usado como I/O.
0100 = SPI modo esclavo, Clock = SCKx pin; SSx pin control esta desactivado
0011 = SPI modo maestro, Clock = TMR2 salida/2
0010 = SPI modo maestro, Clock = FOSC/32
0001 = SPI modo maestro, Clock = FOSC/8
U2MODE= Registro de control de 16 bits asociado con el módulo UART
bit 15 UARTEN: Permitir UARTx
1 = UARTx está activado.
0 = UARTx está desactivado.
bit 14 Se lee como 0.
bit 13 USIDL: UARTx termina el modo inactivo
1 = Módulo discontinuo de operación cuando entra en modo de inactividad.
0 = Módulo continuo de operación en modo inactivo.
bit 12 IREN: IrDA® codificador y decodificador habilitado.
127
1 = IrDA codificador y decodificador habilitado
0 = IrDA codificador y decodificador deshabilitado
bit 11 RTSMD: Modo de selección para pines UxRTS
1 = Pin UxRTS en modo simple.
0 = Pin UxRTS en modo de control de flujo.
bit 10 Se lee como 0
bit 9-8 UEN: UARTx habilitado
11 = Pines UxTX, UxRX y UxBCLK están habilitados y en uso; Pin UxCTS es controlado por
cierres de puertos.
10 = Pines UxTX, UxRX, UxCTS y UxRTS están habilitados y en uso.
01 = Pines UxTX, UxRX y UxRTS están habilitados y en uso. Pin UxCTS es controlado por
cierres de puertos.
00 = Pines UxTX y UxRX están habilitados y en uso.; Pines UxCTS y UxRTS/UxBCLK son
controlado por cierres de puertos.
bit 7 WAKE: Despertar el inicio detección durante el modo dormido habilitado.
1 = UARTx continuará con las muestras del pin UxRX; interrupción se genera en flanco
descendente, se borra en el hardware en flanco ascendente siguiente.
0 = No wake-up is enabled
bit 6 LPBACK: UARTx Selección del modo “Loopback”
1 = Modo “Loopback” habilitado.
0 = Modo “Loopback” deshabilitado.
bit 5 ABAUD: Auto-Baud Habilitado
1 = Permite la medición de la velocidad de transmisión en el siguiente carácter - requiere la
recepción de un campo de sincronización (55h); despejado en hardware sobre la terminación.
0 = Medición de velocidad de transmisión está deshabilitado o completada
bit 4 RXINV: Recibe Polaridad Inversión
1 = Estado inactivo de UxRX es ‘0’
0 = Estado inactivo de UxRX es ‘1’
bit 3 BRGH: Alta velocidad de transmisión activada
1 = BRG genera 4 relojes por período de bits (en modo de alta velocidad)
128
0 = BRG genera 16 relojes por período de bits (modo estdar)
bit 2-1 PDSEL: Paridad y selección de datos.
11 = 9-bit de datos, no paridad.
10 = 8-bit de datos, paridad impar.
01 = 8-bit de datos.
00 = 8-bit de datos, no paridad.
bit 0 STSEL: Para la selección de bits
1 = dos paro por bit
0 = un paro por bit
U2STA= Registro de control de 16 bits asociado con el módulo UART
bit 15,13 UTXISEL: UARTx Interrupción de transmisión en modo de selección
11 = Reservado
10 = Interrumpir cuando el dato es transferido por (TSR), y el resultado de la transmisión resulta
en buffer vacío.
01 = Interrumpir cuando el último carácter se desplaza fuera de la transmisión Shift Register;
todas las operaciones de transmisión se completan
00 = Interrumpir cuando un carácter se transfiere al Registro de desplazamiento de transmisión
(esto implica que hay al menos un carácter abierto en la memoria intermedia de transmisión)
bit 14 UTXINV: IrDA® Codificador de inversión de polaridad
Si IREN = 0:
1 = UxTX desactivado en ‘0’
0 = UxTX desactivado en ‘1’
Si IREN = 1:
1 = UxTX desactivado en ‘1’
0 = UxTX desactivado en ‘0’
bit 12 leer en ‘0’
bit 11 UTXBRK: UARTx Transmisión cortada
1 = Envía sincronización rota en la próxima transmisión - Empieza el bit, seguido de doce '0';
seguido de un Bit de parada; despejado por hardware sobre la terminación
0 = Transmisión de sincronización rota esta discapacitado o completado
129
bit 10 UTXEN: UARTx Transmisión habilitada
1 = Transmisión habilitada.
0 = Transmisión deshabilitada.
bit 9 UTXBF: UARTx Estado del buffer de transmisión (solo lectura)
1 = Buffer lleno
0 = Buffer no está lleno
bit 8 TRMT: Bit de transmisión de registro (Solo lectura)
1 = El registro de transmisión está vacío y el buffer de transmisión está vacía (la última
transmisión ha sido completada).
0 = El registro de transmisión no está vacío.
bit 7-6 URXISEL: UARTx Recibe interrupción del Modo de selección
11 = La interrupción se establece en la transferencia RSR,
10 = Reservado
01 = Reservado
00 = La interrupción se establece cuando se recibe cualquier carácter y se transfiere de la RSR
para el buffer de recepción; buffer de recepción tiene uno o más caracteres.
bit 5 ADDEN: Dirección del carácter detectado bit
1 = Modo detección de dirección habilitad; si el bit 9 no está seleccionada, esto no tiene efecto.
0 = Modo detección de dirección deshabilitad
bit 4 RIDLE: Inactividad recibida(Solo lectura)
1 = Recibir si está inactivo
0 = Receiver si está activo
bit 3 PERR: Paridad del estado de error (Solo lectura)
1 = Error de paridad se ha detectado para el carácter actual
0 = Error de paridad no se ha detectado.
bit 2 FERR: Estado de error(solo lectura)
1 = Error ha sido detectado para el carácter actual
0 = = Error no se ha detectado.
bit 1 OERR: Estado de error del buffer bit (solo lectura)
130
1 = Buffer desbordado
0 = Buffer no está desbordado
bit 0 URXDA: UARTx Recibir datos disponibles del buffer (solo lectura)
1 = El buffer contiene datos.
0 = El buffer no contiene datos.
TRISx= Este registro nos sirve para poder configurar cada pin de E/S como entrada o como
salida. 1 como entrada, 0 como salida.
PORTx = Los datos en los pines de E/S son accedidos a través de este registro.
LATx = Cuando hacemos una lectura a estos registros se regresa el valor contenido en los latch
de salida del puerto en lugar de los pines de E/S.
Temperatura=buffer de 12 bits.
SSP1BUF= buffer del módulo SPI.
Cardiaco1 = buffer de 8 bits.
Cardiaco2 = buffer de 8 bits.
Temp1 = buffer de 8 bits.
Temp2 = buffer de 8 bits.
IFS0 = Bandera de estado de interrupción. Registro de 16 bits.
T1IF = IFS0<3>=Estado de interrupción del Timer1.
1 = La interrupción ha ocurrido.
0 = La interrupción no ha ocurrido.
IEC0 = Registro de control de interrupciones. Registro de 16 bits.
T1IF = IEC0<3>=Interrupción del timer1 habilitado
1 = La interrupción habilitada.
0 = La interrupción no habilitada.
A continuación en la figura 3.54 y 3.55 se indican los diagramas en 3D de la placa del dispositivo
electrónico, en las figuras 3.56 y 3.57 se indica el diseño de la placa, en la figura 3.58 se indica el
131
diagrama esquemático del dispositivo electrónico y en la figura 3.59 el diagrama del
funcionamiento interno del sensor de pulso cardíaco.
132
Figura 3.56. Diseño de la placa (1)
133
Figura 3.58. Esquemático del dispositivo electrónico
134
Figura 3.59. Funcionamiento interno del pulse sensor
135
Figura 3.60. Funcionamiento interno del TC77
136
3.15. Interfaz de comunicación
137
3.16. Avances
A continuación se indican los avances y pruebas realizadas para Trabajo Terminal 1, hasta junio
2015.
En la figura 3.61 se puede apreciar la señal obtenida del pulso cardíaco por medio del
osciloscopio. Para la etapa de trabajo terminal 1, se realizan pruebas en una persona en reposo.
En esta etapa se definio que se utilizaría un filtro para hacer más visible la onda de la diástole (la
más pequeña).
Esto nos ayudará a que la señal digital obtenida tenga una mayor precisión.
138
Adicionalmente, en esta fase se propone utilizar un cristal oscilador para aumentar la frecuencia
con la que trabaja el microcontrolador, que trabaje con los 16 MIPS del microcontrolador y éste.
Además este cristal ayudará a que se tenga una buena sincronización con el modulo bluetooth
(UART) con una mínima probabilidad de error.
Debido a que el microcontrolador admite frecuencias de 8 a 32 MHZ pero a su vez solo trabaja
con una frecuencia interna de la mitad de 16 MHZ, es decir 8MHZ, se propone agregar un cristal
oscilador de 7.3 MHz con 4 PLL, con esto obtenemos 29.2 MHZ (7.3 x 4 = 29.2 MHZ) esto entre
dos nos da un total de frecuencia de procesamiento de 14.6 MHZ, es decir casi el doble de
frecuencia que tendría el microcontrolador sin el cristal.
Adicionalmente, cabe mencionar que para la comunicación entre el teléfono móvil y la aplicación
web será mediante sockets con peticiones HTTP, y como se usará Javascript utilizaremos JSON
(JavaScript Object Notation), ya que es un formato ligero para el intercambio de datos.
Vistas.
En esta sección se indicarán las vistas propuestas para este prototipo tanto de aplicación web
como aplicación móvil
Aplicación web
A continuación en de la figura 3.62 a la 3.65 se indican las vistas preliminares de la aplicación
web.
139
Figura 3.62. Bienvenida
140
Figura 3.63. Monitoreo de la carrera
141
Figura 3.64. Ubicación del participante
142
Figura 3.65. Ver carreras
143
Aplicación móvil
A continuación de la figura 3.66 a la 3.68 se indican las vistas preliminares para la aplicación
móvil.
144
Figura 3.67. Monitoreo
145
Figura 3.68. Historial del monitoreo
146
CAPÍTULO 4. IMPLEMENTACIÓN
En el presente capítulo se indican las fases de implementación del prototipo tanto de la aplicación
web, móvil y el dispositivo electrónico.
Con base en el diagrama de la figura 4.1 el cual nos indica que los participantes de la carrera
portarán el dispositivo electrónico para que sus signos vitales sean obtenidos, dicha información
será enviada mediante bluetooth a la aplicación móvil para que sea desplegada, estos dos
dispositivos los llevará consigo el participante durante toda la carrera. La información obtenida
por la aplicación móvil se enviará mediante un servicio de datos o de internet a un servidor para
que la aplicación web pueda hacer las peticiones de información a éste y desplegarlos, con esto
los organizadores podrán consultarlos en cualquier momento. En las siguientes secciones se
explicarán las partes fundamentales de la implementación del prototipo.
147
4.1. Aplicación web
En la figura 4.2 se muestra el código programado para la conexión de la base de datos del
servidor con el sistema gestor de base de datos, Mysql, indicando el número de host, usuario,
contraseña, el número de puerto y finalmente el nombre de la base de datos. Para esta fase de
implementación primero se desarrolló la aplicación de manera local para finalmente subirla a la
nube y que esté disponible para cualquier usuario, esto con el fin de que el usuario no tenga la
necesidad de tener que instalar la aplicación principal cada vez que la necesite, sino simplemente
consultar la dirección en la que se encuentra hospedada.
149
Figura 4.5. Recepción de mensajes del servidor a la aplicación web
De las figuras 4.6 a la 4.9 se muestra el código programado para generar el historial de cada
participante. El historial se irá generando dependiendo de cada carrera deportiva. El organizador
deberá indicar un intervalo de tiempo para la generación del historial, si el organizador indica
como intervalo “Cada 5 minutos” significa que cada 5 minutos se guardarán los valores de
participante en una tabla que podrá ser consultada al finalizar la carrera.
152
Figura 4.10. Aplicación Cargada en Openshift
153
Figura 4.12. Vista principal de la aplicación web
154
Figura 4.14. Accediendo a la base de datos “monitoreo”
Los códigos completos se podrán consultar en los anexos incluidos en el presente trabajo.
En la figura 4.15 se muestra el código programado para las peticiones GET al servidor. El
servidor al ser web opera mediante el protocolo HTTP, de la capa de aplicación del Modelo OSI.
Las peticiones al servidor suelen realizarse mediante HTTP utilizando el método de petición
GET, en el que el recurso se solicita a través de la dirección URL al servidor web.
155
Figura 4.15. Petición GET
En la figura 4.16 se muestra el código programado para la petición POST al servidor. Los datos a
enviar al servidor se incluyen en el cuerpo del código de la misma petición.
156
En la figura 4.17 se muestra el código programado para la conexión socket entre el navegador
web y el servidor. Existe una conexión persistente entre el cliente y servidor, y ambas partes
pueden empezar a enviar datos en cualquier momento.
157
En la figura 4.19 se muestra el código programado para la recepción y conversión de binario a
decimal de las variables a monitorear.
Según John G. Proakis la correlación [90] es una operación similar a la convolución que se
utiliza para medir la similitud entre dos secuencias. Por otro lado la función de autocorrelación
158
se define como la correlación cruzada de la señal consigo misma. La función de autocorrelación
resulta de gran utilidad para encontrar patrones repetitivos dentro de una señal, como por ejemplo
identificar la frecuencia fundamental de una señal. Si y(n) = x(n), entonces se obtiene la
autocorrelación de x(n), que se define como la secuencia (Figura 4.20):
159
Figura 4.21. Señal del pulso cardíaco en MATLAB
160
1. Oscilador estándar: Habilita el uso de un oscilador externo
Estado: Deshabilitado
2. High speed- oscilador externo
Estado: Deshabilitado
3. Low power- oscilador externo
Estado: Deshabilitado
4. Oscilador primario (Deshabilita el uso de osciladores externos)
Estado: Habilitado
5. Watchdog: Protección usada para volver a reiniciar el programa cuando éste "se pierde".
Estado: Deshabilitado
6. Inicialización de periféricos (entradas y salidas)
Se realizó la configuración del Timer1: Este módulo se utiliza para darle la frecuencia de trabajo
al módulo ADC (Convertidor Analógico Digital). Se configuró esta frecuencia de trabajo a 50 HZ
(50 veces por segundo)
Se manejó un máximo y un mínimo de pulsaciones antes del colapso de un atleta, teniendo como
máximo 200 pulsaciones y un mínimo de 30 pulsaciones antes de un paro cardíaco. Como las
pulsaciones mínimas por minuto antes del colapso en una persona son 30 pulsaciones. Es decir
ocurre 1 pulsación por cada dos segundos en un minuto (para el algoritmo de auto correlación se
necesitan 2 señales que comparar) Así que se obtendrán muestras por 4 segundos (4 segundos por
50 nos da un total de 200 muestras procesar).
Se configuró el UART (comunicación serial), la cual se utilizará para la comunicación entre el
microcontrolador y la PC (para la primera etapa de pruebas) para después implementarlo con el
módulo bluetooth al celular.
En la figura 4.23 se indica el código programado para el procesamiento de la señal del pulso
cardíaco, el algoritmo de autocorrelación.
161
Figura 4.23. Algoritmo de autocorrelación en ensamblador
En la figura 4.24 se muestra el código programado para la obtención de la temperatura mediante
la interfaz de comunicaciones SPI.
162
Figura 4.24. Obtención de la temperatura
En la figura 4.25 se muestra el código programado para el envío del pulso cardíaco al módulo
bluetooth, en la figura 4.26 se indica el envío de la temperatura al módulo bluetooth. El proceso
para la obtención del pulso tarda un aproximado de 6 segundos, mientras que la temperatura tarda
300ms, se programó un retardo para que la temperatura y el pulso sean enviados de manera
simultánea.
163
Figura 4.26. Envío de la temperatura al módulo bluetooth
Utilizando un módulo FTDI, mencionado anteriormente, se programó una pequeña aplicación de
prueba en java, esto con el fin de visualizar el ritmo cardíaco y temperatura obtenidos. Se armó
un pequeño prototipo en una tablilla de experimentación “Protoboard”, utlizando como
alimentación y programador un PICKIT 3 de Microchip, ver figura 4.27.
165
En la figura 4.30 se indica el diagrama esquemático final de la placa.
166
Figura 4.31. Diseño de la placa para el sensor de temperatura
En la figura 4.32 se indica el diagrama esquemático final de la placa del sensor de temperatura.
167
De las figuras 4.33 a la 4.35 se muestran algunas fases de la implementación de la placa final
utilizando la máquina de prototipado para PCB’s ProtoPlace 5
168
Figura 4.34. Soldando componentes a la placa
En la figura 4.35 se puede observar la placa final terminada.
En el presente capítulo se indican las fases de pruebas del prototipo tanto modulares, es decir, de
la aplicación web, móvil y el dispositivo electrónico tanto de integración del prototipo completo.
En esta sección se indican las pruebas realizadas en cada uno de los módulos del prototipo
(aplicación web, aplicación móvil y dispositivo electrónico).
170
En caso de olvido de contraseña, el organizador puede solicitar que se le envíe a su correo
electrónico (ver figuras 5.3, 5.4 y 5.5).
172
Figura 5.10. Información del participante
175
Figura 5.16. Inicio de sesión
Después de un inicio de sesión se mostrará la pantalla de bienvenida, ver figura 5.17, después del
mensaje de bienvenida nos indica el estado de conexión entre la aplicación móvil y el dispositivo
electrónico (Dispositivo no conectado). En esta vista nos indica 4 botones principales:
1. Iniciar monitoreo: Deshabilitado cuando el dispositivo electrónico no está conectado a la
aplicación móvil mediante bluetooth).
2. Historial: Se podrá consultar el historial registrado de los signos vitales del participante.
3. Conectar con pulsera: Este botón servirá para conectar la aplicación móvil y el dispositivo
electrónico mediante Bluetooth.
4. Cerrar sesión.
176
Figura 5.17. Vista después del inicio de sesión.
Con esto se finaliza la etapa de prueba modular de la aplicación móvil. Para más detalles de
instalación y uso consulte los manuales adjuntos.
En esta sección se indican las pruebas realizadas en el dispositivo electrónico. En la tabla 5.1 se
indican una serie de mediciones de prueba del ritmo cardíaco hechas a personas de ambos sexos
obtenidas del dispositivo electrónico, estas mediciones fueron comparadas contra un dispositivo
comercial (Reloj Polar) y mediciones manuales, esto con el fin de obtener un porcentaje de error
entre dichas mediciones. Las mediciones realizadas fueron hechas a 30 personas tanto del sexo
femenino y masculino ambos de edades entre los 18 y 50 años de edad las mujeres se encuentran
del lado izquierdo de la tabla (rosa) y los hombres del lado derecho (azul). Las mediciones fueron
hechas tanto en reposo como durante la actividad física.
177
No. Edad PPM PPM Error Error Medición Error Error Edad PPM PPM Error Error Medición Error Error
(Dispositivo (Dispositivo absoluto relativo manual absoluto relativo (Dispositi (Dispositi absoluto relativo manual absoluto relativo
electrónico) comercial) vo vo
electrónic comercial
o) )
En Reposo
1 18 76 79 3 3,8% 78 1 1,3% 22 69 72 3 4,2% 71 1 1,4%
2 20 69 71 2 2,8% 71 0 0,0% 23 67 69 2 2,9% 68 1 1,4%
3 22 70 72 2 2,8% 72 0 0,0% 18 68 71 3 4,2% 70 1 1,4%
4 19 75 77 2 2,6% 76 1 1,3% 41 65 67 2 3,0% 66 1 1,5%
5 25 71 73 2 2,7% 73 0 0,0% 35 67 68 1 1,5% 68 0 0,0%
6 24 77 80 3 3,8% 78 2 2,5% 33 64 67 3 4,5% 66 1 1,5%
7 18 74 77 3 3,9% 76 1 1,3% 28 63 65 2 3,1% 65 0 0,0%
8 22 72 75 3 4,0% 74 1 1,3% 50 60 61 1 1,6% 60 1 1,6%
9 22 68 70 2 2,9% 69 1 1,4% 48 61 63 2 3,2% 62 1 1,6%
10 22 66 69 3 4,3% 68 1 1,4% 44 62 63 1 1,6% 62 1 1,6%
11 26 69 72 3 4,2% 71 1 1,4% 40 64 66 2 3,0% 65 1 1,5%
12 28 64 65 1 1,5% 64 1 1,5% 19 75 73 -2 -2,7% 72 1 1,4%
13 45 59 60 1 1,7% 60 0 0,0% 25 72 73 1 1,4% 72 1 1,4%
14 43 61 62 1 1,6% 61 1 1,6% 24 77 78 1 1,3% 77 1 1,3%
15 33 65 67 2 3,0% 66 1 1,5% 22 80 82 2 2,4% 80 2 2,4%
16 19 73 74 1 1,4% 72 2 2,7% 23 71 73 2 2,7% 72 1 1,4%
17 29 68 69 1 1,4% 68 1 1,4% 23 72 73 1 1,4% 72 1 1,4%
18 35 62 64 2 3,1% 63 1 1,6% 22 70 71 1 1,4% 70 1 1,4%
19 39 61 61 0 0,0% 60 1 1,6% 33 65 66 1 1,5% 64 2 3,0%
20 47 59 60 1 1,7% 60 0 0,0% 30 64 65 1 1,5% 65 0 0,0%
21 50 58 60 2 3,3% 58 2 3,3% 29 67 68 1 1,5% 67 1 1,5%
22 50 60 61 1 1,6% 60 1 1,6% 41 61 62 1 1,6% 61 1 1,6%
23 21 77 78 1 1,3% 77 1 1,3% 22 72 73 1 1,4% 71 2 2,7%
24 37 66 68 2 2,9% 67 1 1,5% 21 75 76 1 1,3% 75 1 1,3%
25 28 65 67 2 3,0% 66 1 1,5% 20 70 71 1 1,4% 70 1 1,4%
26 48 78 79 1 1,3% 78 1 1,3% 20 74 75 1 1,3% 73 2 2,7%
178
27 23 70 73 3 4,1% 72 1 1,4% 21 71 72 1 1,4% 71 1 1,4%
28 29 67 70 3 4,3% 68 2 2,9% 19 78 79 1 1,3% 78 1 1,3%
29 37 67 69 2 2,9% 68 1 1,4% 39 61 62 1 1,6% 62 0 0,0%
30 34 61 63 2 3,2% 61 2 3,2% 37 64 64 0 0,0% 63 1 1,6%
Durante una actividad física
1 18 123 125 2 1,6% 124 1 0,8% 22 134 137 3 2,2% 136 1 0,7%
2 20 120 121 1 0,8% 121 0 0,0% 23 133 134 1 0,7% 133 1 0,7%
3 22 126 129 3 2,3% 127 2 1,6% 18 135 136 1 0,7% 135 1 0,7%
4 19 128 131 3 2,3% 129 2 1,5% 41 137 139 2 1,4% 139 0 0,0%
5 25 132 135 3 2,2% 134 1 0,7% 35 139 141 2 1,4% 140 1 0,7%
6 24 131 139 8 5,8% 138 1 0,7% 33 137 139 2 1,4% 138 1 0,7%
7 18 137 141 4 2,8% 141 0 0,0% 28 136 143 7 4,9% 142 1 0,7%
8 22 122 125 3 2,4% 124 1 0,8% 50 130 131 1 0,8% 131 0 0,0%
9 22 117 119 2 1,7% 119 0 0,0% 48 128 130 2 1,5% 129 1 0,8%
10 22 115 118 3 2,5% 116 2 1,7% 44 127 128 1 0,8% 128 0 0,0%
11 26 120 122 2 1,6% 120 2 1,6% 40 111 115 4 3,5% 114 1 0,9%
12 28 127 130 3 2,3% 129 1 0,8% 19 143 145 2 1,4% 144 1 0,7%
13 45 108 111 3 2,7% 110 1 0,9% 25 132 134 2 1,5% 133 1 0,7%
14 43 107 110 3 2,7% 108 2 1,8% 24 120 123 3 2,4% 122 1 0,8%
15 33 120 123 3 2,4% 121 2 1,6% 22 128 130 2 1,5% 128 2 1,5%
16 19 118 120 2 1,7% 118 2 1,7% 23 129 132 3 2,3% 130 2 1,5%
17 29 123 126 3 2,4% 123 3 2,4% 23 134 136 2 1,5% 135 1 0,7%
18 35 115 118 3 2,5% 115 3 2,5% 22 127 130 3 2,3% 130 0 0,0%
19 39 114 117 3 2,6% 115 2 1,7% 33 115 119 4 3,4% 116 3 2,5%
20 47 111 115 4 3,5% 114 1 0,9% 30 116 118 2 1,7% 116 2 1,7%
21 50 119 122 3 2,5% 121 1 0,8% 29 117 119 2 1,7% 118 1 0,8%
22 50 107 110 3 2,7% 109 1 0,9% 41 113 114 1 0,9% 113 1 0,9%
23 21 133 135 2 1,5% 133 2 1,5% 22 135 137 2 1,5% 135 2 1,5%
24 37 132 136 4 2,9% 134 2 1,5% 21 137 139 2 1,4% 138 1 0,7%
25 28 133 137 4 2,9% 135 2 1,5% 20 139 140 1 0,7% 139 1 0,7%
26 48 115 117 2 1,7% 116 1 0,9% 20 135 138 3 2,2% 137 1 0,7%
27 23 122 124 2 1,6% 123 1 0,8% 21 135 137 2 1,5% 135 2 1,5%
28 29 115 119 4 3,4% 118 1 0,8% 19 133 134 1 0,7% 133 1 0,7%
179
29 37 118 121 3 2,5% 119 2 1,7% 39 112 114 2 1,8% 111 3 2,6%
30 34 121 122 1 0,8% 120 2 1,6% 37 110 111 1 0,9% 109 2 1,8%
Tabla 5.1. Mediciones de prueba del ritmo cardíaco
Se puede concluir que las mediciones resultantes entre el dispositivo electrónico y el dispositivo comercial “Polar”, tienen un grado de error
considerablemente pequeño con un máximo de porcentaje de 4.3% en reposo y 2.5% durante una actividad física, al igual que las mediciones
entre el dispositivo electrónico y la medición manual convencional cuyo error máximo en reposo es de 3% y de 1.6% durante una actividad
física.
A continuación en la tabla 5.2, se indican una serie de mediciones de prueba de la temperatura corporal hechas a personas de ambos sexos
obtenidas del dispositivo electrónico, estas mediciones fueron comparadas contra un dispositivo comercial (termómetro digital Citizen), esto
con el fin de obtener un porcentaje de error entre dichas mediciones. Las mediciones realizadas fueron hechas a 30 personas tanto del sexo
femenino y masculino ambos de edades entre los 18 y 50 años de edad las mujeres se encuentran del lado izquierdo de la tabla (rosa) y los
hombres del lado derecho (azul). Las mediciones fueron hechas tanto en reposo como durante la actividad física.
No. De Edad Temperatura Temperatura Error Error Edad Temperatura Temperatura Error Error
medición
corporal corporal absoluto relativo corporal corporal absoluto relativo
(Dispositivo (Dispositivo (Dispositivo (Dispositivo
electrónico) comercial) electrónico) comercial)
En reposo
1 18 35 35,7 0,7 2,0% 22 35 36,0 1,0 2,8%
2 20 35,4 35,6 0,2 0,6% 23 35,4 35,7 0,3 0,8%
3 22 35,6 35,8 0,2 0,6% 18 34,5 34,7 0,2 0,6%
4 19 35,4 36 0,6 1,7% 41 34,5 35,1 0,6 1,7%
5 25 35,5 35,7 0,2 0,6% 35 35,7 35,9 0,2 0,6%
6 24 35,4 35,6 0,2 0,6% 33 35,4 35,6 0,2 0,6%
7 18 34,9 35,8 0,9 2,5% 28 34,9 35,8 0,9 2,5%
8 22 35,7 36 0,3 0,8% 50 35,7 36 0,3 0,8%
180
9 22 34,7 35 0,3 0,9% 48 34,7 35 0,3 0,9%
10 22 34,2 35,1 0,9 2,6% 44 35,1 35,1 0,0 0,0%
11 26 35,2 36,1 0,9 2,5% 40 35,9 36,1 0,2 0,6%
12 28 34,9 35,8 0,9 2,5% 19 35,6 35,8 0,2 0,6%
13 45 35,1 36 0,9 2,5% 25 35,8 36 0,2 0,6%
14 43 34,1 35 0,9 2,6% 24 34,8 35 0,2 0,6%
15 33 34,2 35,1 0,9 2,6% 22 34,9 35,1 0,2 0,6%
16 19 35,2 36,1 0,9 2,5% 23 35,4 36,1 0,7 1,9%
17 29 34,1 35 0,9 2,6% 23 34,5 35 0,5 1,4%
18 35 34,2 35,1 0,9 2,6% 22 34,4 34,9 0,5 1,4%
19 39 35,2 36,1 0,9 2,5% 33 35,2 35,4 0,2 0,6%
20 47 35,1 36 0,9 2,5% 30 34 34,5 0,5 1,4%
21 50 35,1 36 0,9 2,5% 29 36 36 0,0 0,0%
22 50 35,6 35,8 0,2 0,6% 41 35,8 36 0,2 0,6%
23 21 35,2 35,4 0,2 0,6% 22 35,6 35,8 0,2 0,6%
24 37 36,4 36,4 0,0 0,0% 21 35,4 35,4 0,0 0,0%
25 28 36,3 36,6 0,3 0,8% 20 36,1 36,4 0,3 0,8%
26 48 35,8 36 0,2 0,6% 20 36,4 36,6 0,2 0,5%
27 23 35,6 35,8 0,2 0,6% 21 35,8 36 0,2 0,6%
28 29 35,5 35,7 0,2 0,6% 19 35,6 35,8 0,2 0,6%
29 37 35 35,6 0,6 1,7% 39 35,1 35,7 0,6 1,7%
30 34 35,2 35,4 0,2 0,6% 37 35,4 35,6 0,2 0,6%
Durante una actividad física
1 18 35,7 36,6 0,9 2,5% 22 35,6 36,9 1,3 3,5%
2 20 36,1 36,5 0,4 1,1% 23 36,0 36,6 0,6 1,6%
3 22 36,3 36,7 0,4 1,1% 18 35,1 35,6 0,5 1,4%
4 19 36,1 36,9 0,8 2,2% 41 35,1 36,0 0,9 2,5%
5 25 36,2 36,6 0,4 1,1% 35 36,3 36,8 0,5 1,4%
6 24 36,0 36,5 0,5 1,4% 33 36,0 36,5 0,5 1,4%
7 18 35,5 36,7 1,2 3,3% 28 35,5 36,7 1,2 3,3%
8 22 36,3 36,9 0,6 1,6% 50 36,3 36,9 0,6 1,6%
9 22 35,3 35,9 0,6 1,7% 48 35,3 35,9 0,6 1,7%
10 22 34,8 36,0 1,2 3,3% 44 35,7 36,0 0,3 0,8%
181
11 26 35,8 37,0 1,2 3,2% 40 36,5 37,0 0,5 1,4%
12 28 35,5 36,7 1,2 3,3% 19 36,2 36,7 0,5 1,4%
13 45 35,7 36,9 1,2 3,3% 25 36,4 36,9 0,5 1,4%
14 43 34,7 35,9 1,2 3,3% 24 35,4 35,9 0,5 1,4%
15 33 34,8 36,0 1,2 3,3% 22 35,5 36,0 0,5 1,4%
16 19 35,8 37,0 1,2 3,2% 23 36,0 37,0 1,0 2,7%
17 29 34,7 35,9 1,2 3,3% 23 35,1 35,9 0,8 2,2%
18 35 34,8 36,0 1,2 3,3% 22 35,0 35,8 0,8 2,2%
19 39 35,8 37,0 1,2 3,2% 33 35,8 36,3 0,5 1,4%
20 47 35,7 36,9 1,2 3,3% 30 34,6 35,4 0,8 2,3%
21 50 35,7 36,9 1,2 3,3% 29 36,6 36,9 0,3 0,8%
22 50 36,3 36,7 0,4 1,1% 41 36,4 36,9 0,5 1,4%
23 21 35,9 36,3 0,4 1,1% 22 36,2 36,7 0,5 1,4%
24 37 37,1 37,3 0,2 0,5% 21 36,0 36,3 0,3 0,8%
25 28 37,0 37,5 0,5 1,3% 20 36,7 37,3 0,6 1,6%
26 48 36,5 36,9 0,4 1,1% 20 37,0 37,5 0,5 1,3%
27 23 36,3 36,7 0,4 1,1% 21 36,4 36,9 0,5 1,4%
28 29 36,2 36,6 0,4 1,1% 19 36,2 36,7 0,5 1,4%
29 37 35,7 36,5 0,8 2,2% 39 35,7 36,6 0,9 2,5%
30 34 35,9 36,3 0,4 1,1% 37 36,0 36,5 0,5 1,4%
Tabla 5.2. Mediciones de prueba de la temperatura corporal
Se puede concluir que las mediciones resultantes entre el dispositivo electrónico y el dispositivo comercial “Citizen”, tienen un grado de
error considerablemente pequeño con un máximo de porcentaje de 0.81% en reposo y 0.79% durante una actividad física.
182
5.2. Pruebas finales y de integración
183
escanearemos los dispositivos cercanos a la aplicación móvil, ver figura 5.21, hay que
recordar que entre el dispositivo electrónico (pulsera) y el móvil no puede haber una
distancia mayor a 10 metros; una vez encontrado el dispositivo electrónico (de nombre
“Pulse”) presionaremos el botón conectar, ver figura 5.22, se hará una solicitud de
conexión y el ingreso de una contraseña para poderse conectar, ver figura 5.23, una vez
conectado se mostrará la leyenda “Dispositivo conectado” y se habilitará el botón de
“Iniciar Monitoreo”, ver figura 5.24, al presionar el botón de iniciar monitoreo se podrá
visualizar: el ritmo cardíaco, temperatura, se podrá enviar una alerta a la aplicación web
de manera manual, consultar el historial de monitoreo y terminar monitoreo, ver figura
5.25.
184
Figura 5.19. Conectar con pulsera.
185
Figura 5.20. Permiso de encender bluetooth
186
Figura 5.21. Escaneando dispositivos cercanos
187
Figura 5.22. Conectando con el dispositivo electrónico
188
Figura 5.23. Solicitud de conexión
189
Figura 5.24. Dispositivo conectado y boton habilitado (Iniciar monitoreo)
190
Figura 5.25. Monitoreo del ritmo cardíaco y temperatura
191
4. Ahora se ingresará a la aplicación web con la cuenta de “organizador” y en la pestaña
“Gestionar carreras”, accederemos mediante el botón “Monitorear” a la Carrera ESCOM
(ver figura 5.26).
192
6. El participante mediante la aplicación móvil podrá envíar una alerta manual, esta podrá
ser visualizada en la aplicación web (ver figura 5.11).
193
Figura 5.30. Alerta amarilla
194
Figura 5.32. Terminar monitoreo.
10. Una vez hecho el punto anterior, el organizador podrá visualizar que el participante
termino el monitoreo cuando este se encuentra resaltado en color azul, ver figura 5.33.
195
11. Al terminar el monitoreo tanto el participante como el organizador podrán visualizar el
historial de signos vitales y de alertas del participante, ver figuras 5.34 a 5.39.
196
Figura 5.36. Historial del participante
197
Figura 5.38. Seleccionando carrera
198
Figura 5.39. Historial en la aplicación móvil
Para efector de prueba, se desarrolló una pequeña sección para agregar a varios participantes
prueba, esto con el fin de simular que varios participantes se están conectando de manera
simulánea.
En la figura 5.40 se indica la sección en la que se podrá ingresar ‘n’ cantidad de participantes
prueba.
199
Figura 5.40. Ingresar participantes de prueba
Una vez ingresado a esta sección, se podrán indicar el número de participantes a agregar y la
carrera a la que se asignarán (ver figura 5.41).
200
Figura 5.42. Iniciar prueba de monitoreo
201
En la parte superior izquierda de la figura 5.44 se muestra el botón “Solo alertas” el cual nos
mostrará solo a los participantes que están emitiendo algún tipo de alerta (ver figura 5.45).
202
GB de RAM, esto da un número máximo teórico de conexiones concurrentes de cerca de
4.000 usuarios.
En cada carrera deportiva, existe un promedio de aproximadamente 3,000 participantes.
Para carreras con mayor número de participantes se deberán considerar las características
físicas de la computadora (s) que monitorearán la carrera.
Es importante mencionar que esto depende de la velocidad de la red a la que se
encuentren conectados los participantes en una carrera real.
No. de Usuarios prueba Tiempo para el Conclusión. El total
prueba conectados de manera despliegue de datos de usuarios
concurrente. (segundos) conectados es:
1 500 6 Ideal
2 1000 6 Ideal
3 1500 6 Ideal
4 2000 6 Ideal
5 2500 6 Ideal
6 3000 6 Ideal
7 3500 6 Ideal
8 4000 10 No recomendable
9 4500 12 No recomendable
10 5000 - No soportado
Figura 5.3. Pruebas usuarios concurrentes
Para finalizar todo, el organizador apagará el dispositivo electrónico y será retirado del
participante.
Con el punto anterior se finaliza la explicación del funcionamiento general del prototipo, para
más información consulte los manuales o el video adjunto de funcionamiento.
203
CAPÍTULO 6. CONCLUSIONES Y TRABAJO A FUTURO
En este capítulo se indicarán las conclusiones a las que se llegó al finalizar este trabajo y lo que
se propone como trabajo a futuro.
CONCLUSIONES
Se cumplieron los objetivos tanto el general como específicos al término del desarrollo de
este prototipo.
Es de gran importancia tener una idea clara además de una investigación previa de los
temas a tratar para que las etapas de análisis y diseño del sistema a realizar sean más
sencillas de llevar a cabo.
Fue complicada la elección de componentes, ya que el objetivo del presente trabajo es que
fuera lo más eficiente y del menor tamaño posible.
Para la parte del servidor es necesario tomar en cuenta las características físicas de la
computadora con la que se monitoreará a los participantes (por ejemplo: la memoria
RAM), esto para que soporte la mayor cantidad de usuarios conectados de manera
concurrente.
Para la fuente de alimentación se propusieron pilas AAA ya que son las más pequeñas y
que nos ofrecen más horas de uso continuo de energía, pero este aspecto está sujeto a
cambios. La alimentación general del PCB es de 3.3 Volts, esta alimentación se mantiene
con la ayuda de un regulador, así que se puede cambiar a cualquier tipo de pilas o fuente
siempre y cuando el voltaje sea igual o mayor a 3.3 Volts.
204
Los datos serán actualizados para su despliegue en las aplicaciones aproximadamente
cada 6 segundos, la tasa de transferencia fue de 19,200 baudios, es decir, 1,920 bits por
segundo. El tiempo puede variar dependiendo de la velocidad de la red de datos a la que
se encuentran conectados la aplicación móvil y la aplicación web, además de la cantidad
de usuarios conectados de manera concurrente.
El sensor de pulso cardíaco puede tener problemas de ruido en la señal, esto puede
suceder si el dispositivo se encuentra mal colocado en el participante o los pines se
mueven de su base, como solución se propuso dejar el sensor lo más fijo posible en el
PCB.
Por otro lado, el sensor de temperatura no tuvo mayores problemas, solamente en la parte
de la configuración del SPI del microcontrolador, pero en cuanto al resultado arrojado fue
el que menor grado de error tuvo con respecto al otro sensor.
Con base en la figura 6.1 podemos observar las versiones que soporta correctamente la
aplicación móvil, siendo la mínima versión de Android la 2.2 “Froyo” y hasta la versión
actual. La aplicación móvil no puede soportar una versión anterior por el uso del
bluetooth, Wifi o servicio de datos.
205
TRABAJO A FUTURO
206
Referencias
[1] Deporte es Salud, «El deporte y sus beneficios en la salud física, mental y psicológica,» 2014. [En
línea]. Available: http://www.deportesalud.com/deporte-salud-el-deporte-y-sus-beneficios-en-la-
salud-fisica-y-mental-y-psicologica-.html. [Último acceso: Marzo 2015].
[2] Corredores del bosque de Tlalpan, «Calendario de Carreras México,» México, D.F., 2014.
[3] Instituto Politécnico Nacional, «Carrera IPN 11K,» México, D.F. , 2014.
[4] La jornada UNAM, «Muere competidor a causa de un infarto,» México D.F. , 2013.
[5] CNN México Noticias, «Muere un corredor del Maratón de la Ciudad de México por paro
respiratorio,» México D.F. , 2013.
[6] Instituto Balseiro, «Sistemas embebidos,» Bariloche, Río Negro, Argentina, 2000. [En línea].
Available: http://www.ib.cnea.gov.ar/~sisemb/apuntes/Modulo1.1.pdf. [Último acceso: Marzo
2015].
[7] Startcapps, «¿Qué es una App?,» Madrid, España , 2010. [En línea]. Available:
http://www.startcapps.com/blog/que-es-una-app/#sthash.9oVChYF8.dpu. [Último acceso: Marzo
2015].
[8] GPS, «Sistema de Posicionamiento Global al Servicio del Mundo,» [En línea]. Available:
http://www.gps.gov/spanish.php. [Último acceso: Marzo 2015].
[9] Google, «Google Maps,» España, 2005. [En línea]. Available:
http://www.googlemaps.es/?page_id=3. [Último acceso: Marzo 2015].
[10] G. Coulouris, Sistemas Distribuido, Tercera ed., Madrid.: Addison Wesley, 2001.
[11] Apache Software Fundation, «Capítulo 5 “Modelo Cliente-Servidor”,» 2014. [En línea].
Available: http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/marquez_a_bm/capitulo5.pdf.
[Último acceso: Marzo 2015].
[12] La información obtenida en esta sección es una recopilación de varias fuentes como son:
R. Pallas, Sensores y acondicionadores de señal, España: Marcombo. ISBN 8426713440., 2005.
Creus, S. A. (1998). Instrumentación industrial. España: Alfaomega. España. ISBN 8426713610.
Pérez, M. A. (2004). Instrumentación electrónica. España: Thompson. ISBN 8497321669.
[13] DICIS - UG, «Procesamiento digital de señales. Teorema de muestreo,» 2013. [En línea].
Available: http://www.ingenierias.ugto.mx/profesores/ljavier/documentos/Lec01%20-
%20Teorema%20de%20Muestreo.pdf. [Último acceso: Mayo 2015].
[14] J. L. H. David A. Patterson, Computer organization and design., Cuarta ed., ISBN-
10:0123744938: The Morgan Kaufmann Series in Computer Architecture and Design, 2008.
[15] M. en C. Rubén Hernández Tovar, M. en C. Víctor Hugo García Ortega., «Sistema de
Monitoreo de Pulso Cardíaco y Temperatura Corporal para Entrenamiento Deportivo,» TT 914,
2005.
[16] Instituto de Ciencias Nucleares (ICN) de la Universidad Nacional Autónoma de México
(UNAM), «Proyecto de investigación: Vigilancia y Análisis Continuo de Signos Vitales
(VACS),» México D.F. , 2013.
[17] Facultad de Ingeniería, Escuela de Ingeniería Electrónica, Universidad Central, «Proyecto de
investigación: Sistema Telemétrico De Monitoreo Cardiaco Y Variables Hombre-Máquina
Aplicado Al Ciclismo,» Bogotá, Colombia, 2005.
207
[18] Laboratorio de Innovación y Desarrollo Móvil de la Facultad de Ingeniería (FI) de la
Universidad Nacional Autónoma de México (UNAM), «Podium. Chamarra inteligente para
corredores,» México, D.F., 2014.
[19] Samsung, «Simband. Salud Digital de Samsung,» Corea del Sur, Seúl, 2014.
[20] Adidas, adidas miCoach, «Smart Run. Un reloj al ritmo de los atletas,» Herzogenaurach,
Alemania, 2014.
[21] Ikerlan S. Coop, , «Una metodología para el desarrollo de hardware y software embebidos en
sistemas críticos de seguridad,» 2006. [En línea]. Available:
www.iiisci.org/journal/CV$/risci/pdfs/C863GM.pdf. [Último acceso: Octubre 2014].
[22] University of Rochester Medical Center, «Enciclopedia Médica-Signos Vitales,» Estados
Unidos de America, Rochester, 2013. [En línea]. Available:
http://www.urmc.rochester.edu/Encyclopedia/Content.aspx?ContentTypeID=85&ContentID=P03
963. [Último acceso: Marzo 2015].
[23] V. RG, «Systemic hypertension: Mechanisms and diagnosis,» de Heart Disease: A Textbook
of Cardiovascular Medicine, Braunwald's , 2008.
208
[Último acceso: Abril 2015].
209
[49] Life augmented, «Hoja de datos de SPBT2632C1A,» 2014. [En línea]. Available:
http://www.atmel.com/Images/Atmel-8265-8-bit-AVR-Microcontroller-tinyAVR-ATtiny87-
ATtiny167_datasheet.pdf. [Último acceso: Abril 2015].
[50] U-blox, «Hoja de datos de OBS421,» 2014. [En línea]. Available:
http://www.ti.com/lit/ds/symlink/msp430f110.pdf. [Último acceso: Abril 2015].
210
[65] BLACKBERRY, «Sistema operativo Blackberry,» 2015. [En línea]. Available:
http://mx.blackberry.com/. [Último acceso: Abril 2015].
[66] CNN, «“Android dominó el mercado de los 'smartphones'”,» 2014. [En línea]. Available:
http://mexico.cnn.com/tecnologia/2013/02/15/android-domino-el-mercado-de-los-smartphones-
en-2012. [Último acceso: Abril 2015].
[67] Notimex, «”México, segundo lugar en ventas de smartphones de América Latina”,» 2014. [En
línea]. Available: http://www.sdpnoticias.com/tecnologia/2011/10/07/mexico-segundo-lugar-en-
ventas-de-smartphones-de-america-latina. [Último acceso: Abril 2015].
[68] Universidad Autónoma De Baja California Sur, «Análisis Y Diseño Del Módulo De Catálogos
Del Sistema Integral De Planeación,» 2013. [En línea]. Available:
http://biblio.uabcs.mx/tesis/te3087.pdf. [Último acceso: Abril 2015].
[69] LibrosWeb, «Capítulo 2. HTML,» 2014. [En línea]. Available:
http://librosweb.es/libro/xhtml/capitulo_2.html. [Último acceso: Abril 2015].
212
Glosario
213
Fuente de alimentación: es convertir la tensión alterna en una tensión continua y lo más
estable posible.
Hardware: Partes físicas de un sistema.
Instrumentación: Área de la ingeniería que trata de la medición para el control de
procesos, con base en instrumentos de medición.
Instrumento de medición: Es aquel conjunto de elementos que forman un instrumento,
capaz de convertir una variable física en una señal o indicación a ser interpretada por
sistema externo (usuario) con mayor facilidad.
Linealidad: Por lo general los instrumentos se diseñan de forma que tengan una respuesta
lo más lineal posible, es decir, que para un determinado incremento del parámetro que
estamos midiendo, el desplazamiento correspondiente del indicador sea siempre el
mismo, independientemente de la posición de éste.
Medición: Asignar un valor numérico a una magnitud concreta, de acuerdo a una regla
bien definida.
Muestreo: Tomar distintas mediciones de una variable a tiempos discretos.
Monitoreo: es el proceso de recolectar, analizar y utilizar información para hacer
seguimiento de algo.
Modelo Vista-Controlador: o MVC es un patrón que define la organización independiente
del Modelo (Objetos de Negocio), la Vista (interfaz) y el Controlador.
Precisión: Medida de la reproducibilidad de las mediciones: i.e. dado el valor fijo de la
variable, la precisión es una medida del grado con el cual las mediciones sucesivas
difieren una de otra.
Prototipo: Ejemplar original o primer molde en que se fabrica una figura u otra cosa.
Resistencia: Es el grado de oposición que genera un material al paso de la corriente
eléctrica. Su unidad de medida es el Ohm (Ω).
Resolución: Cambio más pequeño en el valor medido al cual responde el instrumento.
Requerimientos funcionales y no funcionales
Salud: Estado en que el ser orgánico ejerce normalmente todas sus funciones
Síncrono: Se refiere al acceso inmediato, en tiempo real de información u otros datos, por
ejemplo la mensajería instantánea.
Sensor: Dispositivo capaz de detectar magnitudes físicas o químicas, y transformarlas en
variables eléctricas bien definidas y caracterizadas.
Sensibilidad: Relación de la señal de salida o respuesta del instrumento respecto al
cambio de la entrada o variable medida.
Servidor (Computación): Es una aplicación en ejecución (software) capaz de atender las
peticiones de un cliente y devolverle una respuesta en concordancia.
Signo Vital: Son mediciones de las funciones más básicas del cuerpo
SPI: “Serial Peripheral Interface”, es un estándar de comunicaciones, usado para la
transferencia de información entre circuitos en equipos electrónicos. El bus de interfaz de
periféricos es un estándar para controlar casi cualquier dispositivo electrónico digital que
acepte flujo de bits
Software: Equipamiento lógico o soporte lógico de un sistema informático
214
Transductor: Dispositivo capaz de transformar o convertir un determinado tipo de energía
de entrada, en otra de diferente a la salida.
Tensión: Es la diferencia de potencial entre dos puntos de un circuito eléctrico. Su unidad
de medida es el Volt.
UART: Universal Asynchronous Receiver-Transmitter, es el dispositivo que controla los
puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta
adaptadora del dispositivo.
Variable analógica: Cuando los datos constituyen matemáticamente un conjunto denso;
i.e. puede tener cualquier valor dentro de un intervalo determinado.
Variable digital: Cuando los datos constituyen un conjunto finito de valores, normalmente
representados en sistema binario.
Variable física: Es la magnitud de algo que puede influir en el estado de un sistema físico.
p.g. peso, velocidad, fuerza, etc. Las magnitudes pueden ser escalares o vectoriales.
Voltaje: También llamada tensión eléctrica o diferencia de potencial, es una magnitud de
la física que mide la diferencia de potencial eléctrico que existe entre dos puntos. El flujo
de electrones circula del punto de menor potencial al punto de mayor potencial. Puede ser
medido con un voltímetro.
Wifi: Es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica
215
ANEXOS
En esta sección se indican los cálculos necesarios para el diseño del PCB. En la tabla 1, se
indican los valores propuestos para este prototipo:
Componente Valor
R1 10KΩ
R2 10KΩ
R3 330Ω
R4 10 KΩ
R5 180 KΩ
R6 100 KΩ
C1 0.1µF
C2 0.1µF
C3 15pF
C4 15pF
C5 1µF
Tabla 1. Propuesta de valores
El filtro MAX295 opera ya sea con fuentes de alimentación dobles (+-) o individuales (+). Para
trabajar con una fuente de alimentación individual se nos recomienda usar un divisor de voltaje
con resistencias (R1 y R2) de 10KΩ. Esta es la operación del divisor de voltaje mostrado en la
figura 1:
216
Figura 1. Divisor de voltaje.
Como resultado es que nos da exactamente la mitad del voltaje suministrado (3.3v).
La resistencia R4 está en una conexión típica con un push botton, para que cuando no este
presionado el push button envié un 0 lógico. Usualmente es de .
Las resistencias R5 y R6 son para la configuración del regulador MAX6349 para obtener un
voltaje de salida de 3.3v. En la hoja de datos nos muestra que debemos hacer la siguiente
operación (Ver figura 2):
Figura 2. MAX6349
La hoja de datos recomienda que R2 debe ser mayor o igual a 100 KΩ para optimizar el consumo
de energía. Así que se propone R2 = 100 KΩ. Entonces nuestra ecuación nos queda así
217
Utilizaremos 180 ya que es un valor comercial.
La hoja de datos del filtro MAX295 nos recomienda usar capacitores de 0.1µF (C1 y C2).
C3 y C4 son conductores de acoplamiento del cristal se recomienda usar 10 y 33 pF. Sirven para
que la salida del oscilador no sea distorsionada.
Para C5 la hoja de datos del regulador MAX6349 recomienda usar un capacitor de 1 µF para
reducir el ruido y mejorar la carga respuesta y la estabilidad de la fuente de alimentación.
Es importante mencionar que para obtener la frecuencia máxima del pulso cardíaco se hizo lo
siguiente:
Las pulsaciones máximas que puede tener una persona son: 200 pulsaciones por minuto,
dividiéndolo entre 60, nos da un total de 3.3 que será la frecuencia máxima del pulso cardíaco
(3.3 HZ)
Para que la señal de pulso cardíaco la podamos ver en frecuencia tenemos que revisar los
milisegundos que esta mide, en el caso de que una onda completa midiese 750 ms, hay que
dividir 60,000 / 750 nos dará 80 (pulsaciones por minuto).
Las hojas de datos correspondientes a los componentes elegidos se encuentran en una carpeta
adjunta llamada “Hojas de datos”.
218