114
ALGORITMO DE DETECCIÓN DE CAÍDAS EN UN SISTEMA EMBEBIDO. TESIS PARA OBTENER EL GRADO DE: MAESTRO EN SISTEMAS INTELIGENTES MULTIMEDIA PRESENTA: ING. CARLOS ENRIQUE MORAN GARABITO ASESOR: Dr. RUBÉN ESTRADA MARMOLEJO GUADALAJARA, JALISCO, SEPTIEMBRE 2017

TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

ALGORITMO DE DETECCIÓN DE CAÍDASEN UN SISTEMA EMBEBIDO.

TESIS

PARA OBTENER EL GRADO DE:

MAESTRO EN SISTEMAS INTELIGENTES MULTIMEDIA

PRESENTA:

ING. CARLOS ENRIQUE MORAN GARABITO

ASESOR: Dr. RUBÉN ESTRADA MARMOLEJO

GUADALAJARA, JALISCO, SEPTIEMBRE 2017

Page 2: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos
Page 3: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos
Page 4: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos
Page 5: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

07 de Julio de 2017

Respetables miembros del Jurado

Me ha tocado el honor de haber sido designado Revisor del trabajo titulado

“ALGORITMO DE DETECCIÓN DE CAÍDAS

EN UN SISTEMA EMBEBIDO” del Ing. Carlos Enrique Moran Garabito.

Después de haber leído detalladamente el trabajo que me fue entregado, he

tenido la oportunidad de intercambiar información con el sustentante y como

resultado de estas acciones he concluido que:

El trabajo tiene los siguientes aspectos positivos:

1.- Asistencia electrónica a personal de la tercera edad o personal con algún tipo

de riesgo en su movilidad.

2.- Uso de la tecnología actual para servicios de localización y monitoreo a

distancia en adultos mayores.

3.- El trabajo da oportunidad a desarrollar más aplicaciones para el monitoreo a

distancia

El trabajo tiene las siguientes oportunidades de mejora:

1.- Optimización en el uso de las baterías para tener funcionalidad prolongada del

dispositivo.

Page 6: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.- Desarrollo de algoritmos en casos de falla.

3.- Desarrollar dispositivos para la detección de caídas sin tarjetas embebidas de

desarrollo.

Haciendo un análisis crítico del trabajo y balanceando lo positivo y las

oportunidades de mejora, considero RECOMENDAR al Jurado que le otorgue el

Grado de Maestro en Sistemas Inteligentes Multimedia, al Ing. Carlos Enrique Moran

Garabito por lo que acepto se imprima el trabajo de tesis.

No obstante lo anterior, le solicitaría al sustentante me responda las siguientes

preguntas:

1.- Para poder alargar la vida útil de la batería, que cambios se podrían

implementar en el dispositivo creado.

2.- En caso de que no haya ningún reporte de movilidad, en cuanto tiempo se daría

cuenta la persona que estaría de encargada del monitoreo de la persona adulta,

ya sea su familiar o una enfermera.

Le agradecería al Honorable Jurado tenga en consideración la propuesta de

otorgar el Grado que pongo a su consideración.

Atentamente

Nombre del revisor

Grado académico del revisor

M. en C. Victor Manuel Saldaña Garcia___________________________

Grado y Nombre completo del Revisor

Page 7: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

DEDICATORIA

A mi esposa,

compañera incansable en mis aventuras y noches de desvelo

A mis hijos:

José Alberto, Sara Itza y Ernesto Daniel,

fuente de mi alegrías.

A mi madre, Estela Alejandra,

inspiración que me lleva a buscar cada vez un mayor conocimiento.

I

Page 8: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Resumen

La población de adultos mayores son una parte vulnerable de la sociedad, dado que al irse

deteriorando algunas de sus funciones, pueden presentar algunas limitantes creando de poca

a amplia dependencia, requiriendo de personal calificado para su cuidado, que les dedique

tiempo, para su constante observación [1].

Actualmente con los avances tecnológicos es posible llevar un mejor control de ciertas si-

tuaciones. Dentro del hogar, podemos llevar un control de la iluminación, la automatización de

los aspersores, la detección de humos, el control automático de la temperatura. Esto ha sido

posible gracias a la tecnología de los MEMS1 que ha permitido desarrollar sensores y actua-

dores a una escala nanométrica permitiendo la portabilidad por su tamaño y su bajo consumo

energético. Con todo esto se ha contribuido a mejorar la calidad de vida de los usuario. Dan-

do soluciones a distintos tipos de necesidades. Estos avances nos pueden llevar a desarrollar

aplicaciones que anteriormente no eran posibles como los detectores de caídas para adultos

mayores con el fin de poder dar aviso a familiares, vecinos o a los servicios de médicos de

asistencia. De esta manera el adulto mayor debe de sentirse más seguro en su domicilio para

disfrutar de un hogar confortable.

1Microelectromechanical Systems

III

Page 9: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Índice general

Bibliografía III

Índice de figuras IX

Índice de tablas XIII

1. Introducción 1

1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4. Objetivo general: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4.1. Objetivo particulares: . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Análisis de requerimientos del algoritmo 5

2.1. Requerimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Introducción a los requerimientos del sistemas. . . . . . . . . . . . . . . . . . 5

2.2.1. Propósito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.2. Alcance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.3. Limitaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.4. Personal involucrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3. Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.1. Perspectiva del prototipo. . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.2. Características de los usuarios. . . . . . . . . . . . . . . . . . . . . . . 7

2.3.3. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

V

Page 10: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.4. Suposiciones y dependencias . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5. Requerimientos funcionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5.1. Funcionalidad del prototipo. . . . . . . . . . . . . . . . . . . . . . . . 8

2.5.2. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6. Requisitos específicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6.1. Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.7. Casos de uso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.8. Modelos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.8.1. De procesos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.8.2. Flujo de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3. Detección de caídas 19

3.1. Detección de caídas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.1. Contexto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2. Acelerómetros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1. Marco teórico, calibración. . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4. Diseño del algoritmo del prototipo 35

4.1. Algoritmo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.1. Código del microcontrolador . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.2. Almacenado de los datos . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.3. Análisis de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2. Resultados y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

A. Gráficas 45

B. Kinetis design studio 75

C. Python 85

D. Octave/Matlab 89

VI

Page 11: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Bibliografía 93

VII

Page 12: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Índice de figuras

2.1. Diagrama a bloques del sistema detector de caídas en personas . . . . . . . . . 10

2.2. Caso 1. Diagrama de bloques del encendido del sistema y su interación con el

usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3. Caso 2. Diagrama de bloques de ahorro de energía. . . . . . . . . . . . . . . . 13

2.4. Caso 3. Diagrama de bloques del sistema en la detección de caídas. . . . . . . . 14

2.5. Caso 4. Diagrama de bloques del sistema activando las alertas. . . . . . . . . . 15

2.6. Representación del sistema y los subsistemas del detector de caídas. . . . . . . 16

2.7. Diagrama conceptual de flujo de datos. . . . . . . . . . . . . . . . . . . . . . . 16

2.8. Diagrama de estructura para el software para la detección de caídas en personas

adultas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1. Estructura del Acelerometro . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2. Orientaciones del acelerómetro . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3. Orientiación del acelerómetro . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1. Gráficas de actividades diarias y de caídas. . . . . . . . . . . . . . . . . . . . . 37

4.2. Árbol de toma de decisiones de valores mínimos después del filtro . . . . . . . 38

4.3. Árbol de toma de decisiones de valores máximos después del filtro . . . . . . . 39

4.4. Comparativa de los valores crudos recibidos por el microprocesador de cada eje

cuando la persona cae. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.5. Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por el

microprocesador cuando la persona se cae. . . . . . . . . . . . . . . . . . . . . 44

A.1. Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por el

microprocesador cuando la de una persona recostándose. . . . . . . . . . . . . 45

IX

Page 13: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

A.2. Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por el

microprocesador cuando la de una persona de una persona dejandose caer en la

cama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

A.3. Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por el

microprocesador cuando la de una persona de una persona recostándose. . . . . 47

A.4. Gráfica 1 de parámetros de una persona agachándose. . . . . . . . . . . . . . . 48

A.5. Gráfica 2 de parámetros de una persona agachándose. . . . . . . . . . . . . . . 49

A.6. Gráfica 1 de parámetros de una persona bajando las escaleras. . . . . . . . . . 50

A.7. Gráfica 2 de parámetros de una persona bajando las escaleras. . . . . . . . . . 51

A.8. Gráfica 3 de parámetros de una persona bajando las escaleras. . . . . . . . . . 52

A.9. Gráfica 4 de parámetros de una persona bajando las escaleras. . . . . . . . . . 53

A.10.Gráfica 1 de parámetros de una persona cuando se cae. . . . . . . . . . . . . . 54

A.11.Gráfica 2 de parámetros de una persona cuando se cae. . . . . . . . . . . . . . 55

A.12.Gráfica 1 de parámetros de una persona realiza una caminata tranquila. . . . . . 56

A.13.Gráfica 2 de parámetros de una persona realiza una caminata tranquila. . . . . . 57

A.14.Gráfica 3 de parámetros de una persona realiza una caminata tranquila. . . . . . 58

A.15.Gráfica 1 de parámetros de una persona sentándose en una silla. . . . . . . . . 59

A.16.Gráfica 2 de parámetros de una persona sentándose (dejándose caer) en un sofá. 60

A.17.Gráfica 3 de parámetros de una persona sentandose en la cama. . . . . . . . . . 61

A.18.Gráfica 4 de parámetros de una persona sentandose en un una silla. . . . . . . . 62

A.19.Gráfica 5 de parámetros de una persona sentandose en un sofá. . . . . . . . . . 63

A.20.Gráfica 6 de parámetros de una persona sentandose en la cama (dejándose caer). 64

A.21.Gráfica 7 de parámetros de una persona sentandose en el suelo. . . . . . . . . . 65

A.22.Gráfica 1 de parámetros de una persona subiendo escaleras. . . . . . . . . . . . 66

A.23.Gráfica 2 de parámetros de una persona subiendo escaleras. . . . . . . . . . . . 67

A.24.Gráfica 3 de parámetros de una persona subiendo escaleras. . . . . . . . . . . . 68

A.25.Gráfica 4 de parámetros de una persona subiendo escaleras. . . . . . . . . . . . 69

A.26.KDSK kinetis expert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

A.27.Selección del microprocesador. . . . . . . . . . . . . . . . . . . . . . . . . . . 70

A.28.Sección lateral izquierda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

A.29.Sección central superior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

X

Page 14: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

A.30.Sección central inferior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

A.31.Sección central superior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

D.1. Máximos, mínimos y promedio de los datos. . . . . . . . . . . . . . . . . . . . 92

XI

Page 15: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Índice de tablas

2.1. Requisitos específicos de hardware y de software solicitados para el sistema. . . 9

2.2. Descripcion del caso de uso uno, encender el dispositivo. . . . . . . . . . . . . 11

2.3. Descripcion del caso de uso dos, modo de ahorro de energía. . . . . . . . . . . 12

2.4. Descripcion del caso de uso tres, detección de caídas. . . . . . . . . . . . . . . 13

2.5. Descripcion del caso de uso tres, detección de caídas. . . . . . . . . . . . . . . 14

3.1. Tiempos de caída de objetos a distintas alturas . . . . . . . . . . . . . . . . . . 32

4.1. Datos mínimos y máximos de las actividades (valores crudos), parte 1. . . . . . 37

4.2. Datos mínimos y máximos de las actividades (valores crudos), parte 2. . . . . . 38

4.3. Datos actividades en la matriz de confusión. . . . . . . . . . . . . . . . . . . . 42

A.1. Tabla de pines de los puertos A y B seleccionados. . . . . . . . . . . . . . . . 72

A.2. Tabla de pines de los puertos D y E seleccionados. . . . . . . . . . . . . . . . . 72

B.1. Tabla de direcciones I2C0 del acelerómetro MMA8451Q . . . . . . . . . . . . 77

B.2. Tabla de direccionesI2C1 del acelerómetro MMA8451Q . . . . . . . . . . . . 77

B.3. Tabla de las banderas del acelerómetro MMA8451Q . . . . . . . . . . . . . . 78

XIII

Page 16: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos
Page 17: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Capítulo 1

Introducción

1.1. Antecedentes

La tecnología aplicada dentro del hogar contribuye a mejorar la calidad de vida del usuario.

Constantemente surgen nuevas aplicaciones fruto del desarrollo tecnológico para dar solución

a nuevas necesidades. Empleando estas tecnologías, el adulto mayor debe de sentirse seguro en

su domicilio para disfrutar de un hogar confortable. Algunos ejemplos son los controles de ilu-

minación, dispositivos de detección de humos, de escapes de gas LP y de fugas de agua, control

de temperatura ambiental, así como detectores de caídas con el fin de poder dar aviso a fami-

liares, vecinos o a los servicios de médicos de asistencia. Los factores ambientales que ponen

en peligro a una caída en los adultos mayores dentro de una vivienda, son: suelos irregulares o

muy pulidos, muebles muy altos, falta de barras de soporte, cables sueltos, objetos en el suelo e

iluminación insuficiente o demasiado brillantes.

En la detección de caídas, se han desarrollado varios estudios. Estos estudios involucran el

uso de cámaras, piso inteligente, sensores colocados en varías partes del cuerpo y el empleo de

sensores MEMS.

El método de cámaras involucra el empleo de sistemas de visión, cámaras infrarrojas o am-

bas. Las cámaras tienen como principal característica, que permiten reconocer multitud de pa-

trones. El programador usa estas cualidad para generar códigos que sirvan para tener una mejor

precisión sobre la cinemática de la persona y su posición. Logrando que el dispositivo empleado

sea un elemento no invasivo, permitiéndole a la persona tenga libertad en sus movimientos[2].

Page 18: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2 CAPÍTULO 1. INTRODUCCIÓN

Sin embargo, muchos de los adultos mayores se opone a tener cámaras por todos lados en su

casa [3]. Además, el empleo de las cámaras requiere de un procesador de gama media-alta o

superior con coprocesador matemático para poder realizar las complejas ecuaciones necesarias

en los algoritmos para la interpretación de las imágenes. Estos algoritmos requieren el uso de

filtros digitales que deben discernir entre la localización y posición de la persona y de los demás

objetos que se encuentren en su ambiente. El programa se vuelve mas complejo entre mas ele-

mentos en movimiento se incorporen al campo de visión de la cámara, además de que el tiempo

de procesamiento requerido para reconocer las imágenes se extiende [4].

Los pisos inteligentes emplean sensores de vibración y presión en pisos, de tal manera que

pueda reconocer a una persona por su pisada y su velocidad. De esta manera, el piso inteligente

le es posible determinar la fuerza de un impacto y así saber si se cayo algo sobre él [5].

Los sensores conectados a diferentes partes del cuerpo presenta el problema de que, al estar

cableada la interconexión entre los sensores es un método invasivo sobre las personas. En el

