SISTEMA DE MARCHA HUMANA INALAMBRICO

138  Descargar (0)

Texto completo

(1)

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y

ELÉCTRICA

UNIDAD PROFESIONAL “ADOLFO LÓPEZ MATEOS”

INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

Sistema de Marcha Humana Inalámbrico

TESIS

QUE PARA OBTENER EL TÍTULO DE:

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

PRESENTAN:

Lizette Camargo Olvera

Luis Antonio Villalobos Moreno

Mónica Vuelvas Trinidad

ASESORES:

Ing. Alberto Luviano Juárez

(2)
(3)

Dedicatoria

A mi madre Ignacia Angélica

con mucho cariño, porque ella siempre ha estado conmigo, apoyándome incondicionalmente, desvelándose a mi lado sin importar en el estado en el que se encontrara y por ello agradezco a Dios que me haya mandado a mi Angelito de la Guarda y todo este esfuerzo que estoy haciendo día a día por ser una persona mejor es gracias a ella. Estoy segura de que no se arrepentirá porque ha entregado a la sociedad una mujer con valores y principios, sobre todo a una profesionista comprometida con su labor. ¡¡ Te amo mamá !!

A mi padre Romeo

le doy las gracias por apoyarme económicamente para que tuviera lo mejor en cuestión de materiales para la escuela. Además me ayudó con el armado para el prototipo del Sistema de Marcha Humana Inalámbrico. ¡¡ Gracias !!

A mi hermana Itzel le gratifico todo su apoyo, porque ella me daba consejos para

que no tirara la toalla cuando sentía que yo ya no podía más. Aunque ella sea mi hermana menor, siempre será como la mayor para mí. ¡¡ Te quiero !!

(4)

A mis amados abuelitos y padres Marcelino y Amalia porque para mí

son lo mejor del mundo, gracias por todo su apoyo y esfuerzo. Ustedes son mis grandes personas que me proporcionaron el impulso necesario para alcanzar esta gran meta y sin ustedes esto tampoco habría sido posible. No puedo dejar pasar esta oportunidad sin decirles que les amo y que gracias a ustedes soy lo que soy ahora.

A mi tío Juan por ser un padre para mí, es por eso que este logro lo quiero

compartir contigo. Gracias por estar siempre conmigo.

A mi esposo Erik quien me apoyó con espíritu alentador en momentos más

difíciles de esta etapa, contribuyendo incondicionalmente a lograr mis objetivos.

(5)

Con todo cariño y amor a mi madre Delia Moreno Yépez por el apoyo, amor

y consejos que me ha brindado todos los días. Gracias mamá por acompañarme a lo largo de este camino, por darme tu amoroso calor cuando lo necesitaba, por

inyectarme la fuerza necesaria para continuar cuando en mí cabía alguna duda en

mí, por proporcionarme incondicionalmente tu apoyo en todo momento y darme una

carrera para mi desarrollo profesional.

(6)

Agradecimientos

Agradezco a Mónica Vuelvas Trinidad y a Luis Antonio Villalobos Moreno por ser parte de éste Trabajo, porque en este proyecto han plasmado su empeño y sobre todo se ve reflejado la unión que constantemente nos ha caracterizado; les conozco desde hace cuatro y tres años respectivamente y aunque a veces tuvimos algunos roces nunca nos dejamos de colaborar y siempre mantuvimos un vínculo de confianza, tolerancia y respeto intocado. Queridos amigos, les externo mi más sincero cariño y aprecio, créanme que su amistad para mí es muy importante, se los digo con toda sinceridad, los quiero mucho y les aseguro que me han dejado un grato recuerdo esperando que ésta linda amistad nunca desaparezca a sabiendas de que cada uno de nosotros tomará un camino distinto.

Este trabajo no hubiese sido posible sin el apoyo de nuestro asesor técnico el Dr. Alberto Luviano Juárez, ya que es una parte muy importante porque contribuyó con sus conocimientos para el desarrollo de nuestro proyecto, gracias por el tiempo que nos dedicó y porque hizo lo posible por brindarnos su apoyo, tanto moral como económico. ¡¡ Mil gracias !!

No hay que olvidar a nuestro asesor metodológico, el M. en C. Pedro Gustavo Magaña del

Río, ya que sin él no hubiéramos finalizado este trabajo escrito, siempre estuvo detrás de nosotros motivándonos y sin perder de vista que nos está llevando de la mano para poder finalizar con el proceso de titulación.

Durante estos cuatro años y medio que estuve en ESIME Zacatenco me he dado cuenta que formar parte de mi alma máter: el I.P.N. es una gran responsabilidad y una agradable experiencia, principalmente porque es un orgullo pertenecer a la institución más importante del país de donde han surgido exitosos profesionistas que han hecho que México avance en cuestión de Ciencia y Tecnología. Ahora puedo decir enérgicamente: “LA TÉCNICA AL SERVICIO DE LA PATRIA”.

Muchas gracias a Dios por darme la oportunidad de terminar una carrera bien lograda y ayudarme a cumplir una de las metas más importantes de mi vida.

(7)

Lizette

Agradezco

a mis dos amigos Lizette y Luis Antonio también compañeros

de proyecto, por tenerme paciencia, gracias chicos por hacer que este sueño se haya hecho realidad, los quiero mucho.

Sin olvidarme de mis dos profesores:

Dr. Alberto Luviano Juárez y M. en C.

Pedro Gustavo Magaña del Río que siempre nos estuvieron guiando para

poder llevar a cabo este proyecto tan importante en mi vida y que siempre nos estuvieron dando ánimos.

Quisiera hacer una extensiva gratitud especialmente al

INSTITUTO

POLITÉCNICO NACIONAL por haberme abierto las puertas y permitir que

formara parte de esta gran institución.

(8)

Agradezco

a Mónica y Lizette mis compañeras y amigas con quienes

realicé este proyecto, por aportar su conocimiento y esfuerzo en este trabajo. Gracias a nuestro esfuerzo logramos culminar una etapa muy importante en nuestras vidas.

De igual forma agradezco a los profesores Dr. Alberto Luviano Juárez y el

M. en C. Pedro Gustavo Magaña del Río por el apoyo y palabras de aliento

que nos brindaron a lo largo del desarrollo de este proyecto.

Agradezco

al INSTITUTO POLITÉCNICO NACIONAL por haberme brindado

la oportunidad de estudiar en una de las mejores instituciones educativas del país y tener la posibilidad de decir que soy un orgulloso egresado de esta institución.

De igual forma agradezco

a Dios por haberme ayudado a la culminación de una

carrera profesional y por ayudarme cada día a cumplir mis metas.

(9)

“Sistema de

Marcha Humana

(10)

Índice

O B J E T I V O ... XIII INTRODUCCIÓN ... XV ANTECEDENTES ... XVII

CAPÍTULO 1 “Marcha Humana” ... 2

1.1 Antecedentes de la marcha humana ... 2

1.2 Biomecánica ... 4

1.3 Definición de la Marcha Humana ... 4

1.4 Definición del ciclo de marcha ... 5

1.4.1 Fases del ciclo de marcha ... 5

1.4.1.1 Fase de apoyo... 6

1.4.1.2 Fase de oscilación ... 6

CAPÍTULO 2 “Protocolo ZigBee” ... 12

2.1 Antecedentes de Comunicación Inalámbrica ... 12

2.2 ZigBee ... 12

2.2.1 802.15.4 ... 12

2.3 Definición del Protocolo ZigBee... 13

2.4 Arquitectura del ZigBee ... 14

2.4.1 Nivel de Red (NWK) ... 14

2.4.2 Nivel de Aplicación... 16

2.4.2.1 Subcapa de soporte de aplicación (APS o Application Sublayer) ... 17

2.4.2.2 Estructura de aplicación ... 18

2.4.2.4 Descubrimiento ... 19

2.4.2.5 Subcapa objetos de dispositivos ZigBee (ZDO) ... 20

2.4.2.6 Fundamentos de comunicación de la capa ZDO ... 21

2.5 Dispositivos o nodos ZigBee ... 21

2.5.1 Coordinador ... 21

(11)

2.5.3 End-Device ... 22

2.6 Banda de operación ... 23

2.7 Modulación O-QPSK (Offset Quadrature Phase Shift Keying) ... 24

