TFG - Javier Arechalde

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 68

INGENIERITZA GOI ESKOLA TEKNIKOA

ESCUELA TCNICA SUPERIOR DE INGENIERA


BILBAO

ANALIZADOR DE SEALES FISIOLGICAS


PORTABLE BASADO EN PLATAFORMAS LOWCOST

Autor
Javier Arechalde Pelaz

Director
Eloy Irigoyen Gordo

Curso Acadmico
2015/2016

Analizador se seales fisiolgicas portable basado en plataformas low-cost

DATOS BSICOS DEL TRABAJO DE FIN DE GRADO:

Ttulo: Analizador de seales fisiolgicas portable basado en plataformas low-cost.


Resumen:
Este proyecto tratar de disear de una plataforma de bajo coste para recoger seales
fisiolgicas. Esta plataforma estar basada en la utilizacin de un Arduino UNO y un mdulo
eHealth para conectar los distintos sensores. Arduino ser programado utilizando el entorno de
desarrollo de Arduino (IDE), y las distintas herramientas en Python y PHP. Para adquirir los datos
se utilizarn sensores compatibles con la plataforma eHealth tales como: sensor de temperatura
corporal, pulsioxmetro, electrocardiograma y respuesta galvnica de la piel. El objetivo ser
crear una plataforma de bajo coste, sencilla de usar, basada en Arduino, para recoger y procesar
seales fisiolgicas.
Palabras clave: Salud, Arduino, Raspberry Pi, bajo coste, Python, PHP.
Title: Portable physiologic signals analyzer based on low cost platforms.
Abstract:
The following Project will aim to design a low cost platform for measuring physiological signals.
The platform is based on using an Arduino UNO and an eHealth module to connect the different
sensors. The Arduino will be programmed using Arduino development environment (IDE), and
the several tools developed in this project with Python and PHP. To acquire the data several
sensors compatible with the eHealth platform will be used, such as body temperature sensor,
pulse-oximeter, electrocardiogram and galvanic skin response. The goal is to create a low-cost,
user-friendly platform based on Arduino for gathering and processing physiological data.
Keywords: Health, Arduino, Raspberry Pi, low-cost.
Izenburua: Seinale fisiologikoak aztertzeko koste baxuko plataforma eramangarria.
Laburpena:
Proiektu honen Helburua seinale fisiologikoak biltzeko eta aztertzeko koste baxuko plataforma
diseinatzea da. Plataforma honek Arduino ONE erabiltzen du eta eHealth moduloan oinarritzen
da sensoreak konektatzeko. Arduino programatzen da IDE entornoen, Python eta PHP bidez.
Datuak ateratzeko, eHealth plataformarekin bideragarriak diren hurrengo sentsoreak erabiliz
dira: gorputzeko tenperatura neurtzeko, pulsioximetroa, elektrokardiograma eta azaleko
erantzun galbanikoa. Helburua da koste baxuko plataforma bat garatzea da, erraza eta
Arduinon oinarritatuta, seinale fisiologikoak jasotzeko eta prozesatzeko.
Hitzgakoak: Osasun, Arduino, Raspberry Pi, kostu baxu, Python, PHP.

[2]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

NDICE DE CONTENIDOS

INTRODUCCIN ............................................................................................ 7

OBJETIVOS Y ALCANCE .............................................................................. 8

BENEFICIOS ................................................................................................ 10
3.1 Beneficios Tcnicos ............................................................................... 10
3.2 Beneficios Econmicos.......................................................................... 10

ANLISIS DE ALTERNATIVAS .................................................................... 11


4.1 Alternativas de hardware ....................................................................... 11
4.2 Alternativas de software ........................................................................ 13
4.3 Hardware elegido .................................................................................. 16
4.4 Software elegido .................................................................................... 27

METODOLOGA ........................................................................................... 31
5.1 Puesta en marcha de Arduino ............................................................... 31
5.2 Puesta en marcha de la RPi .................................................................. 35
5.3 Muestra de datos ................................................................................... 41
5.4 Consulta de datos de forma remota ....................................................... 42
5.5 Representacin de datos en tiempo real................................................ 44
5.6 Anlisis de datos ................................................................................... 46

DESCRIPCIN DE TAREAS. GANTT .......................................................... 51

PRESUPUESTO .......................................................................................... 54

CONCLUSIONES ......................................................................................... 56

FUENTES DE INFORMACIN ..................................................................... 57

ANEXOS..................................................................................................................... 58
Anexo 1: Conexin de sensores ................................................................................. 58
Anexo 2: Carga del programa en la RPi ...................................................................... 62
Anexo 3: Haciendo la RPi disponible desde internet ................................................... 64

[3]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

NDICE DE FIGURAS

Figura 1. eHealth .......................................................................................................... 7


Figura 2 Matlab vs Python .......................................................................................... 14
Figura 3 Grfica phpMyAdmin .................................................................................... 15
Figura 4 Arduino UNO ................................................................................................ 16
Figura 5 Mdulo eHealth ............................................................................................. 17
Figura 6 Conexiones mdulo eHealth ......................................................................... 18
Figura 7 Raspberry Pi 3 Model B ................................................................................ 19
Figura 8 Curva caracterstica del termistor .................................................................. 20
Figura 9 Sensor Temperatura ..................................................................................... 21
Figura 10 Sensor Pulsioxmetro .................................................................................. 22
Figura 11 Clasificacin segn las ppm ........................................................................ 24
Figura 12 Electrodos ECG .......................................................................................... 24
Figura 13 Seal ECG .................................................................................................. 25
Figura 14 Medicin GSR ............................................................................................. 26
Figura 15 Seal GSR .................................................................................................. 26
Figura 16 Arduino IDE ................................................................................................ 27
Figura 17 Funcionamiento sketch de Arduino ............................................................. 28
Figura 18 Script Python .............................................................................................. 29
Figura 19 Interfaz phpMyAdmin .................................................................................. 30
Figura 20 Libreras eHealth......................................................................................... 31
Figura 21 Funcin pulsioxmetro ................................................................................. 33
Figura 22 Funcin temperatura ................................................................................... 33
Figura 23 Calibracin del sensor de temperatura corporal .......................................... 34
Figura 24 Calibracin del sensor GSR ........................................................................ 34
Figura 25 Win32 Disk Imager...................................................................................... 35
Figura 26 Eleccin SO ................................................................................................ 36
Figura 27 Servidor Apache2 ....................................................................................... 37
Figura 28 Instalacin phpMyAdmin ............................................................................. 38
Figura 29 Pgina de inicio phpMyAdmin ..................................................................... 39
Figura 30 Permisos servidor web ................................................................................ 40
Figura 31 Men de opciones....................................................................................... 41
Figura 32 Men de temperatura .................................................................................. 41
Figura 33 Muestra de datos de temperatura ............................................................... 42
Figura 34 Resultados web .......................................................................................... 44
[4]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 35 Representacin de datos en tiempo real ..................................................... 45


Figura 36 Opciones de muestreo de datos ................................................................. 46
Figura 37 Representacin seales GSR y BPM.......................................................... 48
Figura 38 Seal ECG dividida por zonas .................................................................... 49
Figura 39 Ventana de resultados ................................................................................ 50
Figura 40 Diagrama Gantt .......................................................................................... 53
Figura 41 Conexiones placa eHealth .......................................................................... 58
Figura 42 Conexin sensor de temperatura ................................................................ 59
Figura 43 Conexin pulsioxmetro............................................................................... 59
Figura 44 Conexin ECG ............................................................................................ 60
Figura 45 Conexin de electrodos al cuerpo ............................................................... 61
Figura 46 Conexin sensor GSR ................................................................................ 62
Figura 47 Dispositivos conectados a Raspberry Pi ..................................................... 63
Figura 48 Raspberry Pi internet .................................................................................. 64
Figura 49 Men de configuracin del router ................................................................ 65
Figura 50 Apertura de puertos .................................................................................... 65
Figura 51 Men No-IP................................................................................................. 66
Figura 52 Servicio no-ip .............................................................................................. 68

[5]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

NDICE DE TABLAS

Tabla 1 Comparativa dispositivos Arduino .................................................................. 11


Tabla 2 Comparacin Raspberry Pi con PC ................................................................ 12
Tabla 3 Caractersticas Arduino UNO ......................................................................... 17
Tabla 4 Caractersticas tcnicas Raspberry Pi ............................................................ 19
Tabla 5 Diagnstico en funcin de la temperatura corporal ........................................ 22
Tabla 6 Diagnstico en funcin del O en sangre ......................................................... 23
Tabla 7 Hitos del proyecto .......................................................................................... 52
Tabla 8 Horas internas................................................................................................ 54
Tabla 9 Amortizaciones .............................................................................................. 54
Tabla 10 Presupuesto Arduino + eHealth ................................................................... 55
Tabla 11 Presupuesto Raspberry Pi ........................................................................... 55
Tabla 12 Coste total del proyecto ............................................................................... 55
Tabla 13 Conexin electrodos ECG ............................................................................ 60

[6]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

1 INTRODUCCIN
Hoy en da, es un tema de actualidad la aparicin de los single-board-computer (SBC)
u ordenadores de una sola placa, que son bsicamente un ordenador completo en un
solo circuito. Estos ordenadores abren todo un mundo de posibilidades a la hora de
desarrollar todo tipo de programas, aplicaciones, etc. Debido a su reducido tamao y a
su relativamente elevada potencia se pueden utilizar para realizar tareas que antes
realizaba un ordenador, consiguiendo una reduccin considerable en el espacio y en el
consumo.

En este proyecto se utilizarn dos de estos dispositivos para el desarrollo de una


plataforma de bajo coste con la que obtener y analizar seales fisiolgicas. Estos
dispositivos se tratan de Arduino y Raspberry Pi, en concreto los modelos Arduino UNO
y Raspberry Pi model 3. Las seales fisiolgicas que se obtendrn y analizarn son:
Temperatura corporal, electrocardiograma (ECG), respuesta galvnica de la piel (GSR),
pulso y porcentaje de oxgeno en sangre. Para ello har falta un mdulo desarrollado
por Cooking Hacks para dotar a la placa Arduino de las entradas y salidas necesarias
para conectar estos sensores.

Para estos propsitos, se utilizarn distintos programas y herramientas desarrollados