laboratorio es posible obtener datos y mantener a la gente conectada de esta manera, pero no en

aplicaciones reales. [6]

Con la nanotecnología, se han realizado sensores MEMs como el acelerómetros y giros-

copios. Sensores que son cada vez mas comunes dentro de nuestra vida cotidiana[7]. Estos

sensores los podemos encontrarlos ampliamente en distintos dispositivos que usamos cotidia-

namente como son el celular, relojes, pulseras deportivas y otros dispositivos vestibles [8]. Los

dispositivos MEMS tienen como principal ventajas que su uso requiere un bajo consumo ener-

getico y alta precisión en los datos muestreados. Es por ello que son perfectos para su aplicación

en sistemas embebidos [7]. Con los dispositivos vestibles se puede tener la capacidad funcional

de medir los movimientos de los individuos sin que estén cableados a alguna computadora den-

tro de un ambiente doméstico [9]. Los algoritmos empleados son redes neuronales [10], logíca

difusa [11].

1.2. Definición del problema

La población de adultos mayores son una parte vulnerable de la sociedad, dado que al irse

deteriorando algunas de sus funciones, pueden presentar algunas limitantes creando de poca a

amplia dependencia, requiriendo de personal calificado para su cuidado, que les dedique tiempo,

Page 19: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

1.3. JUSTIFICACIÓN 3

para su constante observación.

1.3. Justificación

Los adultos mayores son uno de los sectores mas vulnerables de nuestra sociedad. Pues

al disminuir parte de sus funciones motrices y psicológicas, necesitan de apoyos y cuidados

que anteriormente eran solventadas por la persona que se quedaba en el hogar. Sin embargo

actualmente ambas parejas realizan roles de trabajo fuera del hogar. Lo que complica el cuidado

de los ancianos. Quedando estos relegados y marginados de la sociedad, llegando a considerarlo

como una persona enferma, limitada e incompetente para asumir tareas y ejercer funciones. Lo

que ha llevado a la familia a la internación del anciano en instituciones de larga estancia.

La esperanza de vida actual en México, en hombres es de 73 años y en las mujeres de 78

años. Un 9.7% en hombres y en mujeres de un 12.6% mas que la década anterior. Se espera

que para el 2025 se encuentre en un 13.9 por ciento, y en 2050, a 26.5 por ciento. Este incre-

mento representaría la cuarta parte de la población total mexicana. La principal causa de este

incremento es por el control o erradicación de algunas enfermedades. Sin embargo, el hecho de

poder vivir más años no necesariamente significa vivir mejor.

Un incremento de esta magnitud representa todo un reto para el sistema de salud, pues hay

varios accidentes que sufren los adultos mayores y no son atendidas a tiempo, lo que conlleva

a secuelas posteriores, entre los accidentes con mayor numero de casos se encuentan las caídas

[12]. Además, la calidad de vida de un individuo esta relaciona con el proceso vital de autóno-

mia, no sólo del componente biológico, sino también de las condiciones del medio ambiente y

de su representación social que tiene en una sociedad. Este concepto de calidad de vida en la

tercera edad se pueden desarrollar tecnologías que sirvan de auxilio o apoyo a los adultos para

lograr una mayor independencia

1.4. Objetivo general:

Desarrollar el algoritmo para la detección de la caída de una persona dentro del ambiente

del hogar.

Page 20: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

4 CAPÍTULO 1. INTRODUCCIÓN

1.4.1. Objetivo particulares:

Alcances

- Reconocer cuando un adulto mayor se haya caído.

- Reconocer cuando este realizado una actividad cotidiana.

- Realizar las pruebas con una tarjeta embebida de desarrollo rápido.

- Seleccionar los sensores para su correcta detección.

Alcances futuros que no se contemplan en este proyecto

- Equipar con sistema wireless.

- Localizar el adulto dentro del hogar para la pronta asistencia con un sistema wireless.

- Seleccionar sensores de presión y pulsos sanguíneos para casos críticos de caídas.

1.5. Hipótesis

Empleando la tecnología de los sistemas embebidos y los sensores MEMS es posible de-

terminar cuando una persona se ha caído, con el objetivo de prevenir la muerte prematura en

adultos mayores.

Page 21: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Capítulo 2

Análisis de requerimientos del algoritmo

2.1. Requerimientos.

2.2. Introducción a los requerimientos del sistemas.

El uso de las técnicas de modelado del lenguaje (UML) permite clarificar cada uno de los

pasos y secciones que componen el sistema. Dentro esta metodología se encuentra el SysML

que extiende su uso a las técnicas de modelado de hardware. Para el diseño del detector de

caídas, empezamos con el planteamiento de las Especificaciones de Requisitos de software de

Proyecto (ERP) empleadas para el desarrolló del Algoritmo de detección de caídas en un siste-

ma embebido. El objetivo principal del modelo de requisitos es la delimitación del sistema y la

captura de la funcionalidad viéndolo desde la perspectiva del usuario. [13]

Estas especificación indican el que y como debe funcionar el sistema. De esta manera, el

cliente estará seguro de lo que recibe evitando los desfasamientos en tiempos y de las caracte-

rísticas que debe llevar el sistema1.

2.2.1. Propósito.

Definir y poner en contexto de manera formal las características con las que el sistema debe

cumplir. Esto sirve al lector y a toda persona involucrada en el desarrollo e implementación del

1Esta basando en las directrices dadas por el estándar IEEE Práctica Recomendada para Especificaciones deRequisitos Software ANSI/IEEE 830, 1998.

Page 22: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

6 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

sistema sobre los requerimientos que son necesarios cubrir para que el software se considere

terminado. El cliente podrá ver en este documento una manera de desarrollo clara, verificable y

formal de realización de proyectos.

2.2.2. Alcance.

Diseñar el algoritmo y los códigos de detección de caídas para un sistema embebido envian-

do una alerta. El código deberá identificar cuando la persona se siente o cuando se acueste o

cuando se ponga de pie, evitando mandar falsas alarmas. La alerta sera enviado en forma sonora

y en forma visual.

2.2.3. Limitaciones.

El código del programa solo podrá ser almacenado en microcontroladores Freescale ARM

M0+.

2.2.4. Personal involucrado.

Nombre. Rubén Estrada Marmolejo.

Rol. Tutor de la tesis

Categoría profesional. PhD. Control.

Responsabilidad. Asesoría.

Información del contacto. [email protected]

Nombre. Carlos Enrique Morán Garabito.

Rol. Analista, diseñador y programador.

Categoría profesional. Ingeniero de software.

Responsabilidad. Análisis, diseño e implementación.

Información de contacto. [email protected]

Page 23: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.3. DESCRIPCIÓN GENERAL. 7

2.3. Descripción general.

2.3.1. Perspectiva del prototipo.

El algoritmo de detección de caídas podrá realizar todas las siguientes tareas:

Software.

Detectar variaciones en los movimientos mayores a 10 puntos con respecto a los valores

crudos registrados por el sensor.

Determinar si ese cambio fue el resultado de una caída.

Discernir entre una caída, sentarse y acostarse.

El sensor podrá ser cableado o conectado por wireless.

En caso de que los sensores sean cableados, estos cables deben ser flexibles, y adaptables

al movimiento del cuerpo de la persona.

Determinar si el dispositivo esta puesto.

El dispositivo entrara en funcionamiento cuando haya sido colocado en la persona.

La alerta sera sonora y visual.

Enviar un aviso visual de agotamiento de la batería.

Uso continuo por una semana.

2.3.2. Características de los usuarios.

Usuario final.

El usuario principal al que esta destinado este dispositivo es el adulto mayor. Sin embargo,

puede ser usado por cualquier tipo de persona que requiera de una supervisión por posibilidad

de caídas o por caídas constantes.

Page 24: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

8 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

2.3.3. Restricciones

Las alertas visuales y auditivas dependerán del nivel de carga de la batería.

2.4. Suposiciones y dependencias

La persona que se estará monitoreando siempre portara un dispositivo.

2.5. Requerimientos funcionales.

2.5.1. Funcionalidad del prototipo.

Descripción general.

El dispositivo entrara en activación cuando el dispositivo sea puesto en la persona, sera

entonces que estará midiendo los movimientos y realizando los cálculos para determinar si la

persona ha sufrido una caída o es parte de sus actividades diarias.

El sistema realizará una revisión constante del estado de la batería, en caso de que detecte

que esta por debajo del nivel deseable, enviara un aviso visual.

Descripción especifica.

El sensor enviará las mediciones realizadas en g con el que dependiendo de la diferencia

entre el dato anterior y el actual indicara si ha sido un movimiento rápido o abrupto, con el que

el microcontrolador capturara esa información y realizará el análisis correspondiente con el que

a través de ecuaciones determinara si se ha caído una persona.

El sistema estará midiendo el nivel de energía de la batería, en caso de que este en un nivel

critico, encenderá un led rojo indicando que la batería esta baja para ser remplazada.

2.5.2. Funcionamiento

El sistema deberá funcionar de la siguiente manera:

Cuando el sistema haya sido de reciente adquisición, traerá su batería independiente, y

con las instrucciones de uso. El usuario colocara la batería en la localidad correspon-

Page 25: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.6. REQUISITOS ESPECÍFICOS. 9

diente y se encenderá un led verde por 10 segundos indicando que el sistema funciona

correctamente.

El usuario colocara el sistema El sistema no necesitara ser removido del lugar donde se

puso, pues el sensor de presencia determinara si es necesario ponerse en uso o no.

El sistema entrara en funcionamiento cuando detecte a una persona que ha sido colocado

y realizará las mediciones de los movimientos.

El sistema realizara los cálculos de cada movimiento realizado para determinar cualquier

posible caída.

El sistema enviará una alerta encendiendo el led rojo en forma de destello y un audio en

caso de que la caída se haya presentado.

Para desactivarlo el usuario deberá presionar el botón de apagado

2.6. Requisitos específicos.

Rsxx – Requisito de software

Rhxx – Requisito de hardware

ID. Requisito.Rh01 El dispositivo contara un sensor de presencia de la persona en uso.Rh02 El dispositivo contara con un sensor que mida la aceleración de la persona cuando este

en movimiento.Rh03 El dispositivo tendrá dos leds, uno rojo y uno verde.Rh04 El dispositivo tendrá una bocina.Rh05 El dispositivo tendrá un sensor que detecte que ha sido puesto en la persona que se

desea monitorear.Rh07 La unidad central sera un microcontrolador ARM M0+.Rs01 El dispositivo leerá los datos que envía el sensor indicando el movimiento de la personaRs02 realizar los cálculos para determinar si es una caída.Rs03 El dispositivo enviará una alarma visual.Rs04 El dispositivo enviará una alarma sonora.Rs05 El dispositivo entrará en modo de ahorro de energía cuando no este en uso.

Tabla 2.1: Requisitos específicos de hardware y de software solicitados para el sistema.

Page 26: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

10 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

2.6.1. Interfaces.

El dispositivo contara con la interfaz de comunicación entre los sensores

Interfaz de sensores.

Para la interfaz de comunicación con los sensores se realizará usando el puerto I2C pues

este tipo de comunicación permite la ampliación de sensores en caso de que se sea necesario en

un futuro. El sensor de detección de la persona envía un uno o un cero lógico.

Propósito de las interfaces empleadas.

Interfaz. Propósito.

Sensores. Obtener datos sobre la persona y su relación con la precipitación hacia el

suelo.

Leds Salida visual sobre el estado y alertas en el sistema.

buzzer Alerta sonora.

Figura 2.1: Diagrama a bloques del sistema detector de caídas en personas

2.7. Casos de uso.

Introducción

El modelo de casos de uso describe un sistema en términos de sus distintas formas de utili-

zación, cada una de las cuales se conoce como un caso de uso.

Page 27: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.7. CASOS DE USO. 11

Un caso de uso es una técnica para la captura de requisitos potenciales de un nuevo sistema

o una actualización. Cada caso de uso proporciona uno o más escenarios en forma gráfica los

cuales que indican cómo deberá interactuar el sistema con el usuario o con otro sistema en

respuesta a un evento para conseguir un objetivo específico.

En casos de uso no se emplean términos técnicos, en cambio, se usa un lenguaje coloquial

lo más cercano al usuario final. Esto es debido a que usuarios sin experiencia deben ser capaces

de interpretar lo que se esta desarrollando.

Encendido del sistema.

Esta sección se desarrolla el caso de uso para el encendido del sistema. En este caso de uso,

se le añade su tabla donde se explica con mayor detalle la descripción del caso de uso, y cuales

son los requisitos que lo acompañan, tomados de la Tabla 2.1

Descripción de caso de uso.Nombre: Encender dispositivo.Alias:Actores: Usuario y el sistema.Función: Energizar el sistema e inicializar los sensores.Descripción El usuario podrá encender el sistema. El sistema revisara cada uno de los

dispositivos conectados e inicializa la comunicación.Referencias: De los requerimientos Rh03, Rh02, Rh01

Tabla 2.2: Descripcion del caso de uso uno, encender el dispositivo.

Este caso de uso de la Figura 2.2 representa cuando el usuario enciende el sistema. El usuario

vera como el led verde permanece encendido por 10 segundos cuando es encendido y después

de 10 segundos se apagara. El sistema realizara la interfaz de conexión con los sensores en esos

10 segundos e inicializa su comunicación del microcontrolador con los sensores.

Ahorro de energía.

El ahorro de energía es una parte importante para el proyecto pues permite extender el uso

del dispositivo por periodos prolongados. Debido a que microcontrolador que se solicita es un

ARM cortex M0+, permite un mejor control de la energía y un ahorro considerable durante su

Page 28: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

12 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

Figura 2.2: Caso 1. Diagrama de bloques del encendido del sistema y su interación con elusuario.

uso y su modo de sleep time. El software (MCU power estimation tool v1) nos proporciona

una idea del tiempo aproximado de uso continuo que se le puede dar. La estimación del tiempo

haciendo uso del modo de ahorro de energía es de 35 días. En modo estándar, el equipo podría

usarse por 18 días usándose 24 hrs al día.

Descripción de caso de uso.Nombre: Ahorro de energíaAlias:Actores: Usuario y el sistema.Función: Extender el tiempo de energía de la batería.Descripción El sistema entrara en modo de ahorro de energía mientras no se cumpla la

condición de abrocharse el cinturónReferencias: De los requerimientos Rs05 y Rh05

Tabla 2.3: Descripcion del caso de uso dos, modo de ahorro de energía.

Para el modo de ahorro de energía se manejan en dos tiempos. El primero consiste en poner

el microcontrolador en modo de sleep time, esto es poner el microcontrolador en modo de bajo

consumo de energía hasta que se genere una interrupción que lo despierte. El segundo es un

switch normalmente abierto, que cuando se cierre, mande la interrupción al microcontrolador o

a un pin de un puerto, con el que se indique que se ha colocado el dispositivo y debe estar listo

para recibir los datos del sensor. A continuación se ve la representación gráfica del caso de uso