2.8 Modulación BPSK (Binary Phase Shift Keying) ... 25

2.9 Topología de red ... 26

2.10 Estrategias de conexión de los dispositivos en una red Zigbee ... 28

CAPÍTULO 3 “Metodología” ... 31

3.1 Etapa del sensado ... 31

3.1.1 Primera Prueba ... 31

3.1.1.1 Giroscopio... 31

3.1.1.1.1 Caracterización del Giroscopio ... 32

3.1.2 Segunda Prueba ... 34

3.1.2.1 Potenciómetro de Alta Precisión ... 34

3.1.2.1.1 Caracterización del potenciómetro de alta precisión ... 34

3.2 Elaboración de programa de transmisión y conversión... 36

3.2.1 Conversión analógica-digital ... 36

3.2.2 Transmisión de Datos a la computadora ... 39

3.2.2.1 Circuito electrónico ... 44

3.3 Etapa de transmisión inalámbrica con el PIC e interfaz ... 45

3.3.1 Primera Prueba ... 46

3.4 Etapa de Adquisición de Imágenes a través de MATLAB ... 53

3.4.1 Primera prueba... 59

3.4.2 Segunda prueba... 62

3.4.3 Tercer prueba ... 64

3.5 Etapa de transmisión con MATLAB ... 67

3.6 Pruebas finales ... 71

Conclusiones ... 75

Recomendaciones... 78

Apéndice ... 80

(12)

ANEXO C ... 102

ANEXO D ... 106

Glosario ... 117

(13)

O B J E T I V O

(14)
(15)

INTRODUCCIÓN

De acuerdo con las estadísticas del INEGI, en el 2010 se tiene un registro de las personas que tienen algún tipo de discapacidad con 5 millones 739 mil 270, lo que representa 5.1% de la población total de nuestra nación.

Sin perder de vista que la limitación de la movilidad es la de mayor frecuencia entre la población del país con un 58.3% dentro del rango de personas discapacitadas, de las cuales requieren algún tipo de rehabilitación, por el daño sufrido en las piernas y que dejan inhabilitadas temporal o permanentemente.

Este tipo de padecimientos que producen discapacidad en las personas pueden ser variados, pero el INEGI los clasifica en cuatro grupos de causas principales: nacimiento, enfermedad, accidente y edad avanzada.

Analizando los antecedentes de años pasados,- no solo en el 2010-, se puede observar que hay un porcentaje alto en cuanto a las restricciones de movilidad se refiere.

(16)
(17)

ANTECEDENTES

Este prototipo es diseñado para el análisis del ciclo de marcha en el individuo que presente anomalías en las extremidades inferiores, generando una libre movilidad del paciente en el transcurso de dicho estudio, además de utilizar una herramienta muy importante como lo es la comunicación inalámbrica en la adquisición de datos.

Este análisis le permitirá al Médico Especialista en la rama, en este caso, el Kinesiólogo Fisiatra a obtener el conocimiento necesario para hacer una valoración biomecánica del desempeño funcional del paciente y así poder realizar el tratamiento de rehabilitación, adaptada a los requerimientos de la persona en observación.

Por lo que la Kinesiología es el estudio del movimiento cuyos orígenes datan en Detroit, EUA, cuando en 1964 un quiropráctico, el Dr. George J. Goodheart comienza a analizar la interrelación de los procesos fisiológicos y la anatomía del cuerpo humano con el movimiento. Hasta la fecha se centraba la atención en las técnicas para corregir el estrés, ahora se centra sobre todo en acceder al lugar donde está el desequilibro, es decir, descubrir las posturas y movimientos viciosos producto de las secuelas por las diferentes patologías; para evaluar y elegir que técnicas terapéuticas se pueden aplicar durante los procesos recuperativos.

Es por eso que ya se tenían antecedentes a partir del 2006 en nuestro país, en donde se empezó a profundizar y a dar importancia sobre el tema de la marcha humana con la llegada del Laboratorio de Análisis de Movimiento del Centro de Rehabilitación de Robótica del CRIT (Centro de Rehabilitación Infantil de Teletón) del Estado de México, ubicado en Tlalnepantla y en el año 2009 con el LAM del Centro de Rehabilitación y Educación Especial (CREE) en Mérida, Yucatán, sólo por mencionar algunos.

(18)

C

APÍTULO 1

|

“Marcha

(19)

CAPÍTULO

1 “Marcha Humana”

1.1 Antecedentes de la marcha humana

Las innumerables manifestaciones artísticas, así como el deporte, han sido la premisa para el estudio de las posturas y movimiento en el ser humano, encontrando sus primeras apariciones en la Grecia Antigua.

La filosofía de Aristóteles hace mención en que todo movimiento se relaciona con un motor, ya sea de forma directa o indirecta.

En su obra “Acerca del movimiento de los animales” nos describe por primera vez la locomoción y movimiento, un análisis científico de la marcha y geométrico de la acción muscular, así como la fuerza de reacción del suelo.

Arquímedes utilizó métodos geométricos para la medición de curvas, el área y el volumen de cuerpos sólidos. Además encontró el centro de gravedad en estructuras planas o parabólicas sentando las bases de la mecánica racional.

Con el surgimiento del Renacimiento aparecen varios personajes interesantes, uno de ellos fue Leonardo Da Vinci. Leonardo contribuyó al conocimiento de la mecánica con sus estudios del paralelogramo de fuerzas, fuerzas simples y compuestas, fricción, relacionó fuerza, peso y velocidad. También esquematizó la acción de los músculos como líneas de fuerzas.

(20)

Describe que los músculos son como brazos de palanca muy cortos que compensan el peso del cuerpo a nivel articular, provocando presiones demasiadas altas al propio peso del cuerpo.

Borelli fue el primero en experimentar el centro de gravedad humano utilizando una tabla que se balanceaba donde se encontraba parado el individuo. Asimismo pudo observar que durante la marcha humana existen oscilaciones con la pelvis tanto lateral como transversalmente.

Durante la segunda mitad del siglo XVIII, se entró formalmente en el estudio de los movimientos con los hermanos Webwe y después con E.J. Marey, quien aprovecha el invento de la fotografía.

Este investigador puso un laboratorio que contenía una pista circular de marcha donde se podía estudiar a niños y adultos durante el trabajo o deporte por medio de métodos cinematográficos, lo que le permitió un análisis detallado.

Los investigadores Braune y Fischer iniciaron el estudio de la marcha humana tridimensionalmente usando cuatro cámaras tomando simultáneamente fotografías, obteniendo el centro de gravedad y el momento de inercia de los cuerpos.

(21)

1.2 Biomecánica

Es un ciencia fundamental para el Kinesiólogo Fisiatra, ya que le proporciona las bases científicas para analizar los movimientos de los pacientes, descubrir las posturas y movimientos producto de las secuelas por las diferentes patologías, para evaluar funcionalmente a las personas sanas o con discapacidades varias o para elegir que técnicas terapéuticas adoptar durante los procesos recuperativos.

1.3 Definición de la Marcha Humana

La Marcha Humana es un proceso de locomoción en el cual el cuerpo humano, en posición erguida, se mueve hacia adelante, siendo su peso soportado, alternativamente, por ambas piernas. Mientras el cuerpo se desplaza sobre la pierna de soporte, la otra pierna se balancea hacia adelante como preparación para el siguiente apoyo. Uno de los pies se encuentra siempre sobre el suelo y, en el período de transferencia del peso del cuerpo de la pierna retrasada a la pierna adelantada, existe un breve intervalo de tiempo durante el cual ambos pies descansan sobre el suelo (Figura 1.1).

(22)

1.4 Definición del ciclo de marcha

Es el instante en que uno de los pies entra en contacto con el suelo a través del talón. Tomando como origen el contacto del pie derecho, el ciclo terminaría en el siguiente apoyo del mismo pie. Por su parte, el pie izquierdo experimentaría lo mismo que el derecho (Figura 1.2).

Figura 1.2 Ciclo de marcha

1.4.1 Fases del ciclo de marcha

(23)

1.4.1.1 Fase de apoyo

 Fase de contacto inicial (CI) 0-2%

 Fase inicial del apoyo o de respuesta a la carga (AI) 0-10%  Fase media del apoyo (AM) 10-30%

 Fase final del apoyo (AF) 30-50%

 Fase previa a la oscilación (OP) 50-60%