para estas plataformas, tales como Arduino IDE que nos permitir programar la placa
Arduino, como Python y phpMyAdmin, que nos permitirn el procesamiento de los datos
obtenidos de Arduino en la Raspberry Pi, y almacenar los datos en una base de datos
accesible desde cualquier lugar respectivamente.

Figura 1. eHealth

[7]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

2 OBJETIVOS Y ALCANCE
El objetivo de este proyecto es el desarrollo de una plataforma para analizar seales
fisiolgicas portable, basado en plataformas low cost o de bajo coste. Esta plataforma
adems ha de ser portable, y se pretender que sea sencilla de usar, para tratar de
llegar al mayor nmero de gente posible.

Se desarrollarn varias alternativas, cada una enfocada hacia un rea, ya sea la


recogida, muestra o anlisis de datos. Para ello habr que primero configurar el sistema
operativo Raspbian en la Raspberry Pi, y hacer los cambios necesarios en las liberas
de Arduino proporcionadas por Cooking Hacks, la empresa que fabrica el mdlo
eHealth.

Para mostrar los datos, se tratar que el sistema tenga una interfaz amigable e intuitiva,
para que el usuario pueda ver los datos fisiolgicos de una manera simple y muy visual.
Este sistema estar basado en Arduino nicamente, disendose la interfaz desde el
entorno de desarrollo de Arduino (Arduino IDE). Se presentar un men en el que el
usuario podr ver las distintas opciones disponibles y seleccionar la que ms le
convenga.

Para las siguientes utilidades se usarn los dos dispositivos, Arduino y Raspberry Pi,
conectados entre s para la obtencin y el procesado de datos respectivamente. La
necesaria utilizacin de la Raspberry Pi se debe a la limitacin de Arduino tanto de
potencia, como de memoria disponible.

En el caso de recogida de datos, y consulta de forma remota, se ofrecer una


herramienta que recoja los datos, los almacene, y adems la posibilidad de consultar
los datos de los pacientes de una forma remota, va web. Esta herramienta estar
basada en la comunicacin de Arduino con la Raspberry Pi, y un servidor web instalado
en la misma. Aparte se podrn recoger muestras de datos que quedarn almacenadas
en una base de datos, tambin accesible va web.

[8]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para el seguimiento de variables fisiolgicas en tiempo real se utilizar un programa


desarrollado en Python, que constar de un men de opciones, una ventana donde se
mostrarn los sucesos, y otra ventana donde se representar la evolucin de la variable
escogida. En caso de que una variable muestre sntomas de enfermedad o algn
problema, se avisar al usuario mostrando un mensaje en la ventana de sucesos.

Por ltimo, para el anlisis de seales fisiolgicas se ofrecern, dos soluciones. Una
herramienta prctica para deteccin de situaciones de estrs, pnico etc., basada en el
anlisis de la respuesta galvnica de la piel y de las pulsaciones por minuto. Y por otro
lado una herramienta que se encarga de analizar la seal ECG, en varios aspectos.
Ambas herramientas estarn basadas en scripts de Python.

[9]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

3 BENEFICIOS
3.1 Beneficios Tcnicos
Esta plataforma ofrecer varias herramientas de recogida, procesamiento y
almacenamiento de datos. Los programas que utilizar, y las herramientas en las que
se basar su programacin son todas de cdigo abierto, y por lo tanto gratuitas.
Adems, sern todas ellas multiplataforma, lo que permitr usarlas ya sea en PC
(Windows), OSX o Linux.

Todas las soluciones ofrecidas dispondran de una interfaz de usuario, en la cual se


podrn observar las distintas opciones disponibles. As se conseguir que su manejo
sea ms intuitivo.

Tendr la gran ventaja de contar con un servidor web LAMP, en el cual, a parte de
almacenar datos, ofrecer distintas alternativas para la visualizacin. Adems, la
adquisicin y visualizacin de datos se podr realizar de forma remota, y una vez
almacenados en la base de datos, podrn ser consultados en cualquier momento y
lugar. Adems, la plataforma ser totalmente portable, pudiendo alimentarse la
Raspberry Pi y Arduino con una batera, y conectados a la red por medio de Wi-Fi.

3.2 Beneficios Econmicos


Las principales piezas del hardware que se utilizaran para el desarrollo de esta
plataforma son Arduino y Raspberry Pi. Se utilizar Arduino para la obtencin de datos
fisiolgicos, y la Raspberry Pi para procesar esos datos. Ambos dispositivos son de bajo
coste, suponiendo, adems un considerable ahorro de consumo de energa con
respecto a un ordenador convencional.

Por otro lado, todo el software que se utilizar en esta plataforma, adems de las
herramientas utilizadas para la programacin, sern gratuitos, por lo que supondr una
reduccin considerable de gastos con respecto al uso de herramientas convencionales.

[10]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

4 ANLISIS DE ALTERNATIVAS
En los siguientes apartados se analizarn las distintas alternativas tanto de software,
como de hardware, en las que se podra basar la plataforma planteada. Ms adelante
se expondrn las soluciones escogidas.

4.1

Alternativas de hardware

En cuanto al hardware, se seleccionarn dos dispositivos, uno con el que se obtendrn


los datos, y otro para el tratamiento de los mismos. Esto se debe a que Arduino tiene
una potencia y almacenamiento limitados, por lo que a la hora de procesamiento de
datos habr que hacer uso de otro dispositivo que realice esta carga ms pesada.

Para la obtencin de datos es de especial de inters el uso de un dispositivo portable,


de reducido consumo, y sobre todo econmico.

Arduino es una plataforma que cumplir con todos los requisitos. Una vez tomada la
decisin de basar la plataforma en Arduino, slo quedara decidir cul de las distintas
versiones de Arduino se utilizar en este proyecto.

Microcontrolador
Reloj
Memoria Flash
SRAM
Pines E/S digitales
Pines Analgicos

Arduino UNO
Ethernet
Leonardo
Arduino Due
ATmega328 Atmega328 ATmega32U4 Atmel SAM3U4E
16 MHz
16 MHz
16 MHz
96 MHz
32 kB
32 kB
32 kB
256 kB
2 kB
2 kB
3.3 kB
50 kB
14
14 (10)
14
54
6
6
6
16
Tabla 1 Comparativa dispositivos Arduino

[11]

ADK
ATmega2560
16 MHz
256 kB
8 kB
54
16

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Por su compatibilidad total con el mdulo eHealth, y por ser la versin de Arduino ms
comn, se ha elegido la versin oficial de Arduino, el Arduino UNO. Sobre este
dispositivo se desarrollar toda la parte del proyecto correspondiente a la obtencin de
datos. Ms adelante, y debido a la limitacin en su memoria, potencia, y teniendo en
mente futuras aplicaciones, Arduino quedar directamente descartado como plataforma
para procesamiento de datos y por ello habr que recurrir a otras alternativas.

A la hora de tratamiento de datos se parte de las mismas premisas que para la obtencin
de datos, pero en este caso se buscar adems un dispositivo con potencia suficiente
para la realizacin de las tareas de representar datos, almacenarlos y procesarlos.

En este contexto surgirn un par de alternativas, una de ellas sera el ordenador


tradicional o PC, por otro lado, el ordenador de placa nica o single board computer de
bajo coste desarrollado por la Raspberry Pi Foundation, la Raspberry Pi.

Comenzando por el PC, es una mquina fiable, compatible con prcticamente todo el
software de programacin disponible en la actualidad, y con potencia ms que de sobra
para realizar todas las tareas que hagan falta. Sin embargo, tambin tiene las contras
de ser un dispositivo relativamente caro, y con un elevado consumo de energa.
Adems, incumple una de las premisas fundamentales del proyecto, que es que la
plataforma desarrollada sea portable.

Por otro lado, la Raspberry Pi, dispone de un sistema operativo, entre otros, basado en
la distribucin Debian (Linux), con unas menores alternativas de software disponibles
que en un PC, y con una potencia considerablemente menor. Sin embargo, se trata de
un dispositivo econmico, de reducido consumo y lo que es ms importante, portable.
En resumen, la Raspberry Pi ofrece casi todo lo que podra ofrecer un PC, sin renunciar
a la portabilidad, eso s, con una potencia ms limitada.

Precio
Conectividad
Potencia
Consumo
Peso

Raspberry Pi

Wifi, Bluetooth,
Ethernet
Limitada
Reducido
Reducido

PC

Wifi, Bluetooth,
Ethernet
Elevada
Elevado
Elevado

Tabla 2 Comparacin Raspberry Pi con PC

[12]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

4.2 Alternativas de software


En lo que refiere al software, se plantearn varias alternativas, ya sea para la obtencin,
procesamiento o almacenamiento de datos.
Obtencin de datos

Para la obtencin de los datos, se requerir una herramienta que permita obtener los
datos de forma fiable.

En este caso Arduino IDE ser la principal alternativa, debido a que las libreras para la
obtencin de datos a travs del mdulo eHealth, han sido desarrolladas para este
entorno de desarrollo. Otra alternativa sera usar el entorno de desarrollo Processing,
muy similar al Arduino IDE, pero con ms complementos que permiten el desarrollo de
interfaces grficas, representacin en tiempo real, etc. Como habra que adaptar las
libreras a Processing, y debido a que Arduino posee una potencia limitada para futuras
aplicaciones, se descartar en principio su uso, pero no se descartar que en un futuro
pudiera llegar a utilizarse para estos propsitos.

Procesamiento de datos

En cuanto al procesamiento de datos, se requerir una herramienta flexible, que a la


vez sea compatible con el mayor nmero de dispositivos posible y que por supuesto,
sea compatible con Arduino.

Se plantearn dos alternativas compatibles con Arduino para la extraccin y


procesamiento de los datos obtenidos mediante esta plataforma.

Matlab y Python sern las alternativas a tener en cuenta, debido a que ambos son
lenguajes de scripting, o cdigo interpretado, que permiten realizar cambios en el cdigo
con facilidad sin necesidad de compilar; esto supone un sacrificio en cuanto al
rendimiento, pero se un ahorro de una cantidad considerable de tiempo. Otra
herramienta a tener en cuenta sera R, pero queda descartado al ser una herramienta
ms enfocada hacia el anlisis estadstico.

[13]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 2 Matlab vs Python