dos. Este caso de uso de la Figura 2.3 representa cómo el sistema entra en modo de ahorro de

energía cuando esta inactivo.

Page 29: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.7. CASOS DE USO. 13

Figura 2.3: Caso 2. Diagrama de bloques de ahorro de energía.

Detección de caída.

La detección de la caída es la parte crucial de esta investigación. Es donde el sistema al

detectar algún cambio drástico determina que se ha producido una caída. La detección deberá

diferenciar entre diferentes tipos de actividades que cotidianamente realizan las personas ma-

yores. Estas actividades son de bajo impacto.

Descripción de caso de uso.Nombre: Detección de caídasAlias:Actores: Usuario y el sistema.Función: Detectar la caída de una personaDescripción Realizar la lectura de las coordenadas x,y,z y realizar los calculos necesarios

para diagnosticar si se ha producido una caídaReferencias: De los requerimientos Rh02, Rh05, Rs01 y Rs02

Tabla 2.4: Descripcion del caso de uso tres, detección de caídas.

Este caso de uso de la Figura 2.4 especifica como el sistema detecta que ha sido colocado

en la persona a monitorear. Una vez detectada la persona, activa la señal de comunicación con

el sensor para que este empiece a mandar datos de los ejes x, y, z. El microcontrolador recibe

estos datos y realiza los cálculos necesarios para determinar si se ha habido alguna caída.

Page 30: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

14 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

Figura 2.4: Caso 3. Diagrama de bloques del sistema en la detección de caídas.

Alarmas.

La notificación sobre un evento como la caída necesita ser avisado, en este caso se realiza

usando un medio sonoro y un medio visual. La alarma no se suspende cuando la persona se haya

recuperado debido a que un adulto puede haber sufrido algún problema mayor y no notarlo. De

esta manera se podrá asegurar que la persona a cargo del adulto ha sido informado.

Descripción de caso de uso.Nombre: AlarmasAlias:Actores: Usuario y el sistema.Función: Notificar la detección de una caída.Descripción El sistema, tras la detección de una caída, enviara una alarma sonora y una

alarma visual.Referencias: De los requerimientos RS03, Rs04, Rh03 y Rh04

Tabla 2.5: Descripcion del caso de uso tres, detección de caídas.

Este caso de uso de la Figura 2.5 representa cómo el sistema envía las alertas una vez

que se ha detectado una caída. El microcontrolador envía a través de la comunicación con los

dispositivos la activación necesaria para que el led como la bocina se activen.

Page 31: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.8. MODELOS. 15

Figura 2.5: Caso 4. Diagrama de bloques del sistema activando las alertas.

2.8. Modelos.

Un modelo es una colección de entidades que interactúan y se relacionan entre sí para ob-

tener un mismo fin. Los modelos de sistemas son representaciones pictóricas de la realidad. El

modelo de sistema más básico es representado por un bloque con el que intercambia entradas y

salidas con su ambiente. Ya que el ambiente siempre cambia, los sistemas bien diseñados tienen

una retroalimentación y un lazo de control para permitir que el sistema se adapte a si mismo

para cambiar condiciones.

2.8.1. De procesos.

El modelado de procesos es una técnica para organizar y documentar la estructura y el flujo

de datos a través de los procesos de un sistema. [14] Con esta técnica hemos podido modelar

del detector de caída, que es un sistema de tamaño mediano. Así que lo hemos tenido que

descomponer en pequeños subsistemas y en algunos casos estos subsistemas los volvimos a

descomponer para encontrar eventos más básicos (Figura 2.6).

2.8.2. Flujo de datos.

Para definir la estructura y el comportamiento del sistema se realiza un modelo conceptual

de flujo de datos, el cual permite ver las soluciones al problema planteado. Todo flujo de datos

Page 32: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

16 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

Figura 2.6: Representación del sistema y los subsistemas del detector de caídas.

tiene un proceso de entrada y otro de salida. Los flujos de datos son las comunicaciones entre

procesos y el ambiente del sistema.

Estos diagramas nos da una primera aproximación de como el sistema debe comportarse y

el flujo de los datos a través del sistema y el procesamiento realizado por el mismo [15].

Figura 2.7: Diagrama conceptual de flujo de datos.

En nuestro diagrama conceptual de la Figura 2.7 están los puntos principales con los que

interactúa el programa junto con los elementos externos con los que se encuentra el sistema.

Page 33: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

2.9. CONCLUSIONES 17

En el bloque de los cálculos se establecen los parámetros y las características necesarias para

determinar que tipo de actividad se esta realizando.

El diagrama estructural que vemos en la Figura 2.8 nos da mas a detalle las variables a

utilizar, así como el tipo de función que necesita ó requiere en un determinado momento de un

tiempo t.

2.9. Conclusiones

El análisis debe de ser la etapa principal con la que se empieza a conocer y entender el

problema. Saber que el cliente, su problema son las caídas de las personas y que desea detec-

tarlas para tomar acciones de ello es el inició de nuestro trabajo. Pero el solo saber esto no es

suficiente para desarrollar un proyecto, es por esto que se deben de abstraer los puntos clave del

análisis, esto es fundamental para desarrollar el cuerpo principal del algoritmo para su solución.

Además de establecer los limites que los clientes comunicaron, ya que es fácil enfrascarse con

los proyectos y enfocarse en puntos que se cree que los clientes quieren o esperan, y no en el

principal problema. Con todo esto se debe visualizar la aplicación que el cliente esta esperando

que se tenga para el desarrollo de los prototipos. De esta manera, se puede comprobar que el

sistema cumple con los requisitos que se esperaban.

Page 34: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

18 CAPÍTULO 2. ANÁLISIS DE REQUERIMIENTOS DEL ALGORITMO

LED

gpio_pin_config_t

LED_RED_OFF() GPIO_PinInit() LED_RED_TOGGLE()

Alarma

int Valint Val2

LED()UART()

Detección de caída

int Res, Val, Val2, sum, Max, Min, desp;int D1, D2, D3, D4, D5, tmp, Old, New, n, Dif;int med = 114;D5 = 0;D4 = 0;D3 = 0;D2 = 0;D1 = 0;Old = 0;New = 0;

Actividad_min()Actividad_man()Alarm()

Movimiento

int Axis[3]i2c_master_transfer_t masterXfer;memset(&masterXfer, 0, sizeof(masterXfer));masterXfer.slaveAddress = device_addr;masterXfer.direction = kI2C_Read;masterXfer.subaddress = reg_addr;masterXfer.subaddressSize = 1;masterXfer.data = rxBuff;masterXfer.dataSize = rxSize;masterXfer.flags = kI2C_TransferDefaultFlag;

I2C_MasterTransferNonBlocking()I2C_ReadAccelRegs()

Acelerómetro

int8_t Axies[5];uint8_t status0_value = 0;int R;int16_t Axis_x, Axis_y, Axis_z;int16_t X, Y, Z;uint8_t x1, x2, y1, y2, z1, z2;Axis[5]

I2C_ReadAccelRegs() Actividad

int Dif, Actint max, minunsigned long x

int Actividad_min()int Actividad_min()

Calculos

register unsigned long op register unsigned res, one

unsigned long isqrt()int Estado_min()int Estado_max()

Microcontrolador

Enciende

Envía

Parámetros

Determina

Realíza

Envía X,Y,Z

detecta

Figura 2.8: Diagrama de estructura para el software para la detección de caídas en personasadultas.

Page 35: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Capítulo 3

Detección de caídas

3.1. Detección de caídas.

3.1.1. Contexto.

La caída es un problema frecuente y de alto riesgo en edades avanzadas de la vida. Re-

presenta el 54% del total de accidentes que sufren los adultos mayores. En el hogar ocurre el

74% de estos. De estos accidentes sólo el 52% son registrados y atendidos [12]. Este tipo de

accidentes causan mayores estragos conforme se incrementa la edad de la persona, causando

distintos niveles de consecuencias. La persona adulta al caerse llega a presentar en los casos

menos graves un raspón. En los casos más graves llega a sufrir de una fractura mayor, que de

no atenderse puede presentar la muerte.

Las causas de las caídas en el hogar son:

Por objetos mal ubicados o en mal estado.

Suelos en mal estado o resbalosos.

Mala o deficiente iluminación en escaleras irregulares o sin apoyos.

Ausencia de barra de soporte en los lugares adecuados.

La presencia de mascotas.

Calzado inadecuado.

Page 36: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

20 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Uso inadecuada de los objetos.

Mala distribución del mobiliario.

Ingesta de bebidas alcohólicas.

No utilizar ayudas técnicas indicadas (bastón, andadores, lentes).

[16]

Cuando la primera caída se presenta y en un lapso menor a 6 meses se presenta una segunda

caída puede ser el indicativo de varias enfermedades no detectadas. Esta serie de enfermedades

en cascada aumenta los índices de morbilidad1 y dependencia hasta de mortalidad. Esto repre-

senta, económicamente hablando, en altos costos para los servicios de salud y cuidados[17].

3.2. Acelerómetros.

La aceleración es la magnitud física que mide la tasa de variación de la velocidad respecto

del tiempo [18]. La ecuación que le corresponde esta dada por a = cambio de velocidadtiempo empleado . Cuenta con

dirección y magnitud, que son representadas mediante un vector. Sus dimensiones son longitud

entre tiempo al cuadrado y sus unidades, según el sistema internacional, son m/ s2.

Los Acelerómetros son sensores que miden la aceleración y la fuerzas inducidas por las

gravedad aplicadas sobre un mismo plano [19]. Esto es, son sensibles a la diferencia entre

la aceleración lineal del sensor y el campo gravitacional local. La hoja de datos de cualquier

acelerómetro indicará al menos uno de estos ejes x, y, z si no es que todos. Por convención,

éstos se definen de manera que una aceleración alineada en la dirección de estos ejes dará una

salida positiva del acelerómetro.

Un componente de campo gravitacional alineado a lo largo de las mismas direcciones de

ejes pero en sentido contrario, dará como resultado una lectura negativa en el acelerómetro.

Esto se puede entender mirando una imagen de microscopio electrónico de un acelerómetro

MEMS.

Los acelerómetros contienen cuatro componentes básicos: una masa móvil, llamada masa de

prueba o masa sísmica, una suspensión formada por uno o varios soportes y resortes elásticos,

1Número de personas que enferman en una población y período determinados

Page 37: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.2. ACELERÓMETROS. 21

un amortiguador; y un sensor de desplazamiento que es un mecanismo mediante el cual se

registra el desplazamiento de la masa móvil 3.1.

Masa sismica

Masa movil

Resorte

Sensores

Desplazamiento

Figura 3.1: Estructura del Acelerometro

La masa se utiliza para generar una fuerza debida a la aceleración o desaceleración del

cuerpo sobre el que está montado el acelerómetro. La suspensión sujeta la masa móvil y cumple

funciones de soporte rígido. La masa de prueba superior está suspendida por los muelles de

recuperación. Tanto un campo gravitatorio dirigido a la izquierda como una aceleración lineal

del paquete a la derecha desviarán la masa de prueba a la izquierda.

De esta forma se impide el desplazamiento de la masa en las direcciones y y z. Y el resorte

permite regresa la masa a su posición original una vez que la aceleración ha desaparecido, en la

dirección contraria a la que la masa se haya movido.

El amortiguador es generalmente el volumen de aire, o ambiente controlado, capturado den-

tro del encapsulado o cavidad que rodea al dispositivo y se diseña para controlar el compor-

tamiento de la masa móvil con el fin de obtener características favorables en la respuesta en

frecuencia. El desplazamiento de la masa se transforma en una señal eléctrica de salida gracias

al mecanismo de registro.

Los acelerómetros lineales son clasificados en planares (registran sobre el eje x o y) y fuera

de plano (registran sobre el eje z). La mayoría de los movimientos humanos ocurren entre

0,3 y 3,5 Hz [20]. Por esta razón se utilizan filtros con una frecuencia de corte entre 0,1 y

0,5 Hz para separar los dos componentes de la orientación estática y el movimiento corporal

[19]. El efecto de movimiento que se crea en los tejidos blandos como la respiración quedan

suprimidos en estos filtros. En algunos filtros, se pueden modificar el sensor con el que se mide

la fuerza de gravedad. Permitiendo utilizar en lugares donde las vibraciones externas como son

el desplazamiento de un vehículo pueden estar presentes en la señal.

Page 38: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

22 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Actualmente los acelerómetros están diseñados con tecnología MEMS con las que sobresa-

len las características de que son pequeños, ligeros y portátiles permitiendo su uso en diversos

estudios. Dentro de esos estudios, destacan los siguientes.

Luinge en el articulo Ambulatory measurement of arm orientation utilizo 3 acelerómetros y

3 giroscopios para determinar la posición de un brazo. LeMoyne desarrollo un guante en donde

los acelerómetros estaban colocados en la muñeca para medir la intensidad de la enfermedad de

Parkinson [21]. Ó como medidor de ADL 2 de las personas en los que se emplean de 2 ejes[7]

y 3 ejes [22].

Bianchi [23] realizó mediciones de un sensor de presión de aire y un acelerómetro en un

dispositivo wearable para almacenar datos y su posterior análisis.

Se han desarrollado dispositivos que van montados en el pecho, por ser este el centro de

gravedad de la arquitectura de una persona. La caída es detectada cuando se incrementa un

valor negativo con respecto al cambio de orientación de una posición [19].

Tamura [24] uso el acelerómetro y un giroscopio, con el que se puede detectar la velocidad y

el ángulo de inclinación para determinar la caída y el lado del impacto, colocando bolsas de aire

en la cintura para amortiguar el impacto de la persona y reduciendo los riesgos consecuentes

por el golpe.

Chen [10] creo un dispositivo wireless, no invasivo, de baja energía con un microcontrolador

Atmel 128L de 8 bits y un sistema operativo TinyOS que se conectaba a una pequeña red. El

dispositivo mejora las muestras secuenciales del acelerómetro, reduciendo la carga a la red.

Narayanan [25] emplea una plataforma basada el sistema PreventaFall ambulatory monitor

(PFAM) el que emplea un acelerómetro de 6g y el portal de datos MiiLink (MiiLink).

Un sistema colocado en la cabeza donde estaba un acelerómetro fue empleado por Wang

[8] determinando las velocidades de referencia. La velocidad de referencia se obtiene calculado

utilizando la integración hacia atrás de las aceleraciones y un umbral predefinido. Con ello se

distingue de las actividades diarias normales.

Luo [26] implementa una serie de sensores colocados en la cama y usando un Filtro Gaus-

siano elimina el ruido del cuerpo y con eso determinan las posiciones distintas del cuerpo.

Ghasemzadeh [27] Analizó una máquina de aprendiendo y técnicas estadísticas en la crea-

ción de un sistema de monitoreo que recolectaba información de la aceleración y actividad de

2actividades de la vida diaria

Page 39: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.2. ACELERÓMETROS. 23

músculos y mejora el análisis de estas señales. Implementando un enfoque similar para Nodos