1.4.1.2 Fase de oscilación

 Fase inicial de la oscilación (OI) 60-73%  Fase media de la oscilación (OM) 73-87%  Fase final de la oscilación (OF) 87-100%

La fase de apoyo comienza con el contacto inicial y finaliza con el despegue del

antepié. La fase de oscilación transcurre desde el instante de despegue del antepié

hasta el siguiente contacto con el suelo.

En relación a la duración del ciclo de marcha, la fase de apoyo constituye, en condiciones de normalidad, a la velocidad espontáneamente adoptada por el sujeto, alrededor de un 60% del ciclo. Por su parte, la fase de oscilación representa el 40% restante.

Dentro de la fase de apoyo encontramos las siguientes subdivisiones:

Fase de contacto inicial (CI): Constituye la toma de contacto del pie con el

(24)

Figura 1.3 La acción de los tres rodillos suaviza la trayectoria. A: Acción del rodillo de talón, bajo el control del tibial anterior. B: Acción del rodillo de tobillo, controlado por el tríceps sural. C: Acción del rodillo de antepié, propiciado por una contracción

potente del tríceps sural

Fase inicial del apoyo o de respuesta a la carga (AI): Se identifica con el

(25)

Figura 1.4 En el plano transversal el aductor mayor tira de la pelvis hacia adelante y contribuye a la extensión de la cadera. En el lado contra lateral, el aductor mediano y el recto interno atraen al miembro retrasado hacia adelante.

El despegue del miembro contralateral marca el principio de la fase de apoyo monopodal que, a su vez, se divide en dos mitades. La primera de ellas es:

Fase media del apoyo (AM): Se prolonga hasta el instante de despegue del

talón. En alteraciones donde no se produzca este evento, puede tomarse como referencia el paso del centro de gravedad del cuerpo sobre el antepié (articulaciones metatarsofalángicas).

(26)

La segunda mitad del apoyo monopodal se denomina:

Fase final del apoyo (AF): Comienza con el despegue del talón y finaliza

cuando el miembro contralateral contacta con el suelo. En esta fase el cuerpo sobrepasa el pie de soporte, cayendo hacia adelante (Figura 1.5).

Figura 1.5 Orientación promedio del eje formado por las cabezas de los metatarsianos.

El contacto inicial del miembro contralateral marca el inicio del segundo período de doble apoyo, también denominado:

Fase previa a la oscilación (OP): Culmina con el despegue del antepié. La

(27)

peso. La flexión plantar del tobillo y un importante grado de flexión de rodilla son característicos de esta fase.

En cuanto a la segunda fase que corresponde a la de oscilación tenemos:

Fase inicial de la oscilación (OI): Pertenece, aproximadamente, al primer tercio

del período de oscilación. Constituyen sus límites el despegue del miembro y el momento en que éste alcanza el miembro contralateral. El avance del miembro se produce por medio de la flexión de cadera y rodilla, asegurando una separación adecuada entre el pie y el suelo.

Fase media de la oscilación (OM): Comienza cuando ambos miembros se

cruzan y finaliza cuando la tibia oscilante alcanza una posición vertical, ya sobrepasado el miembro de apoyo. La progresión del miembro a una distancia suficiente del suelo se propicia por una dorsiflexión del tobillo, acompañada de una flexión adicional de la cadera.

El período de oscilación y en consecuencia, el ciclo, finaliza con:

Fase final de la oscilación (OF): Limitada por el siguiente contacto del

(28)

C

APÍTULO 2

|

“Protocolo

(29)

CAPÍ

TULO 2 “Protocolo ZigBee”

2.1 Antecedentes de Comunicación Inalámbrica

La comunicación inalámbrica comenzó a partir de las aportaciones de Maxwell y después seguida por Hertz. Pero a partir de 1901 Guillermo Marconi fue quien realizó la primera transmisión y recepción de las señales de sistemas inalámbricos por medio de ondas de radio.

Entonces a partir de los años 90 tuvo un gran auge con la aparición de la telefonía celular. Sin embargo, esta idea se hizo realidad con el estándar 802.11 (Wi-Fi), y así pudiendo obtener numerosas opciones de conectividad inalámbrica.

Para el desarrollo de esta tecnología se han creado diferentes protocolos como son WiMax, Bluetooth, 802.15.4 y ZigBee.

ZigBee está pensado en redes inalámbricas personales de bajo costo y puede dialogar entre dos dispositivos que no sean visibles entre sí, trabaja a una frecuencia de 2.4GHz, es por ello que para este caso se eligió el uso de este protocolo a través de módulos XBee, los cuales tienen una alcance desde 10 m hasta 100 m.

2.2 ZigBee

2.2.1 802.15.4

802.15.4 es un estándar que define el nivel físico y el control de acceso al medio de redes inalámbricas de área personal con tasas bajas de transmisión de datos (low-rate wireless personal area network, LR-WPAN).

(30)

Sin embargo, una red debe incluir al menos un FFD, que opera como el PAN (Personal Area Network) coordinador. También es la base sobre la que se define la especificación de ZigBee, cuyo propósito es ofrecer una solución completa para este tipo de redes construyendo los niveles superiores de la pila de protocolos que el estándar no cubre.

2.3 Definición del Protocolo ZigBee

El ZigBee es el nombre de la especificación de un conjunto de protocolos de alto nivel de comunicación inalámbrica. ZigBee se diseñó para la comunicación entre dispositivos conectados entre sí basado en redes inalámbricas de área personal (WPAN).

La pila de protocolos ZigBee, también conocida como ZigBee Stack, se basa en el nivel físico (PHY) y el control de acceso al medio (MAC) definidos en el estándar 802.15.4, que desarrolla estos niveles para redes inalámbricas de área personal de baja tasa de transferencia (LR-WPAN, Low Rate - Wireless Personal Area Network).

La especificación ZigBee completa este estándar añadiendo cuatro componentes principales:

 Nivel de red.

 Nivel de aplicación.

 Objetos de dispositivo ZigBee (ZDO, ZigBee Device Objects).

 Objetos de aplicación definidos por el fabricante.

(31)

fiable. Es un conjunto estandarizado de soluciones que pueden ser implementadas por cualquier fabricante.

Se dice que un ZigBee requiere de mucha memoria y microprocesadores o microcontroladores más caros; pero para esto existen módulos XBee para reducir la complejidad a simples operaciones de un puerto serie.

2.4 Arquitectura del ZigBee

2.4.1 Nivel de Red (NWK)

Este nivel se encarga de atravesar la red de nodo a nodo hasta llegar al destino. En NWK, la información se transmite mediante tramas con un encabezado (header) que transporta la información de control (identificador del tipo de trama), direccionamiento y ruteo en el caso de source routing.

El nivel de red hace de interfaz entre la capa de aplicación y la de MAC. Para esto, el nivel de red dispone en esta interfaz de dos servicios, con los que cubre las necesidades de la capa de aplicación. Estos dos servicios se conocen como Servicio de Datos y Servicio de Control.

Un Servicio de Datos permite a cualquier aplicación comunicarse con las mismas

unidades de datos, con dos o más dispositivos. Obviamente todos los dispositivos que intervengan en esta comunicación deberán estar en la misma red de interconexión.

Esta interfaz dispone de los siguientes servicios:

(32)

El Servicio de Control también es conocido como NLME (Network Layer

Management Entity), es un servicio ofertado desde la capa de red a la superior, que permite a la capa de aplicación interactuar o comunicarse con la pila directamente.

Esta interfaz cuenta con los siguientes servicios:

 Configuración de un nuevo dispositivo: Esto permitirá la inicialización de un dispositivo Coordinador, así como el descubrimiento de nuevos dispositivos dentro de la red de interconexión.

 Inicialización de una nueva red.  Integración y salida de una red.  Direccionamiento.

 Descubrimiento de vecinos.  Descubrimiento de ruta.  Recepción de control.

Las tareas que realiza el nivel de red son las siguientes:

 Configuración de nuevos dispositivos.  Inicialización de la red PAN.

 Asociación, reasociación y abandono de una red.  Adjudicación de direcciones de red.

 Descubrimiento de la topología de red.  Encaminamiento (routing).