Matlab es una potente herramienta desarrollada por MathWorks, con una gran cantidad
de mdulos disponible de fbrica, para crear interfaces grficas, representar datos, etc.
El mayor inconveniente de esta herramienta es su precio, que al ser elevado, no es muy
adecuado para el diseo de esta plataforma low-cost.

Por otro lado, Python es una herramienta potente tambin, open source y gratuita,
adems de ser compatible con todos los sistemas operativos usados comnmente para
ordenador. Es una herramienta ampliamente utilizada en aplicaciones orientadas hacia
el anlisis de datos, y tambin dispone de muchos mdulos disponibles cono NumPy,
MatPlotlib o Tkinter, que aunque no vengan instalados de serie y requieran una puesta
a punto, permitirn aadir distintas funcionalidades a Python para crear programas
mucho ms completos.

Dado que se quiere desarrollar una herramienta de bajo coste, a la vez accesible para
todo el mundo y flexible, para el desarrollo de este proyecto se utilizar la herramienta
Python, para programar todo lo que nos sea necesario a la hora de obtener y procesar
datos de la plataforma Arduino.

[14]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Almacenamiento de datos

En lo que refiere al almacenamiento de datos y su visualizacin va web, se precisar


de una herramienta de sencillo manejo, y con la posibilidad de representar los datos
obtenidos mediante la plataforma, para su mejor interpretacin. Un requisito que habr
de cumplir esta herramienta es que sea capaz de manejar bases de datos MySQL, que
ser la utilizada por la Raspberry Pi para almacenar los datos provenientes de Arduino.

Se tendrn en cuenta dos alternativas para la gestin de bases de datos desde la Web,
phpMyAdmin, herramienta web de gestin de bases de datos muy extendida y Adminer,
menos popular, pero con ciertas ventajas a tener en cuenta.

phpMyAdmin se trata de una herramienta que requiere de seguir un proceso de


instalacin, ocupando un tamao considerablemente mayor que Adminer. Adminer en
cambio, slo consta de un archivo PHP, prescindiendo as de una instalacin con su
configuracin correspondiente, y reduciendo considerablemente el tamao que ocupa.
Sin embargo, phpMyAdmin cuenta con una herramienta para representar los datos
almacenados, mientras que Adminer carece de una herramienta similar. Esta cuestin
ser decisiva a la hora de la eleccin de la alternativa.

Figura 3 Grfica phpMyAdmin

[15]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

4.3 Hardware elegido


4.3.1 Arduino UNO
Arduino UNO es una placa programable de bajo coste, que dispone de entradas y
salidas, digitales y analgicas, y se programa con la herramienta Arduino IDE. Se trata
de un dispositivo de Open Hardware, lo que significa que sus esquemticos estn
disponibles en la web, y cualquiera que se lo proponga puede fabricar su propia versin
de la placa. Arduino est basado en el microcontrolador ATmega328, y su precio oficial
es de 20, pero se pueden encontrar alternativas desde 5.

Figura 4 Arduino UNO

La herramienta con la que se programa para Arduino es Arduino IDE, una herramienta
basada en Processing. El lenguaje de programacin para Arduino est basado en
Wiring. Cabe destacar la limitada memoria Flash de la que consta Arduino, ya que ser
lo que limitar, a parte de su potencia, el desarrollo de aplicaciones ms potentes en
Arduino, y por lo cual ser necesario recurrir a Raspberry Pi, y a la creacin de varios
sketches de Arduino para cada aplicacin en vez de uno unificado. En la siguiente tabla
se pueden observar las caractersticas tcnicas de la placa Arduino UNO REV3.

[16]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Arduino UNO
Microcontrolador
ATmega328
Voltaje de operacin
5V
Voltaje de entrada
7-12 V
Pins deI/O digital
14 (6 se pueden usar como PWM)
Pins de I analgica
6
DC por el pin IO
40 mA
DC por el pin de 3.3 V
50 mA
Memoria Flash
32 kB
SRAM
2kB
EEPROM
1kB
Frecuencia de reloj
16 Hz
Tabla 3 Caractersticas Arduino UNO

4.3.2 eHealth Sensor Platform


Como ya se ha expuesto, Arduino consta de entradas y salidas digitales y analgicas,
sin embargo, no dispone de entradas para los sensores especficos que se utilizarn a
lo largo de este proyecto. Para dotar a la placa Arduino de estas entradas, se utilizar
el mdulo eHealth diseado por Cooking Hacks.

Figura 5 Mdulo eHealth

[17]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Este mdulo se conectar encima de la placa Arduino con los pines que sobresalen en
su parte inferior. Una vez colocada ya se podrn conectar los distintos sensores a el
mdulo, pero para leer los datos de ellos correctamente habr que hacer uso de unas
libreras especficas con sus funciones correspondientes. Estas libreras las
proporcionar la propia empresa que disea y fabrica el mdulo, Cooking Hacks. Las
distintas entradas de las que consta el mdulo se pueden apreciar en la siguiente figura.

Figura 6 Conexiones mdulo eHealth

4.3.3 Raspberry Pi
Raspberry Pi se trata de un ordenador de un solo circuito o single board computer (SBC).
Es un dispositivo de bajo coste, y fue desarrollado en Reino Unido por la Fundacin
Raspberry Pi para estimular el aprendizaje de programacin, en especial de Python, que
ser el lenguaje utilizado para el desarrollo de la mayora de aplicaciones de esta
plataforma.

El software que utiliza es open source, y por lo tanto gratuito. Su sistema operativo oficial
es Raspbian, una distribucin de Linux basada en Debian, aunque dispone de ms
sistemas operativos basados en Linux, algunos para aplicaciones ms concretas, e
incluso una versin de Windows para el internet de las cosas, Windows 10 IoT (internet
of things).

[18]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

La Rasperry Pi se utilizar como solucin para el procesamiento de datos. Para este


propsito se utilizar la herramienta Python para el desarrollo de scripts y se instalar
un servidor LAMP, que se encargar de proporcionar las herramientas necesarias a la
Raspberry Pi para funcionar como servidor web. De esta manera se podrn recoger
datos de forma remota, adems de almacenar datos y manejarlos desde una
herramienta web. Gracias a su reducido consumo, su utilizacin supondr un ahorro
considerable respecto a un servidor web tradicional.

Figura 7 Raspberry Pi 3 Model B

En la siguiente tabla se pueden observar las distintas caractersticas tcnicas de la


Raspberry Pi.

Raspberry Pi 3 Model B
SoC

BCM2837

CPU

Quad Cortex A53 @ 1.2 GHz

GPU

400 MHz VideoCore IV

RAM

1GB SDRAM

Almacenamiento

Micro-SD

Ethernet

10/100

Comunicacin Inalmbrica

802.11n / Bluetooth 4.0

GPIO

40

Precio

35
Tabla 4 Caractersticas tcnicas Raspberry Pi

[19]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

4.3.4 Sensores
A la hora de la obtencin de datos se han elegido cuatro sensores que proporcionarn
una cantidad significativa de datos del paciente. Los sensores utilizados se describen a
continuacin.
Sensor de temperatura corporal

El sensor de temperatura corporal, como su propio nombre indica, se encargar de


medir la temperatura del cuerpo. El funcionamiento del sensor se basa en un termistor,
que es una resistencia variable con la temperatura, en este caso al tratarse de un
termistor NTC (Negative Temperature Coefficient), la conductividad crece rpidamente
con el aumento de la temperatura. En la tabla que viene a continuacin se muestra la
relacin temperatura-resistencia del termistor.

Figura 8 Curva caracterstica del termistor

Este sensor, devolver una seal analgica, que mediante una funcin definida en las
libreras de eHealth, se traducir en la temperatura corporal. Es importante, calibrar las
funciones de las libreras asociadas este sensor antes de su uso para obtener unas
mediciones ms exactas.

[20]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 9 Sensor Temperatura

La medicin de la temperatura corporal ser de especial inters, ya que muchas sino la


mayora de enfermedades implican cambios en la temperatura corporal, por tanto, su
conocimiento puede ayudar a diagnosticar ciertas enfermedades gracias a la deteccin
de sntomas. Antes de su uso, habr que elegir bien la zona de medicin, ya que la
temperatura corporal depende de la zona donde se tome la medida.

En funcin de la temperatura corporal leda se realizarn las siguientes distinciones:

Hipotermia:
Se considerar que se da hipotermia cuando la temperatura descienda de los 36C,
en este caso el paciente comenzara a sentir temblores, entumecimiento y cambio
del color de su piel, tornndose gris o azulada.

Temperatura normal:
Se tomar como temperatura normal, la temperatura corporal que se encuentre
alrededor de los 37C, con un margen de medio grado Celsius.

Fiebre o hipertermia:
Se considerar fiebre o hipertermia a las temperaturas corporales en el rango de los
37.5 38.3C, el nico inconveniente es la imposibilidad de distinguir entre ambas
con este nico dato.

Hiperpirexia:
Para hiperpirexia o fiebres muy elevadas se considerarn las temperaturas
corporales que excedan los 40C.
[21]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Hipotermia

<35C

Normal

36.5-37.5C

Fiebre o Hipertermia

37.5-38.3C

Hiperpirexia

>40-41.5C

Tabla 5 Diagnstico en funcin de la temperatura corporal

Pulsioxmetro

La pulsioximetra es un mtodo no invasivo de medir la saturacin de oxgeno arterial


de hemoglobina funcional. A continuacin, se describir el funcionamiento de este
sensor.

La saturacin de oxgeno es la cantidad de oxgeno arterial, basada en la deteccin de


hemoglobina y dioxihemoglobina. Para su medicin se utilizarn dos longitudes de onda
diferentes para medir la diferencia de absorcin del espectro de hemoglobina y
dioxihemoglobina. El sensor emite dos ondas de luz, una de 650 nm (espectro de luz
roja) y otra de 940 nm (espectro de luz infrarroja). El corriente sanguneo es afectado
por la concentracin de hemoglobina y dioxihemoglobina, y sus coeficientes de
absorcin son medidos usando las ondas antes descritas.

Figura 10 Sensor Pulsioxmetro

[22]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Ser de especial inters saber si la oxigenacin de un paciente es inestable, sobre todo


en cuidados intensivos, operaciones, emergencias, etc. Para que en caso de que sea
necesario un oxgeno suplementario, actuar rpidamente. En la siguiente tabla se
pueden observar los distintos diagnsticos en funcin del oxgeno en sangre.