sensores inerciales que construyen transcripciones de movimiento desde las señales biomédi-

cas e identifica los movimientos. El sistema se basa en Transcripciones de movimiento que se

construyen utilizando un sistema con sensores inerciales wearables.

El análisis de los umbrales de aceleración en adultos entre los 22 y los 38 años los llevó a

cabo Kangas [28]. Realizó caídas laterales, frontales y de espalda para detectar los umbrales de

aceleración en las caídas usando un acelerómetro triaxial. Las medidas de umbral para diferen-

tes parámetros fueron tomadas en la cintura, la muñeca, y la cabeza obteniendo los siguientes

resultados, para la cintura, el rango de los parámetros SVTOT , SVD, SVmaxmin y Z2 fueron ligera-

mente parecidas entre una caída y ADL. Antes del impacto el rango de la velocidad v0 fue de

0.8 a 3.4 ms−1. El índice de las caídas estuvo en el rango de 2.65 a 5.89 g, mientras que cuando

se realizaba ADL, las caídas detectadas fue de 1.10 a 3.62g. En la muñeca el solapamiento de

la información de una caída con respecto al ADL no permitió una certeza para determinar la

caída. Se detecto que el 75% de las caídas arrojaba un valor mas alto que el del ADL. En la

cabeza no existió solapamiento, teniendo una certeza de detección del 100% para este estudio.

3.2.1. Marco teórico, calibración.

El acelerómetro toma las lecturas de cada eje correspondiente a cada coordenada dependien-

do de la posición colocada. De tal manera que para una coordenada existirán valores positivos

en sentido horario y valores negativos en sentido anti-horario como se ve en la imagen 3.2.

Para cada posición del eje, el valor correspondiente enviado por el sensor sera el siguiente:

1. Cuando el sensor se encuentra colocado de canto, viendo el acelerómetro de frente con la

marca del punto de referencia del integrado en la parte superior izquierda tendríamos 0◦

(a). La fuerza gravitatoria esta en el vector y la salida sera negativa. La variable toma el

siguiente valor: Acel_Real−y = (0,−1,0).

2. Cuando el sensor se encuentra colocado de canto girado 180◦ (d), viendo el acelerómetro

de frente con la marca del punto de referencia del integrado en la parte inferior derecha, la

fuerza gravitatoria esta en el vector y la salida sera positiva. La variable toma el siguiente

valor: Acel_Real+y = (0,+1,0).

Page 40: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

24 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Frente0 grados

g

Frente-90 grados 90 grados

Frente180 grados

y=-1g x=1gx=-1g y=1g

z=1gz=-1g

Base

Frente

a) b) c) d)

e)f)

Figura 3.2: Orientaciones del acelerómetro

3. Cuando el sensor se encuentra colocado de canto girado -90◦ (b) a al izquierda con res-

pecto al primer punto (a), viendo el acelerómetro de frente con la marca del punto de

referencia del integrado en la parte inferior izquierda, la fuerza gravitatoria esta en el vec-

tor x la salida sera negativa. La variable toma el siguiente valor: Acel_Real−x = (−1,0,0).

4. Cuando el sensor se encuentra colocado de canto girado 90◦ (c) a al derecha con respecto

al primer punto (a), viendo el acelerómetro de frente con la marca del punto de referencia

del integrado en la parte superior derecha, la fuerza gravitatoria esta en el vector x la

salida sera positiva. La variable toma el siguiente valor: Acel_Real−x = (+1,0,0).

5. La fuerza gravitatoria en el vector +z teniendo el circuito integrado acostado con la ima-

gen de la compañía boca arriba (e), la variable toma el siguiente valor: Acel_Realz =

(0,0,+1g).

6. La fuerza gravitatoria en el vector -z teniendo el circuito integrado acostado con la ima-

gen de la compañía boca abajo (f), la variable toma el siguiente valor: Acel_Real−z =

(0,0,−1).

Al calibrar el sensor es necesario entender la relación de la entrada con respecto a la salida,

y su resolución en caso de contener un convertidor análogo digital.

Page 41: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.2. ACELERÓMETROS. 25

El sensor puesto en un ambiente sin gravedad (0g), los valores enviados en todos ejes y

en todas las resoluciones debe ser 0x00. Cuando alguna de las coordenadas del sensor esta

interactuando con una fuerza de aceleración de 1g o más, tendremos una salida de datos del

sensor.

Para una resolución de 12 bits, el valor entregado será de 2047 en decimal, ó 0x07FF en

hexadecimal. Y en caso de los valores negativos, (−1g) se usa el formato de complemento de 2.

Lo que significa el valor entregado será de 4095 ó 0x0FFF . Para 14 bits es de 8191 en decimal

o 0x1FFF en hexadecimal para 1g y 16383 ó 0x3FFF para −1g. En el caso de 10 bits es de

511 ó 0x01FF para 1g y 1023 ó 0x3FF para −1g.

Para una calibración básica cuando se sigue el siguiente método:

Colocar el acelerómetro en posición plana para la lectura de la coordenada z. De prefe-

rencia es emplear una mesa de calibración de metrología.

Anote los datos de las coordenadas x y y los cuales deben estar cercanos a los ya mencio-

nados para 0g y de +1g para la coordenada z.

Según la sensibilidad conocida del dispositivo, hay que calcular el valor de 0g para z

restando la salida de aceleración de 1g de la sensibilidad conocida.

Calibración de valores con ajustes del microcontrolador.

Esta técnica requiere que los valores sean leídos mientras el dispositivo está en una posición

especifica conocida. Su uso requiere un esfuerzo mínimo de los recursos del microcontrolador.

Los valores calibrados se calculan de la siguiente manera:

Se coloca el dispositivo como se planteo anteriormente en los pasos de calibración y con los

datos se introducen en las siguientes variables de cada eje de las ecuaciones 3.1 para el eje x,

3.2 para el eje y, y para el z la ecuación 3.3.

Calx =−1ax (3.1)

Caly =−1ay (3.2)

Page 42: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

26 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Calz = S−az (3.3)

Donde ax, ay y az son las lecturas de los offset o desplazamientos correspondientes a los

ejes en 0g mientras que S se refiere al dato tomado del dispositivo en 1g.

Los valores capturados se añaden a la lectura de aceleración actual en el dispositivo y con

eso se pueden obtener los valores de las aceleraciones ya calibradas. Como se muestra a conti-

nuación.

xz = Acelactualx +Calx (3.4)

yz = Acelactualy +Caly (3.5)

zz = Acelactualz +Calz (3.6)

La calibración completa requiere que se repitan estos pasos para cada uno de las coordena-

das y estos datos queden almacenados.

Calx =−1ax (3.7)

Caly = S−ay (3.8)

Calz =−1az (3.9)

xy = Acelactualx +Calx (3.10)

yy = Acelactualy +Caly (3.11)

zy = Acelactualz +Calz (3.12)

Calx =−1ax (3.13)

Page 43: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.2. ACELERÓMETROS. 27

Caly = S−ay (3.14)

Calz =−1az (3.15)

xx = Acelactualx +Calx (3.16)

yx = Acelactualy +Caly (3.17)

zx = Acelactualz +Calz (3.18)

La calibración final del dispositivo esta dada por la suma de cada una de las calibraciones

(las ecuaciones relacionadas en la coordenada X 3.16, 3.17, 3.18 + las ecuaciones 3.10, 3.11,

3.12 para las coordenadas Y individuales + las ecuaciones 3.4, 3.5, 3.6 para las coordenadas Z

individuales, resultado la ecuación 3.19 para la coordenada x, para la coordenada y resulta la

ecuación 3.20 y para la coordenada z la ecuación 3.21

xtotal = xx + xy + xz (3.19)

ytotal = yx + yy + yx (3.20)

ztotal = zx + zy + zz (3.21)

Método más preciso de calibración:offset y sensibilidad.

Para aumentar la precisión, es necesario que el microcontrolador desarrolle mayores cálcu-

los en cada uno de los desplazamientos (offset) cada una de las seis posiciones y realizar ajustes

en los errores de sensibilidad.

Los pasos son los siguientes:

Page 44: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

28 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Figura 3.3: Orientiación del acelerómetro

1. Colocar el acelerómetro sobre una superficie plana calibrada, usar mesa de calibración

para mayor precisión.

2. Almacenar los valores de offset para todas las 6 posiciones del sensor (ver tabla 3.3) en

el microcontrolador.

3. Después de almacenar los valores de offset de las seis posiciones, determine las sensibi-

lidades y el offset para cada eje.

4. Calcule el punto medio de cada eje considerando −1g y +1g.

En cada posición, el acelerómetro debe entregar un valor de acuerdo como se indica en la

siguiente Tabla, y mientras que no se encuentra en alguna de las opciones indicadas, la salida

del acelerómetro debería dar cero, como se indico anteriormente, pues su gravedad en las otras

posiciones debe ser 0g y su salida debe de ser 0 acelerómetro, todo valor fuera de este rango, es

el desplazamiento fuera del rango ó offset obtenido.

Para calcularel punto medio de cada eje, tomamos de referencia la imagen 3.2 y la Tabla 3.3

y tomamos los valores offset dados en cada posición de acuerdo a la siguiente ecuación:

0gx = (ax +dx + ex + fx

4) (3.22)

0gy = (by + cy + fy + ey

4) (3.23)

0gz = (aZ +bZ +dZ + cZ

4) (3.24)

Page 45: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.2. ACELERÓMETROS. 29

Estos valores de la calibración son guardados en variables de la siguiente manera:

Calx =−0gx (3.25)

Caly =−0gy (3.26)

Calz =−0gz (3.27)

Análisis de la aceleración.

La relación de la medición entre el valor medido y el valor real nos da la exactitud del

sistema y su margen de error. Esta relación entre el valor de la aceleración real y la medida esta

dada por la siguiente ecuación.

Acelx

Acely

Acelz

=

Xgain YtoX ZtoX

XtoY Ygain ZtoY

XtoZ YtoZ Zgain

Acel_Realx

Acel_Realy

Acel_Realz

+

Xo f s

Yo f s

Zo f s

(3.28)

Las mediciones de la aceleración para cada posición en los 6 puntos de calibración de la

caída, queda dada de la siguiente manera.

Eje X Eje Y Eje Z

Acelx1 = Xgain +XO f s Acely1 = XtoY +Yo f s Acelz1 = XtoZ +ZO f s

Acelx2 =−Xgain +Xo f s Acely2 =−XtoY +Yo f s Acelz2 =−XtoZ +ZO f s

AcelX3 = YtoX +XO f s Acely3 = Ygain +Yo f s Acelz3 = YtoZ +ZO f s

AcelX4 =−YtoX +XO f s Acely4 =−Ygain +Yo f s Acelz4 =−YtoZ +ZO f s

AcelX5 = ZtoX +XO f s Acely5 = ZtoY +Yo f s Acelz5 = Zgain +ZO f s

AcelX6 =−ZtoX +XO f s Acely6 =−ZtoY +Yo f s Acelz6 =−Zgain +ZO f s

(3.29)

La compensación puede ser calculada de varias maneras, sumando dos salidas de la ecuación

3.29. Hay que tener cuidado de cuales ganancias y cruces se emplean ya que se pueden cancelar,

quedando las ecuaciones de la siguiente manera.

Page 46: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

30 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Eje x Eje y Eje z

2Xo f s = Acelx1 +Acelx2 2Yo f s = Acely3 +Acely4 2Zo f s = Acelz1 +Acelz2

2Xo f s = Acelx3 +Acelx4 2Yo f s = Acely1 +Acely2 2Zo f s = Acelz3 +Acelz4

2Xo f s = Acelx5 +Acelx6 2Yo f s = Acely5 +Acely6 2Zo f s = Acelz5 +Acelz6

(3.30)

De la misma manera, dependiendo de la variable a medir, mas de una ecuación puede re-

querida para su estimación. Se puede promediar para mejorar la calidad de la estimación final

3.33.

Para el calculo de las ganancias y de los cruces, se puede obtener un estimado con las

siguientes ecuaciones.

Ganancias Cruces

xgain = Acelx1− xo f s xtoy = Acely1− yo f s

xtoy = −Acely2− yo f s

xgain = Acelx2− xo f s xtoz = Acelz2− yo f s

xtoz = −Acelz2− yo f s

ygain = Acely3− xo f s ytox = Acelx3− yo f s

ytox = −Acelx4− yo f s

ytoz = Acelz3− xo f s

ytoz = Acelz4− xo f s

zgain = Acely5− xo f s ztox = Acelx5− xo f s

ztoX = −Acelx6− xo f s

zgain = Acely6− xo f s ztox = Acely5− xo f s

ztox = −Acely6− xo f s

(3.31)

Con esto la compensación se puede extraer y al multiplicarlo por la matriz inversa obtenien-

do la relación entre la aceleración medida y la aceleración real[29].

Es conveniente combinar todas las incógnitas en una matriz:

Page 47: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.2. ACELERÓMETROS. 31

Acelx

Acely

Acelz

=

xgain ytox ztox xo f s

xtoy ygain ztoy yo f s

xtoz ytoz zgain zo f s

Acel_Realx

Acel_Realy

Acel_Realz

1

(3.32)

Existen otro métodos para estimar los movimientos del acelerómetro, el Filtro esfera o fac-

tor S esta basado en un conjunto de los tres ejes del sensor, el filtro elipsoide se puede utilizar

para estimar los desplazamientos y las ganancias, y el filtro rotacional elipsoide puede usarse

para estimar los desplazamientos, ganancias y el cruce de las ganancias entre ejes En este úl-

timo caso, el cruce de ganancias entre ejes son usualmente simétricas: xtoy = ytox, xtoz = ztox,

ytoz = ztoy [30].

Filtro esfera

Todo el tiempo el acelerómetro esta tomando datos de la aceleración con respecto a la gra-

vedad, dependiendo de la orientación de cada eje. El empleo de el factor S es una manera de

considerar el total de la aceleración con respecto a todos los ejes.

Factor_S =

√x2

out + y2out + z2

out (3.33)

El tiempo de caída o la distancia recorrida esta dada por la ecuación de movimiento de la

aceleración, que puede tomarse de la velocidad

v =∫

adt = v0 +at (3.34)

Integrando la velocidad tenemos la ecuación

d =∫(v0 +at)dt (3.35)

d = d0 + v0t +12

at2 (3.36)

Para calcular el tiempo de caída es:

Page 48: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

32 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

d = v0t +12

at2 (3.37)

Donde:

d Es la distancia

v0 Es la velocidad inicial, la cual consideraremos igual a 0.

d0 Es la distancia inicial, la cual consideraremos igual a 0.

a Es la aceleración y.

t Es el tiempo.

De esta manera, si despejamos t nos quedara:

t2 =2da

(3.38)

t =

√2da

(3.39)

Con estos datos se calcula el tiempo aproximado de una caída lineal [31].

Altura (m) Tiempo de caída(s).4.91 µm 1 ms0.49 mm 10ms1 cm 45 ms4.91 cm 100 ms10 cm 142 ms19.6 cm 200 ms20 cm 202 ms25 cm 226 ms30 cm 247 ms

Altura (m) Tiempo de caída(s).44.1 cm 300 ms60 cm 349.93 ms70 cm 377.96 ms80 cm 404.06 ms90 cm 428.57 ms100 cm 451.75 ms1 m 351 ms1.23 m 500 ms4.905 m 1 s

Tabla 3.1: Tiempos de caída de objetos a distintas alturas

3.3. Conclusiones

Cuando una persona adulta se cae, tiene mayores consecuencias de heridas físicas, golpes o

torceduras que pueden tomar más tiempo en recuperarse que una persona de menor edad. Para

su detección, se pueden emplear distintos tipos de sensores, en nuestro caso, decidimos usar

Page 49: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

3.3. CONCLUSIONES 33

el acelerómetro MMA8451Q, que aunque es un sensor invasivo, por ser un sensor MEMs, su

invasión es poco significativa, pues puede estar presente en cualquier vestimenta, cinturón o

joyería.

Page 50: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

34 CAPÍTULO 3. DETECCIÓN DE CAÍDAS

Page 51: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Capítulo 4

Diseño del algoritmo del prototipo

4.1. Algoritmo.

4.1.1. Código del microcontrolador

Para saber en que parámetros se encuentran cada una de las actividades que se realizan

normalmente, así como cuando una persona se cae, se programó la tarjeta con el siguiente

algoritmo (algoritmo 1) que hace la función de un DAQ el algoritmo lo que hace es básicamente

tomar los datos que constantemente envía el acelerómetro, el microcontrolador los lee y los

transmite en protocolo serial TX/RX a la computadora.

Algorithm 1 Función, adquisición de datos DAQ (Data AcQuisition) )1: function DAQ(Adquisición de datos)2: I2C← acelerometro3: I2C← bautrade4: I2C← puerto5: I2C← clock6: I2C← GPIO7: microprocesador← UART8: microprocesador← bautrade9: end function