(33)

Así, esta dirección es asignada en el momento de la fabricación del dispositivo. Mientras que en la dirección corta es asignada por la capa de red de forma dinámica. Dentro de una red ZigBee no puede haber más de un dispositivo con igual dirección corta.

2.4.2 Nivel de Aplicación

El nivel de aplicación es la interfaz efectiva entre el nodo ZigBee y sus usuarios. En la Figura 2.1 se puede observar una representación de la capa de aplicación y sus diferentes partes.

Figura 2.1 Capa de Aplicación.

(34)

Perfil de aplicación: Describe el intercambio de mensajes de un conjunto de

dispositivos empleado para una determinada aplicación. Los perfiles son desarrollados por cada uno de los fabricantes ZigBee, que en base a las necesidades que existen en el mercado, proporcionan soluciones tecnológicas específicas.

Los perfiles por tanto tratan de unificar la tecnología con las necesidades del mercado.

Cluster: Es un conjunto de atributos que se utilizan en la comunicación de los

distintos dispositivos ZigBee. Por ejemplo se puede definir un cluster para el control de luces, otro para el control de temperatura, etc.

Punto de acceso (endpoint): Dentro de un mismo dispositivo, se pueden definir varios

puntos de acceso. Cada uno de estos puntos de acceso gestiona el funcionamiento de una aplicación diferente.

Vínculo (binding): Es una conexión lógica entre un punto de acceso origen y uno o

varios de destino. Sólo se puede realizar un vínculo entre puntos de acceso que compartan el mismo cluster. Ya que un dispositivo puede poseer varios puntos de acceso, también puede soportar varios vínculos.

2.4.2.1 Subcapa de soporte de aplicación (APS o Application Sublayer)

(35)

La interfaz de los servicios proporcionados ofrecen dos entidades:

La entidad de datos APS (APSD) a través del servicio de punto de acceso.

Esta entidad proporciona el servicio necesario para la transmisión de datos y el transporte de datos de aplicación entre dos o más dispositivos en la misma red.

La entidad gestora del APS (APSME-SAP) a través de un servicio que ofrece

el punto de acceso APSE-SAP. La entidad gestora proporciona el servicio de descubrimiento y enlace de dispositivos y mantiene una base de datos de los

objetos llamado “APS Information Base (AIB)”.

2.4.2.2 Estructura de aplicación

La estructura de aplicación es el entorno en el cual se gestionan las diferentes aplicaciones.

El servicio de datos ofrecido a la entidad gestora, incluye primitivas de petición, confirmación, respuesta e indicación para la transferencia de datos.

 La primitiva de petición (primitives reques) soporta la transferencia de datos

entre pares de entidades objeto de aplicación.

 La primitiva confirmación (primitives confirm) da los resultados de una llamada

de la primitiva request.

 La primitiva indicación (primitives indication) se usa para indicar la

transferencia de datos desde un APS a la entidad objeto de aplicación.

(36)

Se permiten hasta 240 aplicaciones distintas dentro de un mismo dispositivo. El punto de acceso 0 está asignado al nivel ZDO. El rango de 241-254 está reservado para uso futuro.

Por último, el punto de acceso 255 es usado para la comunicación broadcast con todas las aplicaciones dentro del marco de aplicación. Esta capa es la encargada de definir tanto el perfil de aplicación como los diferentes clusters. Cada cluster se caracteriza por un identificador propio (cluster ID).

2.4.2.4 Descubrimiento

Este servicio de descubrimiento (Device Discovery), es un proceso que en un instante de tiempo están disponibles en los terminales o en los dispositivos receptores y que son descubiertos por dispositivos externos. Para ello, realiza preguntas/solicitudes que se envían por broadcast o unicast.

Hay dos formas de realizar las peticiones de descubrimiento de servicios y dispositivos: la petición de dirección IEEE y la petición de dirección de NWK.

 La petición de IEEE es unicast y asume que la dirección NWK es conocida.  La petición de dirección NWK es por broadcast y lleva la dirección de IEEE

como datos de negociación de parámetros.

El proceso del servicio de descubrimiento en ZigBee es la clave para interconectar dispositivos dentro de una red.

(37)

Terminal: Responde a las peticiones de descubrimiento de dispositivos

enviando su propia dirección IEEE o la dirección NWK (dependiendo de la petición).

Coordinador: Responde a la petición enviando su dirección IEEE o NWK y las

direcciones IEEE o NWK que tiene asociadas como coordinador ZigBee (dependiendo del tipo de petición).

Router: Responde a peticiones enviando su dirección IEEE o NWK y las

direcciones IEEE o NWK de todos los dispositivos que tiene asociados como router ZigBee (dependiendo de la petición).

2.4.2.5 Subcapa objetos de dispositivos ZigBee (ZDO)

Los ZDO representan la funcionalidad base que proporciona un interfaz entre los objetos de aplicación, el perfil del dispositivo y el APS.

Los ZDO se encuentran entre el framework de aplicación y la subcapa de soporte de aplicación. Permite así que se cumplan todos los requisitos de las aplicaciones que operan con la pila de protocolo ZigBee. Los ZDO son responsables de:

 Inicializar la subcapa de soporte de aplicación (APS), la capa de aplicación (NWK), y los servicios de especificación (SSS).

 La información de configuración desde la aplicación para determinar e implementar el descubrimiento y la gestión de la seguridad, red y enlace.

(38)

enlace (binding) y las funciones de seguridad incluidos en la capa del framework de aplicación de la pila de protocolo de ZigBee.

2.4.2.6 Fundamentos de comunicación de la capa ZDO

Son los servicios que ofrece la capa ZDO para la creación de una red. Es la capa donde se gestiona los procesos.

Los procesos de gestión son:

 Gestión de descubrimiento  Gestión de enlace

 Gestión de seguridad

2.5 Dispositivos o nodos ZigBee

Existen tres tipos de nodos: coordinador, router y end-device; cada uno juega un papel diferente en la red y también al inicio de ésta.

2.5.1 Coordinador

El coordinador es el encargado de dar inicio a una red ZigBee escogiendo el canal más silencioso y emitiendo una trama de datos llamada Beacon Request y arma una lista de PAN IDs (identificador de red) encontrados a fin de elegir un identificador no utilizado o utiliza el que se haya configurado, sí corresponde.

2.5.2 Router

(39)

Los router tienen la capacidad de encaminar los mensajes entre distintos dispositivos de la red y además de almacenar temporalmente aquellos destinados a los End-Device, que están durmiendo en bajo consumo hasta que despierten.

Al iniciar el proceso de asociación, el router recibe una dirección corta (16-bits), la cual retiene almacenándola en memoria no volátil y no repite este proceso si se resetea, dado que pertenece a una PAN.

2.5.3 End-Device

Los End-Device son dispositivos con funcionalidad reducida, ya que son los encargados de recibir o enviar los mensajes a los sensores o microcontroladores que deseamos manejar en forma inalámbrica.

Los End-Device tienen permitido dormir periódicamente, para esto se asocian a un router, que cumple la funcionalidad de un coordinador en una red 802.15.4, al cual reportan periódicamente.

Éstos dispositivos carecen de funcionalidad de routing y siempre entregan sus mensajes a su coordinador (un router o coordinador de la red ZigBee), quien a su vez almacena los mensajes para éstos hasta tanto despierte y lo contacte, momento en el cual se los entrega.

(40)

2.6 Banda de operación

Figura 2.2 Velocidades de datos en diferentes protocolos.

ZigBee opera en dos bandas de frecuencia:

 2.4 GHz con tasa máxima de transferencia de 250 Kbps, para este caso, modula en O-QPSK (Modulación con desplazamiento de fase en cuadratura con desplazamiento temporal).

(41)

Tabla 2.6: Bandas de frecuencia y tipos de datos Capa Física (MHz) Banda de frecuencia (MHz)

Parámetros de difusión Datos de los parámetros

Chip de la tasa

(kchip/s)

Modulación Tasa

de bits (kb/s) Tasa de símbolos (ksymbol/s) Símbolos 868/915

868–868.6 300 BPSK 20 20 Binario

902–928 600 BPSK 40 Binario

2450 2400–2483.5 2000 O-QPSK 250 62.5