Hipoxia

88-94%

Valores aceptables

94-99%

Intoxicacin CO

100%

Tabla 6 Diagnstico en funcin del O en sangre

Aparte, con este sensor se podr obtener el ritmo cardaco del paciente. El conocimiento
del ritmo cardaco ser importante a la hora de obtener informacin sobre enfermedades
subyacentes, o para conocer los lmites del paciente a la hora de realizar ejercicios de
alta intensidad. El ritmo cardaco se podr extraer de la curva del ECG, pero como ya
se dispone de una herramienta que nos devuelve directamente su valor, se descartar
esta opcin.

El ritmo cardaco de una persona adulta en reposo oscila entre 60 y 100 latidos por
minuto, un ritmo cardaco demasiado alto o bajo podra indicar como se ha dicho antes
enfermedades o problemas cardacos subyacentes.

Debido a que la frecuencia cardaca es una variable que, en funcin del tipo de paciente,
es decir su edad, si hace deporte o no, etc. vara, no ser posible definir un nico rango
en el que se consideren aceptables los valores de la frecuencia cardaca. Por ello, se
usar la siguiente frmula basada en la edad para dictar la frecuencia cardaca mxima
del paciente.
= 220
Otra manera de ver si el ritmo cardaco es aceptable o no, sera mediante la siguiente
tabla, en la cual, en funcin de la edad del paciente, se definen una serie de rangos en
funcin de las pulsaciones por minuto.

[23]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 11 Clasificacin segn las ppm

Sensor ECG

El electrocardiograma es una herramienta de diagnstico, usada habitualmente para


estudiar las funciones elctrica y muscular del corazn. Tiene una utilidad inestimable
para diagnosticar patologas cardacas.

Para la obtencin del electrocardiograma, en este caso, se utilizarn tres electrodos


adheridos al cuerpo del paciente por medio de un adhesivo. Con ayuda de estos
electrodos se registrar la actividad cardaca del paciente. En la siguiente figura se
pueden observar los electrodos utilizados para obtener el ECG.

Figura 12 Electrodos ECG

[24]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Mediante estos electrodos, se obtendr la curva del ECG. Esta, como se puede apreciar
en la siguiente figura consta de varias partes diferenciadas con los siguientes
caracteres: P, Q, R, S, T, U. Mediante la relacin de estas partes se obtendrn datos
acerca de la actividad cardaca del paciente. Por ejemplo, con la duracin de los
perodos T y T se obtendra el ritmo cardaco.

Figura 13 Seal ECG

Mediante el uso del ECG se podrn obtener, adems, los siguientes datos acerca del
corazn: su orientacin en la cavidad torcica, variaciones en el grosor del mismo,
daos a sus distintas partes, su frecuencia y ritmo cardaco, y patrones de actividad
elctrica anormal, que pueden dar lugar a ritmos cardacos anormales.

Sensor GSR

GSR responde a las siglas Galvanic Skin Response o respuesta galvnica de la piel. La
medida de esta seal se basa en la actividad electrodrmica, que es la propiedad del
cuerpo humano que produce continuas variaciones en las caractersticas elctricas de
la piel. El sensor GSR mide la conductancia elctrica entre dos puntos, y es, en esencia,
un tipo de hmetro.

[25]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 14 Medicin GSR

Mediante la GSR se medir la conductancia de la piel, la cual vara con su nivel de


humedad. Esta medida ser de especial inters, ya que las glndulas sudorparas estn
controladas por el sistema nervioso simpattico, as que, en momentos de tensin,
miedo, etc. vara la resistencia elctrica de la piel. Por ello, mediante uso de esta medida
se podrn detectar situaciones de estrs.

Es importante saber, que debido a que la variacin de la conductancia de la piel se debe


en su gran mayora a el sudor que est en la piel, se producirn picos en la medida de
esta seal, cuando aparezca este sudor, pero como su evaporacin se produce
lentamente, el valor del GSR disminuir lentamente a su vez. Este comportamiento se
puede apreciar en la siguiente figura.

Figura 15 Seal GSR

[26]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

4.4 Software elegido


4.4.1Arduino IDE
Arduino IDE o entorno interactivo de desarrollo de Arduino, es un entorno de desarrollo
utilizado para programar las placas Arduino. El lenguaje de programacin para Arduino
est basado en Processing, y Wiring.

El Arduino IDE contiene un editor de texto para escribir cdigo, un rea de mensajes,
una consola de texto o serial en la que visualizaremos los datos, y una barra de
herramientas para realizar las acciones ms comunes, ya sea compilar el cdigo,
cargarlo a la placa Arduino o abrir el serial. En el recuadro inferior negro se mostrarn
los mensajes de error, ya sean a la hora de compilar o transferir el programa a la placa
Arduino.

Figura 16 Arduino IDE

[27]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Los programas escritos usando el Arduino IDE se llaman sketches. Estos sketches
constarn de dos funciones especiales, setup() y loop(), la funcin setup(), ser
llamada una vez, y ser un buen lugar para inicializar el serial, y para declarar variables
que se vayan a usar a lo largo del sketch, la funcin loop(), corre de manera continua
en un bucle, y va a ser donde se ubicar la parte principal del programa y desde el cual
se realizarn las llamadas a las funciones secundarias.

Figura 17 Funcionamiento sketch de Arduino

4.4.2 Python
Python es un lenguaje de programacin de propsito general. Se trata de un lenguaje
simple, verstil, y de fcil desarrollo. Es un lenguaje de scripting multiplataforma,
orientado a objetos con el cual se puede desarrollar cualquier tipo de programa desde
aplicaciones, servidores de red, etc.

Como ya se ha expuesto, Python es un lenguaje interpretado, de scripts, lo que quiere


decir que el intrprete va traduciendo y ejecutando el cdigo lnea a lnea. El que sea un
lenguaje interpretado ofrece ventajas como la rapidez de desarrollo y la facilidad para
introducir cambios en los scripts, ya que no es necesario compilar despus de introducir
cambios, pero tambin tiene algunos inconvenientes con respecto al cdigo compilado,
como pueden ser la menor velocidad de ejecucin o el mayor consumo de recursos.

[28]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Uno de los factores clave a la hora de la eleccin de Python como plataforma de


desarrollo de los programas, ser su disponibilidad, ya que al ser open source,
cualquiera lo puede descargar sin ningn coste. Adems, Python es multiplataforma, as
que los programas que se desarrollen en l podrn ser utilizados en prcticamente
cualquier sistema operativo.

Para el desarrollo del proyecto se utilizar la versin 2.7 de Python, que aunque no sea
la versin ms reciente, sigue siendo una versin ampliamente utilizada y es la versin
ms estable y con mayor nmero de mdulos compatibles. A esta distribucin se le
aadirn un par de mdulos que permitirn crear una GUI o interfaz de usuario guiada,
adems de crear grficas en tiempo real de los datos obtenidos de Arduino y libreras
con funciones para el tratamiento de datos, como NumPy.

Figura 18 Script Python

4.4.3 PHPMyAdmin
PHPMyAdmin es una herramienta gratuita de software escrita en PHP, pensada para
manejar bases de datos MySQL a travs de la web. phpMyAdmin soporta las
operaciones comunes que se suelen utilizar a la hora de gestionar bases de datos,
manejar bases de datos, tablas, columnas, ndices, usuarios y sus permisos, etc.
[29]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Esta herramienta permitir consultar los datos almacenados tras la toma de muestras.
Adems, incluye una herramienta de visualizacin de datos, con la que se podrn
representar los datos almacenados.

Figura 19 Interfaz phpMyAdmin

[30]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

5 METODOLOGA
5.1 Puesta en marcha de Arduino
En los siguientes apartados, se describirn los pasos a seguir para la puesta en marcha
de la placa Arduino. Esto incluye la edicin de las libreras, y la carga de los sketches
en la placa Arduino.

5.1.1 Edicin de las libreras


Para la puesta a punto de Arduino, habr que descargar en primer lugar, la Arduino IDE
1.6.5, disponible en la pgina oficial de Arduino, adems de las libreras eHealth,
disponibles en la pgina web de Cooking Hacks. Se descargar la ltima versin de las
libreras, pero ms tarde, se tendrn que realizar una serie de cambios en ellas para
hacerlas totalmente compatibles con la versin de Arduino utilizada y para calibrar
ciertos sensores, este tema se tratar ms adelante.

Una vez descargado el archivo de las libreras y descomprimido, se introducirn en la


carpeta de Arduino que debera de aparecer en el PC una vez se haya instalado Arduino
IDE. Por defecto esta carpeta aparecer en Documentos > Arduino.

Figura 20 Libreras eHealth

[31]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

A continuacin, se realizarn una serie de cambios en las libreras para hacer que
funcionen correctamente con la versin de Arduino IDE utilizada en este proyecto.

Para la edicin de las libreras se utilizar Microsoft Visual Studio Code, una herramienta
disponible en la web de Visual Studio. Otra opcin sera editar las libreras desde el
editor de texto de Windows directamente, pero esta opcin queda directamente
descartada al ser demasiado engorroso.

Primero se abrir la librera eHealthDisplay.h y se introducir al principio de ella las


siguientes lneas de cdigo que se encuentran subrayadas ms adelante. Con la adicin
de estas lneas, se define el tipo de variable prog_uint8_t que en las nuevas versiones
de Arduino no se encuentra definido debido a su desuso.

//Ensure this library description is only included once


#ifndef eHealthClassDisplay_h
#define ehealthClassDisplay_h
#ifndef prog_uint8_t
#define prog_uint8_t const uint8_t
#endif

Debido a que en las ltimas versiones de la plataforma eHealth se cambi el modelo del
pulsioxmetro, habr que realizar una serie de cambios en las libreras, ya que sino su
uso podra dar lugar a resultados errneos. A continuacin se describen los pasos a
seguir para adaptar las libreras a la versin ms antigua del pulsioximetro.

Para ello se descargar la versin 2.2 de las libreras (ms antigua a la actual), se abrir
el archivo eHealth.cpp, se copiar la funcin readPulsioximeter(void)

y se

sustituir por la misma funcin en la versin ms actual de las libreras. Una vez
introducido este cambio, la funcin quedara de la siguiente forma.

[32]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 21 Funcin pulsioxmetro