4.1.2. Almacenado de los datos

Con la tarjeta trabajando como un DAQ, hace falta la contra parte que almacene los datos

para su análisis posterior. Python es perfecto para este trabajo, por su facilidad y flexibilidad. El

35

Page 52: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

36 CAPÍTULO 4. DISEÑO DEL ALGORITMO DEL PROTOTIPO

algoritmo 2 se comunica con el microcontrolador y toma los datos que esté esta transmitiendo

y los va almacenando en un archivo csv (para mayores detalles, ver apéndice C)

Algorithm 2 Función, Almacenamiento de datos en archivo1: function DAQ(Adquisición de datos)2: localizacion← ttyUSBx3: Velocidad.serie← 300 ... 1152004: Time← Hora, dia, mes, year5: Datos← Abrir archivo para escritura de datos6: var.datos← dato.localizacion7: if var.datos 6= EOF then8: Datos← var.datos + Time.Hora + Time.dia + Time.mes + Time.year9: end if

10: end function

4.1.3. Análisis de los datos

Con estos datos, se obtienen los parámetros para trabajar y graficar. Los picos mas altos

representados por los máximos y los mínimos (ver Figura 4.1). Estos datos permanecen un

periodo muy pequeño, aproximadamente de 1 segundo, lo que incluye entre 90 y 100 muestras.

Tomamos todos los datos y los conjuntamos en una sola gráfica (ver Figura 4.1), con el que

podemos ver los valores pico y su comportamiento conjunta para cada actividad. Los picos mas

altos indican algún movimiento fuera del promedio.

Llenamos la Tabla 4.1 con los valores máximos y mínimos que obtuvimos con el análisis del

script de Matlab/Octace (apéndice D). Estos datos sirven de base para crear el árbol de decisio-

nes con los valores obtenidos, sin embargo es difícil de una búsqueda limitada por profundidad

es la elección de un limite adecuado. [32]. Esto es debido a que los valores no son estáticos,

cambian conforme el tipo de actividad que se realicé sea mas extrema o menos que la anterior.

Es por eso que se realizan dos árboles de decisiones, uno con valores máximos y otro con va-

lores minimos. Con estos valores, generamos un árbol de decisiones con los valores máximos

(ver Figura 4.3) y otro árbol con los valores mínimos (ver Figura 4.3).

Page 53: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

4.1. ALGORITMO. 37

Figura 4.1: Gráficas de actividades diarias y de caídas.

Actividad. Máximo. Mínimo. Promedio.Acostado. 178 36 111Acostado. 140 65 109Acostado. 180 43 101Agacharse. 120 95 112Agacharse. 140 88 113

Bajar escaleras. 161 65 106Bajar escaleras. 243 31 107Bajar escaleras. 145 88 107Bajar escaleras. 198 30 107

Caerse. 232 65 111Caerse. 202 55 109Caerse. 258 36 110Caerse. 216 47 110

Tabla 4.1: Datos mínimos y máximos de las actividades (valores crudos), parte 1.

Page 54: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

38 CAPÍTULO 4. DISEÑO DEL ALGORITMO DEL PROTOTIPO

Actividad. Máximo. Mínimo. Promedio.Caminar. 143 64 106Caminar. 176 80 107Caminar. 137 87 106Caminar. 142 87 107

Saltar. 195 42 109Saltar. 278 25 110

Sentarse. 123 90 106Sentarse. 143 86 107Sentarse. 130 89 105Sentarse. 139 88 109Sentarse. 141 88 113Sentarse. 182 34 109Sentarse. 137 78 111

Subir escalera. 148 79 106Subir escalera. 199 36 124Subir escalera. 186 46 109Subir escalera. 128 96 110

Tabla 4.2: Datos mínimos y máximos de las actividades (valores crudos), parte 2.

Figura 4.2: Árbol de toma de decisiones de valores mínimos después del filtro

Page 55: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

4.1. ALGORITMO. 39

Y hacemos lo mismo con el valor máximo, de acuerdo al árbol de la Figura 4.3.

La forma de leer estos arboles es de izquierda a derecha, de abajo hacia arriba hasta llegar

al punto mas alto y luego otra vez hacia abajo. Cada triangulo representa una toma de decisión.

Entonces, el valor mínimo registrado corresponde a la inactividad, mientras que el máximo

corresponde a saltar. Esto se puede ver tanto en el árbol de máximos como de mínimos.

Figura 4.3: Árbol de toma de decisiones de valores máximos después del filtro

Se puede ver como en el árbol de decisiones mínimos el valor de 122 no tiene ningún dato

cercano que pueda malinterpretarlo el microcontrolador, ya que el valor hacia abajo que le sigue

es el de 74 y el que le sigue hacia arriba, es de 153, por lo tanto todo rango de valores cercanos

corresponden a la detección de caída.

En el caso del árbol de decisiones máximos, la toma de decisión no es tan sencilla, pues

el valor en la caída es de 166 y hacia abajo tenemos de 162 en la subida de escaleas. Cuando

bajamos escaleras el valor es de 212. Por consiguiente, debemos tomar ambos valores y com-

pararlos, de tal manera que se detecta el mínimo como una actividad y el máximo como otra

actividad, la decisión queda anulada.

Con los árboles ya desarrollados, se crea el pseudocodigo con el que se desarrollaran los

Page 56: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

programas para el microcontrolador, los cuales se pueden ver las secciones más destacables

en el apéndice (B). Se debe considerar que el microcontrolador constantemente esta revisando

los datos enviados por el acelerómetro, para la toma de decisiones, trabajamos de 100 en 100

muestras, y con ellas determinamos el mínimo y el máximo adquirido y metemos un filtro para

eliminar aquellas oscilaciones generadas por la respiración o actividades de baja frecuencia.

Comparamos el dato mínimo con el tipo de actividad (Algoritmo 3.)

Algorithm 3 Función filtro de inactividad1: function INACTIVIDAD(valores maximos, valores minimos)2: Di f erencia← max−min3: if Di f erencia > 15 then4: llamar f uncionactividad5: regresa valor de actividad6: else regresa valor de reposo7: end if8: end function

El algoritmo 5 es el resultado del árbol 4.3 y también del árbol 4.2, con el que estamos

haciendo la comparativa del valor obtenido y los datos de los árboles, y regresa un estado

máximo. El valor del estado se almacena, para en forma posterior realizar una comparativa

con el estado mínimo.

Algorithm 4 Función, tipo de actividad1: function TIPO ACTIVIDAD(Actividad maximos, actividad minimos)2: Val← Actividad árbol mínimos3: Val2← Actividad árbol máximos4: if ( thenVal 6= Val2)5: Actividad← error;6: end if7: end function

Si la comparativa nos arroja un estado falso (algoritmo 4), no estamos dentro de la actividad

establecida por los estados máximos y mínimos y por lo tanto no ha ocurrido tal actividad. La

diferencia entre los estados debe ser verdadera para que el sistema determine que la actividad

leída por el acelerómetro ha ocurrido.

Page 57: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

4.1. ALGORITMO. 41

Algorithm 5 Función, tipo de actividad1: function ACTIVIDAD(valores maximos, valores minimos)2: if Maximo/minimo = nodo1 then3: Agachado4: end if5: if Maximo/minimo = nodo2 then6: Caminar7: end if8: if Maximo/minimo = nodo3 then9: Acostarse

10: end if11: if Maximo/minimo = nodo4 then12: Sentarse13: end if14: if Maximo/minimo = nodo5 then15: Subir las Escaleras16: end if17: if Maximo/minimo = nodo6 then18: Bajar las escaleras19: end if20: if Maximo/minimo = nodo7 then21: Caerse22: end if23: end function

Page 58: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

42 CAPÍTULO 4. DISEÑO DEL ALGORITMO DEL PROTOTIPO

4.2. Resultados y conclusiones

Una vez generado el código y guardado en el microcontrolador, hicimos la prueba con 10

personas tomando 10 muestras para cada actividad. Esto fue porque es importante que el detec-

tor de caídas no detecte la caída cuando esta realizando alguna actividad de alto impacto.Los

resultados los revisamos y capturamos en la siguiente tabla de matriz de confusión.

Actividad. Aga

char

se.

Cam

inar

.

Aco

star

se.

Sent

arse

.

Subi

resc

aler

as.

Baj

ares

cale

ras.

Cae

rse.

Salta

r.

Agacharse. 99Caminar. 1 97 3Acostarse. 3 93 4Sentarse. 4 89 7Subir escaleras. 7 90 3Bajar escaleras. 7 95 2Caerse. 2 97 1Saltar. 1 99

Tabla 4.3: Datos actividades en la matriz de confusión.

Esta tabla nos indica la probabilidad que tiene el sistema de tener una falla en la detección.

Podemos ver como el Sentarse tiene un nivel muy bajo de determinar la actividad, sin embargo

para la actividad principal que es la que estamos buscando, la caída, su nivel esta en un 97%

de detección, creando alguna falla con sus vecinos. Esto es que si la persona baja las escaleras

corriendo o si se pone a realizar saltos constantemente, hay probabilidades de que detecte alguno

de estas dos actividades como si fuera una caída.

Un sistema detector de caídas permite una independencia entre las personas mayores. Per-

mitiendo realizar las actividades que normalmente realiza sin preocuparse por auxilio que pu-

dieran necesitar en caso de presentarse alguna caída. Este detector permite determinar el tipo

de actividad que están realizando, permitiendo detectar la caída sin sacrificar los recursos del

microcontrolador.

La precisión del algoritmo funciona muy bien para personas con actividades de bajo y medio

ritmo de vida, que normalmente son las personas con alguna enfermedad o característica que

Page 59: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

4.2. RESULTADOS Y CONCLUSIONES 43

se busca estar monitoreando, lo que permite perfectamente reconocer si se ha caído y estar al

pendiente si en la caída, la persona no ha podido incorporarse.

Además cabe destacar que el algoritmo se simplifico cuando en el análisis se observo el

comportamiento que tenían las variables al elevarlas al cuadrado, el cual era idéntico que cuando

se obtenían los valores absolutos como se puede apreciar en la Figura 4.4

Figura 4.4: Comparativa de los valores crudos recibidos por el microprocesador de cada ejecuando la persona cae.

Estos datos obtenidos se puede ver como el valor en el eje de las y se reduce un 100% al

valor que originalmente nos arroja el valor elevado al cuadrado. Logrando reducir el tamaño del

tipo de la variable y reduciendo el tiempo de proceso del microcontrolador.

La Figura 4.5 nos muestra como se obtiene una gráfica similar aplicando la ecuación 3.33

tanto en los valores absolutos como elevados al cuadrado, pero igual que como se comento

anteriormente, se reduce el tamaño de la variable.

Actualmente solo envía una alarma sonora y visual, sin embargo se tiene planteado ampliarla

con un envío de alerta a través del internet usando un sistema wireless y usando un localizador

de posición Bluetooth para su pronta asistencia dentro del hogar. El programa fue desarrollado

en C lo que permite su portabilidad permitiendo emplearlo con otros softwares como el sistema

operativo para internet de las cosas (IoT), el RIOT OS, que esta desarrollado en C entre otros.

Page 60: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

44 CAPÍTULO 4. DISEÑO DEL ALGORITMO DEL PROTOTIPO

Figura 4.5: Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por el mi-croprocesador cuando la persona se cae.

Page 61: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Apéndice A

Gráficas

Figura A.1: Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por elmicroprocesador cuando la de una persona recostándose.

45

Page 62: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

46 APÉNDICE A. GRÁFICAS

Figura A.2: Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por elmicroprocesador cuando la de una persona de una persona dejandose caer en la cama.

Page 63: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

47

Figura A.3: Comparativa de filtro s y filtro absoluto de los valores crudos recibidos por elmicroprocesador cuando la de una persona de una persona recostándose.

Page 64: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

48 APÉNDICE A. GRÁFICAS

Figura A.4: Gráfica 1 de parámetros de una persona agachándose.

Page 65: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

49

Figura A.5: Gráfica 2 de parámetros de una persona agachándose.

Page 66: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

50 APÉNDICE A. GRÁFICAS

Figura A.6: Gráfica 1 de parámetros de una persona bajando las escaleras.

Page 67: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

51

Figura A.7: Gráfica 2 de parámetros de una persona bajando las escaleras.

Page 68: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

52 APÉNDICE A. GRÁFICAS

Figura A.8: Gráfica 3 de parámetros de una persona bajando las escaleras.

Page 69: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

53

Figura A.9: Gráfica 4 de parámetros de una persona bajando las escaleras.

Page 70: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

54 APÉNDICE A. GRÁFICAS

Figura A.10: Gráfica 1 de parámetros de una persona cuando se cae.

Page 71: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

55

Figura A.11: Gráfica 2 de parámetros de una persona cuando se cae.

Page 72: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

56 APÉNDICE A. GRÁFICAS

Figura A.12: Gráfica 1 de parámetros de una persona realiza una caminata tranquila.

Page 73: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

57