16-ary ortogonal

2.7 Modulación O-QPSK (Offset Quadrature Phase Shift Keying)

La modulación O-QPSK consiste en realizar una transición de fase en cada intervalo de señalización de bits, por portadora en cuadratura.

(42)

Un símbolo O-QPSK consta de 2 bits, el tiempo de compensación corresponde al periodo de bit. Este período se conoce como período de ZigBee. Figura 2.3

Figura 2.3 Diagrama de modulación O-QPSK

2.8 Modulación BPSK (Binary Phase Shift Keying)

En esta modulación se tiene como resultados posibles dos fases de salida para la portadora con una sola frecuencia. Una fase de salida representa un 1 lógico y la otra un 0 lógico. BPSK sólo es capaz de modular a 1 bit/símbolo.

(43)

Figura 2.4 Diagrama de constelación para BPSK.

2.9 Topología de red

Una red ZigBee puede tener las siguientes topologías:

(44)

Figura 2.5 Topologías que usa el ZigBee.

En una red estrella, el coordinador atiende a un número de End-Device, de modo

similar a una red 802.15.4.

En una red de árbol tenemos la presencia del router y podemos armar pequeñas

estrellas. La información se distribuye de forma jerárquica a lo largo del árbol hasta llegar al destino.

En una red malla, los router y el coordinador descubren la ruta hacia el destinario del

(45)

2.10 Estrategias de conexión de los dispositivos en una red

Zigbee

Las redes ZigBee han sido diseñadas para conservar la potencia en los nodos esclavos. De esta forma se consigue el bajo consumo de potencia.

La estrategia consiste en que, durante mucho tiempo, un dispositivo esclavo esté en modo dormido, de tal forma que solo se despierte por una fracción de segundo para confirmar que está vivo en la red de dispositivos de la que forma parte.

Esta transición del modo dormido al modo despierto (modo en el que realmente transmite), dura aproximadamente 15 ms, y la enumeración de "esclavos" dura alrededor de 30 ms.

En las redes Zigbee, se pueden usar dos tipos de entornos o sistemas:

Con balizas: Es un mecanismo de control del consumo de potencia en la red.

Permite a todos los dispositivos saber cuándo pueden transmitir. En este modelo, los dos caminos de la red tienen un distribuidor que se encarga de controlar el canal y dirigir las transmisiones.

Las balizas que dan nombre a este tipo de entorno, se usan para poder sincronizar todos los dispositivos que conforman la red, identificando la red domótica, y describiendo la estructura de la "supertrama". Los intervalos de las balizas son asignados por el coordinador de red y pueden variar desde los 15 ms hasta los 4 minutos.

(46)

primero que tendrá que hacer es registrarse para el coordinador, y es entonces cuando mira si hay mensajes para él. En el caso de que no haya mensajes, este dispositivo vuelve a "dormir", y se despierta de acuerdo a un horario que ha establecido previamente el coordinador. En cuanto el coordinador termina el "balizamiento", vuelve a "dormirse".

Sin balizas: Se usa el acceso múltiple al sistema Zigbee en una red punto a

punto cercano. En este tipo, cada dispositivo es autónomo, pudiendo iniciar una conversación, en la cual los otros pueden interferir. A veces, puede ocurrir que el dispositivo destino puede no oír la petición, o que el canal esté ocupado.

Este sistema se usa típicamente en los sistemas de seguridad, en los cuales sus dispositivos (sensores, detectores de movimiento o de rotura de cristales), duermen prácticamente todo el tiempo (el 99.999%).

(47)
(48)

CAPÍ

TULO 3 “Metodología”

3.1 Etapa del sensado

Se define esta etapa del sensado debido a que es una aplicación importante en el proyecto. Por consiguiente el sensor es la fuente que proporciona los datos que se envían de forma inalámbrica.

Como se puede suponer pocas cosas son ideales, y nuestro caso no es una excepción, por lo tanto el proyecto se ha diseñado para usar diferentes tipos de sensores. Por lo que el elemento que se usa para sensar la señal requerida es el giroscopio IXZ-500 o el potenciómetro de alta precisión.

3.1.1 Primera Prueba

3.1.1.1 Giroscopio

Figura 3.1 Diagrama a bloque de la etapa del sensado con giroscopio.

Debido a que el giroscopio tiene un cuerpo con simetría rotacional que gira alrededor de su eje de simetría, permite realizar diferentes medidas en la posición superior e inferior de la rodilla obteniendo los ángulos correspondientes al movimiento de este.

(49)

Las medidas que se requieren obtener se logran debido a que el giroscopio suministra un voltaje diferente por cada ángulo proporcionado al momento de realizar la oscilación.

El giroscopio se coloca de tal manera que su movimiento angular quede alineado con el eje z y la posición de la parte superior de la rodilla.

3.1.1.1.1 Caracterización del Giroscopio

En este proceso se determinó la sensibilidad del giroscopio, haciendo pruebas de ángulo y voltaje.

(50)

Tabla 3.1 Medición de ángulos

Ángulo (º) Voltaje (mV) Ángulo (º) Voltaje (mV)

0 1342 50 1579

5 1358 55 1669

10 1371 60 1522

15 1350 65 1687

20 1409 70 1865

25 1414 75 1932

30 1461 80 1688

35 1565 85 1933

40 1506

90 1604

45 1482

(51)

3.1.2 Segunda Prueba

3.1.2.1 Potenciómetro de Alta Precisión

Figura 3.4: Diagrama a bloque de la etapa del sensado con el potenciómetro de alta precisión.

Este dispositivo posee distintos valores de resistencia que lo hace adecuado para distintas aplicaciones, en este caso es para la obtención de los ángulos ya que le corresponde un valor diferente de resistencia.

3.1.2.1.1 Caracterización del potenciómetro de alta precisión

Para la caracterización del potenciómetro se realizaron diferentes mediciones donde la posición que representó la resistencia más baja se le asignó el ángulo 0º (Figura 3.5). Al momento de girar el potenciómetro para la toma de ángulos se obtuvieron los siguientes resultados que se muestran en la Tabla 3.2 y Figura 3.6:

CARACTERIZACIÓN

(52)

Tabla 3.2 Medición de ángulos.

Resistencia (ohms) Ángulo (°) Resistencia (ohms) Ángulo (°)

8 0 520 90

53 5 560 95

78 10 590 100

102 15 624 105

130 20 661 110

169 25 686 115

189 30 709 120

213 35 737 125

246 40 763 130

273 45 800 135

314 50 843 140

342 55 867 145

359 60 892 150

390 65 924 155

405 70 963 160

437 75 987 165

468 80 1012 170

497 85 1050 175

Figura 3.6 Gráfica de la caracterización del potenciómetro.

y = 0.1701x - 1.6271 R² = 0.9993

-20 0 20 40 60 80 100 120 140 160 180 200

0 200 400 600 800 1000 1200

R esi st en ci a (oh m s) Ángulo (°)

(53)

3.2 Elaboración de programa de transmisión y conversión

Figura 3.7 Diagrama a bloque del programa de transmisión y conversión.

El código de conversión Analógica a Digital se elaboró en el software MPLAB IDE v8.53 ya que es una herramienta sencilla para la programación de microcontroladores y que facilita el proceso, dado que ya se había trabajado anteriormente con ella. Además se realizó el programa para la transmisión inalámbrica por medio del USART.

3.2.1 Conversión analógica-digital

Para que el ordenador procese información es necesario convertir las señales que se obtengan del dispositivo de sensado a digital. Para este contexto se elaboró el programa para el PIC18F4520 con las siguientes características de la conversión:

SENSADO

DE LA SEÑAL

MÓDULO

XBEE

TRANSMISIÓN

DE DATOS

(54)

 Conversión a 10 bits de resolución: Debido a que tenemos 1024 bits de resolución que nos servirán para detectar variaciones pequeñas de las señales analógicas que se conviertan a digital.

 Muestreo a 10 microsegundos.

 Transmisión y recepción a 9600 baudios por segundo.

El programa que va hacer la conversión analógica-digital queda de la siguiente manera:

#include<p18f4520.h> //librerías

#include<usart.h> #include<delays.h>

#pragma config OSC=XT //cristal externo