A continuacin, se proceder a realizar la calibracin de los sensores de temperatura


corporal, y GSR. Para ello, con ayuda de un polmetro habr que realizar ciertas
medidas para introducir algunos cambios en las libreras.

Primero, se buscar la funcin getTemperature(void) en la misma librera en la que se


introdujeron los cambios en la funcin de lectura de datos del pulsioxmetro. La funcin
tendr el siguiente aspecto.

Figura 22 Funcin temperatura

[33]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

A continuacin, con ayuda del polmetro, se medirn las tres resistencias del puente
Wheatstone (Ra, Rb, Rc) y la tensin de referencia del puente Wheatstone
(RefTension). Despus, se sustituirn los valores dados en las libreras con los que se
hayan obtenido en las mediciones. La localizacin de las resistencias y del voltaje de
referencia en la placa eHealth, se pueden observar en la siguiente figura.

Figura 23 Calibracin del sensor de temperatura corporal

Por ltimo, se proceder a calibrar el sensor GSR. Para ello, se actuar de manera
anloga a la calibracin del sensor de temperatura. La nica diferencia es que, en este
caso, bastar nicamente con medir el voltaje entre los dos puntos que se aprecian en
la siguiente figura, e introducir el valor ledo en la funcin getSkinConductance(void).

Figura 24 Calibracin del sensor GSR

Una vez completadas estas acciones, se guardarn los cambios en las libreras y ya se
podr para proceder a la siguiente etapa de la puesta a punto de la plataforma.

[34]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

5.2 Puesta en marcha de la RPi


En los siguientes apartados se describir todo el proceso a realizar para la puesta a
punto del dispositivo Raspberry PI, desde la instalacin del sistema operativo, a la
puesta a punto del servidor LAMP y la instalacin de paquetes adicionales al programa
Python.

5.2.1 Instalacin de Raspbian


Raspbian es el sistema operativo basado en la distribucin Debian de Linux que correr
la Raspberry PI, y sobre el cual se desarrollarn las distintas aplicaciones y programas
para la obtencin y procesado de datos provenientes de Arduino.

Se descargar NOOBS desde la pgina oficial de Raspberry Pi. Una vez descargado se
descomprimir el archivo y se obtendr un archivo imagen. Este archivo contiene varios
de los sistemas operativos disponibles para la Raspberry Pi, entre ellos Raspbian.

Con el archivo imagen disponible, se cargar ese archivo en una memoria microSD que
ms tarde se introducir en la Raspberry PI y har las veces de memoria. Para escribir
ese archivo en la tarjeta se har uso de la herramienta Win32DiskImager que se
encuentra para descargar en su pgina web. Al ejecutar el programa aparecer la
siguiente ventana.

Figura 25 Win32 Disk Imager

[35]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

El programa por defecto buscar la tarjeta y la seleccionar como dispositivo para


escribir la imagen, pero en el caso de que no la encuentre, habr que pinchar en el men
desplegable debajo de Device y elegir la letra o nombre asignado a la tarjeta. Despus
se elegir el archivo imagen y se escribir la imagen del sistema operativo en la
microSD.

Cuando se termine la escritura, se colocar la tarjeta microSD en la Raspberry Pi, se le


alimentar, y una vez encendida aparecer el siguiente men en el que se pueden ver
los distintos sistemas operativos que se pueden instalar en la RPi. En este caso el
sistema operativo que se elegir ser Raspbian, y una vez seleccionado habr que
esperar a que finalice la instalacin.

Figura 26 Eleccin SO

Una vez completada la instalacin aparecer una ventana en la que se pueden


configurar diferentes aspectos de la RPi. No se har caso de esta ventana, y ya se podr
proceder al siguiente paso.

5.2.2 Configuracin del servidor LAMP


En este apartado se configurar un servidor LAMP en la Raspberry PI. LAMP son las
siglas de Linux, Apache, MySQL, y PHP, que sern las bases del servidor web.

[36]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Antes que nada, habr que comprobar que la RPi est actualizada y tiene la ltima
versin del SO disponible. Para ello se introducirn (con la RPi conectada a internet) los
siguientes dos comandos en el Terminal. Con estos comandos se actualizarn los
repositorios de RPi, y los programas que no estn al da.

sudo apt-get update


sudo apt-get upgrade
A continuacin se instalar Apache2, que se trata un servidor web HTTP de cdigo
abierto, adems de una serie de herramientas diseadas para Apache2, para ello se
introducir el siguiente comando en el terminal de la RPi.

sudo apt-get install apache2 apache2-doc apache2-utils


Para comprobar que se ha instalado correctamente el servidor Apache, se introducir
en el navegador de la RPi su IP, que se podr encontrar en la esquina superior derecha
al lado de el volumen. Si todo ha ido bien se debera mostrar el siguiente mensaje en el
navegador.

Figura 27 Servidor Apache2

Cuando Apache2 est instalado correctamente, se proceder a instalar PHP5 adems


de unos paquetes de compatibilidad Apache2 con PHP y PHP con MySQL.
[37]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

sudo apt-get install libapache2-mod-php5 php5 php-pear phpxcache


sudo apt-get install php5-mysql
Se instalar el servidor MySQL y phpMyAdmin. Durante la instalacin de MySQL
solicitar una contrasea para la base de datos, esta contrasea se utilizar ms
adelante para la instalacin de phpMyAdmin. PHPMyadmin es la herramienta
complementaria para la gestin de la base de datos MySQL desde la web. Para
instalarlos, se ejecutarn los siguientes comandos.

sudo apt-get install mysql-server mysql-client


sudo apt-get install phpmyadmin
Durante la instalacin de phpMyAdmin habr que seguir una serie de pasos que se
describen a continuacin.

Primero habr que seleccionar el tipo de servidor web que est instalado, en este caso
se trata de Apache2.

Figura 28 Instalacin phpMyAdmin

Ms adelante preguntar si se quiere configurar la base de datos automticamente con


dbconfig-common, se confirmar y se continuar con la instalacin.

Para continuar la instalacin pedir introducir la contrasea administrativa, esta


contrasea es la que se ha elegido antes, al instalar MySQL. Una vez introducida pedir
una contrasea para PHPMySQL, se podr elegir la misma a la anterior u otra diferente.
[38]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para comprobar que est correctamente instalado PHPMyAdmin, se intoducir en el


navegador de la RPi la siguiente direccin IPdelaRPI/phpmyadmin. Si todo ha ido bien
debera aparecer la siguiente pantalla de inicio.

Figura 29 Pgina de inicio phpMyAdmin

Para acceder, el nombre de usuario por defecto es root y la contrasea es la que se ha


elegido al instalar phpMyadmin. Una vez dentro de la base de datos ya se podrn crear
tablas, aadir usuarios que pueden acceder a las bases de datos, y que derechos tienen
a la hora de modificar bases de datos, etc. La gestin de los permisos de los usuarios
ser importante ms adelante a la hora de la ejecucin de scripts que se encargan de
la recogida de datos.

Un ltimo paso antes de pasar al siguiente apartado es dar permisos de root al servidor,
lo que permitir al servidor web ejecutar los scripts de Python de los que se obtendrn
los datos a mostrar y almacenar en el servidor web. Para ello se acceder al terminal y
se ejecutar el siguiente comando:
sudo visudo

[39]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Una vez ejecutado el comando se abrir en el terminal el archivo sudoers.tmp, en l


habr que aadir la siguiente lnea al final del archivo.
www-data ALL=(ALL) NOPASSWD: ALL
Despus de aadir esta lnea, se guardarn los cambios realizados en el archivo y se
proceder al siguiente paso de la puesta a punto. El archivo debera quedar de la
siguiente manera.

Figura 30 Permisos servidor web

Para ver como se hace la RPi disponible desde internet, a travs de la obtencin de un
dominio gratuito, vase Anexo 3.

5.2.3 Instalacin de paquetes en Python


Para los distintos scripts que se van a desarrollar en Python, habr que instalar antes
unos paquetes adicionales para incluir distintas herramientas, entre las que se incluyen
matplotlib, Tkinter, y Pyserial. Gracias a estas herramientas se podrn crear interfaces
grficas, graficar datos, y comunicar la RPi con Arduino mediante el serial. Para
instalarlos se introducirn los siguientes comandos en el terminal de RPi.

Sudo apt-get install python-matplotlib


Sudo apt-get install python-tk
Sudo apt-get install python-serial

Con este ltimo paso ya completado, se proceder a describir las distintas herramientas
de la plataforma desarrollada.
[40]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

5.3 Muestra de datos


Para la obtencin de datos se ofrecer un programa desarrollado en Arduino IDE, que
presente una interfaz de usuario con las distintas alternativas disponibles de medicin.
Este programa se cargar en la placa Arduino, y correr de manera continua mientras
se encuentre conectado. Tras la carga del programa en la placa Arduino, y una vez
abierto el serial se presentar el siguiente men de opciones.

Figura 31 Men de opciones

Para elegir los datos que se quieran obtener bastar con introducir en el recuadro
superior la letra correspondiente a los datos que se deseen observar y presionar la tecla
enter o enviar.

Una vez se haya elegido los datos que se quieren obtener, aparecer el siguiente
submen de opciones, en el que se podr elegir entre mostrar los datos, en este caso
de temperatura, o volver al men principal.

Figura 32 Men de temperatura

[41]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para mostrar los datos bastara con enviar s y se comenzar a mostrar el dato de la
temperatura medida, cada segundo. La frecuencia con la que se muestra este dato, se
puede cambiar editando el delay, o la pausa entre medida y medida en la funcin
temperaturebucle() o la que corresponda del sketch de Arduino.

Figura 33 Muestra de datos de temperatura

En el caso de que se quieran obtener otros datos, o se quiera detener su muestra,


bastara con enviar b para que el programa pare de mostrar datos de temperatura y
vuelva al men de temperatura, y otra vez b para volver al men principal.

5.4 Consulta de datos de forma remota


Mediante esta solucin, se podrn consultar los datos del paciente de forma remota va
web. Para ello se conectaran entre s la Raspberry Pi y Arduino, y los sensores al
paciente en cuestin.

Para transferir los datos de Arduino a la RPi, se har uso de un script de Python, este
script, enviar una serie de comandos a la placa Arduino solicitando los datos que
requiera. Una vez la placa Arduino haya recibido los comandos, empezar a emitir los
datos que se le han solicitado.