Figura A.13: Gráfica 2 de parámetros de una persona realiza una caminata tranquila.

Page 74: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

58 APÉNDICE A. GRÁFICAS

Figura A.14: Gráfica 3 de parámetros de una persona realiza una caminata tranquila.

Page 75: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

59

Figura A.15: Gráfica 1 de parámetros de una persona sentándose en una silla.

Page 76: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

60 APÉNDICE A. GRÁFICAS

Figura A.16: Gráfica 2 de parámetros de una persona sentándose (dejándose caer) en un sofá.

Page 77: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

61

Figura A.17: Gráfica 3 de parámetros de una persona sentandose en la cama.

Page 78: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

62 APÉNDICE A. GRÁFICAS

Figura A.18: Gráfica 4 de parámetros de una persona sentandose en un una silla.

Page 79: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

63

Figura A.19: Gráfica 5 de parámetros de una persona sentandose en un sofá.

Page 80: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

64 APÉNDICE A. GRÁFICAS

Figura A.20: Gráfica 6 de parámetros de una persona sentandose en la cama (dejándose caer).

Page 81: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

65

Figura A.21: Gráfica 7 de parámetros de una persona sentandose en el suelo.

Page 82: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

66 APÉNDICE A. GRÁFICAS

Figura A.22: Gráfica 1 de parámetros de una persona subiendo escaleras.

Page 83: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

67

Figura A.23: Gráfica 2 de parámetros de una persona subiendo escaleras.

Page 84: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

68 APÉNDICE A. GRÁFICAS

Figura A.24: Gráfica 3 de parámetros de una persona subiendo escaleras.

Page 85: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

69

Figura A.25: Gráfica 4 de parámetros de una persona subiendo escaleras.

Page 86: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

70 APÉNDICE A. GRÁFICAS

KDSK kinetis expert

El Kinetis Software Development Kit (KDSK) es un software de apoyo para la configuración

inicial de los pines, periféricos, USB, y software intermedio como son el MQX y FreeRTOS.

La forma de trabajarlo es básicamente seleccionar los pines, indicar que tipo de periférico se va

a emplear, actualizar el código y copiar los archivos pin_mux.c y pin_mux.h al IDE con el que

se va a programar el resto del código.

Figura A.26: KDSK kinetis expert.

El KSDK PE 2.0 esta dividido en 4 secciones (Figura A.26), la sección a la izquierda sirve

para buscar los pines y seleccionarlos. La sección derecha es donde se va actualizando el có-

digo, ahí están los archivos pin_mux.c y pin_mux.h. La sección inferior están los pines y los

periféricos ya seleccionados y listos para configurar. En la sección superior se puede ver un

microcontrolador en el que en el interior de el, estántodos los periféricos que trae y pueden ser

usados.

El KDSK fue diseñado para auxiliar en el código de inicialización de casi toda la serie de mi-

crocontroladores kinetis de la compañía NXP. El MKL25Z128xxx4 es el microprocesador que

usaremos, por lo que se debe indicar en el KDSK. Para establecer el micro, se debe seleccionar

en el menu File, New y escribir KL25Z y seleccionando MKL25Z128xxx4.

Figura A.27: Selección del microprocesador.

Page 87: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

71

La sección derecha, nos indica los registros y el código generado, es importante observar

que el microcontrolador seleccionado, se encuentre plasmado en el texto del código.

Figura A.28: Sección lateral izquierda.

En sección central podemos seleccionar directamente el periférico a utilizar sin necesaria-

mente conocer el pin que le corresponde, al darle doble click al periférico, nos mostrara una

ventana emergente para palomear el dispositivo. El I2C0 se encuentra en el cuarto renglón de la

primera fila, y cuando lo seleccionamos, nos indica que debemos seleccionar el SCL y el SDA

del comunicación, palomeamos las dos opciones y le damos aceptar.

Figura A.29: Sección central superior.

En la sección central inferior es para la configuración a mayor detalle, podemos ver que

cuando seleccionamos el I2C0 nos dice que esta en los pines 24 y pines 25 del microcontrolador.

En esta sección podemos darle un nombre a cada pin del periférico con el que dentro del código

podemos hacer su llamado y podemos indicar si es un dispositivo de entrada o salida.

Figura A.30: Sección central inferior.

El código final, se obtiene después de haber seleccionado cada uno de los pines y perifé-

ricos a utilizar, se selecciona en el menu, seleccionar Pins, y luego Generate Now, y entonces

Page 88: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

72 APÉNDICE A. GRÁFICAS

actualizara el texto de acuerdo a cada campo anteriormente configurado.

Figura A.31: Sección central superior.

La configuración necesitamos para este programa es la siguiente.

Puerto A. Puerto B.Pin. Descripción. Pin. Descripción.14 GPIO 8 GPIO15 GPIO 9 GPIO27 GPIO 10 Rx uart0.28 Tx uart0. 18 Led Rojo de la tarjeta.40 EXtal0. 19 Led Verde de la tarjeta.41 Xtal0.

Tabla A.1: Tabla de pines de los puertos A y B seleccionados.

Puerto D. Puerto E.Pin. Descripción. Pin. Descripción.1 Led azul. 2 GPIO

3 GPIO4 GPIO5 GPIO15 Uart2 Tx.16 Uart2 Rx.25 I2C0 SDA.24 I2C0 SCL.

Tabla A.2: Tabla de pines de los puertos D y E seleccionados.

Una vez generado el código, es importante ver que los pines seleccionados aparezcan en al

estructura del pin_mux. La Lista de variables de pines del microcontrolador definidas a conti-

nuación son las empleadas.

Page 89: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

73

1 # d e f i n e PCR_PE_DISABLED 0 x00u

# d e f i n e PIN1_IDX 1u

3 # d e f i n e PIN2_IDX 2u

# d e f i n e SOPT5_UART0RXSRC_UART_RX 0 x00u

5 # d e f i n e SOPT5_UART0TXSRC_UART_TX 0 x00u

# d e f i n e PCR_PE_DISABLED 0 x00u

7 # d e f i n e PIN1_IDX 1u

# d e f i n e PIN18_IDX 18u

9 # d e f i n e PIN19_IDX 19u

# d e f i n e PCR_PE_DISABLED 0 x00u

11 # d e f i n e PIN14_IDX 14u

# d e f i n e PIN15_IDX 15u

13 # d e f i n e PIN24_IDX 24u

# d e f i n e PIN25_IDX 25u

15

# d e f i n e PIN22_IDX 22u

17 # d e f i n e PIN23_IDX 23u

19 # d e f i n e PIN2_IDX 2u

# d e f i n e PIN3_IDX 3u

21 # d e f i n e PIN4_IDX 4u

# d e f i n e PIN5_IDX 5u

23 # d e f i n e PIN8_IDX 8u

# d e f i n e PIN9_IDX 9u

25 # d e f i n e PIN10_IDX 10u

Page 90: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

74 APÉNDICE A. GRÁFICAS

Page 91: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Apéndice B

Kinetis design studio

El KDSK solo se utiliza para la configuración inicial, una vez que ya se obtiene el código,

puede cerrarse y solo trabajar con el IDE KDS.

Las librerías que se utilizaron fueron las mostradas en la lista siguiente. En la lista se men-

cionan cuales son las propias del fabricante, de NXP, las cuales se comenta como KDSK y

cuales son las desarrolladas en el trabajo de tesis. Estas no vienen comentadas.

Lista de variables definidas

1 # i n c l u d e " boa rd . h " / / KDSK

# i n c l u d e " f s l _ d e b u g _ c o n s o l e . h " / / KDSK

3 # i n c l u d e " f s l _ i 2 c . h " / / KDSK

5 # i n c l u d e " pin_mux . h " / / KDSK

# i n c l u d e " f s l _ g p i o . h " / / KDSK

7 # i n c l u d e " f s l _ p o r t . h " / / KDSK

# i n c l u d e " I2C . I n i t . h "

9 # i n c l u d e "LCD. 1 6 x2 . h "

# i n c l u d e " . / De lays / Delay . h "

11 # i n c l u d e " . / Acce l . 8451Q/ Acce l . I n i t . h "

# i n c l u d e " Ma tema t i ca s . h "

13 # i n c l u d e " D e c l a r a c i o n . V a r i a b l e s . h "

Lista de variables definidas para el código son las siguientes.

75

Page 92: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

76 APÉNDICE B. KINETIS DESIGN STUDIO

1 /∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

∗ D e c l a r a c i o n de l a s v a r i a b l e s a u s a r

3 ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

∗ /

5 # i f n d e f SOURCES_DECLARACION_VARIABLES_H_

# d e f i n e SOURCES_DECLARACION_VARIABLES_H_

7

/∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

9 ∗ D e c l a r a c i o n e s

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

11 /∗ Mapeo d e l LCD ∗ /

# d e f i n e LOGIC_LED_ON 0U

13 # d e f i n e LOGIC_LED_OFF 1U

# d e f i n e LCD_DATO_GPIO GPIOD

15 # d e f i n e LCD_DATO_GPIO_PORT PORTD

# d e f i n e LCD_DATO_GPIO_PIN_1 0U

17 # d e f i n e LCD_DATO_GPIO_PIN_2 1U

# d e f i n e LCD_DATO_GPIO_PIN_3 2U

19 # d e f i n e LCD_DATO_GPIO_PIN_4 3U

# d e f i n e LCD_DATO_GPIO_PIN_5 4U

21 # d e f i n e LCD_DATO_GPIO_PIN_6 5U

# d e f i n e LCD_DATO_GPIO_PIN_7 6U

23 # d e f i n e LCD_DATO_GPIO_PIN_8 7U

25 # d e f i n e LCD_CTRL_ GPIOA

# d e f i n e LCD_CTRL_PORT PORTA

27 # d e f i n e LCD_RS_GPIO_PIN 2U

# d e f i n e LCD_RW_GPIO_PIN 4U

29 # d e f i n e LCD_EN_GPIO_PIN 5U

31 / / # d e f i n e BOARD_LED_BLUE_GPIO GPIOD

/ / # d e f i n e BOARD_LED_BLUE_GPIO_PORT PORTD

33 / / # d e f i n e BOARD_LED_BLUE_GPIO_PIN 1U

35

/∗ ∗∗ Del r e l o g d e l I2C ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

Page 93: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

77

37 # d e f i n e ACCEL_I2C_CLK_SRC I2C0_CLK_SRC

# d e f i n e I2C_BAUDRATE 100000U

39

/∗ ∗∗ De l o s p i n e s y p u e r t o s d e l I2C ∗∗∗∗∗∗∗∗∗ ∗ /

41 # d e f i n e I2C_RELEASE_SDA_PORT PORTE

# d e f i n e I2C_RELEASE_SCL_PORT PORTE

43 # d e f i n e I2C_RELEASE_SDA_GPIO GPIOE

# d e f i n e I2C_RELEASE_SDA_PIN 25U

45 # d e f i n e I2C_RELEASE_SCL_GPIO GPIOE

# d e f i n e I2C_RELEASE_SCL_PIN 24U

47

/∗ ∗∗ De l a v e l o c i d a d de t r a n s m i c i o n ( s t a n d a r ) I2C ∗∗∗∗∗∗ ∗ /

49 # d e f i n e I2C_RELEASE_BUS_COUNT 100U

# d e f i n e I2C_BAUDRATE 100000U

La siguiente tabla de registros son las direcciones del microcontrolador para el uso del I2C

con del acelerómetro.

Dirección. Registro4006 6000 I2C De dirección 1 (I2C0_A1).4006 6001 I2C Divisor de frecuencia (I2C0_F).4006 6002 I2C De control 1 (I2C0_C1).4006 6003 I2C Estatus (I2C0_S).4006 6004 I2C De Datos de entradas y salidas (I2C0_D).4006 6005 I2C De control 2 (I2C0_C2).

Tabla B.1: Tabla de direcciones I2C0 del acelerómetro MMA8451Q

Dirección. Registro4006 7000 I2C De dirección 1 (I2C1_A1).4006 7001 I2C Divisor de frecuencia (I2C1_F).4006 7002 I2C De control 1 (I2C1_C1).4006 7003 I2C Estatus (I2C1_S).4006 7004 I2C De Datos de entradas y salidas (I2C1_D).4006 7005 I2C De control 2 (I2C1_C2).

Tabla B.2: Tabla de direccionesI2C1 del acelerómetro MMA8451Q

Page 94: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

78 APÉNDICE B. KINETIS DESIGN STUDIO

Bit. Campo. Descripción de la bandera.7 TFC De transferencia completa.6 IAAS De dirección como esclavo.5 BUSY De bus ocupado.4 ARBL De perdida arbitrada.3 RAM De rango de dirección.2 SRW De lectura/escritura del dispositivo esclavo.1 IICIF De interrupción I2C.0 RXAK Reconocimiento de recepción.

Tabla B.3: Tabla de las banderas del acelerómetro MMA8451Q

Los registros del acelerómetro, de acuerdo a la Tabla B.3 se realizan las siguientes declara-

ciones de las variables.

/∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

2 ∗ MMA8451Q R e g i s t r o s

∗∗∗ De l o s r e g i s t r o s d e l a c e l ( pag 14) ∗∗∗∗∗∗∗∗ ∗ /

4

# d e f i n e MMA845x_I2C_ADDRESS 0x1D

6

# d e f i n e MMA8451_WHOAMI 0x1AU

8 # d e f i n e ACCEL_XYZ_DATA_CFG 0x0EU

# d e f i n e ACCEL_CTRL_REG1 0x2AU

10 # d e f i n e ACCEL_READ_TIMES 10U

# d e f i n e ACCEL_WHOAMI_REG 0x0DU

12

# d e f i n e ACCEL_STATUS 0x00U

14 # d e f i n e X_MSB_REG 0x01

# d e f i n e X_LSB_REG 0x02

16 # d e f i n e Y_MSB_REG 0x03

# d e f i n e Y_LSB_REG 0x04

18 # d e f i n e Z_MSB_REG 0x05

# d e f i n e Z_LSB_REG 0x06

20 # d e f i n e F_CONF_REG 0x09

Page 95: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

79

# d e f i n e TRIG_CFG_REG 0x0A

22

# d e f i n e SYSMOD_REG 0x0B

24 # d e f i n e INT_REG 0x0C

# d e f i n e WHO_AM_I_REG 0x0D

26 # d e f i n e XYZ_DATA_CFG_REG 0x0E

# d e f i n e HP_FILTER_REG 0x0F

28 /∗ ∗∗ P o s i c i o n P o r t r a i t / Landscape ( PL ) ∗∗∗∗∗∗ ∗ /

# d e f i n e PL_STATUS_REG 0x10

30 # d e f i n e PL_CFG_REG 0x11

# d e f i n e PL_COUNT_REG 0x12

32 # d e f i n e PL_BF_ZCOMP_REG 0x13

Z

34 # d e f i n e P_L_THS_REG 0x14

Landscape

36 /∗ ∗∗ Caida ( FF ) Movimiento (MT) ∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