#pragma config LVP=OFF //voltaje de programación bajo

#pragma config WDT=OFF//washdog timer apagado

#pragma config BOREN=ON #pragma config BORV=3 #pragma config STVREN=ON #pragma config PWRT=ON

#define canal0 0X01 //canal 0 definido como entrada analógica

void ISR_H (void); //interrupción de alta prioridad

#pragma code high_vector_section=0X0008 void high_vector (void)

{

(55)

_endasm }

#pragma code

#pragma interrupt ISR_H

void config_ADC (void); //configurar ADC

void config_intADC (void); //interrupciones del ADC

void concatena (void);// concatena dos cadenas de 8 bits

unsigned long sensor=0;

/*Menu principal donde inicia programa*/

void main (void) {

config_ADC(); config_intADC();

}

void concatena (void) {

sensor=ADRESH;

sensor=(sensor<<8)+ADRESL; }

void config_ADC (void) {

(56)

}

/*configura los bits de interrupción del módulo ADC*/

void config_intADC (void) {

PIR1bits.ADIF=0; PIE1bits.ADIE=1; IPR1bits.ADIP=1; }

void ISR_H (void) { if(PIR1bits.ADIF) { concatena(); PIR1bits.ADIF=0; } }

3.2.2 Transmisión de Datos a la computadora

Una variante elemental para transmisión de datos a la computadora es la velocidad debido a que si cualquiera de los dispositivos no se encuentran sincronizados a la misma velocidad no permitirá tener el resultado requerido.

Para la obtención de la transmisión se requieren las siguientes características:

 Modo de transmisión asíncrono.

 Velocidad de 9600 baudios por segundo debido a que es una velocidad rápida en donde se sincroniza el microcontrolador y la computadora.

(57)

El programa permite que se lleve a cabo la transmisión de información, esto se muestra a continuación:

OpenUSART(USART_TX_INT_OFF & //Módulo USART definido con interrupciones apagadas

USART_RX_INT_OFF &

USART_ASYNCH_MODE & //transmisión asíncrona

USART_EIGHT_BIT & //8bits

USART_CONT_RX & //recepción continua

USART_BRGH_HIGH, 25); //alta resolución

RCONbits.IPEN=1;

INTCONbits.GIEH=1; //interrupciones de alta prioridad activadas

INTCONbits.GIEL=0;

while (1) {

ADCON0bits.GO=1; //inicia proceso de conversión del ADC

WriteUSART(sensor); Delay1KTCYx(2); }

Por lo que el programa final quedó de la siguiente forma:

#include<p18f4520.h> //librerías

#include<usart.h> #include<delays.h>

(58)

#pragma config WDT=OFF//washdog timer apagado

#pragma config BOREN=ON #pragma config BORV=3 #pragma config STVREN=ON #pragma config PWRT=ON

#define canal0 0X01 //canal 0 definido como entrada analógica

void ISR_H (void); //interrupción de alta prioridad

#pragma code high_vector_section=0X0008 void high_vector (void)

{ _asm goto ISR_H _endasm } #pragma code

#pragma interrupt ISR_H

void config_ADC (void); //configurar ADC

void config_intADC (void); //interrupciones del ADC

void concatena (void);// concatena dos cadenas de 8 bits

unsigned long sensor=0;

/*Menu principal donde inicia programa*/

void main (void) {

(59)

config_intADC();

OpenUSART(USART_TX_INT_OFF & //Módulo USART definido con interrupciones apagadas

USART_RX_INT_OFF &

USART_ASYNCH_MODE & //transmisión asíncrona

USART_EIGHT_BIT & //8bits

USART_CONT_RX & //recepción continua

USART_BRGH_HIGH, 25); //alta resolución

RCONbits.IPEN=1;

INTCONbits.GIEH=1; //interrupciones de alta prioridad activadas

INTCONbits.GIEL=0; while (1)

{

ADCON0bits.GO=1; //inicia proceso de conversión del ADC

WriteUSART(sensor); Delay1KTCYx(2); }

}

void concatena (void) {

sensor=ADRESH;

sensor=(sensor<<8)+ADRESL; }

void config_ADC (void) {

(60)

}

/*configura los bits de interrupción del módulo ADC*/

void config_intADC (void) {

PIR1bits.ADIF=0; PIE1bits.ADIE=1; IPR1bits.ADIP=1; }