Como en la prctica, han aparecido errores en la lectura y errores a la hora de convertir


los datos provenientes de Arduino, se han tomado un par de medidas para corregir estos
errores. A continuacin, se describen las medidas tomadas para solucionarlos.

[42]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para corregir los errores de lectura de datos, se optar por usar una funcin que en el
caso de que no se reciba correctamente un dato, vuelva al principio de la ejecucin y se
vuelva a intentar obtener hasta que se consiga recibir un dato correctamente. A
continuacin, se puede observar un ejemplo de error en la lectura de datos.

Error de lectura:
36.77/r/n
36.68/r/n
36.72/r/n/xcef
En este caso el ultimo dato sera imposible de convertir debido a lo que se encuentra
despus de /n.

En lo que concierne a los errores en la conversin de datos, se optar por definir un


rango de valores vlidos para cada medicin, y en el caso de que un dato se salga de
este rango, se realizara un filtro de mediana con los cinco datos siguientes, y se tomara
el dato resultado de esta operacin. A continuacin, se pueden ver dos ejemplos de
errores en la conversin de datos, el primero corresponde a la imposibilidad de convertir
un dato recibido, y el segundo a un dato recibido errneamente.

Dato mal recibido:


36.77/r/n
36.68/r/n
68.36.72/r/n
En este caso, el ltimo dato sera imposible de convertir debido a que el nmero recibido
tiene 2 comas.

Fallo en la conversion:
36.77/r/n
7736.68/r/n
En este caso el dato convertido sera errneo ya que contiene al principio parte del dato
anterior.

Ya tratadas estas cuestiones, se proceder a describir el sistema de muestra de datos.

[43]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Cuando se quiera obtener los datos del paciente, se tendr que acceder a la web donde
se encuentra la Raspberry Pi, en este caso ehealth.ddns.net. Una vez en esa direccin
se mostrar un par de enlaces, uno para recibir datos del paciente, y otro enlace para
el muestreo de datos. En este caso habr que dirigirse al primer enlace.

Tras haber pulsado dicho enlace, se abrir otra web con una lista de enlaces en los que
se podr elegir si recibir todos los datos de el paciente, o un nico dato por separado.
Se pulsar en alguna de las opciones, la pgina web realizar una llamada al script de
Python que se encarga de pasarle los datos, y una vez los reciba los mostrar en
pantalla, adems de almacenarlos en la base de datos para su posterior consulta. En la
siguiente figura se muestra un ejemplo de obtencin los datos de un paciente. Tambin
se ofrecer al usuario, la opcin de volver a obtener los datos pulsando el botn
actualizar.

Figura 34 Resultados web

5.5 Representacin de datos en tiempo real


En este caso se ejecutar un script de Python que permitir realizar un seguimiento en
tiempo real de las distintas constantes fisiolgicas del paciente. Se mostrar una interfaz
de usuario guiada (GUI), en la que se representarn las distintas opciones disponibles,
una ventana de mensajes para mostrar alertas y una grfica en la que se representar
en tiempo real la evolucin de la variable escogida.

[44]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para la creacin de la interfaz grfica se har uso del mdulo Tkinter, disponible para
Python. Con l se crearn dos ventanas, una con un men con las opciones disponibles,
y otra en la que se muestran las alertas asociadas a las variables fisiolgicas de las que
se est haciendo el seguimiento. En el caso de que alguna de estas variables, de
sntomas de que el paciente muestre algn tipo de enfermedad o problema, la ventana
de alertas mostrara una alarma visual, adems de un mensaje de alerta.

Antes de la ejecucin del script habr que cargar en la placa Arduino el sketch
correspondiente (ver Anexo 4), y conectar entre s la placa Arduino y la Raspberry Pi
adems de los distintos sensores al paciente.

Una vez realizados estos pasos, se ejecutar el script. Tras unos instantes, se mostrar
un men en el que elegir las distintas opciones disponibles. Al elegir una de las opciones
el script mandar a la placa Arduino los comandos para pedir el dato elegido, y una vez
lo est recibiendo, comenzar la representacin de los mismos.

Las variables se mostrarn de manera continuada, exceptuando la seal ECG que se


tomar una muestra durante 2 segundos a una frecuencia de 100 Hz y una vez recogida
la muestra, se mostrar en pantalla para su visualizacin, el resto de variables se
obtendrn con un perodo de 0,3 segundos. A continuacin, se puede ver un ejemplo de
la obtencin y representacin de las pulsaciones por minuto a travs de esta
herramienta.

Figura 35 Representacin de datos en tiempo real

[45]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

5.6 Anlisis de datos


Obtencin y almacenamiento de datos

Se ofrecer una solucin para recoger muestras de datos a altas frecuencias. Esta
solucin est basada en la ejecucin de un script de Python que es llamado desde una
pgina web, tras la llamada a este script y una vez ste devuelva los datos solicitados,
los datos se almacenan en la base de datos MySQL, donde podrn ser consultados en
cualquier momento y desde cualquier lugar a travs de phpMyAdmin.

Previo a la llamada del script de Python se tendr que seleccionar en l el periodo de


recogida de datos que se desee. Es importante que el periodo con el que emite los datos
Arduino y el periodo con el que el script de Python va recogiendo los datos sean el
mismo, ya que, sino los datos se iran acumulando en el buffer del serial, y no se estaran
recibiendo medidas de la variable en tiempo real. Por ello habr que editar ambos, el
sketch de Arduino y el script de Python, antes de comenzar la recogida de datos.

Una vez ajustados estos valores, se proceder a la llamada del script de Python desde
la web para la recogida de datos. Se acceder al dominio web asociado a la RPi, en
concreto a la opcin de muestreo de datos. Ya en esta pgina, aparecern las distintas
opciones a la hora de recogida de datos.

Figura 36 Opciones de muestreo de datos

Tras elegir la opcin deseada, comenzar la ejecucin del script de Python que
devolver un array con los datos obtenidos.
[46]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Este script comenzar limpiando el buffer para recibir los datos ms actuales y no los
que se hayan ido quedando acumulados. Cuando empiece a recibir datos, har una
mediana con los 5 primeros datos, y se designar un rango de datos vlidos a partir del
valor de la mediana, para seales como el ECG o el GSR este rango ser mayor debido
la naturaleza de estas seales. En el caso de que uno de los datos se salga del rango
considerado como vlido, se llamar a una funcin que tratar de corregir este dato
tomando 5 valores y realizando otro filtro de mediana.

Finalmente, cuando se hayan obtenido todos los datos, se transformar el array en un


array de tipo json, que es el array que se pasar al servidor web y se almacenar en la
base de datos MySQL. Para consultar las muestras obtenidas bastar con acceder a la
base de datos a travs de phpMyAdmin.
Deteccin de situaciones de estrs

Aparte, se ofrecer una aplicacin para anlisis de datos basada en Python. Esta
herramienta recoger las seales GSR y las pulsaciones por minuto en dos distintos
arrays. Con esta herramienta, se podrn detectar situaciones de estrs, pnico, etc.
basndose en la grfica de Amplificacin obtenida. Esta grfica ser la multiplicacin de
los sucesivos incrementos de las seales GSR y BPM recogidas, y ayudar a detectar
mejor este tipo de situaciones.

Cuando se inicie el script, se tendrn que especificar cuantas muestras se desea


obtener, y la frecuencia con las que las que se quiere obtener. Es importante que la
frecuencia de recogida de datos desde Python sea igual a la frecuencia de emisin de
datos desde la plataforma Arduino. Para ello habr que editar el sketch de Arduino que
nos devuelve los valores de GSR y BPM, y ajustar el tiempo o delay entre medida y
medida.

Despus de introducir estos datos, comenzar la recogida de datos, mostrando un


mensaje en pantalla cada 2 segundos, como comprobacin de que el script se sigue
ejecutando.

[47]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Una vez obtenidos los datos, se calcula el incremento que ha habido entre las sucesivas
medidas, se almacenan cada uno en un array y despus se multiplicarn entre s para
resaltar ms los momentos en los que se han producido estas variaciones. Por ltimo,
se representarn todos los datos obtenidos, y se analizarn los resultados.

Como se puede observar en la figura, este mtodo ayudar a detectar de manera ms


sencilla las situaciones de estrs, debido a que al multiplicar los incrementos
simultneos de las pulsaciones por minuto y la GSR se producen picos que resaltan los
momentos en los que se dan estas situaciones.

Figura 37 Representacin seales GSR y BPM

Anlisis de ECG

Por ltimo, se ofrecer una herramienta que se encargar de analizar la seal ECG del
paciente. Esta herramienta est basada en Python, y dispondr adems de una interfaz
de usuario con las distintas opciones disponibles y un par de ventanas en las que se
mostrar la seal recogida y los resultados obtenidos con este anlisis.

Con esta herramienta se podrn obtener datos de distintos aspectos del corazn, tales
como si sigue un ritmo normal o tiene arritmia, si el ritmo es sinusoidal o no, adems de
detectar comportamientos anormales, que pueden significar que el paciente est en
riesgo de un infarto, o que ha sufrido daos previamente.

[48]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Al ejecutar el script de Python, se comenzar recogiendo una onda ECG. Tras recogerla,
la graficar, y habr que dirigirse a la opcin analizar los resultados en el men. Al pulsar
analizar, se pedir la posicin aproximada de los puntos P, Q, R, S, y T, adems de las
pulsaciones por minuto. La posicin aproximada de estos puntos, se puede ver en la
grfica representada una vez se haya recogido la seal ECG, para obtener las
pulsaciones por minuto, bastar con medirlas mediante el pulsioxmetro. Despus de
introducir estos datos, el script dividir la seal ECG en los distintos intervalos, y ya se
podr pulsar en resultados para recibir los resultados del anlisis.

Figura 38 Seal ECG dividida por zonas

A continuacin, se describen los criterios que han sido tomados en cuenta en cada
apartado, para definir los resultados del anlisis del ECG.

Arritmia:
Para comprobar si el corazn dispone de un ritmo irregular, se considerar que entre
los periodos Q-R y R-S ha de haber como mximo una diferencia de un 10% entre s.

Ritmo sinusoidal:
Para considerar si hay un ritmo sinusoidal, se tendrn en cuenta las pulsaciones por
minuto, adems de la duracin del periodo P-R.