# d e f i n e FF_MT_CFG_REG 0x15

38 # d e f i n e FF_MT_SRC_REG 0x16

# d e f i n e FT_MT_THS_REG 0x17

40 # d e f i n e FF_MT_COUNT_REG 0x18

/∗ ∗∗ T r a n s i t o r i o (TRAN) ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

42 # d e f i n e TRAN_CFG_REG 0x1D

# d e f i n e TRAN_SRC_REG 0x1E

44 # d e f i n e TRAN_THS_REG 0x1F

# d e f i n e TRAN_COUNT_REG 0x20

46 /∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ P u l s o ( P ) ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

# d e f i n e P_CFG_REG 0x21

48 # d e f i n e P_SRC_REG 0x22

# d e f i n e P_THSX_REG 0x23

50 # d e f i n e P_THSY_REG 0x24

# d e f i n e P_THSZ_REG 0x25

52 # d e f i n e P_TMLT_REG 0x26

# d e f i n e P_LTCY_REG 0x27

54 # d e f i n e P_WIND_REG 0x28

/∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ AutoSleep (AS) ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

56 # d e f i n e ASLP_COUNT_REG 0x29

a c t i v a r e l Auto S l e e p

Page 96: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

80 APÉNDICE B. KINETIS DESIGN STUDIO

58 /∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ C o n t r o l (CTRL) ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

# d e f i n e CTRL_REG1 0x2A

60 # d e f i n e CTRL_REG2 0x2B

# d e f i n e CTRL_REG3 0x2C

62 # d e f i n e CTRL_REG4 0x2D

# d e f i n e CTRL_REG5 0x2E

64 /∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ XYZ C o r r e c c i o n ( O f f s e t ) ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

# d e f i n e OFFSET_X_REG 0x2F

66 # d e f i n e OFFSET_Y_REG 0x30

# d e f i n e OFFSET_Z_REG 0x31

68 / ∗∗∗∗∗∗∗∗∗∗∗∗ A j u s t e de l a S e n s i t i v i t y a +/− 2g , 4g o 8g ∗∗∗∗ /

# d e f i n e SENSIBILIDAD_2G 4096

70 # d e f i n e SENSIBILIDAD_4G 2048

# d e f i n e SENSIBILIDAD_8G 1024

Una vez declaradas cada una de las definiciones, es importante realizar la inicialización del

I2C0[33], El I2C para que pueda aceptar las configuraciones, debe primero detenerse, enviar

los códigos de configuración y después volver a activar su comunicación.

1 vo id I 2 C 1 _ i n i t ( vo id ) {

I2C0−>C1 = 0 ;

3 I2C0−>S = 2 ;

I2C0−>F = 0x1C ;

5 I2C0−>C1 = 0x80 ;

I2C1

7 }

El código principal queda de la siguiente manera.

1

i n t main ( v o i d )

3 {

/∗ ∗∗∗∗∗∗∗∗ C o n f i g u r a c i o n e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

Page 97: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

81

5 Init_DbgUART0 ( ) ;

In i t_LEDs ( ) ;

7 In i t_P ins_LCD ( ) ;

/∗ ∗∗∗ V e l o c i d a d d e l r e l o j 48 Mhz ∗∗∗∗∗∗∗ ∗ /

9 BOARD_BootClockRUN ( ) ;

/∗ ∗∗∗∗∗∗∗∗ I n i c i a l i z a c i o n ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

11 I n i t _ I 2 C _ B u s ( ) ; / /

Conf ig_I2C ( ) ;

13 Conf ig_Ace l ( ) ; / /

Init_I2C_MCU ( ) ; / /

15 I 2 C 0 _ i n i t ( ) ;

BOARD_InitDebugConsole ( ) ;

17 DataReady = 0 ;

I 2 C _ M a s t e r T r a n s f e r C r e a t e H a n d l e (BOARD_ACCEL_I2C_BASEADDR, &g_m_handle ,

i 2 c _ m a s t e r _ c a l l b a c k , NULL) ;

19 Conf ig_Acel_Reg ( ) ;

/∗ ∗∗∗∗∗∗∗∗∗∗ Leer d a t o s XYZ ∗∗∗∗∗∗∗∗∗∗∗∗ ∗ /

21 w h i l e ( 1 )

{

23 Leer_Ace l ( ) ;

Delay ( I2C_RELEASE_BUS_COUNT ) ;

25 PRINTF ( " I " ) ;

Delay ( I2C_RELEASE_BUS_COUNT ) ;

27

}

29 }

El UART0 se emplea para recibir los datos por el puerto USB del dispositivo a la compu-

tadora, mientras que los LEDS son para activarlos cuando se detecte la caída e inicie el sistema

(caso de uso 1 y 4, sección 2.7). Se inicializa el microcontrolador y los periféricos. Cuando se

hayan configurado e inicializado cada elemento que se va a emplear, se entra en un ciclo infinito

que va a estar revisando constantemente el acelerómetro.

Los datos obtenidos de los ejes sen envían por el puerto USB con el comando PRINTF.

También se envía una “I”, que sirve como referencia para indicar que ha terminado los tres

Page 98: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

82 APÉNDICE B. KINETIS DESIGN STUDIO

valores de los ejes y que va a volver a mandar otros datos. Esté es importante para cuando se

utilice el código de python (sección C).

1 vo id Leer_Ace l ( vo id )

{

3 s t a t u s 0 _ v a l u e = 0 ;

w h i l e ( s t a t u s 0 _ v a l u e != 0 x f f )

5 {

I2C_ReadAccelRegs (BOARD_ACCEL_I2C_BASEADDR,

MMA845x_I2C_ADDRESS , ACCEL_STATUS, &s t a t u s 0 _ v a l u e , 1 ) ;

7 }

I2C_ReadAccelRegs (BOARD_ACCEL_I2C_BASEADDR,

MMA845x_I2C_ADDRESS , ACCEL_STATUS, Axies , 7 ) ;

9 s t a t u s 0 _ v a l u e = Axies [ 0 ] ;

/∗ A j u s t e de l o s v a l o r e s ∗ /

11 x1 = Axies [ 1 ] ;

x2 = Axies [ 2 ] ;

13 y1 = Axies [ 3 ] ;

y2 = Axies [ 4 ] ;

15 z1 = Axies [ 5 ] ;

z2 = Axies [ 6 ] ;

17 /∗ cambio b i t s en l o s v a l o r e s ∗ /

x= x1 << 8 ;

19 x= x | x2 ;

y= y1 << 8 ;

21 y= y | y2 ;

z= z1 << 8 ;

23 z= z | z2 ;

25 F a c t o r _ s ( x , y , z ) ;

PRINTF ( " %5d,%5d,%5d " , x , y , z ) ;

27 }

El código anterior es para capturar lo datos del acelerómetro, los cuales quedan almacenados

en la variable Axies, pero estos quedan divididos en de 8 bits. El bit más significativo esta en

Page 99: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

83

los renglones nones del vector. Los renglones pares del vector se encuentran los bits menos

significativo. Se realiza un acople primero haciendo un corrimiento a la izquierda de 8 bits y

luego sumándolo a la variable con los bits menos significativos.

El siguiente código es donde hace la determinación de si la persona que porta el dispositivo

esta en actividades cotidianas o si se ha caído.

i n t F a c t o r _ s ( i n t x1 , i n t y1 , i n t z1 )

2 { d ou b l e R ;

f l o a t Dato ;

4

f l o a t r e s ;

6 f l o a t i =0 ;

8 n1 = x1 ^ 2 ;

n2 = y1 ^ 2 ;

10 n3 = z1 ^ 2 ;

Dato = n1 + n2 + n3 ;

12

do

14 {

i = i + 0 . 1 ;

16 r e s = i ∗ i ;

} w h i l e ( Dato >= r e s ) ;

18

i f ( r e s >25) {

20 LED_RED_TOGGLE ( ) ;

}

22 r e t u r n r e s ;

}

Page 100: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

84 APÉNDICE B. KINETIS DESIGN STUDIO

Page 101: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Apéndice C

Python

La tarjeta envía los datos por el puerto USB a la computadora. Se emplea una terminal para

visualizar los datos como el minicom. Se debe configurar con una velocidad de comunicación de

115200 bps 8N1. Con esto podemos visualizar los datos, sin embargo, es necesario almacenarlos

para analizarlos.

Se programó en python para que realicé esta función. Cuando almacenamos los datos, es

necesario saber las fechas, es por eso que se usa, la librería time.

i m p o r t s e r i a l

2 i m p o r t t ime

i m p o r t s y s

Otra parte importante es hacer agregar un código iterativo que busque y se conecte con la

tarjeta buscando los posibles puntos de conexión, desde el ttyUSB1 hasta el ttyACM3.

1 c o n n e c t e d = F a l s e

l o c a t i o n s =[ ’ / dev / ttyUSB0 ’ , ’ / dev / ttyUSB1 ’ , ’ / dev / ttyUSB2 ’ , ’ / dev / ttyUSB3 ’ , ’ /

dev / ttyACM0 ’ , ’ / dev / ttyACM1 ’ ]

3 f o r d e v i c e i n l o c a t i o n s :

t r y :

5 p r i n t ( " T ry ing t o c o n e c t . . . " ) , l o c a t i o n s

s e r = s e r i a l . S e r i a l ( dev i ce , 57600) #300 , 1200 , 2400 , 4800 , 9600 , 19200 ,

38400 , 57600 115200

7 b r e a k

e x c e p t :

85

Page 102: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

86 APÉNDICE C. PYTHON

9 p r i n t ( " F a i l e d t o c o n n e c t on " ) , d e v i c e

11 w h i l e n o t c o n n e c t e d :

s e r i n = s e r . r e a d ( )

13 c o n n e c t e d = True

Una vez que hemos hecho la conexión con la tarjeta, se especifica que se va a almacenar los

datos en un archivo con extensión cvs, y se le da el nombre, junto con la hora de la captura de

los datos.

1 Cap t_ho ra = t ime . s t r f t i m e ( " .%H.%M" )

Arch ivo = " / home / g a ra bo / Documentos / CIATEQ−M a e s t r i a / Datos . S e n s o r e s / Datos " +

Cap t_ho ra + " . csv "

3 t e x t _ f i l e = open ( Archivo , " wt " ) # a b r e e l a r c h i v o como t e x t o wt , a r c h i v o

como b i t wb

n = 0

5 d a t e = t ime . s t r f t i m e ( " %d , %−m , %Y , " )

ho ra = t ime . s t r f t i m e ( " %H , " )

7 minu tos = t ime . s t r f t i m e ( " %M , " )

p r i n t ( " Esperando e l momento p e r f e c t o " )

9 minu tos = t ime . s t r f t i m e ( " %M , " )

seg = t i me . s t r f t i m e ( " %S , " )

11 s e c = t im e . s t r f t i m e ( " %s , " )

d a t o = d a t e + hora + minu tos + seg + " \ n "

13 t e x t _ f i l e . w r i t e ( d a t o )

d a t o = " x "+" , "+" y "+" , "+" z \ n "

15 t e x t _ f i l e . w r i t e ( d a t o )

Dentro de la estructura del envío de los datos del sistema embebido, se envía una “I” como

instrucción de inicio de captura de los nuevos datos, y se recibirán primero los datos del valor

X, después los datos del valor Y y por ultimo los datos del valor Z.

1 w h i l e 1 :

i f s e r . i n W a i t i n g ( ) :

Page 103: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

87

3 x = s e r . r e a d ( )

y = x . i s d i g i t ( )

5 i f y == F a l s e :

i f x == " I " :

7 d a t o = " \ n " ;

n = n + 1

9 # e l i f x == "=" :

# d a t o = " , "

11 # e l i f x == " , " :

# d a t o = " " + x + " "

13 e l s e :

p r i n t ( x )

15 d a t o = x

e l s e :

17 d a t o = x

p r i n t ( x )

19 t e x t _ f i l e . w r i t e ( d a t o )

p r i n t ( " g rabando d a t o " , n )

21 i f n == 5000 :

b r e a k

23 t e x t _ f i l e . f l u s h ( )

Y finalmente cerramos la comunicación con la USB.

t e x t _ f i l e . c l o s e ( )

2 s e r . c l o s e ( )

Page 104: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

88 APÉNDICE C. PYTHON

Page 105: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Apéndice D

Octave/Matlab

Los archivos enviados son datos burdos, por lo que debemos realizar el análisis de ellos

empleando un software especializado. Nosotros empleamos el Octave, por ser GNU y venir en

forma nativa en Linux, sin embargo, el código funciona de igual manera con Matlab. En caso

de usar el código en Windows, se debe cambiar la dirección por la correspondiente.

Lo primero que debemos hace es leer los datos a analizar. Guardamos la dirección en va-

riables. Lo hacemos de esta manera porque cuando se trabaja los datos en forma manual, es

mas fácil jalar la dirección de una variable. Así, aunque tengamos el script, para los análisis

en detalle, podemos meter los comandos desde la terminal. A continuación se ponen algunos

de las varables empleadas en el script. Cabe destacar las variables se almacenan en memoria,

entre mas grande sea el archivo o mas variables se empleen, mas recursos de la computadora

requerirá y se hará lenta, se debe tener cuidado con esto.

a r c h i v o _ s e n t a d o = ’ ~ / Datos . S e n s o r e s / Datos . 0 9 . 2 2 . s e n t a d o . csv ’ ;

2 a r c h i v o _ c a e _ s e n t a d o = ’ ~ / Datos . S e n s o r e s / Datos . 0 9 . 3 5 . c a e r s e . c o s t a d o . e s t a n d o .

s e n t a d o . csv ’ ;

a r c h i v o _ c a m i n a = ’ ~ / Datos . S e n s o r e s / Datos . 0 9 . 3 3 . Caminado . c o r t o . c sv ’ ;

4 a r c h i v o _ s e n t a r s e = ’ ~ / Datos . S e n s o r e s / Datos . 0 9 . 3 4 . s e n t a r s e . c sv ’ ;

a r c h i v o _ c a m i n a _ y _ c a e = ’ ~ / Datos . S e n s o r e s / Datos . 1 7 . 0 6 _camina_y_cae . csv ’ ;

6 a r c h i v o _ c a m i n a _ y _ c a e 2 = ’ ~ / Datos . S e n s o r e s / Datos . 1 7 . 1 0 _camina_y_cae_2 . csv ’ ;

. . . . ( agregamos t o d a s l a s d i r e c c i o n e s de l o s a r c h i v o s g e n e r a d o s y l o s

almacenamos en v a r i a b l e s )

89

Page 106: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

90 APÉNDICE D. OCTAVE/MATLAB

Después de tener las direcciones en variables, realizamos la lectura de los datos capturados

con el script de python (sección C) y almacenamos estos datos en otra variable.

1 Acos tado = c s v r e a d ( Arch ivo_Acos tado ) ;

Agacharse = c s v r e a d ( Arch ivo_Agacha r se ) ;