void ISR_H (void) {

if(PIR1bits.ADIF) {

concatena(); PIR1bits.ADIF=0; }

(61)

3.2.2.1 Circuito electrónico

El circuito que se muestra en la Figura 3.8 se diseñó en el software de Proteus. Este circuito es implementado para la realización de la transmisión de los datos.

Figura 3.8 Esquemático del circuito electrónico.

El funcionamiento del circuito consiste que el dato adquirido mediante el potenciómetro de alta precisión, entre por el pin 2 del PIC18F4520 y que sea convertido de señal analógica a digital para después ser enviado por el módulo XBee (Tx) que está conectado en el pin 25.

RA0/AN0/C1IN-2 RA1/AN1/C2IN-3 RA2/AN2/C2IN+/VREF-/CVREF 4 RA3/AN3/C1IN+/VREF+ 5 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/HLVDIN/C2OUT 7 RA6/OSC2/CLKO 14 RA7/OSC1/CLKI 13 RB0/AN12/FLT0/INT0 33 RB1/AN10/INT1 34 RB2/AN8/INT2 35 RB3/AN9/CCP2A 36 RB4/KBI0/AN11 37 RB5/KBI1/PGM 38 RB6/KBI2/PGC 39 RB7/KBI3/PGD 40 RC0/T1OSO/T13CKI 15 RC1/T1OSI/CCP2B 16 RC2/CCP1/P1A 17 RC3/SCK/SCL 18 RC4/SDI/SDA 23 RC5/SDO 24 RC6/TX/CK 25 RC7/RX/DT 26 RD0/PSP0 19 RD1/PSP1 20 RD2/PSP2 21 RD3/PSP3 22 RD4/PSP4 27 RD5/PSP5/P1B 28 RD6/PSP6/P1C 29 RD7/PSP7/P1D 30 RE0/RD/AN5 8 RE1/WR/AN6 9 RE2/CS/AN7 10 RE3/MCLR/VPP 1 U1 PIC18F4520 X1 CRYSTAL C2 22p C1 22p R1 1K

AD0 / DIO0 20

AD2 / DIO2 19

AD2 / DIO2 18

AD3 / DIO3 17

RTS / AD6 / DIO6 16

AD5 / DIO5 15

VREF 14

ON / SLEEP 13

CTS / DIO7 12

AD4 / DIO4 11

VCC 1 DOUT 2 DIN / CONFIG 3 DO8* 4 RESET 5 PWM0 / RSSI 6 PWM1 7 [reserved] 8 DTR / SLEEP_RQ / DI8 9 GND 10

XBEE1

XBEE

RV1

(62)

3.3 Etapa de transmisión inalámbrica con el PIC e interfaz

Para llevar a cabo esta etapa se desarrollaron los pasos mencionados con anterioridad. Por lo que a continuación se muestra en la Figura 3.9 el diagrama a bloque de la transmisión inalámbrica con el PIC e interfaz.

Figura 3.9 Diagrama a bloque la etapa de transmisión inalámbrica con el PIC e interfaz

Para este desarrollo se procedió a la transmisión de datos haciendo uso del módulo XBee. De tal manera que se tuvieron que realizar pruebas para verificar el funcionamiento de este dispositivo.

SEÑAL

ANALÓGICA

MICROCONTROLADOR

MÓDULO

XBEE TX

XBEE

INTERFAZ AL

COMPUTADOR

PROCESAMIENTO DE DATOS (ÁNGULOS)

PROCESAMIENTO DE IMAGEN

MÓDULO

XBEE RX

(63)

En la caracterización del módulo XBee se ejecutaron las siguientes actividades:

3.3.1 Primera Prueba

 Instalar el software X-CTU desde la página web del fabricante (DIGI).

 Conectar al puerto USB de la computadora el módulo XBee (Figura 3.10).

(64)

 Abrir la aplicación X-CTU (Figura 3.11).

Figura 3.11 Aplicación X-CTU

 Seleccionar el puerto serial USB por cada módulo XBee (recordar que se utilizan dos módulos uno para el transmisor y otro para el receptor), en este

(65)

Figura 3.12 Seleccionar el puerto serial USB

(66)

 En la pestaña de Modem Configuration, se procede a la actualización del Firmware. Figura 3.14

Figura 3.14 Actualización del Firmware

o En la sección Modem Parameter and Firmware se le da clic al botón

(67)

Figura 3.15 Parámetros que se actualizaron para el módulo XBee

Pudiendo observar:

o Modem XBEE: XB24

o Function Set: XBEE 802.15.4 o Version: 10E6

 Se programaron 3 parámetros en la misma pestaña para el inicio de la comunicación, éstos son:

o MY Dirección origen. o DL Dirección destino.

(68)

 Otra manera de introducirse al módulo es por medio del Modo de Comando. Este modo permite ingresar comandos AT al XBee, para configurar, ajustar o modificar parámetros como la dirección propia o la de destino (Figura 3.16).

Figura 3.16 Modo de comando AT

(69)

Figura 3.17 Rango de alcance de la señal

(70)

Debemos aclarar que uno de los módulos deberá ser el coordinador (transmisor).

3.4 Etapa de Adquisición de Imágenes a través de MATLAB

En MATLAB una imagen a escala de grises es representada por medio de una matriz bidimensional de m x n elementos en donde n representa el numero de píxeles de ancho y m el numero de píxeles de largo. El elemento v11 corresponde al elemento

de la esquina superior izquierda, donde cada elemento de la matriz de la imagen tiene un valor de 0 (negro) a 255 (blanco). Figura 3.19.

Figura 3.19 Representación de una imagen a escala de grises en MATLAB

Por otro lado una imagen de color RGB (la más usada para la visión computacional, además de ser para MATLAB la opción default) es representada por una matriz tridimensional m x n x p, donde m y n tienen significa lo mismo que para el caso de

m

(71)

las imágenes de escala de grises mientras p representa el plano, es decir, para RGB puede ser 1 para el rojo, 2 para el verde y 3 para el azul. Figura 3.20.

(72)

I (m, n, p)

Figura 3.20 Representación de una imagen a color RGB en MATLAB

En cuanto al Toolbox de Adquisición de Imágenes se define como una colección de funciones que sirven para obtener imágenes de diversos dispositivos (USB, cámaras web) para visualizar videos en vivo, para la adquisición de imágenes mediante triggers, para importar datos hacia el entorno de trabajo de MATLAB y a su vez permite efectuar la aplicación en tiempo real.

El Toolbox de Procesamiento de Imágenes proporciona a MATLAB un conjunto de funciones que amplía las capacidades del producto para realizar desarrollo de aplicaciones y de nuevos algoritmos en el campo del proceso y análisis de imágenes. Este Toolbox cuenta con las siguientes funciones:

 Diseño de filtros.

 Funciones para la extracción de bordes.

I

B

= (m,n)

I

G

= (m,n)

I

R

= (m,n)

(73)

 Imágenes binarias y segmentación por umbral.  Operaciones basadas en objetos.

 Selección de objetos.

 Medición de características.

 Funciones para la conversión de imágenes y formatos de color  Mejora y retocado de imágenes.

 Análisis y estadística de imágenes.

En este caso se va a efectuar la adquisición de imágenes en tiempo real del ciclo de marcha que realice el paciente, capturadas a partir de una cámara web Microsoft LifeCam VX-1000 que cuenta con las siguientes especificaciones (Figura 3.21):

o Dimensiones:

o Anchura 5.3 cm. o Profundidad 5.3 cm. o Altura 6.5 cm.

o Captura de vídeo: 640 x 480 @ 30 tramas por segundo o Imagen fija: 640 x 480

o Interfaz: USB

(74)

Se usó éste tipo de cámara porque es de fácil acceso en cuanto a costo, además de que se puede sincronizar perfectamente con el software MATLAB.

Para la toma de imágenes se utilizó dicho software, donde se desarrolló un programa para la captura de fotos en un instante de tiempo y así poder visualizar detalle a detalle la marcha que genera el paciente.

Pero antes de esto se muestran los comandos para identificar las características que constituye a la cámara web y poder usarla a su máxima capacidad:

imaqhwinfo % despliega la información sobre el hardware disponible, es decir, muestra los controladores que contiene la cámara web, la versión de MATLAB, el Toolbox de la adquisición de imagen e igualmente su versión. En este caso, se observan tres adaptadores y con el que se está trabajando es winvideo por la compatibilidad con el software.

ans =

InstalledAdaptors: {'coreco' 'demo' 'winvideo'} MATLABVersion: '7.4 (R2007a)'

ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '2.1 (R2007a)'

imaqhwinfo('winvideo') % muestra la información detalladamente acerca del controlador que se está usando.

ans =

(75)

AdaptorName: 'winvideo'

DeviceIDs: {[1] [2]} % es muy importante que aparezca por lo menos un identificador

del dispositivo para que haya una comunicación con el hardware y software, aquí se puede observar que maneja dos IDs.

DeviceInfo: [1x2 struct]

imaqhwinfo('winvideo',1) %expone las características propias del dispositivo utilizando el identificador número 1, por ejemplo el formato por default, el nombre del dispositivo, el objeto para la toma de imágenes, así como los distintos formatos con los que cuenta la cámara.

ans =

DefaultFormat: 'RGB24_320x240' DeviceFileSupported: 0

DeviceName: 'Microsoft LifeCam VX-1000' DeviceID: 1

ObjectConstructor: 'videoinput('winvideo', 1)'

SupportedFormats: {1x10 cell} % ésta cámara web cuenta con 10 formatos

ans.SupportedFormats% especifica los diferentes formatos del dispositivo

ans =

Columns 1 through 3

'I420_160x120' 'I420_176x144' 'I420_320x240'

Columns 4 through 6

(76)

Columns 7 through 9

'RGB24_176x144' 'RGB24_320x240' 'RGB24_352x288'

Column 10 'RGB24_640x480'

Posteriormente se muestra la prueba para la adquisición de imágenes:

3.4.1 Primera prueba

vid = videoinput('winvideo',1,'RGB24_640x480'); % crea un objeto de entrada de video, declarando el controlador, el ID y el formato de la cámara

preview(vid) % abre una ventana al momento de la toma de video (Figura 3.22).

Figura 3.22 Ventana donde se muestra el video con el comando preview.

foto = getsnapshot(vid);% adquiere una sola imagen

(77)

Figura 3.23 Ventana que muestra la toma de fotografía con el comando imshow.

Para grabar el contenido de la imagen en un archivo se utiliza la función:

imwrite(foto,’pruebas.jpeg’) % donde la variable foto representa la variable

que contiene a la imagen y “pruebas.jpeg” el nombre del archivo con su

respectiva extensión (Figura 3.24).

(78)

Los formatos de imagen que maneja MATLAB son de acuerdo a la tabla 3.4 siguiente:

Tabla 3.4 Formatos de imagen que maneja MATLAB.

Formato Extensión TIFF .tiff

JPEG .jpeg

GIF .gif

BMP .bmp

PNG .png

XWD .xwd

A continuación se expone el código de la adquisición de imágenes para el desarrollo del sistema de marcha humana inalámbrico donde se explica cada línea para su mejor entendimiento:

clear all % borra las variables, variables globales, funciones y las reinicializa.

close all % cierra todas las ventanas que se tengan abiertas en MATLAB

clc % limpia la pantalla

vid=videoinput('winvideo',1,'RGB24_640x480'); % crea un objeto llamado vid para la toma de video con sus respectivas especificaciones del dispositivo

preview(vid); % visualiza el video que se está tomando en ese momento

pause(3);% tiempo (segundos) que dura la cámara capturando

for c=1:80;% número de las tomas de imágenes

K=getsnapshot(vid);% capta la imagen en una sola toma

pause(0.05); % tiempo en que se va a tomar cada fotografía

imwrite (K,strcat(num2str(c),'.jpg')); % guarda la imagen, donde num2str convierte el número de tomas en una cadena, mientras que strcat la concatena.

(79)

El funcionamiento de este código es adquirir las imágenes que son capturadas en un tiempo de 3 segundos en cada instante del ciclo de marcha del paciente.

La segunda prueba que se efectuó para verificar el funcionamiento del código con la cámara web se muestra en la Figura 3.25:

3.4.2 Segunda prueba

(80)
(81)

3.4.3 Tercer prueba

A continuación se muestran las imágenes indicando los marcadores que permiten obtener las medidas angulares del desplazamiento del paciente. Estos marcadores se encuentran posicionados en la parte de la cadera, muslo, rodilla y tobillo. Figura 3.26.

(82)

(83)

(84)

Figura 3.26 Adquisición de imagen de manera consecutiva (tercer prueba).

3.5 Etapa de transmisión con MATLAB

En la siguiente sección se detallan las pruebas que se realizaron para verificar la conectividad de los módulos XBee entre las interfaces de MATLAB y X-CTU.

Los pasos fueron los siguientes:

 Abrir el programa de MATLAB y X-CTU.

(85)

Para hacer la transmisión se efectuaron los pasos que se muestran a continuación:

o Escribir en la ventana Command Window de MATLAB el comando tmtool

que nos arroja una ventana de trabajo, la cual se puede ver del lado derecho de la imagen.

o Se da clic en el botón de Connect de la ventana de MATLAB.

o En X-CTU se selecciona el puerto de comunicación, en la configuración de

módem se da clic en la opción leer módem y posteriormente se abre la terminal.

o En la ventana de MATLAB, podemos ver la aplicación de Sending data. o En la sección de Data to Write escribimos el mensaje a transmitir y se da

clic en el botón Write.

o El código generado en MATLAB se verifica en la pestaña Session Log,

arrojando lo siguiente:

obj1 = instrfind('Type', 'serial', 'Port', 'COM4', 'Tag', ''); %Busca un objeto puerto serie. % Crear el objeto de puerto serie, si no existe.

% De otra manera utilizar el objeto que se encontró.

if isempty(obj1)

obj1 = serial ('COM4'); else

fclose(obj1); obj1 = obj1 (1) end

fopen(obj1); % Conectar al instrumento objeto, obj1.

fclose(obj1); % Desconectar del instrumento objeto, obj1.

(86)

o Por último en la ventana de X-CTU podemos ver el mensaje (Figura 3.27).

Figura 3.27 Transmisión del software de MATLAB hacia X-CTU.

(87)

Figura 3.28 Transmisión del software de X-CTU hacia MATLAB.

o Se limpia la pantalla de X-CTU con la opción de Clear Screen. o Se escribe el texto deseado en la ventana de X-CTU.

o En la ventana de MATLAB, nos dirigimos a la ventana de Receiving data. o Se da clic en la opción de Read y veremos que el texto aparece en la parte

inferior de la ventana.

o En esta etapa podemos ver que existe en retardo de aproximadamente 10

segundos para que el texto aparezca en nuestra ventana de trabajo.

o El código generado en MATLAB se verifica en la pestaña Session Log,

(88)

obj1 = instrfind('Type', 'serial', 'Port', 'COM3', 'Tag', ''); % Busca un objeto puerto serie.

% Crear el objeto de puerto serie, si no existe % De otra manera utilizar el objeto que se encontró.

if isempty(obj1)

obj1 = serial('COM3'); else

fclose(obj1); obj1 = obj1(1) end

fopen(obj1); % Conectar al instrumento objeto, obj1.

data1 = fscanf(obj1); % Comunicación con los instrumentos objeto, obj1.

3.6 Pruebas finales

A continuación se presenta el prototipo utilizado para la toma de datos basado en un solo punto de referencia (rodilla). Figura 3.6.1

(89)

El mecanismo implementado consiste en dos placas metálicas ajustadas con cinta velcro, donde una permanece fija mientras que la otra permite la movilidad del potenciómetro para la obtención de ángulos. Figura 3.6.2

Figura 3.6.2 Muestra de las placas metálicas.

En la figura 3.6.3 se muestra el mecanismo utilizado con la pierna en movimiento.

(90)

La siguiente figura presenta la etapa de transmisión y recepción del sistema.

Figura 3.6.4 interacción de sistema

(91)

Figura 3.6.5 Datos finales obtenidos en X-CTU.

(92)

Figure

Figura 1.1 Marcha Humana

Figura 1.1

Marcha Humana p.21
Tabla 2.6: Bandas de frecuencia y tipos de datos

Tabla 2.6:

Bandas de frecuencia y tipos de datos p.41
Figura 2.5 Topologías que usa el ZigBee.

Figura 2.5

Topologías que usa el ZigBee. p.44
tabla 3.1:

tabla 3.1:

p.49
Tabla 3.1 Medición de ángulos

Tabla 3.1

Medición de ángulos p.50
Figura 3.8 Esquemático del circuito electrónico.

Figura 3.8

Esquemático del circuito electrónico. p.61
Figura 3.13 Cuadro de diálogo que muestra la conectividad con el XBee

Figura 3.13

Cuadro de diálogo que muestra la conectividad con el XBee p.65
Figura 3.14 Actualización del Firmware

Figura 3.14

Actualización del Firmware p.66
Figura 3.15 Parámetros que se actualizaron para el módulo XBee

Figura 3.15

Parámetros que se actualizaron para el módulo XBee p.67
Figura 3.16 Modo de comando AT

Figura 3.16

Modo de comando AT p.68
Figura 3.18 Primer a prueba de la comunicación entre los módulos XBee.

Figura 3.18

Primer a prueba de la comunicación entre los módulos XBee. p.69
Figura 3.17 Rango de alcance de la señal

Figura 3.17

Rango de alcance de la señal p.69
Figura 3.19 Representación de una imagen a escala de grises en MATLAB

Figura 3.19

Representación de una imagen a escala de grises en MATLAB p.70
Figura 3.20 Representación de una imagen a color RGB en MATLAB

Figura 3.20

Representación de una imagen a color RGB en MATLAB p.72
Figura 3.25 Adquisición de imagen de manera consecutiva (segunda prueba).

Figura 3.25

Adquisición de imagen de manera consecutiva (segunda prueba). p.79
Figura 3.25 Adquisición de imagen de manera consecutiva (segunda prueba).

Figura 3.25

Adquisición de imagen de manera consecutiva (segunda prueba). p.80
Figura 3.26 Adquisición de imagen de manera consecutiva (tercer prueba).

Figura 3.26

Adquisición de imagen de manera consecutiva (tercer prueba). p.81
Figura 3.26 Adquisición de imagen de manera consecutiva (tercer prueba).

Figura 3.26

Adquisición de imagen de manera consecutiva (tercer prueba). p.82
Figura 3.26 Adquisición de imagen de manera consecutiva (tercer prueba).

Figura 3.26

Adquisición de imagen de manera consecutiva (tercer prueba). p.83
Figura 3.26 Adquisición de imagen de manera consecutiva (tercer prueba).

Figura 3.26

Adquisición de imagen de manera consecutiva (tercer prueba). p.84
Figura 3.27 Transmisión del software de MATLAB hacia X-CTU.

Figura 3.27

Transmisión del software de MATLAB hacia X-CTU. p.86
Figura 3.28 Transmisión del software de X-CTU  hacia MATLAB.

Figura 3.28

Transmisión del software de X-CTU hacia MATLAB. p.87
Figura 3.6.1 Punto de referencia.

Figura 3.6.1

Punto de referencia. p.88
Figura 3.6.3 Pierna en movimiento

Figura 3.6.3

Pierna en movimiento p.89
Figura 3.6.2 Muestra de las placas metálicas.

Figura 3.6.2

Muestra de las placas metálicas. p.89
Figura 3.6.4 interacción de sistema

Figura 3.6.4

interacción de sistema p.90
Figura 3.6.6 Datos finales obtenidos en MATLAB.

Figura 3.6.6

Datos finales obtenidos en MATLAB. p.91
Figura 3.6.5 Datos finales obtenidos en X-CTU.

Figura 3.6.5

Datos finales obtenidos en X-CTU. p.91
Figura Circuito del funcionamiento del giroscopio.

Figura Circuito

del funcionamiento del giroscopio. p.104
Figura Planos mecánicos de los módulos de radiofrecuencia OEM XBee/XBee-PRO

Figura Planos

mecánicos de los módulos de radiofrecuencia OEM XBee/XBee-PRO p.125