[49]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

P-R:
Para considerar la duracin un periodo P-R normal, se aceptar para valores en un
rango de 0.12 a 0.2 segundos.

Q-T:
Para el intervalo Q-T, se tomar como rango vlido, un intervalo Q-T corregido de los
0.35 a los 0.45 segundos.

Alteraciones:
Para detectar alteraciones en el corazn se tomarn en cuenta los siguientes criterios.
Si el pico T se encuentra por encima del R, habr peligro de infarto, y si el pico T se
encuentra por debajo del Q, es probable que se hayan producido daos en el miocardio.

Figura 39 Ventana de resultados

[50]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

6 DESCRIPCIN DE TAREAS. GANTT


A continuacin, se describirn las tareas llevadas a cabo para el desarrollo del Trabajo
de Fin de Grado.

1. Toma de contacto
Previo al desarrollo de la plataforma, se realizar una toma de contacto con los
dispositivos a utilizar. Se probar el programa para obtencin de datos
proporcionado por Cooking Hacks. Adems, se comprobar si las libreras
proporcionadas por eHealth funcionan correctamente, y en el caso de que no se
introducirn en ellas los cambios necesarios.

Esta fase tiene una duracin de 6 das.

2. Puesta a punto de la plataforma


Una vez se haya terminado la toma de contacto con la plataforma, los sensores que
se utilizarn etc., se proceder a la puesta a punto de la plataforma. En primer lugar,
se instalar el entorno de desarrollo de Arduino, y se instalarn las libreras con las
correcciones ya realizadas. Aparte en la Raspberry Pi, se instalar el SO Raspbian
y se pondr a punto el servidor LAMP.

Esta fase tiene una duracin de 1 mes aproximadamente


.

3. Desarrollo de la solucin

Cuando se haya terminado con la puesta a punto de la plataforma, se proceder al


desarrollo de las distintas soluciones ofrecidas. Primero se empezar por desarrollar
los distintos sketchs para Arduino, para la obtencin de datos. Ms adelante se
programarn los scripts de Python encargados de recopilar y procesar los datos
recibidos de Arduino. Por ltimo, se crearn las pginas web que permiten mostrar
al usuario los datos, y almacenarlos en la base de datos.

[51]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Esta fase tiene una duracin de 90 das.

4. Fase de pruebas
Al finalizar el desarrollo de las distintas soluciones planteadas, se proceder a probar
su correcto funcionamiento. Durante esta fase prepararemos a la plataforma para
afrontar los distintos problemas que puedan surgir durante su uso.

Esta fase tiene una duracin de 2 semanas.


5. Redaccin de la memoria
Se concluir el Trabajo de Fin de Grado con la redaccin de la memoria del proyecto,
una vez se haya finalizado con la fase de pruebas de la plataforma.

Esta fase tiene una duracin de 1 mes.

Hitos del proyecto


Hito 1.1 Final de la Puesta a punto de la plataforma
Hito 2.1 Final del Desarrollo de la plataforma
Hito 3.1 Final de la Fase de pruebas
Hito 4.1 Final del Trabajo de Fin de Grado
Tabla 7 Hitos del proyecto

Estos hitos, as como todas las fases del proyecto, se representan en el diagrama de
Gantt que se adjunta en la siguiente pgina (ver Figura 40).

[52]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 40 Diagrama Gantt

[53]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

7 PRESUPUESTO
El presupuesto del Trabajo de Fin de Grado se dividir en tres partes: horas internas,
amortizaciones y gastos. El apartado de gastos se dividir a su vez en otras dos partes,
una de ellas incluir los gastos correspondientes a Arduino con el mdulo eHealth y los
sensores, y por otra parte la Raspberry Pi. Por ltimo, se incluir un resumen de estas
tres partes.

En las siguientes tablas se pueden observar las horas internas que corresponden al
nmero de horas trabajadas del ingeniero tcnico, y las amortizaciones, en las que se
incluye el ordenador usado para el desarrollo de la plataforma.

Concepto
Ingeniero tcnico

HORAS INTERNAS
Coste unitario (/h)
N unidades (h)
30
200
TOTAL

Coste
6.000,00
6.000,00

Tabla 8 Horas internas

Debido a que todo el software utilizado en el desarrollo de esta plataforma es gratuito,


adems de las herramientas de las que precisa para su funcionamiento, ninguno de
ambos se incluir en amortizaciones ni gastos.

Concepto
Ordenador

AMORTIZACIONES
Precio adquisicin
Vida til (aos)
800
5

Utilizacin (h)
150
TOTAL

Coste
11,54
11,54

Tabla 9 Amortizaciones

Como ya ha sido expuesto, los gastos se desglosarn en dos apartados, en uno se


incluir el coste de Arduino con el mdulo eHealth, los sensores y los utensilios
necesarios tales como el gel conductor y los adhesivos ECG, y en otro se incluir el
coste de la Raspberry Pi, con la fuente de alimentacin y la tarjeta microSD.

[54]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Plataforma Arduino + eHealth


Coste Unitario
Unidades
Hardware
Arduino UNO
Placa eHealth
Sensores
Pulsioxmetro
Electrodos ECG
Sensor GSR
Sensor T. corporal
Utensilios
Adhesivos ECG 100 u.
Gel conductor

Coste Total

20,00
75,00

1
1

20,00
75,00

55,00
35,00
30,00
20,00

1
1
1
1

55,00
35,00
30,00
20,00

16,00
2,00

1
1
TOTAL

16,00
2,00
253,00

Tabla 10 Presupuesto Arduino + eHealth

Raspberry Pi
Coste Unitario
Hardware
Raspberry Pi 3 model B
Fuente de alimentacin
Tarjeta microSD (16 GB)

32,00
14,00
4,00

Unidades

Coste Total

1
1
1
TOTAL

32,00
14,00
4,00
50,00

Tabla 11 Presupuesto Raspberry Pi

Por ltimo, se presenta el coste total del proyecto, que queda desglosado en horas
internas, amortizaciones, y gastos, en los que se incluye el coste de la Raspberry Pi,
con todos sus accesorios y el coste de la plataforma Arduino + eHealth. El coste total
del proyecto asciende a 6.314,54 .

RESUMEN
Horas internas
Amortizaciones
Gastos
TOTAL

6.000,00
11,54
303,00
6.314,54

Tabla 12 Coste total del proyecto

[55]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

8 CONCLUSIONES
A lo largo de este proyecto, se ha ido desarrollando una plataforma para el anlisis de
seales fisiolgicas basada en plataformas low-cost. En este caso se ha decidido basar
esta plataforma en Arduino y Raspberry Pi, desarrollando la mayor parte del cdigo en
Python.

La plataforma se ha creado pensando en todo momento en reducir al mnimo los costes,


ya sean del Hardware usado, como del software usado para su desarrollo. Por eso, se
han utilizado alternativas de cdigo abierto, u open-source, tales como Python para la
programacin de scripts, o Apache y phpMyAdmin para el servidor web. Se han
desarrollado varias herramientas que disponen distintas opciones al usuario,
dependiendo de cul sea la aplicacin, desde monitorizacin en tiempo real, a anlisis
de datos, muestreo, o consulta de datos de forma remota.

Una gran ventaja de la que dispone esta plataforma, es que las herramientas que se
han desarrollado tanto como para el anlisis de datos, u obtencin de los mismos, es
que son compatibles con prcticamente todos los sistemas operativos disponibles en la
actualidad, adems es totalmente portable debido a su reducido peso y tamao, no sin
ello renunciar a disponer de la informacin accesible en todo momento, gracias a que la
plataforma se encuentra conectada a internet.

En un futuro sera interesante conseguir una mayor integracin de la plataforma con la


web, aprovechando las opciones que brinda el servidor web instalado en la Raspberry
Pi. Adems, una vez ya claras las aplicaciones que se le van a dar a esta plataforma,
se podra adaptar todo el cdigo desarrollado en Python a un lenguaje de programacin
no interpretado, como podra ser C, adems de unificarlo en una nica herramienta que
englobe todos los aspectos tratados en este proyecto. As se lograra una plataforma
ms unificada, con un mejor rendimiento, y ms sencilla de usar.

[56]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

9 FUENTES DE INFORMACIN
[1] Lutz, Mark. Programming Python. Cuarta edicin. OReilly Media. ISBN: 978-1-44930183-5. Wrox.

[2] McKinney, Wes. Python for Data Analysis. Primera edicin. OReilly Media. ISBN:
978-1-4493-1978-6.

[3] Boronczyk, Timothy; Naramore, Elizabeth; Gerner, Jason; Le Scouarnec, Yann;


Stolz, Jeremy. Beggining PHP6, Apache, MySQL 6 Web Development. ISBN: 9780470391143.

[4] e-Health Sensor Platform V2.0 for Arduino and Raspberry Pi [Biometric/Medical
Applications].
Disponible

en:

https://www.cooking-hacks.com/documentation/tutorials/ehealth-

biometric-sensor-platform-arduino-raspberry-pi-medical/
[5] Tutorial Raspberry Pi 15. Instalacin de Apache + MySQL + PHP.
Disponible en: https://geekytheory.com/tutorial-raspberry-pi-15-instalacion-de-apachemysql-php/

[6] How to Read and Report an Electrocardiogram.


Disponible en: http://en.my-ekg.com/how-read-ekg.html

[7] Cooking Hacks Forum.


Disponible en: <https://www.cooking-hacks.com/forum/>

[57]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

ANEXOS

Anexo 1: Conexin de sensores


En el siguiente anexo se vern las conexiones de las que dispone el mdulo eHealth
para Arduino, y la manera de conectar los sensores a ste mdulo y al paciente. En el
caso de este proyecto, nicamente se utilizarn las conexiones para los sensores de
temperatura, pulsioxmetro, ECG y GSR. En la siguiente imagen se puede apreciar las
distintas conexiones que dispone el mdulo eHealth para los distintos sensores.

Figura 41 Conexiones placa eHealth

Sensor de temperatura corporal:

El sensor de temperatura corporal se introducir en la entrada jack que se encuentra en


un lateral de la placa eHealth por medio de un adaptador.