3 B a j a r _ E s c a l e r a s = c s v r e a d ( A r c h i v o _ B a j a n d o _ E s c a l e r a s ) ;

C ae r s e = c s v r e a d ( A r c h i v o _ C a e r s e ) ;

5 Caminar= c s v r e a d ( Archivo_Caminar ) ;

S a l t a r = c s v r e a d ( A r c h i v o _ S a l t a r ) ;

7 S e n t a r s e = c s v r e a d ( A r c h i v o _ S e n t a r s e ) ;

S u b i r _ E s c a l e r a s = c s v r e a d ( A r c h i v o _ S u b i r _ E s c a l e r a s ) ;

Como el archivo es un archivo csv, la variable creada es una matriz, en ese caso de 3 (ejes

x, y, y z) x 5000 (que son el total de datos capturados)

Una vez anexados los archivos que se van a analizar, empezamos a trabajar uno por uno con

un ciclo for, donde lenght lee el total de los filas generando un ciclo del tamaño de la matriz.

Leemos cada fila y columna, obtenemos el valor absoluto y lo almacenamos en otra columna

de la misma variable.

f o r x =1: l e n g t h ( Acos tado ( : , 1 ) )

2 % A( x ) = abs ( s q r t (V( x ) ) ;

Acos tado ( x , 4 ) = abs ( Acos tado ( x , 1 ) ) ;

4 end

f o r x =1: l e n g t h ( Acos tado ( : , 1 ) )

6 % A( x ) = abs ( s q r t (V( x ) ) ;

Acos tado ( x , 5 ) = abs ( Acos tado ( x , 2 ) ) ;

8 end

f o r x =1: l e n g t h ( Acos tado ( : , 1 ) )

10 % A( x ) = abs ( s q r t (V( x ) ) ;

Acos tado_1 ( x , 6 ) = abs ( Acos tado ( x , 3 ) ) ;

12 end

Tomamos cada elemento del vector los sumamos y sacamos su raíz cuadrada para obtener

el factor s (ver ecuación 3.33.)

Page 107: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

91

1 %%Obtene r e l c u a d r a d o de cada e l e m e n t o d e l v e c t o r y sumar lo y o b t e n e r

%%l a r a i z c u a d r a d a

3 Acos tado ( : , 7 ) = Acos tado ( : , 4 ) + Acos tado ( : , 5 ) + Acos tado ( : , 6 ) ;

f o r x =1: l e n g t h ( Acos tado ( : , 7 ) )

5 % A( x ) = s q r t (V( x ) ) ;

Acos tado ( x , 7 ) =( Acos tado ( x , 7 ) ^ 0 . 5 ) ;

7 end

Y finalmente, graficamos cada uno de los datos.

s u b p l o t ( 4 , 2 , 1 )

2 p l o t ( Acos tado ( : , 1 ) ) ;

t i t l e ( ’ x ’ ) ;

4 s u b p l o t ( 4 , 2 , 3 )

p l o t ( Acos tado ( : , 2 ) )

6 t i t l e ( ’ y ’ )

s u b p l o t ( 4 , 2 , 5 )

8 p l o t ( Acos tado ( : , 3 ) )

t i t l e ( ’ z ’ )

10 s u b p l o t ( 4 , 2 , 2 )

p l o t ( Acos tado ( : , 4 ) ) ;

12 t i t l e ( ’ Abs X’ ) ;

s u b p l o t ( 4 , 2 , 4 )

14 p l o t ( Acos tado ( : , 5 ) )

t i t l e ( ’ Abs Y’ )

16 s u b p l o t ( 4 , 2 , 6 )

p l o t ( Acos tado ( : , 6 ) )

18 t i t l e ( ’ Abs Z ’ )

s u b p l o t ( 4 , 1 , 4 )

20 p l o t ( Acos tado ( : , 7 ) )

t i t l e ( ’ F a c t o r S ’ )

22 s a v e a s ( gcf , ’ Acos tado . j p g ’ )

max ( Acos tado ( : , 7 ) )

24 min ( Acos tado ( : , 7 ) )

mean ( Acos tado ( : , 7 ) )

Page 108: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

92 APÉNDICE D. OCTAVE/MATLAB

De esta manera obtenemos la gráfica de cada uno de las lecturas de los ejes (lado izquierdo),

el valor absoluto de cada eje (lado derecho) y en la parte inferior el factor s. Las gráficas de los

datos capturados se localizan en el apéndice A.

Con los datos máximos (max), mínimos (min) y promedio (mean) se realiza una gráfica de

barras con la que podemos ver el rango de su zona de trabajo para cada actividad

Figura D.1: Máximos, mínimos y promedio de los datos.

El grueso de estos datos se pinto de color gris, y el promedio se puso un punto negro. La

barra de color azul corresponde a la actividad de saltar, teniendo un rango en los datos muy

amplia. La siguiente barra corresponde a la caída, la naranja es a bajar la escaleras, la amplitud

de esta barra es porque en algunas muestras el usuario bajo las escaleras con mucha energía.

La barra rosa es por subir las escaleras, la azul clarito corresponden a sentarse y la morada a

acostarse, estas dos tienen los máximos y mínimos muy parecidos porque de la misma manera,

el usuario cuando se acostó en algunas muestras, se dejo tumbar. La barra de color purpura

corresponde a agacharse y la de color verde claro a caminar.

Page 109: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

Bibliografía

[1] OMS. WHO Global Report on Falls Prevention in Older Age. World Health Organization,

France, 2007, ISBN 978-92-4-156353-6.

[2] Nyan, M.; Tay, F. E.; Tan, A.; et al. Distinguishing fall activities from normal activities by

angular rate characteristics and high-speed camera characterization. Medical engineering

& physics, volume 28, no. 8, 2006: pp. 842–849.

[3] Blasco Marín, R.; Casas, R.; Álvaro Marco; et al. Fall Detector Based on Neural Networks.

In Proceedings of the First International Conference on Biomedical Electronics and De-

vices, BIOSIGNALS 2008, Funchal, Madeira, Portugal, January 28-31, 2008, Volume 2,

edited by P. Encarnação; A. Veloso, INSTICC - Institute for Systems and Technologies of

Information, Control and Communication, 2008, pp. 540–545.

[4] Charif, H. N.; McKenna, S. J. Activity summarisation and fall detection in a supportive

home environment. In Proceedings of the 17th International Conference on Pattern Re-

cognition, 2004. ICPR 2004., volume 4, Aug 2004, ISSN 1051-4651, pp. 323–326 Vol.4,

doi:10.1109/ICPR.2004.1333768.

[5] Alwan, M.; Rajendran, P. J.; Kell, S.; et al. A Smart and Passive Floor-Vibration Based Fall

Detector for Elderly. In 2006 2nd International Conference on Information Communica-

tion Technologies, volume 1, 2006, pp. 1003–1007, doi:10.1109/ICTTA.2006.1684511.

[6] Tolkiehn, M.; Atallah, L.; Lo, B.; et al. Direction sensitive fall detection using a triaxial

accelerometer and a barometric pressure sensor. In 2011 Annual International Conference

of the IEEE Engineering in Medicine and Biology Society, Aug 2011, ISSN 1094-687X,

pp. 369–372, doi:10.1109/IEMBS.2011.6090120.

93

Page 110: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

94 BIBLIOGRAFÍA

[7] Kazi, S. B.; Sikander, S.; Yousafzai, S.; et al. Fall detection using single tri-axial accele-

rometer. In ASEE 2014 Zone I Conference, edited by A. 2014, apr 2014, pp. 5–21.

[8] Wang, C. C.; Chiang, C. Y.; Lin, P. Y.; et al. Development of a Fall Detecting Sys-

tem for the Elderly Residents. In 2008 2nd International Conference on Bioinforma-

tics and Biomedical Engineering, May 2008, ISSN 2151-7614, pp. 1359–1362, doi:

10.1109/ICBBE.2008.669.

[9] Bourke, A.; O’Donovan, K.; ÓLaighin, G. The identification of vertical velocity profiles

using an inertial sensor to investigate pre-impact detection of falls. Medical Engineering

& Physics, volume 30, no. 7, 2008: pp. 937 – 946, ISSN 1350-4533, doi:http://dx.doi.org/

10.1016/j.medengphy.2007.12.003. Available from: http://www.sciencedirect.

com/science/article/pii/S1350453307002081

[10] Chen, J.; Kwong, K.; Chang, D.; et al. Wearable sensors for reliable fall detection. In

Engineering in Medicine and Biology Society, 2005, pp. 3551–3554.

[11] Bourke, A.; Lyons, G. A threshold-based fall-detection algorithm using a bi-

axial gyroscope sensor. Medical Engineering & Physics, volume 30, no. 1, 2008:

pp. 84 – 90, ISSN 1350-4533, doi:http://dx.doi.org/10.1016/j.medengphy.2006.12.

001. Available from: http://www.sciencedirect.com/science/article/

pii/S1350453306002657

[12] Ruelas González, M. G.; Salgado de Snyder, V. N. Lesiones accidentales en adultos ma-

yores: un reto para los sistemas de salud. Salud Pública de México, volume 50, 12 2008:

pp. 463 – 471, ISSN 0036-3634.

[13] Weitzenfeld, A. Ingeniería de software orientada a objetos con UML, java e internet.

Thomson, 2005, ISBN 970-686-190-4.

[14] Rumbaugh, J.; Jacobson, I.; Booch, G. El lenguaje unificado de modelado manual de

referencia. Pearson educacion S. A., 2000, ISBN 84-7829-037-0.

[15] Bentley, W. Análisis de sistemas: diseño y métodos. Mc Graw Hill, 7th edition, 2008,

ISBN 978-970-10-6614-0.

Page 111: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

BIBLIOGRAFÍA 95

[16] Mancilla s., R. Manual de prevención de caídas en el adulto mayor. 2007.

[17] González, G.; Marín, P. P.; Pereira, G. Características de las caídas en el adulto mayor que

vive en la comunidad. Revista médica de Chile, volume 129, no. 9, 2001: pp. 1021–1030.

[18] Bouche, F. J. Física para estudiantes de ciencias e ingeniería, volume 1. McGraw Hill,

cuarta edition, 1988, ISBN 968-422-297-1.

[19] Mathie, M. J.; Coster, A. C. F.; Lovell, N. H.; et al. Accelerometry: providing an integra-

ted, practical method for long-term, ambulatory monitoring of human movement. Physio-

logical Measurement, volume 25, no. 2, 2004: p. R1, doi:10.1088/0967-3334/25/2/R01.

Available from: http://stacks.iop.org/0967-3334/25/i=2/a=R01

[20] Sun, M.; Hill, J. A method for measuring mechanical work and work efficiency during

human activities. Journal of biomechanics, volume 26, no. 3, 1993: pp. 229–241.

[21] LeMoyne, R.; Mastroianni, T.; Grundfest, W. Wireless accelerometer configuration for

monitoring Parkinson’s disease hand tremor, Advances in Parkinson’s Disease 2 (2): 62-

67. 2013.

[22] Kangas, M.; Vikman, I.; Wiklander, J.; et al. Sensitivity and specificity of fall de-

tection in people aged 40 years and over. Gait & Posture, volume 29, no. 4,

2009: pp. 571 – 574, ISSN 0966-6362, doi:http://dx.doi.org/10.1016/j.gaitpost.2008.12.

008. Available from: http://www.sciencedirect.com/science/article/

pii/S0966636208003950

[23] Bianchi, F.; Redmond, S. J.; Narayanan, M. R.; et al. Barometric Pressure and Triaxial

Accelerometry-Based Falls Event Detection. IEEE Transactions on Neural Systems and

Rehabilitation Engineering, volume 18, no. 6, Dec 2010: pp. 619–627, ISSN 1534-4320,

doi:10.1109/TNSRE.2010.2070807.

[24] Tamura, T.; Yoshimura, T.; Sekine, M.; et al. A wearable airbag to prevent fall injuries.

IEEE Transactions on Information Technology in Biomedicine, volume 13, no. 6, 2009:

pp. 910–914.

Page 112: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

96 BIBLIOGRAFÍA

[25] Narayanan, M. R.; Lord, S. R.; Budge, M. M.; et al. Falls management: detection and

prevention, using a waist-mounted triaxial accelerometer. In Engineering in Medicine and

Biology Society, 2007. EMBS 2007. 29th Annual International Conference of the IEEE,

IEEE, aug 2007, ISSN 1094-687X, pp. 4037 – 4040, doi:10.1109/IEMBS.2007.4353219.

[26] Luo, S.; Hu, Q. A dynamic motion pattern analysis approach to fall detection. In Biome-

dical Circuits and Systems, 2004 IEEE International Workshop on, IEEE, 2004, pp. 1–5.

[27] Ghasemzadeh, H.; Jafari, R.; Prabhakaran, B. A body sensor network with electromyo-

gram and inertial sensors: multimodal interpretation of muscular activities. IEEE transac-

tions on information technology in biomedicine, volume 14, no. 2, 2010: pp. 198–206.

[28] Kangas, M.; Konttila, A.; Lindgren, P.; et al. Comparison of low-complexity fall detec-

tion algorithms for body attached accelerometers. Gait & Posture, volume 28, no. 2,

2008: pp. 285 – 291, ISSN 0966-6362, doi:http://dx.doi.org/10.1016/j.gaitpost.2008.01.

003. Available from: //www.sciencedirect.com/science/article/pii/

S096663620800026X

[29] Vitali, A. 6-point tumble sensor calibration. STMicroelectronics, volume 1,

no. 1, 2015: pp. 1–6. Available from: http://www.st.com/content/

ccc/resource/technical/document/design_tip/group0/28/fa/

7d/ed/6a/41/4f/c1/DM00253745/files/DM00253745.pdf/jcr:

content/translations/en.DM00253745.pdf

[30] Gietzelt, M.; Wolf, K.-H.; Marschollek, M.; et al. Performance comparison of accelerome-

ter calibration algorithms based on 3D-ellipsoid fitting methods. Computer methods and

programs in biomedicine, volume 111, no. 1, 2013: pp. 62–71.

[31] Clifford, M. Detecting Freefall with Low-G Accelerometers. Freescale Semiconductor,

Inc.,, volume 1, no. 1, Nov. 2006: pp. 1 – 8. Available from: www.nxp.com/files/

sensors/doc/app_note/AN3151.pdf

[32] Russell, S.; Norvig, P. Inteligencia artificial. Un enfoque moderno. Prentice Hall, third

edition, 2007, ISBN 968-880-682-x.

Page 113: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos

BIBLIOGRAFÍA 97

[33] Mazidi, M. A.; Chen, S.; Naimi, S.; et al. Freescale ARM Cortex-M Embedded Program-

ming Using C Language, volume 1. MControllers, 2014.

Page 114: TESIS · 2017. 11. 17. · algoritmo de detecciÓn de caÍdas en un sistema embebido. tesis para obtener el grado de: maestro ensistemas inteligentes multimedia presenta: ing. carlos