El sensor se colocar en el cuerpo del paciente, poniendo especial atencin en que zona
se coloca, ya que la temperatura corporal es dependiente del lugar donde se realice la
medicin. En este caso se colocar el sensor de temperatura en la axila, ejerciendo un
poco de presin mientras se realice la medicin, ya que sino, la temperatura medida se
vera afectada por la temperatura del exterior. Una vez colocado se sujetar mediante
cinta adhesiva para que se mueva o se desprenda.

[58]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 42 Conexin sensor de temperatura

Pulsioxmetro:

El pulsioxmetro se conectar en la ranura horizontal que se encuentra en el centro del


mdulo eHealth. La ranura slo permite un modo conexin, para evitar introducir
incorrectamente el sensor y daarlo. En el caso de que la placa Arduino se encuentre
directamente conectada a la RPi, habr que introducir dos pilas en el sensor dado que
la RPi no suple potencia suficiente para Arduino, junto con el mdulo y este sensor. Las
pilas se colocarn en la parte posterior del sensor.

Figura 43 Conexin pulsioxmetro

Una vez introducido el sensor en la ranura, se introducir el dedo en el sensor con la


yema hacia abajo y se pulsar el botn de encendido que se encuentra en la cara
superior del sensor. Una vez pulsado, y tras unos instantes, el sensor mostrar en la
pantalla los valores del pulso y el porcentaje de oxgeno en sangre.
[59]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Sensor ECG

La conexin del ECG se har en las tres ranuras disponibles en la esquina inferior
izquierda del mdulo eHealth, y los electrodos se introducirn en el siguiente orden:
positivo, negativo y neutro. Es importante atornillarlos una vez introducidos en el mdulo
para evitar su desprendimiento.

Figura 44 Conexin ECG

Una vez conectados los electrodos al mdulo, habr que conectar estos al cuerpo del
paciente. Para ello se retirarn los plsticos que cubren el adhesivo de los electrodos,
se aplicar gel ECG (gel conductor que favorece la conduccin elctrica) en los lugares
en los que se vayan a colocar los electrodos y se colocarn de la siguiente manera en
el cuerpo del usuario (ver Tabla 13 y Figura 48).

Dcha. Trax
Izq. Trax
Izq. Abdomen

+
N
-

Tabla 13 Conexin electrodos ECG

[60]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 45 Conexin de electrodos al cuerpo

Una vez completadas las mediciones se desecharn los adhesivos, ya que son de un
nico uso.
Sensor GSR

La conexin del sensor GSR se har en las dos ranuras que ms arriba se encuentran
en el lado izquierdo de la paca eHealth. Para evitar su desprendimiento, una vez
conectado el sensor ser preciso atornillarlo. Tras haberlo atornillado, se proceder
colocar el sensor en el paciente. Para ello habr que disponer gel conductor en las
cavidades circulares de las que dispone el sensor. Despus de haber aplicado el gel, se
colocar el sensor en las yemas de los dedos ndice y anular.

[61]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 46 Conexin sensor GSR

Una vez terminadas las mediciones, se proceder a limpiar las cavidades del sensor del
gel sobrante, para posteriores utilizaciones del sensor. Para ello se utilizar un cepillo
fino.

Anexo 2: Carga del programa en la RPi


En este anexo, se describir como realizar la carga de los programas necesarios en la
RPi, y cmo hacer que se ejecuten correctamente una vez estn conectados entre s la
placa Arduino y la RPi.

Para ello se cogern los archivos disponibles en el CD /Archivos/Raspberry Pi y se


copiarn en la ruta de la RPi /var/www/html, que es la ruta que por defecto utilizar el
servidor para alijar sus pginas web en la Raspberry Pi. El resto de archivos como los
de representacin en tiempo real, anlisis de ECG, etc. se podrn dejar en el mismo
escritorio de la RPi, ya que estos scripts sern ejecutados nicamente desde la RPi.

Es importante a la hora de que funcionen correctamente los archivos Python, que el


puerto COM con Arduino est bien definido en los scripts, adems que la velocidad de
transferencia de datos sea la misma. Por defecto al conectar la placa Arduino a la Rpi,
le asigna la direccin /dev/ttyACM0, pero no siempre es as.

[62]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para asegurarse de que se le ha asignado correctamente la direccin a Arduino habr


que ejecutar los siguientes comandos en el terminal de la RPi. Con estos comandos se
acceder a la lista de dispositivos conectados a la RPi.

cd /dev/tty*
ls
Aparecer una lista similar a la siguiente:

Figura 47 Dispositivos conectados a Raspberry Pi

Este cdigo se ejecutar antes y despus de conectar la placa Arduino a la RPi. El nuevo
elemento que aparezca en la lista despus de haber conectado la placa Arduino, ser
su direccin. Para que los scripts de Python puedan leer datos de la placa Arduino
correctamente, bastar con editar la siguiente parte de la cabecera que aparece en ellos.

#Indicamos el Puerto al que se encuentra conectado la placa


#Arduino
arduino = serial.Serial(/dev/ttyACM0, 115200)
Se sustituir la primera parte del parntesis con la direccin en la que se encuentra la
placa en caso de que no sea ttyACM0, y se cambiar la segunda parte del parntesis
por la velocidad de transmisin de datos empleada en el sketch de Arduino.

[63]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Anexo 3: Haciendo la RPi disponible desde internet


En este anexo se describirn los pasos a seguir para hacer el servidor de la RPi
accesible desde todo internet. Para ello habr que abrir un puerto en el router en el que
se encuentre conectada, y se le asignar un dominio para su acceso desde internet.
Estos pasos han de realizarse tras la instalacin del servidor Apache en la RPi, tras la
cual estar disponible el servidor, pero ser nicamente accesible a nivel local, es decir
desde la misma RPi, o desde un dispositivo conectado a la misma red.

Figura 48 Raspberry Pi internet

Se comenzar por abrir un puerto en el router para que la RPi sea accesible desde el
exterior. La configuracin del router se har en el portal Alejandra, que es la herramienta
ofrecida por Movistar para la configuracin de sus routers, para otros routers la
configuracin ser similar.

Se acceder a la web de Movistar, y habr que dirigirse al portal Alejandra, otros routers
podrn ser configurados introduciendo desde el navegador de un dispositivo conectado
a la misma red las direcciones IP 0.0.0.0 o 1.1.1.1. Al introducir alguna de estas
direcciones saldra una ventana en la que introducir un usuario y una contrasea, que
normalmente se encuentran en la parte inferior del router, y se podra configurar el router
de una manera similar a la que se describir a continuacin.

[64]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Figura 49 Men de configuracin del router

Para realizar la siguiente operacin antes habr que saber la direccin IP local de la
RPi, esto se puede saber simplemente colocando el ratn sobre el smbolo wifi en el
escritorio de la RPi y esperando unos segundos para que aparezca. Otra manera de
conocer la direccin IP de la RPi ser escribir el siguiente cdigo en la ventana de
comandos.
hostname I
Cuando ya se sepa cul es, se pinchar en la opcin puertos del men que muestra el
portal Alejandra y habr que rellenar el formulario de la siguiente manera. Se elegir
formato manual y abrir puerto nico, se introduce la direccin IP de la RPi, y se abre el
puerto 80 con el protocolo TCP. As ya se dispondr de un puerto abierto en el router
para que la RPi sea accesible desde el exterior.

Figura 50 Apertura de puertos

[65]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Por ltimo, se obtendr un dominio para que la RPi sea accesible de una manera fcil
desde internet. Para ello se obtendr un dominio gratuito de la pgina web
www.noip.com.

Es importante realizar los siguientes pasos desde la RPi, ya que de esta manera la
pgina web reconocer de forma automtica la direccin IP externa de la RPi.

Una vez creado el usuario y se haya accedido a la cuenta de noip desde el navegador
web la RPi, aparecer el siguiente men.

Figura 51 Men No-IP

Se pulsar en add a host (aadir un dominio) y aparecer la siguiente ventana en la que


se elegir el nombre del dominio, y la direccin IP externa de la RPi se rellenar de
forma automtica. Una vez se haya elegido el nombre del dominio y est la direccin IP
externa de nuestra RPi, se pulsar Add Host y unos segundos ms tarde la RPi ser
accesible desde todo internet.

Por ltimo, habr que resolver una cuestin, y es que, debido a que el dominio est
asociado a la direccin IP externa de la RPi, que se trata de una direccin IP dinmica
dinmica y como su propio nombre indica es dinmica y cambia cada cierto tiempo.
Habr que conseguir que de alguna manera el dominio direccione a la IP dinmica de
la RPi en todo momento.

[66]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

Para solucionar este problema se instalar un programa ofrecido por la misma web que
proporciona el dominio. ste programa se encarga de realizar un seguimiento de la IP
externa de la RPi y redirigir el dominio cuando la IP externa de la RPi cambie.

Para instalarlo habr que introducir los siguientes comandos en el terminal de la RPi.
mkdir no-ip
cd no-ip
wget
http://www.no-ip.com/client/linux/noip-duclinux.tar.gz
tar -zxvf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make
sudo make install
Durante la instalacin pedir los datos de la cuenta de No-IP y los datos del dominio,
adems habr que elegir cada cuanto tiempo se comprueba si la IP externa ha
cambiado. En este caso se elegir que cada 5 minutos se realice esa comprobacin.

Finalmente se crear un archivo de inicio para que cuando se encienda la RPi, se inicie
el servicio de seguimiento de la IP externa tambin. Para ello se ejecutarn los
siguientes comandos.
sudo nano /etc/init.d/noip2
Se crear un archivo y en l se incluir:
#! /bin/bash
### BEGIN INIT INFO
# Provides: Servicio No-IP
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: arranque automatico para no-ip
# Description:
#
### END INIT INFO
sudo /usr/local/bin/noip2
Se guardar el archivo, y habr que darle permiso de ejecucin y colocarlo en la cola de
arranque, ejecutando los siguientes comandos.

[67]

Analizador se seales fisiolgicas portable basado en plataformas low-cost

sudo chmod +x /etc/init.d/noip2


sudo update-rc.d noip2 defaults
Una vez hecho esto, se reiniciar la RPi con sudo reboot y se proceder a comprobar
que se est ejecutando el servicio despus del reinicio con el siguiente comando.
sudo noip2 S
Si todo ha ido bien y el servicio no-ip se est ejecutando correctamente se obtendr la
siguiente respuesta.

Figura 52 Servicio no-ip

[68]

También podría gustarte