Teoria y Programacion Modulos XBEE

107
CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO COMUNICACIONES INALÁMBRICAS MODULOS DE RADIO FRECUENCIA VERSION OEM XBEE POR: Junior Figueroa Olmedo Página 1 de 107

description

Aprende el funcionamiento de los Módulos Xbbe, el software de configuración X-CTU, aprenda a desarrollar una tarjeta de interfaz entre el dispositivo y la PC y ejemplos practicos de comunicacion RF.

Transcript of Teoria y Programacion Modulos XBEE

Page 1: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

COMUNICACIONES INALÁMBRICAS

MODULOS DE RADIO FRECUENCIA VERSION OEM XBEE

POR: Junior Figueroa Olmedo Página 1 de 91

Page 2: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

1. INTRODUCCIÓN

MaxStream, que ahora forma parte de Digi International, es una empresa líder mundial en el desarrollo de módems de conexión a redes inalámbricas para dispositivos electrónicos. MaxStream dispone de módulos de módems inalámbricos, módems por radio independientes, servicios de diseño de radiofrecuencia y el software correspondiente (Para obtener más información sobre los productos y servicios, póngase en contacto con MaxStream en www.maxstream.net, [email protected]).

Los módulos XBee y XBee-PRO (fabricados por Maxstream), son los primeros productos resistentes de uso industrial con homologación ZigBee, se basan en una plataforma compatible con ZigBee, y cuentan con un rango y una fiabilidad líderes en el sector. Conseguir la homologación como producto ZigBee es todo un logro y sirve para que los consumidores, las empresas y los usuarios de aplicaciones industriales puedan comprar con toda tranquilidad productos homologados ZigBee porque están garantizados para que funcionen perfectamente en red.

Figura 1. Módulo XBEE con homologación ZigBee

Los módulos XBee y XBee-PRO OEM RF presentan una solución excepcionalmente potente para los numerosos mercados que adoptan la conexión a redes inalámbricas para sus aplicaciones de comunicaciones de datos. La línea de productos XBee se puede encontrar en diversas aplicaciones industriales y comerciales, como sensores remotos, control y manipulación de robots, control de equipos y automatización.

Si bien existen bastantes módulos inalámbricos, estos son los que mantienen la relación exacta entre precio y calidad, y debido a su pequeño tamaño y fácil programación (sólo requiere una conexión serial) son ideales para cualquier proyecto.

2. GENERALIDADES DE LOS MODULOS XBEE

Los módulos XBee son módulos de radio frecuencia que trabajan en la banda de 2.4 GHz con protocolo de comunicación 802.15.4 fabricados por Maxstream.

Son utilizados en automatización de casas, sistemas de seguridad, monitoreo de sistemas remotos, aparatos domésticos, alarmas contra incendio, plantas tratadoras de agua, etc,etc.

2.1. Modelos, Funcionamiento, Software y Hardware.

POR: Junior Figueroa Olmedo Página 2 de 91

Page 3: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 2. Módulos RF XBEE

La figura 2 muestra los módulos XBEE, con alcance en interiores de hasta 30 mts y en exteriores el alcance es de hasta 100 mts, con antena dipolo; ahí también se muestran los 3 diferentes tipos de XBEE.

Dimensiones:Ancho: 24.38 mmLargo: 27.61 mm

Alto de antena: 25 mm

En la figura 3 se muestran los módulos XBEE-PRO, con un alcance en interiores de hasta 100 mts y en exteriores el alcance es de hasta 1500 mts con antena dipolo, en la imagen se muestran los 3 diferentes tipos de XBEE PRO.

Dimensiones:Ancho: 24.38 mmLargo: 32.94mm

Alto de antena: 25 mm

Figura 3. Módulos RF XBEE-PRO

Los módulos tienen 6 convertidores análogo-digital y 8 entradas digitales además de Rx y Tx. Trabajan a 2.4 GHz y generan una red propia a la que puedes conectarte o desconectarte. Entre otras características a tener en cuenta hay que decir que son módulos microprocesados con lo cual tienes solucionados los problemas de fallo de trama, ruidos, etc. Los módulos, se comunican con un dispositivo RS232 a niveles TTL con lo cual la comunicación necesita un adaptador intermedio en el caso de un PC, pero pueden conectarse directamente a una placa de desarrollo (ver ejemplos de placas en el apartado 3) como es Arduino.

POR: Junior Figueroa Olmedo Página 3 de 91

Page 4: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Los módulos ofrecen una velocidad de comunicación desde 1200 hasta 115.200 baudios pasando por todos los valores convencionales, también disponen de varias I/O que pueden ser configuradas para diferentes funciones.

Los módulos XBee pueden ser programados a través de una hyperterminal y una interfase serial con un MAX3232 y una serie de comandos llamados AT. El fabricante de los módulos también facilita al usuario un software de programación llamado X-CTU y que puede ser descargado junto con la documentación necesaria desde la página: www.digi.com/support/productdetl.jsp?pid=3352&osvid=57&tp=4&s=31.

Existen dos tipos de interfases, serial y USB que pueden ser utilizadas para programar los módulos XBee con un software propietario llamado X-CTU; con este software podemos definir de una forma rápida todos los parámetros que queramos modificar en nuestros módulos.

En la figura 4 se puede observar la ventana del software X-CTU, con el cual se programan los módulos XBee y XBee PRO, basta con hacer click sobre cualquiera de los parámetros para introducir el valor deseado.

Figura 4. Interfaz Grafica del X-CTU

Una de las ventajas de utilizar estos módulos es que podemos tener hasta 65000 combinaciones distintas de red y se pueden hacer redes de punto a punto y punto a multi-punto. El protocolo 802.15.4 pertenece a las redes PAN (Personal Area Network).

POR: Junior Figueroa Olmedo Página 4 de 91

Page 5: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para utilizar los módulos con cualquier microcontrolador que incorpore comunicación serial, basta con configurar unos cuantos parámetros, lo cual los hace muy fácil de manejar. Al comprar los módulos se te proporciona la información para configurarlos y conectarlos a tus microcontroladores.

El fabricante de los módulos XBee (Digi Internacional, www.digi.com) ofrece entre sus productos ciertos Kit de Desarrollo para realizar la interfaz con los módulos. Así tenemos el Kit de Desarrollo Profesional XBee, que incluye el hardware y el software necesarios para crear rápidamente la comunicación inalámbrica para el intercambio de datos entre estos dispositivos (también están disponibles otros Kit de Desarrollos: XBee y XBee-PRO Starter Kits, que contienen un menor número de módulos y accesorios). En la figura 5 se muestra el Kit de Desarrollo, junto con las tarjetas de interfaz USB y serial.

Figura 5. Kit de desarrollo del fabricante Digi Internacional

El kit de desarrollo incluye lo siguiente:

- 1 Tarjeta de Interfaz USB.

- 1 Tarjeta de Interfaz Serial

- 2 Módulos XBee de alcance de hasta 100 mts.

- 1 Cable USB.

- 1 Cable Serial RS-232.

- 1 Convertidor DB9 NULL MODEM.

- Software X-CTU y Manuales.

- Broche para pila de 9 volts.

- Eliminador de Baterías con Adaptadores Universales (USA, Europa, etc )

El Kit de Desarrollo incluye una tarjeta de interfaz RS-232 y una tarjeta interfaz de USB. Ambas tarjetas proporcionan una conexión directa a muchos dispositivos seriales y, además, facilitan el acceso a los registros del módulo de RF. Con el Kit de Desarrollo es

POR: Junior Figueroa Olmedo Página 5 de 91

Page 6: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

posible ver los datos que se están mandando de un modulo a otro, de esta forma podemos monitorear de forma independiente nuestra comunicación inalámbrica.

Las tarjetas de interfaz de MaxStream proporcionan los medios para conectar el módulo a cualquier nodo que tiene disponible un puerto RS-232 o USB. Dado que el módulo requiere entradas de señales de voltajes TTL, una de las principales funciones de la tarjeta de interfaz es la de convertir señales entre niveles TTL y RS-232 y niveles USB.

Para mayor información sobre el funcionamiento y forma de uso de las tarjetas de interfaz USB y serial, revisar el manual de usuario de los módulos XBee/XBee-PRO, que puede ser descargado desde la página de Digi Internacional www.digi.com (paginas 61 hasta la 67).

Existen dos formas de comunicación (que son las más utilizadas) de los módulos XBEE:

Una es el modo transparente en la cual se comporta como un "cable wireless" de forma que tu puerto serie puede ser transmitido como si de un cable se tratara. Esta es la forma sencilla donde puedes conectar dos dispositivos cuadrando su velocidad, es decir, si tu aplicación trabaja a 19200 baudios deberás programar esta velocidad a los XBee, para ello MaxStream pone a disposición una herramienta software gratuita (X-CTU).

La segunda forma es mas compleja, se trata de utilizar la API que incorpora el microcontrolador de que dispone cada modulo XBee. En esta modalidad puedes generar una red de módulos XBee, puedes programar un XBee para que trabaje como repetidor de señal (hub) además de otras funciones que permiten a los desarrolladores tener ventajas en los protocolos de comunicación... Uno de ellos muy interesante es que el modulo que empleas como emisor/receptor te "dice" si el modulo al que quieres comunicar esta disponible, es decir, te devuelve una respuesta cada vez que intentas comunicar con otro modulo.

Toda la comunicación se hace por medio de comandos AT con lo que es necesario leerse bien el manual, por lo demás es mucho más potente y fiable que muchos módulos comerciales para comunicación serie.

2.2. Características mecánicas y distribución de pines.

La distribución de los pines de los Módulos de Radiofrecuencia XBee y XBee-PRO son compatibles entres sí, tal y como se muestran en las siguientes imágenes.

POR: Junior Figueroa Olmedo Página 6 de 91

Page 7: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 7. Planos mecánicos de los módulos de radiofrecuencia OEM XBee/XBee-PRO (las opciones de antenas no se muestran)

En la tabla 1 se muestra la distribución de los pines de los módulos XBee y XBee PRO.

* Función no es compatible en el momento con esta versión

Tabla1. Distribución de pines tanto para los módulos XBee/XBee-PRO

Notas de Diseño:

Conexiones mínimas: VCC, GND, DOUT y DIN.

Conexiones mínimas para la actualización del firmware: VCC, GND, DIN, DOUT, RTS y

DTR.

La dirección de la señal es especificada con respecto al módulo.

POR: Junior Figueroa Olmedo Página 7 de 91

Page 8: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

El módulo incluye una resistencia pull-up de 50 KΩ, adjunta para RESET (activación

en bajo L).

Varias de las entradas pull-ups pueden ser configuradas utilizando el comando PR.

Los pines libres deben dejarse desconectados.

2.3. Confusión Zigbee y protocolo 802.15.4 en Módulos XBee

Se ha prestado a confusión por parte de los usuarios, sobre el protocolo que soportan los módulos XBEE. Por una parte mencionan el protocolo 802.15.4 y por otra el protocolo ZigBee. Para aclarar esto se debe indicar que los módulos XBEE soportan el protocolo 802.15.4, mientras que los módulos XBEE PRO soportan el protocolo ZigBee.

La principal diferencia entre estos módulos es:

802.15.4 define:

Capa física: tipo de modulación y frecuencia (2.4 Ghz, 16-QAM, 915 Mhz y 868 Mhz DSSS-BPSK) y el formato del paquete.

Control de acceso al medio: timing, asociación con un nodo coordinador, direccionamiento, prevención de colisiones, retransmisión, encriptación, ruteo de 2 saltos a través de un nodo coordinador, etc…

El protocolo ZigBee, construido sobre el protocolo 802.15.4, define:

Capa de red:Estilo AODV, que permite múltiples saltos utilizando el ruteo por redes MESH.Asociación a una red (no sólo a un nodo coordinador como el caso de 802.15.4)Más tipos de encriptación y autentificación.

Capa de Aplicación:Permite a los nodos exponer valores individuales, como sensores, switches o actuadores. Perfiles para varios tipos de dispositivos, etc…

En general los módulos de la serie 2, y Znet 2.5 y los XBEE PRO permiten todas las ventajas del una red ZigBee. Ojala con esta explicación se aclare esta situación.

3. PLACAS DE DESARROLLO COMPATIBLES CON LOS MODULOS XBEE

POR: Junior Figueroa Olmedo Página 8 de 91

Page 9: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

En el apartado 2 se hizo referencia de las tarjetas de interfaz serie y USB suministradas por Digi Internacional que es la empresa fabricante de los módulos XBee; ahora vamos a hablar de otras tarjetas de interfaz fabricadas por distintas empresas.

3.1. Tarjeta De Desarrollo Para Módulos XBee (ZigBee) Basicos y PRO

Figura 8. Vista superior y lateral de la tarjeta de desarrollo

Esta tarjeta te permite poner a funcionar los módulos XBee de inmediato. Solo conéctalo a una fuente de datos seriales RS232 como tu PC y de inmediato comienza a transmitir y recibir información entre ellos.

Esta diseñado para que pueda emplear los módulos XBee Básicos OEM y los XBee PRO intercambiándolos fácilmente por medio de la base especial para los módulos, esta provisto de una interfaz serial completa DTS, RTS, TX, RX, etc, y una fuente regulada con protección de inversión de polaridad. Contiene además una fuente regulada de 3VDC para la alimentación y protección de los módulos XBee.

Tabla 2. Ficha técnica de la tarjeta de desarrolloA continuación se muestran ciertas aplicaciones desarrolladas con esta tarjeta de desarrollo y haciendo uso de los módulos XBEE.

POR: Junior Figueroa Olmedo Página 9 de 91

Page 10: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 9. Control Remoto, Rápido y Fácil

Figura 10. Enlace de datos con solo conectar

POR: Junior Figueroa Olmedo Página 10 de 91

Page 11: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 11. Enlace de datos con solo conectar

3.2. Placa XBee de Arduino

Figura 12. Placa XBee

Esta es una placa para Arduino Diecimila USB que incorpora un módulo inalámbrico XBee de MaxStream. Usa un protocolo modificado de ZigBee y permite establecer comunicaciones inalámbricas.

Ésta placa encaja perfectamente en el Arduino Diecimila USB y se alimenta de ella.

POR: Junior Figueroa Olmedo Página 11 de 91

Page 12: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 13. Arduino Diecimila USB

Se trata de una nueva placa desarrollada por M. Yarza, como parte del proceso de desarrollo realizado por la empresa Libelium de Zaragoza, España, en estrecha colaboración con Arduino.cc.

Figura 14. Placa XBee sobre Arduino GN

El blindaje (Arduino GN) permite fácilmente montar una placa XBee y todos los componentes para su creación y funcionamiento. Cuando conectado sobre una placa Arduino GN sin el procesador, este actuará como un convertidor de USB a XBee convirtiéndose en una interfaz para todos los dispositivos XBee habilitados a un ordenador.

Figura 15. Es posible adjuntar cualquier tipo de módulos XBee

3.3. SFE XBEE EXPLORER USB

POR: Junior Figueroa Olmedo Página 12 de 91

Page 13: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 16. Interfaz SFE XBEE Explorer USB

Características:

• Convertidor de USB a Serie

• Compatible con XBee Serie 1, 2.5, Standard y Pro

El SFE XBee Explorer USB es muy simple de utilizar. Esta unidad trabaja con todos los módulos incluidos XBee las Series 1 y la Series 2.5, la versión estándar y Pro. Coloque el modulo XBee sobre la unidad del XBEE Explorador USB, conecte un cable mini USB, y usted tendrá acceso directo a la programación serial y a los pines en la unidad XBee.

Esta unidad también permite la configuración de los módulos a través del software Xbee X-CTU.

3.4. Droids SAS XBee - DTE Serial Board (DB9)

Figura 17. Interfaz Droids SAS XBee – DTE

La tarjeta de interfaz serial Droids SAS XBee – DTE ha sido diseñada para permitir una fácil y fiable conexión entre los módulos Xbee y tus aplicaciones de Robótica. Los módulos XBee y XBeePRO son totalmente compatibles, incluso la nueva Serie 2 XBee es compatible. La construcción sólida y el regulador de tensión de alta potencia garantizan la máxima fiabilidad y el pleno rendimiento de los módulos XBee. Dos útiles LED permiten un control constante de la actividad de la tarjeta y una rápida solución de problemas. Tiene una salida de 3.3V, 3 LEDs de estado.

POR: Junior Figueroa Olmedo Página 13 de 91

Page 14: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Características

• RSSI y LEDs asociados para supervisar la actividad del módulo Xbee.

• Salida de 3.3V a los dispositivos externos (MCU's, tarjetas, etc)

• Un conector de 9 pines 2.54mm en la parte trasera para una fácil y rápida conexión

• Tamaño compacto, solo unos pocos milímetros más grande que un módulo XBee Pro.

NOTA: En el mercado existen muchas otras interfaces compatibles con los módulos XBEE, el lector puede adquirir y hacer uso de cualquiera de ellas siempre y cuando comprenda su funcionamiento y el modo de manejarlas.

3.5. Construcción de una Tarjeta de Interfaz Serial

Para el desarrollo de los proyectos presentes en este documento, se ha hecho uso de la implementación del circuito de un módulo comercial (Convertidor RS232/Zigbee) que permite realizar de una forma sencilla y económica comunicaciones Zigbee en tu ordenador a través del puerto RS232. Está basado en el famoso módulo XBee de la firma MAXSTREAM. Admite módulos XBEE y XBEE-PRO. Para mayor información, visite la página http://www.ray-ie.com/webray_019.htm.

El circuito se alimenta con una fuente externa de 5 a 12 voltios y tiene protección contra inversión de polaridad, además su funcionamiento ha sido 100% comprobado. Aquí los elementos a emplear:

Elementos:

1 Regleta de Protoboard

Conectores de alimentación

Una fuente variable de 5-15V DC

1 Regulador de voltaje de 5V: L7805C

1 Regulador de voltaje de 3.3V: LM1117T (u otro)

1 Módulo XBee sobre una PCB (hecha anteriormente), para comprobación.

4 LEDs (1 amarillo, 1 verde, 1 rojo, 1 azul)

2 Capacitores de 10 µf

3 Capacitores de 0.1 µf

2 Resistencias de 120 ohm

1 Conector DB9 macho, para placas

En la figura 18, se muestra la circuitería a emplear.

POR: Junior Figueroa Olmedo Página 14 de 91

Page 15: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 18. Diseño de la tarjeta de interfaz: Convertidor RS232/Zigbee

Luego de armar el circuito, conecte la fuente de alimentación (5v a 12v). Cuando el modulo XBee ha sido energizado el LED ROJO debe encenderse indicando que la tarjeta esta funcionando correctamente, el LED VERDE debería permanecer encendido constante indicando que el módulo XBee está encendido (ON) y no en modo de bajo consumo (sleep mode), el LED AMARILLO parpadea, excepto cuando esta en modo de comando AT. Por último el LED AZUL se debe encender cuando se esté enviando o recibiendo datos inalámbricamente.

Figura 19. Circuito armado en el Protoboard

Después de haber comprobado el funcionamiento del circuito en el protoboard, realice la respectiva tarjeta de interfaz (ver figura 20) en baquela o fibra de vidrio, en el cual tiene que usar un cable serial hembra-hembra (ver figura 21) para poder conectar la tarjeta con un puerto serial Windows de la PC. Lo siguiente en hacer, es descargar los instaladores de X-CTU para Windows de MaxStream en este equipo, instalarlo, y poner en marcha el programa X-CTU.

POR: Junior Figueroa Olmedo Página 15 de 91

Page 16: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 20. Circuito implementado en baquela

Figura 21. El primer cable se usa con el circuito armado en el protoboard y el segundo de ellos directamente con la tarjeta de interfaz Convertidor RS232/Zigbee

Si su ordenador no cuenta con puerto serial y solo tiene puertos USB para comunicaciones seriales, no se preocupe en que no pueda utilizar la tarjeta RS232/Zigbee, puesto que en el mercado existen cables de interfaz USB-SERIAL, que usted puede adquirir y están alrededor de unos $12 y hasta más baratos. En la figura 22 se puede observar un de los tantos modelos que existen, y que también se utiliza en este documento.

Figura 22. Cable de interfaz USB-SERIAL

POR: Junior Figueroa Olmedo Página 16 de 91

Page 17: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

4. CONSTRUCCIÓN DE UNA SIMPLE PLACA DE CIRCUITO IMPRESO PCB (PRINTED CIRCUIT BOARD) PARA MODULOS XBEE.

Figura 23. Módulos XBBE sobre placas PCB

Debido a que los pines del Modulo XBee no son compatibles con el tamaño de las separaciones de los agujeros de los protoboards ni con los zócalos para las placas, se hace indispensable crear una PCB que sirva como medio de comunicación entre el protoboard y el modulo XBee, y mediante en empleo de esta realizar la circutería necesaria para poner a funcionar los módulos. Esta placa no es necesaria si cuenta con alguna de las tarjetas o placas de interfaz mencionadas en el apartado 3.

Las dimensiones de una PCB deben estar en proporción a las dimensiones del modulo XBee (33.24mm x 24.38mm para un modulo XBee simple y 39.47mm x 24.38mm para el modulo XBee PRO); las dimensiones utilizadas para la construcción de la PCB se muestran mas adelante (usted puede variar en unos cuantos milímetros estas medidas siempre y cuando respete la dimensiones de los módulos XBee).

4.1. Partes y Elementos a Utilizar

1 Baquelita o fibra de vidrio (el tamaño depende de la cantidad de PCB a fabricar).

1 modulo XBee para cada PCB.

Respacks de espadines (10 espadines en cada uno).

1 Papel de transferencia térmica Press-n-Peel (o papel de transferencia PCB)

1 Funda de Cloruro Férrico.

Impresora Laser.

Plancha de vapor.

1 Esponja de acero, de las utilizadas para lavar los platos (lustre, estrella, etc.).

1 Cautín

Entre otros que se van mencionando en cada paso………

4.2. Procedimiento

Paso 1:

POR: Junior Figueroa Olmedo Página 17 de 91

Page 18: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Lo primero que se necesita para hacer la placa de circuito impreso es el dibujo de las pistas para los elementos, esto se consigue con la ayuda de un computador, y del software PROTEUS, o cualquier software de dibujo en el que usted pueda trazar las líneas y partes de circuito, tal y como se muestra a continuación:

Figura 24. Diseño en el software Proteus, junto con las medidas implementadas

Note que el dibujo esta realizado un espejo, esto lo necesitamos para la transferencia térmica. En la figura 24 también se muestran en los extremos los pines del 1 al 20, correspondientes al modulo XBee; mientras que en el centro se ha empleado y escogido arbitrariamente uno de los CI integrados (dicho integrado debe contar con 20 pines) con los que cuenta PROTEUS, con el fin de fijar el tamaño de separación de los pines compatibles con los agujeros del protoboard. Se observa además que cada pin del modulo esta conectado con cada pin del CI.

De la figura 24 hay que eliminar las franjas del CI que se tomo como referencia (puesto que como se muestran los pines actualmente, se encuentran en cortocircuito), tal y como se muestra a continuación:

Figura 25. Diseño final en Proteus

Paso 2:

POR: Junior Figueroa Olmedo Página 18 de 91

Page 19: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 26. Número de circuitos en Proteus para imprimir

Una vez que se tiene el diseño de la placa, se debe imprimirlo con una impresora láser o copiadora (que tengan los cartuchos toner de polvo en color negro), en un papel de transferencia térmica Press-n.Peel, que lo podemos conseguir en las tiendas electrónicas a un costo de más o menos 2 USD cada hoja.

Figura 27. Diseño impreso en papel de transferencia térmica

Para nuestro caso en particular hemos impreso 3 filas de 5 dibujos en cada una, con lo que tenemos un total de 15 PCBs (en la figura 27 se muestran 18 PCBs, pero en realidad se fabricaron 15). El tamaño de la placa debe ser proporcional a la cantidad de PCBs a fabricar, tal y como se puede apreciar en la grafica anterior.Paso 3:

POR: Junior Figueroa Olmedo Página 19 de 91

Page 20: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Bueno ahora se debe cortar la placa que puede se de Baquelita o de Fibra de vidrio (el tamaño de pende de la cantidad de PCBs) utilizando una sierra o una caladora con sierra de metal (debido a que este posee dientes más finos). Una vez cortada la placa, se debe limpiar las limallas de cobre que quedan en los filos de la placa, con una lija fina de metal (Nro. 150).

Figura 28. Proceso para el corte de la placa

Luego de esto se debe limpiar el lado del cobre donde se va a transferir las pistas con una esponja de acero, notarán que la lámina de cobre cambia de color, esto es porque se está limpiando el óxido en la superficie y los rayones que pudiera tener.

Figura 29. Proceso para limpiar los residuos presentes en la placa

Paso 4:

Ahora vamos a realizar la transferencia térmica propiamente dicha de las pistas sobre el lado de la lámina de cobre. Primero coloque el papel de transferencia térmica con el lado de la impresión sobre el lado del cobre, sin moverlo mucho introdúzcalo de bajo de un trozo de tela (el uso de la tela puede ser omitida), todo esto sobre una mesa rígida y luego pase la plancha que debe estar al máximo de la temperatura, aplique presión con todo el peso del cuerpo por alrededor de 1 a 2 minutos, luego de esto retire e inmediatamente coloque la placa en otra parte de la mesa que se encuentre fría, con otro trapo aplique presión uniforme frotándolo de un lado a otro hasta que se enfrié, con la finalidad de que toda la tinta (toner + barniz) se pegue a la lámina de cobre y así poder retirar el papel sin que se presente partes cortadas o faltantes.

POR: Junior Figueroa Olmedo Página 20 de 91

Page 21: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 30. Proceso para la transferencia térmica

Paso 5:

Una vez completado el paso anterior, procedemos a preparar la solución ácida, primero colocamos ½ vaso de agua tibia en un recipiente de plástico, luego colocamos poco a poco si es posible con una cuchara de plástico, todo el contenido de la funda de cloruro férrico, utilizamos un palillo de pincho para revolver el líquido y así ayudar a disolver el cloruro férrico.

Luego procedemos a introducir la placa que contiene los 15 dibujos en la solución ya preparada, el tiempo de corrosión por ser la primera vez, puede variar entre 15 y 30 minutos. También podemos ayudar a que el proceso sea más rápido, moviendo el líquido de un lado a otro.

Figura 31. Introduciendo la placa en la solución ácida

Paso 6:

Una vez que al ácido terminó de eliminar el cobre expuesto, retiramos la placa del ácido y lo lavamos con abundante agua del grifo, las pistas en esa fase se ven de color negro, por tal razón es mejor limpiar con la misma esponja de acero y un poco de agua, el resultado de la limpieza no deja rastro de tinta y se ve muy nítido.

Figura 32. Pistas finales impresas sobre la placa

POR: Junior Figueroa Olmedo Página 21 de 91

Page 22: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Luego procedemos a cortar cada uno de los dibujos con respecto a los bordes de los mismos y de esta manera obtener los 15 PCBs requeridos.

Figura 33. Cortando cada uno de los PCB para cada módulo XBEE

Lo único que hace falta para que las placas estén listas (sin los elementos soldados) es realizar los respectivos agujeros con una broca de 1 mm, lo ideal es disponer de un taladro miniatura, ya que estos son de fácil manipulación

Figura 34. Haciendo los agujeros en las PCB

Paso 7:

Ahora procederemos a soldar los elementos a las placas, mediante el uso del cautín y demás materiales requeridos. Primero soldamos los espadines 10 en cada lado de cada placa, tal y como se observa e las siguientes figuras:

POR: Junior Figueroa Olmedo Página 22 de 91

Page 23: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 35. Espadines soldados a cada lado de las PCBs

Luego soldamos los pines del módulo XBee a la placa PCB, como se muestra. Las letras serigrafiadas (impresas) en blanco deben mirar hacia arriba, lejos de la cabecera de la placa. Asegúrese de dejar espacio suficiente para que la cabecera de la placa no toque la parte posterior del módulo XBee (pues si se tocasen, esto provocaría un cortocircuito). Una vez soldados todos los pines verificar continuidad.

Figura 36. Soldando el módulo XBEE sobre el PCB

Por último, para limpiar los residuos de la suelda (pasta) que se encuentra en las pistas de la placa, podemos utilizar un cepillo de dientes que ya no se utilice, introducimos las cerdas en un poco de thinner, y cepillamos cuidadosamente.

POR: Junior Figueroa Olmedo Página 23 de 91

Page 24: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 37. Módulo XBEE sobre el PCB, diseño final, varias vistas.

5. CIRCUITO BÁSICO PARA EL XBEE

La figura 38 muestra las conexiones mínimas que necesita el módulo Xbee para poder ser utilizado. Luego de esto, se debe configurar según el modo de operación adecuado para la aplicación requerida por el usuario.

Figura 38. Conexiones mínimas requeridas para el XBEE

El módulo requiere una alimentación desde 2.8 a 3.4 V, la conexión a tierra y las líneas de transmisión de datos por medio del UART (TXD y RXD) para comunicarse con un microcontrolador, o directamente a un puerto serial utilizando algún conversor adecuado para los niveles de voltaje.

Esta configuración, no permite el uso de Control de Flujo (RTS & CTS), por lo que ésta opción debe estar desactivada en el módulo Xbee. En caso de que se envíe una gran cantidad de información, el buffer del módulo se puede sobrepasar. Para evitar esto existen dos alternativas:

bajar la tasa de transmisión

activar el control de flujo

6. CONEXIÓN DE LOS MODULOS ZIGBEE CON MICROCONTROLADORES

POR: Junior Figueroa Olmedo Página 24 de 91

Page 25: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

En las figuras 39 y 40 se muestran los diagramas electrónicos entre el microcontrolador y el módulo XBEE. La conexión con EL módulo XBee o XBee-PRO es idéntica, el regulador IF33 (o también lo puede encontrar como LM1117T) se consigue fácilmente en el mercado. El divisor de voltaje a la salida del microcontrolador es totalmente necesario, ya que el nivel de tensión de entrada del modulo Zigbee no debe exceder los 3.3 voltios, es por eso que se conectan las resistencias en serie para obtener 2/3 del voltaje de salida (5/3*2)= 3.3 voltios. Si nuestro microcontrolador trabaja con niveles de tensión de 3.3 voltios como es el caso del Atmega8535l, no es necesario poner el divisor de voltaje, bastara con aplicar voltaje de 3.3 voltios a todo nuestro circuito.

Figura 39. Conexión del módulo XBEE (que hace de transmisor) con el microcontrolador

Figura 40. Conexión del módulo XBEE (que hace de receptor) con el microcontrolador

POR: Junior Figueroa Olmedo Página 25 de 91

Page 26: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

NOTA: Las conexiones anteriores son útiles para el caso en que se vaya a realizar una comunicación inalámbrica simplex. Cuando se pretende realizar una comunicación de tipo duplex, es necesario que los dos módulos se encuentren conectados al microcontrolador según la configuración mostrada en la figura 39.

7. MODOS DE OPERACIÓN

Los módulos Xbee, pueden operar en los siguientes 5 modos:

Figura 41. Modos de operación del módulo XBEE

7.1. Modo Recibir/Transmitir

Se encuentra en estos modos cuando el módulo recibe algún paquete RF a través de la antena(modo Receive) o cuando se envía información serial al buffer del pin 3 (UART Data in) que luego será transmitida (modo Transmit).

La información transmitida puede ser Directa o Indirecta. En el modo directo la información se envía inmediatamente a la dirección de destino. En el modo Indirecto la información es retenida por el módulo durante un período de tiempo y es enviada sólo cuando la dirección de destino la solicita.

Además es posible enviar información por dos formas diferentes. Unicast y Broadcast. Por la primera, la comunicación es desde un punto a otro, y es el único modo que permite respuesta de quien recibe el paquete RF, es decir, quien recibe debe enviar un ACK (paquete llamado así, y que indica que recibió el paquete, el usuario no puede verlo, es interno de los módulos) a la dirección de origen. Quien envió el paquete, espera recibir un ACK, en caso de que no le llegue, reenviará el paquete hasta 3 veces o hasta que reciba el ACK. Después de los 3 intentos se incrementa el registro de fallas ACK en uno. Para ver el conteo se utiliza el comando EA (ATEA en el Modo de Comandos– ACK Failures), el

POR: Junior Figueroa Olmedo Página 26 de 91

Page 27: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

cual se satura hasta 0xFFFF (65535 decimal). Para resetear el registro se debe ingresar ATEA0. En el modo Broadcast la comunicación es entre un nodo y a todos los nodos de la red. En este modo, no hay confirmación por ACK.

7.2. Modo de Bajo Consumo (Sleep Mode)

El modo de Bajo Consumo o modo Sleep, corresponde cuando el módulo entra en un estado de bajo consumo de energía. Esto depende de la configuración en la que se encuentra. Se debe indicar que el ahorro de energía depende enormemente del voltaje de alimentación.

Para entrar a este modo se debe configurar el comando SM (ATSM – Sleep Mode). Si SM=4 o SM=5, el módulo entra al modo SLEEP cuando transcurre un período dado por el comando ST (ATST-Time Before Sleeping-tiempo antes de dormir). Donde ST posee un rango entre 0 y 0xFFFF (x 1ms). Si SM=4, el módem despertará cada cierto tiempo, dado por SP (ATSP – Cyclic Sleep Period), cuyo rango es entre 0 y 0x68B0 (x10 ms). Cuando despierte buscará por datos entrantes desde un módulo configurado como Coordinador (ver más adelante), en caso de no haber nada, el módem volverá al modo SLEEP. Si SM=5, el módulo realzará lo mismo que antes, pero despertará de acuerdo al estado del pin SLEEP_RQ (pin 9).

Cuando el pin pase a LOW (el pin es disparado por detección de borde, no por nivel), despertará, buscará por datos entrantes, y si no hay nada volverá a cero el timer del comando ST, por lo que sólo volverá a dormir cuando transcurra el período dado por éste. Mientras transcurra ese período, cualquier actividad en el pin SPEEL_RQ será ignorada, hasta que vuelva al modo SLEEP. Si SM=1, el módulo entrará al estado de hibernación. En este estado, si el pin SLEEP_RQ está en HIGH, el módulo cortará cualquier actividad entrante, ya sea de transmisión, recepción o de asociación (se verá más adelante) y entrará al modo SLEEP, y no saldrá de ahí hasta que el pin SLEEP_RQ vuelva a estar en LOW. Mientras se encuentre en el estado de hibernación, no responderá a ninguna actividad serial ni a ningún paquete RF entrante, simplemente los desechará. En el modo hibernación el sistema ahorra una gran cantidad de potencia. Si SM=2, el sistema se comporta igual que el modo de hibernación, pero sin tanto ahorro de energía y además despierta mucho más rápido que el modo anterior.

La siguiente tabla explica lo anterior:

Tabla 3. Tabla de Modo Sleep y consumos de corriente

7.3. Modo de Comando

Este modo permite ingresar comandos AT al módulo Xbee, para configurar, ajustar o modificar parámetros. Permite ajustar parámetros como la dirección propia o la de destino, así como su modo de operación entre otras cosas. Para poder ingresar los comandos AT es necesario utilizar el Hyperterminal de Windows, el programa X-CTU o algún microcontrolador que maneje UART y tenga los comandos guardados en memoria o los adquiera de alguna otra forma.

Para ingresar a este modo se debe esperar un tiempo dado por el comando GT (Guard Time, por defecto ATGT=0x3E8 que equivalen a 1000ms) luego ingresar +++ y luego esperar otro tiempo GT. Como respuesta el módulo entregará un OK. El módulo Xbee

POR: Junior Figueroa Olmedo Página 27 de 91

Page 28: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

viene por defecto con una velocidad de 9600bps. En caso de no poder ingresar al modo de comandos, es posible que sea debido a la diferencia de velocidades entre el módulo y la interfaz que se comunica vía serial.

Figura 42. Ejemplo de Comando AT

En la figura anterior se muestra la sintaxis de un comando AT. Luego de ingresar a este modo, se debe ingresar el comando deseado para ajustar los parámetros del módulo Xbee. La lista de comandos se encuentra en las siguientes secciones.

Por ejemplo si se desea modificar la dirección de origen del módulo de 16-bit (con el comando MY), se debe ingresar:

Figura 43. Ejemplo escritura de parámetros

En el ejemplo anterior, la dirección asignada equivale a 0x3F4F. Se observa que primero se ingresa al modo de comandos AT, recibiendo un OK de respuesta. Luego se ingresa el comando ATMY3F4F y se presiona ENTER o carácter <CR><LF> (Carrier Return y LineFeed) si se maneja desde un microcontrolador. Con ello se recibe un <CR><LF>OK<CR><LF> como respuesta.

Para salir del modo de Comandos se ingresa ATCN y se presiona ENTER. En caso de que no se ingrese ningún comando AT válido durante el tiempo determinado por CT (Command Mode Timeout), el módulo se saldrá automáticamente del modo de comandos. Para que los cambios realizados tengan efecto se debe ingresar el comando ATCN (sale del modo de comandos) o ATAC (aplica los cambios inmediatamente). Con el comando ATWR, se guardan los cambios en la memoria no volátil del módulo, pero sólo tendrán efecto una vez ingresado el comando AC o CN.Para consultar el valor asignado a un comando, éste de debe ingresar directamente sin ningún parámetro. En el ejemplo anterior se ingresaría ATMY. La siguiente figura muestra lo anterior:

POR: Junior Figueroa Olmedo Página 28 de 91

Page 29: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 44. Ejemplo lectura de parámetros

Se observa que se ingresa ATMY, donde el que módulo responde con un 3F4F, que es la dirección que tiene configurada, y luego con un OK. Otra forma de configurar el módulo por comandos AT, es ingresando varios comandos separados por coma (´,´). Esto se muestra a continuación de las dos formas:

Figura 45. Forma normal de escribir

Se observa que luego de ingresar al modo de Comandos (+++), se pregunta por la dirección de destino (ATDL), para lo cual se tiene como respuesta la dirección 0xBB3F. Con ello se modifica esta dirección por 0xCC53 ingresando ATDLCC53, obteniendo un OK como respuesta. Se confirma el correcto ajuste preguntando nuevamente y luego se guarda la configuración en la memoria no volátil del módulo usando ATWR, para lo cual se vuelve a obtener un OK. Posteriormente se saldrá del modo de comando utilizando ATCN obteniendo otro OK. Otra forma de hacer lo mismo se muestra en la siguiente figura:

POR: Junior Figueroa Olmedo Página 29 de 91

Page 30: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 46. Forma abreviada para varios comandos al mismo tiempo

Se observa que luego de ingresar al modo de comandos, se ingresa ATDLCC35, WR, CN que indica que se ingresarán tres comandos en uno, y éstos serán ATDLCC35, ATWR y ATCN. Luego se obtendrá la respuesta para cada comando en el mismo orden en que fueron ingresados.

Además de los modos anteriores, existen otros modos referentes a lo que son la forma de transmitir la información. Estos modos son: Modo Transparente y Modo API.

7.4. Modo Transparente

En este modo todo lo que ingresa por el pin 3 (Data in), es guardado en el buffer de entrada y luego transmitido y todo lo que ingresa como paquete RF, es guardado en el buffer de salida y luego enviado por el pin 2 (Data out), ver figura 47. El modo Transparente viene por defecto en los módulos Xbee.

Figura 47. Correspondencia de BufferEste modo está destinado principalmente a la comunicación punto a punto, donde no es necesario ningún tipo de control. También se usa para reemplazar alguna conexión serial por cable, ya que es la configuración más sencilla posible y no requiere una mayor configuración.

POR: Junior Figueroa Olmedo Página 30 de 91

Page 31: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

En este modo, la información es recibida por el pin 3 del módulo Xbee, y guardada en el buffer de entrada. Dependiendo de cómo se configure el comando RO, se puede transmitir la información apenas llegue un carácter (RO=0) o después de un tiempo dado sin recibir ningún carácter serial por el pin 3. En ese momento, se toma lo que se tenga en el buffer de entrada, se empaqueta, es decir, se integra a un paquete RF, y se transmite. Otra condición que puede cumplirse para la transmisión es cuando el buffer de entrada se llena, esto es, más de 100 bytes de información.

7.5. Modo de operación API

Este modo es más complejo, pero permite el uso de frames con cabeceras que aseguran la transmisión de los datos, al estilo TCP. Extiende el nivel en el cual la aplicación del cliente, puede interactuar con las capacidades de red del módulo.

Cuando el módulo Xbee se encuentra en este modo, toda la información que entra y sale, es empaquetada en frames, que definen operaciones y eventos dentro del módulo.

Así, un frame de Transmisión de Información (información recibida por el pin 3 o DIN) incluye:

• Frame de información RF transmitida.• Frame de comandos (equivalente a comandos AT).

Mientras que un Frame de Recepción de Información incluye:

• Frame de información RF recibida.• Comando de respuesta.• Notificaciones de eventos como Reset, Disassociate, etc.

Esta API, provee alternativas para la configuración del módulo y ruteo de la información en la capa de aplicación del cliente. Un cliente puede enviar información al módulo Xbee. Estos datos serán contenidos en un frame cuya cabecera tendrá información útil referente el módulo.

Esta información además se podrá configurar, esto es, en vez de estar usando el modo de comandos para modificar las direcciones, la API lo realiza automáticamente. El módulo así enviará paquetes de datos contenidos en frames a otros módulos de destino, con información a sus respectivas aplicaciones, conteniendo paquetes de estado, así como el origen, RSSI (potencia de la señal de recepción) e información de la carga útil de los paquetes recibidos.

Entre las opciones que permite la API, se tienen:

• Transmitir información a múltiples destinatarios, sin entrar al modo de Comandos.• Recibir estado de éxito/falla de cada paquete RF transmitido.• Identificar la dirección de origen de cada paquete recibido.

7.6. Modo IDLE

Cuando el módulo no se está en ninguno de los otros modos, se encuentra en éste. Es decir, si no está ni transmitiendo ni recibiendo, ni ahorrando energía ni en el modo de comandos, entonces se dice que se encuentra en un estado al que se le llama IDLE.

8. CONFIGURACIÓN DEL MÓDULO XBEE

En este apartado se explicará cómo configurar los módulos para los distintos tipos de redes que soporta Xbee. Además se mostrarán algunos ejemplos de topologías de redes.Para que los cambios realizados tengan efecto se debe ingresar ATCN (sale del modo de comandos) o ATAC (aplica los cambios inmediatamente).

POR: Junior Figueroa Olmedo Página 31 de 91

Page 32: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

8.1. Direccionamiento de los módulos

Los módulos permiten 2 tipos de direccionamiento. La de 16 bit y la de 64 bits. La principal diferencia es que en la de 64 bit, es posible obtener una mayor cantidad de direcciones y por lo tanto, una mayor cantidad de nodos o equipos funcionando en la misma red. Son a través de estas direcciones que los módulos se comunican entre sí.

La dirección de origen de 16 bits del módulo se define arbitrariamente con el comandoMY (ATMY – 16 bit Source Address). La de destino con los comandos DL (ATDL – Destination Address Low) y DH (ATDH - Destination Address High).

8.1.1. Direccionamiento de 16 bit

El comando MY, define un número de 16 bit como dirección del módulo dentro de la red. El rango se encuentra entre 0x0 y 0xFFFE (la dirección 0xFFFF y 0xFFFE son para habilitar la dirección de 64-bit, por lo que si se desea utilizar direccionamiento de 16 bits, estos valores no deben ser usados). Para definirla se ingresa ATMY y el número en formato hexadecimal, pero sin el ‘0x’. Por ejemplo si a un módulo se le quiere asignar la dirección 0x3BF1 (15345 en decimal), entonces se debe ingresar el comando ATMY3BF1.

El comando DL, permite definir un número de 16 bit como dirección del módulo de destino dentro de la red al cual se va a realizar la comunicación. El rango debe estar entre 0x0 y 0xFFFE (las direcciones 0xFFFE y 0xFFFF se utilizan para direccionamiento de 64 bits).

Así para habilitar el direccionamiento de 16 bit, se debe utilizar una dirección menor a 0xFFFE con el comando MY, de igual modo para DL y se debe dejar en cero el comando DH=0 (ATDH0). No se permite usar la dirección 0xFFFE ni 0xFFFE para el direccionamiento de 16 bits.

8.1.2. Direccionamiento de 64 bits

El número 0xFFFF y 0xFFFE del comando MY, se usa cuando se desea desactivar el direccionamiento de 16 bit, y se habilita el uso de la dirección de 64 bit. Con este direccionamiento ya no es posible definir la dirección de origen del módulo, ya que ésta se asigna automáticamente. En este caso, la dirección del módulo corresponde a su número serial, que viene de fábrica y el cual es imposible de cambiar. Este número se encuentra guardado en dos variables de 32 bit cada una (SL y SH) y es único. SL lee los 32 bit menos significativos del número serial y SH los 32 más significativos.

Cuando se utiliza direccionamiento de 64 bit, para asignar una dirección de destino, se utilizan los comandos DL y DH. Éstos son de 32 bit cada uno (para el direccionamiento de 16 bit, DL se maneja como uno de 16, mientras que DH se mantiene en cero) y juntos (DL+DH) forman el número de 64 bit que debe corresponder con el número serial de otro módulo formado por SL+SH. Así para algún dato, DL debe ser igual a SL y DH debe ser igual a SH, donde SL+SH corresponden al número serial de un módulo destino configurado para direccionamiento de 64 bits.

Para el direccionamiento de 64 bit, se debe dejar MY como 0xFFFF (ATMYFFFF) o0xFFFE (ATMYFFFE) y elegir una dirección de destino usando DL+DH, que debe corresponder a una dirección de 64 bit de otro módulo, indicando su número serial dado por SL+SH. Para consultar este número se debe ingresar ATSL (32 bit menos significativos) y luego ATSH (32 bit más significativos), entregando como respuesta los números seriales en formato hexadecimal.

8.2. Modo de Conexión Transparente

POR: Junior Figueroa Olmedo Página 32 de 91

Page 33: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Esta es la conexión que viene por defecto y es la forma más sencilla de configurar el módem. Básicamente todo lo que pasa por el puerto UART (DIN, pin 3), es enviado al módulo deseado, y lo recibido en el módulo, es enviado devuelta por el mismo puerto UART (DOUT, pin2).

Existen básicamente 4 tipos de conexión transparente. La diferencia principal radica en el número de nodos o puntos de acceso, y la forma en que éstos interactúan entre sí.

8.2.1. Punto a Punto

Es la conexión ideal para reemplazar comunicación serial por un cable. Sólo se debe configurar la dirección. Para ello se utilizan los comandos MY y el DL. La idea, es definir arbitrariamente una dirección para un módulo, usando el comando MY, el cual se va a comunicar con otro que tiene la dirección DL, también definida arbitrariamente. Con esto cada módulo define su dirección con MY, y escribe la dirección del módulo al cual se desea conectar usando DL.

En este modo, el módulo receptor del mensaje envía un paquete al módulo de origen llamado ACK (viene de Acknowledgment) que indica que el mensaje se recibió correctamente.

En la siguiente figura se muestra un pequeño ejemplo donde las direcciones se eligieron arbitrariamente:

Figura 48. Configuración modulo 1

Se observa que en el módulo 1, se ajustó la dirección de origen como 0x3BA2 (ATMY3BA2), mientras que la dirección de destino se asignó como 0xCC11 (ATDLCC11) que corresponde al módulo 2. En el otro módulo se observa lo siguiente:

POR: Junior Figueroa Olmedo Página 33 de 91

Page 34: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 49. Configuración modulo 2

En este módulo se asignó como dirección de origen 0xCC11 (ATMYCC11) y como dirección de destino 0x3BA2 (ATDL3BA2) que corresponde al módulo 1. La siguiente figura muestra un ejemplo gráfico de lo anterior.

Figura 50. Ejemplo direccionamiento 16 y 64 bit

En la figura 50 se muestra que la primera conexión es una punto a punto utilizando direccionamiento de 16 bit, mientras que la segunda utiliza direccionamiento de 64 bits. Una vez configurado, el módem se encuentra listo para funcionar. Así todo lo que se transmite por el pin DIN de un módulo, es recibido por el pin DOUT del otro. Para que el modo Punto a Punto funcione, los módulos deben pertenecer a la misma PAN ID y al mismo canal. Más adelante se explica cómo configurar la PAN ID y el Canal.

8.2.2. Punto a Multipunto

POR: Junior Figueroa Olmedo Página 34 de 91

Page 35: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Esta conexión, permite prestaciones extras. Se diferencia del Broadcast, en que permite transmitir información, desde la entrada serial de un módulo (DIN, pin 3) a uno o varios módulos conectados a la misma red de manera más controlada, ya que se necesitan las direcciones de los otros módulos, por lo que existe mayor seguridad. Para esto se necesitan dos comandos más aparte de MY y DL. Se utilizará el direccionamiento de 16 bits.

El primer comando es el ID de la PAN (Personal Area Network- Red de Área Personal). Todos los módulos que tengan idéntico PAN ID, pertenecerán a la misma red. El comando para configurar este valor es ID, es decir, ATID, y su rango va entre 0x0 y 0xFFFF. Por ejemplo si queremos ajustar el PAN ID como 0x3332, se debe ingresar ATID3332. Este parámetro también es arbitrario, al igual que MY y DL.

El otro comando corresponde al canal por el cual se va a comunicar. Según la figura 51, se disponen de 16 canales según el protocolo IEEE 802.15.4. Este estándar indica que entre cada canal, deben existir 5 MHz de diferencia, partiendo de la frecuencia base 2.405 GHz, se llegan hasta los 2.480 GHz.

Figura 51. Canales disponibles para el protocolo IEEE 802.15.4

Se observa que hay 16 canales disponibles, sin embargo, los valores se asignan desde el 11 hasta el 26. Para calcular la frecuencia central se utiliza la siguiente fórmula:

Canal = 2.405 + (CH −11)×0.005 [GHz]

Donde CH equivale al número del canal entre 11 y 26. Así para cambiar de canal se utiliza el comando CH con el número de canal en formato hexadecimal. Es decir, si se desea ocupar el canal 15 (0x10), se ingresa ATCH10. La tabla 4 muestra la frecuencia central de cada canal, así como su límite inferior y superior.

La elección del canal debe ser cuidadosa, ya que otras tecnologías como WI-FI o Bluetooth utilizan el mismo espectro de frecuencias, por lo que se podría producir interferencia.

POR: Junior Figueroa Olmedo Página 35 de 91

Page 36: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Tabla 4. Frecuencia de Canales y su respectivo Comando AT

Con todo lo anterior, es posible configurar una PAN y hacer una conexión punto a multipunto. La red se vería como:

Figura 52. Configuración punto-a-multipunto

POR: Junior Figueroa Olmedo Página 36 de 91

Page 37: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Así en cada nodo se configura una dirección MY distinta, pero utilizando el mismo canal y el mismo PAN ID, que en la figura corresponden al canal 15 (0x10) y al ID 0x3332 de la PAN.

Para que cada módulo reciba la información, debe ser estrictamente necesario que tengan tanto el mismo canal, como el mismo PAN ID. Incluso si se trabaja en Broadcast o punto a punto los módulos deben coincidir en ello. Los módulos vienen por defecto configurados con el canal 0x0C y el PAN ID 0x3332 por defecto.

Esta configuración, permite enviar información más controlada, ya que es necesario pertenecer tanto al mismo canal, como a la misma red. Además para enviar información se debe ingresar la dirección del módulo de destino, por lo que es necesario el conocimiento completo de la red. En los módulos más avanzados, como Xbee PRO, el reconocimiento de la red se realiza automáticamente.

8.2.3 Broadcast

Esta configuración permite el envío de información desde un nodo a varios nodos en una misma red PAN. La información recibida es la misma para todos los nodos. Para que un módulo entregue datos a todos los nodos, es necesario ajustarlo con la dirección de Broadcast. Cualquier módulo que reciba un paquete con una dirección de destino de Broadcast será aceptado. La dirección de Broadcast es:

DL=0x0000FFFF

DH=0x00000000

Esta dirección puede ser configurada en todos los nodos de la red, ya sea que estén en direccionamiento de 16 o 64 bits. Así se puede ingresar ATDH0 y ATDL0000FFFF en todos los módulos para que el modo broadcast esté habilitado. Para que este modo funcione, los módulos deben pertenecer a la misma PAN ID y al mismo canal. La figura 53 muestra una red de Broadcast en cada nodo:

Figura 53. Red de Broadcast

POR: Junior Figueroa Olmedo Página 37 de 91

Page 38: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Se observa en la figura 53 la configuración de Broadcast. Si se envía algún dato por el módulo 0x0001, la información enviada será recibida por igual en el resto de los módulos(0x0002, 0x0003 y 0x0004). Del mismo modo si se envía algún dato por otro módulo, por ejemplo por el 0x0004, este dato le llegará al resto, es decir, al 0x0001, 0x0002 y al 0x0003. Cabe mencionar que este tipo de red o de envío de datos, no entrega respuesta de recibo o ACK, por lo que no es posible saber si el paquete fue entregado correctamente o si es que llegó.

Si se ajusta la dirección PAN ID del módulo como ID=0xFFFF, se produce Broadcast a todas las redes PAN. Esto es, los datos son transmitidos a las distintas redes PAN, pero no se confirma la entrega de éstos (no se recibe ACK). Si se ingresa ID=0xFFFF y además DL=0xFFFF se realiza doble broadcast, es decir, además de transmitirse los datos a todas las redes PAN, el mensaje es transmitido a todos los módulos de cada una de ellas. Si se ingresa ID=0xFFFF y DL=0xAAAA (dirección arbitraria), los datos son transmitidos a todos los módulos que posean la dirección AAAA, pero que no necesariamente se encuentren en la misma red PAN.

NOTA: Por el momento, hasta el apartado 8.2.3 vamos a llegar explicando acerca de las configuraciones más conocidas y utilizadas por los módulos XBEE. Ahora nos dedicaremos a programar los módulos con los conocimientos hasta ahora adquiridos, y a realizar algunos ejemplos prácticos. Más adelante se retomará el tema de las configuraciones faltantes.

9. MANEJO Y FUNCIONAMIENTO DEL SOFTWARE X-CTU

Si bien es cierto que es posible utilizar Hyperteminal de Windows para configurar un módulo Xbee, existe un programa llamado X-CTU, el cual permite realizar estas operaciones de manera más natural, fácil y rápida.

El ejecutable se puede encontrar en la página oficial de Xbee (www.digi.com). Una vez instalado correctamente el software, este puede ser accedido haciendo clic sobre el icono que se encuentra en el escritorio o desde el menú de la pestaña Inicio, ver figura 54.

Figura 54. Corriendo X-CTU desde el menú InicioAl correr el programa, tú podrás observar cuatro pestañas que conforman toda ventana del software X-CTU (ver figura 55). Cada una de esas pestañas tiene una función diferente, que se explicará a continuación.

POR: Junior Figueroa Olmedo Página 38 de 91

Page 39: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 55. Ventana que se abre tras hacer clic sobre el icono X-CTU

PC Settings: Permite al usuario seleccionar el puerto COM y configurar ese puerto para adaptarse a la configuración realizada sobre el módulo XBEE.

Range Test: Permite a un cliente para realizar una serie de pruebas entre dos módulos.

Terminal: Permite acceder o no a los puertos COM del computador, mediante un programa de emulación. Esta pestaña también permite la posibilidad de acceder al firmware de los módulos utilizando comandos AT.

Modem Configuration: Permite la posibilidad de programar las configuraciones del firmware de los módulos a través de una interfaz gráfica de usuario. Esta pestaña también permite a los clientes la posibilidad de cambiar las versiones de firmware.

A continuación se va a profundizar cada una de estas pestañas.

9.1. Pestaña PC Settings

Cuando el programa se inicia, por defecto, la pestaña seleccionada es la "PC Settings". La pestaña PC Settings se divide en tres áreas básicas: Com Port Setup (configuración del

POR: Junior Figueroa Olmedo Página 39 de 91

Page 40: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

puerto COM), Host Setup (configuración del Host), y User Com Ports (usuario de los puertos COM).

9.1.1. COM Port Setup (Configuración del Puerto COM)

La pestaña PC Settings permite al usuario seleccionar un puerto COM y configurar dicho puerto una vez seleccionado y accedido. Algunas de esas configuraciones son:

Baud Rate (Velocidad de Transmisión): Estándar y no estándar

Flow Control (Control de Flujo): Hardware, Software (Xon/Xoff), None

Data bits (Bit de Datos): 4, 5, 6, 7, and 8 data bits

Parity (Paridad): None, Odd, Even, Mark and Space

Stop bit (Bit de Parada): 1, 1.5, y 2

Para cambiar cualquiera de las opciones anteriores, seleccione el menú desplegable de la izquierda del valor y seleccionar la opción deseada. Para introducir una velocidad de transmisión no estándar, escriba la velocidad de transmisión a la izquierda del recuadro correspondiente a la etiqueta Baud Rate.

El botón Test/Query (Prueba/Consulta) se utiliza para probar el puerto COM seleccionado y las configuraciones de la PC. Si las configuraciones y el puerto COM son correctos, usted recibirá una respuesta similar a la que se muestra en la Figura 56.

Figura 56. Ventana que aparece si las configuraciones del puerto están correctas

9.1.2. Host Setup (Configuración del Host)

La pestaña Host Setup permite al usuario configurar la forma en que el programa X-CTU va hacer interfaz con el firmware del módulo XBEE. Esto incluye determinar si será la API o el modo de comando AT que se utilizará para acceder al firmware de los módulos, así como el carácter de modo comando adecuado y la secuencia.

Por defecto, las configuraciones del Host son los siguientes:

API mode (Modo API): not enabled (Not checked)

Command mode Character (Caracter de Modo Comando): + (ACSII) 2B (Hex)

Before Guard Time: 1000 (1 Sec)

After Guard Time: 1000 (1 Sec)

Este es el valor por defecto de nuestros módulos XBEE. Si este no es el valor de los comandos AT, BT, o GT del módulo conectado, ingrese en el valor respectivo aquí.

POR: Junior Figueroa Olmedo Página 40 de 91

Page 41: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

9.1.3. User COM Ports (Usuarios de los Puertos COM)

La opción User COM Ports permite al usuario "Añadir" o "Borrar" un usuario creado puerto COM. Esto es sólo para uso temporal. Una vez que el programa se ha cerrado, el usuario creado puerto COM desaparecerá y ya no será accesible para el programa.

9.2. Pestaña Range Test

En la pestaña Range Test (ver figura 57), es posible enviar una cadena de datos de cualquier tipo para probar el rango de alcance de la señal. Esto genera automáticamente datos y los envía por el módulo, de tal forma que permite verificar cuales datos llegan buenos y cuales no y a partir de esa estadística determinar el rango o alcance de la señal.

Figura 57. Pestaña Range Test

POR: Junior Figueroa Olmedo Página 41 de 91

Page 42: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 58. Realizando un Range Test entre dos módulos XBEE

9.2.1. Paquete de Datos y Tamaño

Por defecto, el tamaño del paquete de dato enviado es de 32 bytes. Este paquete de datos especificado puede ser ajustado ya sea en el tamaño o el texto enviado

Para modificar el tamaño del paquete enviado, cambie el valor en la casilla que se encuentra a la lado del botón "Create Data" y haga clic en "Create Data" (véase la figura 59). Si desea modificar los datos enviados, elimine el texto que se encuentra en la ventana transmitir y escriba su texto deseado (véase la figura 59). Para comenzar hacer el Range Test de clic en el botón Start.

Al modificar el texto, el tamaño del paquete de datos, el retardo de paquetes y el tiempo de recibir los datos, el usuario será capaz de simular una amplia gama de escenarios.

POR: Junior Figueroa Olmedo Página 42 de 91

Page 43: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 59. Modificando el tamaño del paquete y los datos enviados.

Figura 60. Realizando un Range Test entre dos módulos XBEE, con los nuevos parámetros

POR: Junior Figueroa Olmedo Página 43 de 91

Page 44: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

9.2.2. RSSI

La opción RSSI del X-CTU permite al usuario ver el RSSI (Received Signal Strength - Indicador de Señal Recibida) de un paquete recibido cuando se realizan una serie de pruebas.

Figura 60. Realizando un Range Test entre dos módulos XBEE, con la opción RSSI habilitada

9.2.3. Función API

El X-CTU también permite al usuario probar la función API de un módulo XBEE durante un Range Test (una serie de pruebas).

Para llevar a cabo un Range Test con la función API del módulo, siga los pasos que se indican a continuación:

1. Configure el módulo XBEE base con la opción API habilitada y una única dirección de origen de 16 bits o 64 bits.

2. Configure el módulo XBEE remoto con una única dirección de origen y establezca la dirección de destino que debe ser igual a la dirección de origen del módulo XBEE base

POR: Junior Figueroa Olmedo Página 44 de 91

Page 45: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

(más adelante cuando se haga referencia a la pestaña Modem Configuration se explicará como configurar la dirección de origen y destino).

3. Habilitar la opción API del X-CTU, que se encuentra en la pestaña PC Settings (ver figura 61) y conectar el módulo XBEE base a la PC.

4. Conecte el módulo XBEE remoto con el circuito de acople necesario (ver apartado 6) y colóquelo a una distancia apartada.

5. Introduzca cualquiera de los 16 bits o 64 bits de la dirección destino del módulo XBEE remoto dentro de la casilla correspondiente a “Destination Address” en la pestaña Range Test (véase la figura 62).

6. Cree un paquete de datos de su elección escribiendo en la casilla correspondiente a la transmisión (ver figura 62).

7. Para iniciar un Range Test, haga clic en Stara (ver figura 62).

Usted notará algunos mensajes de fallas de TX, Purge, CCA, y ACK, mientras que el Range Test se lleva a cabo. Para detener un Range Test, haga clic en el botón Stop.

Figura 61. Habilitando la opción API en la Pestaña PC Settings

POR: Junior Figueroa Olmedo Página 45 de 91

Page 46: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 62. Configuración de un Range Test en modo API

9.3. Pestaña Terminal

La pestaña Terminal tiene tres funciones básicas:

Terminal Emulador

Capacidad para enviar y recibir datos predefinidos (Assemble packet)

Capacidad para enviar y recibir datos en formatos hexadecimal y ASCII (Show/

Hide hex)

9.3.1. El espacio principal de la ventana Terminal

La porción en blanco de esta pestaña es donde la mayoría de las comunicaciones de información se producirán, mientras el X-CTU sea usado como un terminal emulador. El texto en azul es lo que se ha escrito y será enviado hacia el módulo XBEE mediante el puerto serial, mientras que el texto en rojo es la entrada de datos (respuesta) desde el módulo XBEE mediante el puerto serial (ver figura 63).

POR: Junior Figueroa Olmedo Página 46 de 91

Page 47: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 63. Algunos parámetros enviados y recibidos por el módulo XBEE, utilizando la ventana principal de la pestaña Terminal

9.3.2. Assemble Packet

La opción Assemble Packet que se encuentra en la pestaña Terminal está diseñada para permitir al usuario ensamblar un paquete de datos en cualquiera de los dos caracteres ASCII o hexadecimal. Esto se logra mediante la selección de la ventana Assemble Packet y eligiendo ya sea en ASCII (por defecto) o hexadecimal. Una vez seleccionado, el paquete de datos, es ensamblado escribiendo los caracteres deseados como se ilustra en la figura 64 y haciendo clic en el botón Send Data.

Figura 64. Utilizando la opción Assemble Packet, para enviar un paquete de datos tipo ASCII

POR: Junior Figueroa Olmedo Página 47 de 91

Page 48: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Los indicadores de Line Status que se observan en la figura 63, muestran los estados de las lineas del control de flujo del hardware RS-232. El color verde indica que la línea esta afirmada mientras que el color negro indica por afirmar.

La opción Break (ver figura 63) es para realizar el salto de línea en serie. Esto puede ser logrado chequeando o validando la opción Break. Validando el Break pondrá la línea DI en alto y evitará que los datos se envíen hacia el módulo XBEE.

9.4. Pestaña Modem Configuration

La pestaña Modem Configuration tiene cuatro funciones básicas:

1. Proveer una interfaz gráfica de usuario con el firmware del módulo XBEE.

2. Leer y escribir firmware al microcontrolador interno del XBEE.

3. Descargar archivos de actualización del firmware, ya sea desde el Internet o

desde un archivo comprimido.

4. Guardar o leer el perfil de un módem

Figura 65. Ventana principal de la pestaña Modem Configuration9.4.1. Leyendo el firmware del XBEE

POR: Junior Figueroa Olmedo Página 48 de 91

Page 49: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para leer el firmware del módulo XBEE, siga los pasos que se indican a continuación:

1. Conecte el módulo XBEE a la tarjeta de interfaz y conéctela al puerto correspondiente de la PC (por ejemplo, USB, RS232, Ethernet, etc.)

2. Establezca en la pestaña PC Settings (véase la figura 55) las configuraciones por defecto del módulo XBEE (o establecer los parámetros hechos al módulo en la última configuración).

3. En la pestaña Modem Configuration, seleccione "Read" que se encuentra en la etiqueta Modem Parameters and Firmware (véase la figura 66).

Figura 66. Una vez que se ha leído el Firmware del módulo XBEE

9.4.2. Haciendo cambios al Firmware del XBEE

Una vez que se ha leído el firmware, los ajustes de configuración se muestran en tres colores (ver Figura 66):

Negro - no configurable o sólo de lectura

POR: Junior Figueroa Olmedo Página 49 de 91

Page 50: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Verde - Valor por defecto

Azul – parámetros especificados por el usuario

Para modificar cualquiera de los parámetros configurables por el usuario, haga clic en el comando y tipo asociado, en el nuevo valor para ese parámetro. Para facilitar la comprensión de un comando específico y una vez que el comando está seleccionado, una breve descripción junto con sus límites es presentada en la parte inferior de la pantalla. Una vez que todos los nuevos valores se han introducido, estos valores están listos para ser guardados en la memoria no volátil del módulo XBEE.

9.4.3. Escribiendo nuevos cambios del Firmware en el XBEE

Para escribir los cambios de parámetros en la memoria no volátil del módulo XBEE, haga clic en el botón Write situado en sección Modem Parameters and Firmware (véase la figura 67).

Figura 67. Respuesta del módulo XBEE una vez guardados los nuevos parámetros

 9.4.4. Descargando Archivos de Actualizacion del Firmware.

POR: Junior Figueroa Olmedo Página 50 de 91

Page 51: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Otra función de la pestaña Modem Configuration es la que permite al usuario descargar los archivos de actualización del firmware, ya sea por Internet o instalarlos desde un disco o CD. Esto se logra mediante el siguiente proceso:

1. Clic sobre la opción Download New Versions… prevista en la sección Versions, ver figura 67.

2. Haga clic sobre Web para descargar los nuevos archivos de firmware de Internet. Caso contrario dar clic sobre File cuando los archivos de instalación se encuentran comprimidos en algún CD o guardados en un disco (ver figura 68, 69 y 70), entonces busque la ubicación del archivo guardado y haga clic en Open (ver Figura 71).

3: Haga clic en OK y Done cuando se le pida.

Figura 68. Ventana para descargar actualizaciones Figura 69. Descargando las actualizaciones desde internet

Figura 70. Una vez finalizada la descarga de todos los archivos

POR: Junior Figueroa Olmedo Página 51 de 91

Page 52: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 71. Descargando las actualizaciones desde un CD o un disco.

 9.4.5. Perfiles de Módem

El X-CTU tiene la capacidad de guardar y escribir perfiles módem o la configuración para los módulos XBEE. Esta función es útil en un entorno de producción cuando los mismos parámetros deben fijarse en varios módulos XBEE.

Cómo guardar un perfil:

1. Establezca la configuración deseada en el firmware del módulo XBEE, tal como se describe en la sección Haciendo cambios al Firmware del XBEE.

2. Haga clic en Save (guardar) en la sección Profile (ver figura 67).

3. Escriba el nombre de este perfil en la casilla Nombre (ver figura 72).

4. Vaya a la ubicación donde desea guardar su perfil

5. Haga clic en Guardar

POR: Junior Figueroa Olmedo Página 52 de 91

Page 53: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 72. Ventana para buscar la ubicación donde se va a guardar el perfil

 Cómo cargar un perfil guardado:

1. Haga clic en Load (cargar) en la sección Profile (ver figura 67).

2. Vaya a la ubicación donde se encuentra el archivo deseado y haga clic en dicho archivo (véase la figura 73).

3. Haga clic en Abrir.

Figura 73. Ventana para buscar la ubicación del perfil a utilizar

POR: Junior Figueroa Olmedo Página 53 de 91

Page 54: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para guardar el perfil al módulo XBEE una vez que se haya cargado el archivo, siga los pasos descritos en la sección Escribiendo nuevos cambios del Firmware en el XBEE.

9.5. Ejemplo de configuración de dos módulos XBBE usando X-CTU

Este ejemplo se va a llevar a cabo, con la ayuda de nuestra tarjeta de evaluación (serial o USB), para poder comunicar los módulos XBBE con el software X-CTU. Con el siguiente ejemplo, programamos un par de módulos XBEE para que nada mas se puedan ver entre ellos, de esta manera evitamos interferencias de otros módulos que puedan existir en el ambiente aéreo. Este será nuestro primer paso para familiarizarnos con la manipulación de los XBEE.

Usando la pestaña PC Settings en el programa X-CTU, seleccione el puerto COM con el circuito conectado a este. La mayoría de las veces este será el COM1.

La configuración por defecto es 9600, NONE, 8, NONE y 1. A menos que haya cambiado a otra velocidad en baudios u otra configuración hecha al XBee sobre el cual usted está programando, estos ajustes por defecto deberían estar bien.

Figura 74. Configuraciones del puerto COM1Para verificar la correcta comunicación presionar el botón Test/Query (ver figura 74) que esta sobre el panel PC Settings y si la comunicación está bien aparecerá la siguiente

POR: Junior Figueroa Olmedo Página 54 de 91

Page 55: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

ventana con la información del modelo del módulo XBee que se usa y la versión del Firmware. Si esta prueba no se realizó correctamente, verifique cuidadosamente su cableado y conexiones de soldadura antes de continuar.

Figura 75. Ventana que aparece si las configuraciones del puerto están correctas

Luego, basta con programar 3 parámetros bastante sencillos para poder conectar nuestros módulos. Estos parámetros son:

MY     dirección origen

DL      dirección destino

BD      baud rate  (velocidad de transmisión)

Antes de modificar algún parámetro haz clic en la pestaña Read (que está en Modem Configuration) para obtener la información que tiene grabada tu modulo XBEE.

Figura 76. Configuración módulo XBEE transmisorEn la figura 76 se muestra la programación que deberá llevar el transmisor (que coincide con los parámetros leídos con el botón Read). En el parámetro MY introducimos el valor 123 y en el parámetro DL introducimos el valor 321. Esto se traduce de la

POR: Junior Figueroa Olmedo Página 55 de 91

Page 56: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

siguiente manera en términos generales: nuestro transmisor se llama 123 y le transmite a nuestro receptor que se llama 321, los valores pueden ser cualesquiera, se usaron estos valores solo como un ejemplo.

Figura 77. Configuración módulo XBEE receptor

En esta imagen se muestra la programación que deberá llevar el receptor.En el parámetro MY introducimos el valor 321 y en el parámetro DL introducimos el valor 123. Esto se traduce de la siguiente manera en términos generales: nuestro receptor se llama 321 y solo recibe de nuestro transmisor que se llama 123

El ultimo parámetro a configurar es el de BD (del menú Serial Interfacing), aquí introduciremos el valor de la velocidad a la cual nuestro microcontrolador enviara y recibirá datos. Por defecto, los módulos vienen programados a 9600 baudios, basta seleccionar el parámetro al valor deseado (ver figura 78).

POR: Junior Figueroa Olmedo Página 56 de 91

Page 57: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 78. Configuración de la velocidad de transmisión tanto para el módulo XBEE transmisor y receptor

Una vez hecho todo lo anterior, haz click en la pestaña Write (ver figura 78) para que todos los cambios se queden grabados permanentemente en el modulo XBEE. Con la programación de estos 3 sencillos parámetros, nuestros módulos están listos para trabajar.

NOTA: No olvides que los módulos se alimentan con 3.3 voltios y no permiten entrada de señal que no sea de ese nivel de tensión, ya que pueden sufrir daños permanentes.

POR: Junior Figueroa Olmedo Página 57 de 91

Page 58: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

10. INSTRUCCIONES DEL SOFTWARE PIB BASIC PRO PARA COMUNICACIONES SERIALES CON MICRONTROLADORES

En este apartado se mencionarán las instrucciones necesarias para establecer una comunicación entre dos dispositivos que incorporen comunicación serial mediante el software PIC BASIC PRO para microcontroladores. Por lo que, no se explicarán todas las instrucciones que se vayan a utilizar en la programación, es decir, que el lector debe de revisar un manual o libro de programación de PIC BASIC PRO; en el Internet puede conseguir muchos manuales en español, pero le recomiendo un manual completo que lo puede encontrar en la dirección http://www.todopic.com.ar/pbp_sp.htm l , el cual le servirá de guía para que comprenda el funcionamientos de los programas que más adelante se desarrollarán.

Cabe de mencionar también, que el lector no está limitado a solo emplear este software de programación para microcontroladores, en el mercado existen muchos otros como Assembler, Compilador C CCS, etc…. así que el lector puede desarrollar la programación con el software que mas se le facilite, claro está, utilizando como guía los ejemplos de este documento.

Ahora sí, empecemos con la explicación de las instrucciones que vamos a emplear, las cuales son: SEROUT, SERIN, SEROUT2 y SERIN2.

10.1. LA DECLARACIÓN SEROUT

Esta declaración sirve para enviar datos seriales en un formato estándar asincrónico usando 8 bits de dato, sin paridad y 1 bit de parada, (8N1), y para poder utilizarlo debemos incluir al comienzo del programa la siguiente línea:

INCLUDE “modedefs.bas” ; ‘incluir el programa modedefs.bas(modos de comunicación)

Esto significa incluir el programa modedefs.bas en esta línea, aquí se encuentran algunos de los parámetros para las comunicaciones, por ejemplo en nuestro caso las velocidades de transmisión que son: para dato invertido N300, N1200, N2400, N9600, y para dato verdadero: T300, T1200, T2400, T9600. Los datos invertidos por ejemplo el N2400, quiere decir que un 1 lógico vale 0V y un 0 Lógico vale 5V, en cambio para dato verdadero por ejemplo el T2400 el 1 lógico vale 5V y el 0 lógico vale 0V. Ejemplos:

SEROUT portb.1, N2400,[“HOLA”]; ‘enviar la palabra ASCII “HOLA” por el puerto B1 a una ‘velocidad de 2400 8N1, en dato invertido.

SEROUT portb.1, T2400,[#num,”A“]; ‘enviar el contenido decimal de la variable num ‘seguido de la letra “A”, a una velocidad de 2400 ‘baudios, en dato verdadero.

SEROUT portb.1, T2400,[#123,”A“]; ‘enviar “1”, “2”, “3” en formato decimal seguido ‘por la letra “A”, a una velocidad de 2400 ‘baudios, en dato verdadero.

10.2. LA DECLARACIÓN SERIN

Esta declaración sirve para recibir datos seriales en un formato estándar asincrónico usando 8 bits de dato, sin paridad y 1 bit de parada, (8N1), y para poder utilizarlo debemos incluirlo igualmente que para el SEROUT la línea INCLUDE “modedefs.bas” al inicio del programa, su forma de utilizar es la siguiente:

SERIN portb.0,N2400,letra ; ‘esperar un dato serial y lo guarda en la variable ‘previamente creada llamada letra

Es importante saber que esta declaración detiene el programa esperando a que ingrese un dato, y solamente cuando haya recibido un dato, continúa con la siguiente línea de

POR: Junior Figueroa Olmedo Página 58 de 91

Page 59: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

programa, para hacer que sólo espere un determinado tiempo y luego continúe con la siguiente línea debe utilizar Timeout. Ejemplos:

SERIN portb.0,N2400,Timeout, Label, letra ; ‘esperar un dato serial y lo guarda en la variable previamente creada llamada letra, si el dato no llega hasta el tiempo especificado por Timeout salta a la subrutina especificada por Label.

Timeout y Label son opciones que pueden ser incluidas para permitir al programa continuar si no se recibe un carácter durante un cierto tiempo. Timeout está especificado en unidades de 1 milisegundo.

SERIN portb.0,N2400,Timeout, Label, [cadena, #num] ; ‘esperar varios datos seriales: uno correspondiente a una letra o palabra guardarlo en la variable previamente creada llamada cadena y el otro correspondiente a un valor entero guardarlo en la variable previamente creada llamada num, si el dato no llega hasta el tiempo especificado por Timeout saltar a la subrutina especificada por Label.

10.3. LA DECLARACIÓN SEROUT2

Esta declaración sirve para enviar datos seriales en un formato estándar asincrónico. SEROUT2 es similar al comando SEROUT y para poder utilizarlo debemos incluir al comienzo del programa la siguiente línea:

INCLUDE “modedefs.bas” ; ‘incluir el programa modedefs.bas (modos de comunicación)

Esto significa incluir el programa modedefs.bas en esta línea, aquí se encuentran algunos de los parámetros para las comunicaciones, por ejemplo en nuestro caso las velocidades de transmisión, tal y como se muestran en la tabla 5:

Tabla 5. Velocidades de transmisión para la instrucción SEROUT2

Una cadena de constantes es enviada como una cadena de caracteres literales. Un valor numérico (constante ó variable) va a enviar el correspondiente carácter ASCII .Más aún, 13 es retorno de carro (Carriage Return ó CR) y 10 es avance de línea (Line Feed ó LF).

Ejemplos:

SEROUT2 portc.6, 396, ["HOLA"];‘enviar la palabra ASCII “HOLA” por el puerto C6 a una velocidad de 2400. Cada letra de la ‘palabra completa se envía por separado, es ‘decir “H”, “O”, “L”, “A”.

POR: Junior Figueroa Olmedo Página 59 de 91

Page 60: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

SEROUT2 portc.6, 84, [123];‘enviar el numero 123 por el puerto C6 a una velocidad de 9600.

SEROUT2 soporta distintos modificadores, que pueden ser combinados entre sí, dentro de una declaración SEROUT2 para obtener distintos formatos, tal y como se observa en la tabla 6:

Tabla 6. Modificadores soportados por SEROUT2

Un valor numérico precedido por BIN va a enviar la representación ASCII de su valor binario. Por ejemplo, si B0=8, entonces BIN B0 va a enviar “1000”

Un valor numérico precedido por DEC va a enviar la representación ASCII de su valor decimal. Por ejemplo, si B0=123, entonces DEC B0 va a enviar “123”.

Un valor numérico precedido por HEX va a enviar la representación ASCII de su valor hexadecimal. Por ejemplo, si B0=254, entonces HEX B0 envía “FE”.

REP seguido por un carácter y un contador, va a repetir el carácter la cantidad de veces que indique el contador. Por ejemplo, REP “0” 4 enviará “0000”

STR seguido por una variable de array, y un contador opcional, va a enviar una cadena de caracteres. La longitud de la cadena está determinada por el contador ó cuando se encuentre un carácter 0 en la cadena.

BIN, DEC y HEX pueden estar precedidos, ó seguidos por varios parámetros opcionales. Si alguno de ellos está precedido por una I (por indicado), la salida estará precedida por alguno de los símbolos %, #, $ para indicar que el valor siguiente es binario, decimal ó hexadecimal.

Si alguno está precedido por una S (por signo), la salida estará precedida por “-“, si el bit de alto orden del dato está alto .Esto permite la transmisión de números negativos. Recuerde que todas las operaciones u comparaciones de PBP son sin signo .Sin embargo, las matemáticas sin signo pueden llevar a resultados con signo. Por ejemplo, B0= 9 – 10. El resultado de DEC B0 será “255” .Enviando SDEC B0 daría “-1”, dado que se envía el bit de alto orden.

BIN, DEC y HEX también pueden estar acompañados de un número. Normalmente, estos modificadores muestran exactamente tantos dígitos como sean necesarios (sin enviar los ceros a la izquierda). Sin embargo, si un número sigue a un modificador, SEROUT2 siempre ese número de dígitos, agregando tantos ceros al comienzo, como sea necesario. Además, ajusta cualquier bit extra de orden superior .P.ej. BIN6 8 sería enviado como “001000” y BIN2 8 como “00”.

POR: Junior Figueroa Olmedo Página 60 de 91

Page 61: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Se puede usar cualquier combinación de modificadores simultáneamente. P.ej. ISDEC4 B0. Ejemplos:

SEROUT2 portc.6, 396, [DEC3 520,"HOLA"]; ‘enviar el numero 520 en formato de 3 dígitos, seguido de la palabra HOLA pero enviada como caracteres literales “H”,”O”, ”L”, ”A” por el puerto C6 a una velocidad de 2400 baudios.

SEROUT2 portc.6, 396, [DEC1 1, DEC4 1520, BIN 8, BIN6 8, HEX 254, “CHAO”];

10.4. LA DECLARACIÓN SERIN2

Esta declaración sirve para recibir datos seriales en un formato estándar. SERIN2 es similar al comando SERIN y para poder utilizarlo debemos incluirlo igualmente que para el SEROUT2 la línea INCLUDE “modedefs.bas” al inicio del programa, su forma de utilizar es la siguiente:

Tabla 7. Velocidades de transmisión para la instrucción SERIN2

SERIN2 portc.7, 32, [Temperatura] ‘esperar un dato serial y lo guarda en la variable previamente creada llamada Temperatura a una ‘velocidad de 19200 baudios

Es importante saber que esta declaración detiene el programa esperando a que ingrese un dato, y solamente cuando haya recibido un dato, continúa con la siguiente línea de programa, para hacer que sólo espere un determinado tiempo y luego continúe con la siguiente línea debe utilizar Timeout, tal como funciona para SERIN. Ejemplos:

SERIN2 portc.7, 32, Timeout, Label [Temperatura] ‘esperar un dato serial y lo guarda en la variable previamente creada llamada Temperatura, si el dato no llega hasta el tiempo especificado por Timeout salta a la subrutina especificada por Label.

Timeout y Label son opciones que pueden ser incluidas para permitir al programa continuar si no se recibe un carácter durante un cierto tiempo. Timeout está especificado en unidades de 1 milisegundo.

SERIN2 soporta distintos modificadores, que pueden ser combinados entre sí, dentro de una declaración SERIN2 para obtener distintos formatos, tal y como se observa en la tabla 8:

POR: Junior Figueroa Olmedo Página 61 de 91

Page 62: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Tabla 8. Modificadores soportados por SERIN2

Los modificadores BIN, DEC, HEX y STR, funcionan igual como se explicaron para la instrucción SEROUT2.

SKIP seguido por un contador, va a saltear esa cantidad de caracteres en el flujo de datos .Por ejemplo, SKIP 4 salteará 4 caracteres.

La lista de items de datos a ser recibidos, puede estar precedida por uno ó más calificadores entre paréntesis después del WAIT. SERIN2 debe recibir estos bytes en un orden exacto, antes de recibir los datos. Si algún byte recibido no concuerda con el próximo en la secuencia de calificación, recomienza el proceso de calificación. ( p.ej. el próximo byte recibido se compara con el primer item en la lista de calificadores ). Un calificador puede ser constante, variable ó una cadena de constantes, cada carácter de una cadena es tratado como un calificador individual.

WAITSTR puede ser usado como WAIT anteriormente, para forzar a SERIN2 a esperar por una cadena de caracteres de un determinado largo, antes de seguir adelante.

Ejemplos:

SERIN2 portc.7, 32, 2000, NODATO, [DEC3 dato1, BIN2 dato2, HEX3 dato3]

‘espera varios datos seriales por el puerto C7 en diferentes formatos DEC3, BIN2, HEX3 y los guarda en las variables previamente creadas dato1, dato2, dato3, respectivamente; si el dato no llega hasta el tiempo especificado de 2000 ms salta a la subrutina NODATO.

SERIN2 portc.7, 32, [WAIT (“A”),B0]

‘espera hasta que el carácter “A” sea recibido en forma serial por el puerto C7 y pone el próximo carácter en B0, a una velocidad de 19200 baudios

SERIN2 portc.7, 32, [SKIP 2, DEC4 B0]

‘saltea 2 caracteres y toma un número decimal de 4 dígitos

SERIN2 portc.7, 32, 2000, NODATO, [WAIT(“X”,B0), STR AR]

NOTA: Para el desarrollo de los ejemplos de este documento, se hará uso de las instrucciones SERIN2 y SEROUT2, puesto que poseen ciertas prestaciones extras que las

POR: Junior Figueroa Olmedo Página 62 de 91

Page 63: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

instrucciones SERIN y SEROUT, pero queda como elección del lector hacer uso de cualquiera de las instrucciones, según las facilidades y necesidades que se presenten.

11. EJEMPLOS PRIMERA PARTE

Antes de empezar con la realización de los ejemplos se recomienda revisar los contenidos explicados acerca del funcionamiento y programación de los módulos XBee/XBee-PRO OEM RF, la herramienta de software gratuita (X-CTU) y el manual en español de programación de PIC BASIC PRO para microcontroladores. En la figura 79 se muestran la mayoría de los elementos y herramientas a utilizar para la realización de los ejemplos.

Figura 79. Elementos y herramientas a emplear.

Para los ejemplos que se realizarán se emplearán dos módulos XBEE, uno que va a cumplir la tarea de transmisor y otro el rol de receptor, los cuales trabajarán a una velocidad de transmisión de 2400 baudios (parámetro que puede ser cambiado si se lo desea). Los módulos han sido configurados mediante el software gráfico X-CTU, tal como se observa en las siguientes figuras 80, 81, 82 y 83:

POR: Junior Figueroa Olmedo Página 63 de 91

Page 64: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 80. Configuración del módulo XBEE transmisor

Figura 81. Configuración del módulo XBEE receptor

POR: Junior Figueroa Olmedo Página 64 de 91

Page 65: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 82. Configuración de la velocidad de transmisión

Figura 83. Consideraciones para volver a utilizar la opción Test/Query

POR: Junior Figueroa Olmedo Página 65 de 91

Page 66: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

11.1. EJEMPLO 1: Armar el hardware necesario y desarrollar un programa en PIC BASIC que permita leer el estado actual de un switch conectado al puerto B0, enviar inalámbricamente (haciendo uso de los módulos XBEE) el estado de ese pin (que puede ser 0 o 1) al módulo receptor y mostrarlo en un LED conectado al puerto B1.

Partes y Elementos a utilizar

2 Regletas de Protoboards

Conectores de alimentación

Una fuente variable de 5-15V DC

2 Reguladores de voltaje de 5V: L7805C

2 Reguladores de voltaje de 3.3V: LM1117T

2 PIC 16F877A u otro

2 Módulos XBee

2 PCB (Placa de Circuito Impreso) para colocar el XBee

7 LEDs (2 rojos, 2 amarillos, 3 verdes)

1 Switch

2 Cristales de 4 Mhz

6 Capacitores de 10 µf

4 Capacitores de 22 pF

2 Capacitores de 1 µf

2 Resistencias de 1 Kohm

7 Resistencias de 10Kohm

Utilizar los siguientes esquemas como referencia:

Figura 83. Elementos principales a emplear

POR: Junior Figueroa Olmedo Página 66 de 91

Page 67: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 84. Circuito Transmisor

Figura 85. Circuito Receptor

Cabe mencionar que las dos configuraciones anteriores permiten al módulo XBee trabajar como emisor y receptor a la vez, todo depende de la programación interna del módulo XBee para que funcione solo como emisor o receptor o ambos a la vez.

Arme dos protoboards con un PIC en cada uno, tal y como se muestra en las figuras anteriores. Tendrás que añadir un regulador de 3.3 voltios en cada board, para alimentar el módulo XBee. El regulador de 3.3V utilizado en este ejemplo dispone (de izquierda a derecha) de tierra (Ground)-salida (Output)- entrada (Input), que es diferente de los 5 voltios.

POR: Junior Figueroa Olmedo Página 67 de 91

Page 68: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Figura 86. PIC16F877A funcionando con 5 voltios. XBee funcionando con 3.3 voltios del regulador (a lado izquierdo del XBEE).

Conectar los 3.3 voltios de la fuente de poder al PIN 1 de el XBee, Ground al PIN 10, RC7 del PIC al PIN 2 y RC6 al PIN 3, como se muestra. También puede añadir LEDs a los pines 6, 13 y 15 del modulo XBee para observar algunos parámetros de estado (status feedback).

El XBee está conectado a los 3.3 V de la fuente de poder y tierra común. El pin Tx del XBee esta conectado con Rx del PIC. El LED verde (diodo 1) muestra que XBee está encendido y no en modo de bajo consumo (sleep mode), el LED amarillo parpadea, excepto cuando esta en modo de comando AT, y el LED rojo se ilumina cuando hay recepción de datos de RF procedentes de otro XBee.

El siguiente programa ha sido grabado en el microcontrolador PIC16F877A y es utilizado para el envío de datos:

‘PROGRAMA PARA EL CIRCUITO TRANSMISOR

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL

‘DEFINICIÓN DE VARIABLES A UTILIZAR

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

PUERTOB0 VAR BYTE ‘VARIABLE PUERTOB0 PARA GUARDAR EL ESTADO DEL PORTB.0

POR: Junior Figueroa Olmedo Página 68 de 91

Page 69: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN: PUERTOB0 = portb.0 IF PUERTOB0==1 THEN SEROUT2 portc.6, VELOCIDAD, [DEC1 1] PAUSE 10 ELSE SEROUT2 portc.6, VELOCIDAD, [DEC1 0] PAUSE 10 ENDIF GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

Programa el otro microcontrolador utilizando este código de recepción:

‘PROGRAMA PARA EL CIRCUITO RECEPTOR

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL

‘DEFINICIÓN DE VARIABLES A UTILIZAR

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

DATO VAR BYTE ‘VARIABLE DONDE SE VA A GUARDAR EL DATO ENVIADO SERIALMENTE

‘POR EL CRICUITO TRANSMISOROUTPUT PORTB.1 ‘PORTB.1 COMO SALIDA DIGITAL

TIEMPO_ESPERA CON 2000 ‘ES EL TIMEOUT PARA LA INSTRUCCIÓN SREIN2 DE 2000 ms

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN: SERIN2 PORTC.7, VELOCIDAD,TIEMPO_ESPERA, NODATO, [DEC1 DATO] IF DATO==1 THEN HIGH PORTB.1 ‘ENCIEDE EL LED COLOCADO EN EL PORTB.1

ENDIF IF DATO==0 THEN LOW PORTB.1 ‘APAGA EL LED COLOCADO EN EL PORTB.1

ENDIF NODATO: GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

POR: Junior Figueroa Olmedo Página 69 de 91

Page 70: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para la comprobación del funcionamiento, conecte un interruptor al pin RB0 del board de envio, y un LED verde (diodo 4) al RB1 del board receptor. Cierre el interruptor y el LED debería encenderse.

NOTA: Para restablecer el XBee, sólo tiene que llevar el pin de reset XBee (patilla 5) a nivel bajo (GND) por un momento.

EJEMPLO 2: : Realizar un programa en PIC BASIC que permita leer el valor de un switch conectado al puerto B0 del microcontrolador, si portb.0 es 1 enviar inalámbricamente (haciendo uso de los módulos XBEE) el número 200 y la palabra “HOLA”, caso contrario si portb.0 es 0 enviar el número 400 y la palabra “CHAO” al módulo receptor. En el circuito receptor se debe leer serialmente la información enviada por el transmisor y mostrar en un LCD. Utilizar los siguientes esquemas como referencia.

CIRCUITO TRANSMISOR

‘PROGRAMA PARA EL CIRCUITO TRANSMISOR

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL ‘DEFINICIÓN DE VARIABLES A UTILIZAR

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

PUERTOB0 VAR BYTE ‘VARIABLE PUERTOB0 PARA GUARDAR EL ESTADO DEL PORTB.0

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN: PUERTOB0 = portb.0 IF PUERTOB0==1 THEN

POR: Junior Figueroa Olmedo Página 70 de 91

Page 71: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

SEROUT2 portc.6, VELOCIDAD, [DEC3 200, “HOLA”]

PAUSE 10

ELSE

SEROUT2 portc.6, VELOCIDAD, [DEC3 400, “CHAO”]

PAUSE 10

ENDIF

GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

Circuito receptor para la visualización de los datos enviados por circuito transmisor

‘PROGRAMA PARA EL CIRCUITO RECEPTOR

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL ‘DEFINICIÓN DE CONSTANTES Y VARIABLES A UTILIZAR

DEFINE LCD_DREG PORTB ‘DEFINE PINES DEL LCD B4 A B7

DEFINE LCD_DBIT 4 ‘EMPEZANDO DESDE EL PUERTO B4 HASTA B7

DEFINE LCD_RSREG PORTB ‘DEFINE EL PUERTO B PATA CONECTAR EL BIT RS

DEFINE LCD_RSBIT 3 ‘ESTE ES EL PUERTO B3

DEFINE LCD_EREG PORTB ‘DEFINE EL PUERTO B PATA CONECTAR EL BIT ENABLE

DEFINE LCD_EBIT 2 ‘ESTE ES EL PUERTO B2

POR: Junior Figueroa Olmedo Página 71 de 91

Page 72: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

DATO VAR WORD

LETRA1 VAR BYTE

LETRA2 VAR BYTE

LETRA3 VAR BYTE

LETRA4 VAR BYTE

TIEMPO_ESPERA CON 2000 ‘ES EL TIMEOUT PARA LA INSTRUCCIÓN SREIN2 DE 2000 ms

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN:

SERIN2 PORTC.7, VELOCIDAD,TIEMPO_ESPERA, NODATO, [DEC3 DATO, LETRA1, LETRA2,

LETRA3, LETRA4]

LCDOUT $FE,1,"NUMERO: ",DEC3 DATO

‘LIMPIE EL VISOR DEL LCD Y SAQUE LA FRASE “NUMERO: " EN LA PRIMERA LÍNEA DEL LCD JUNTO CON EL VALOR DE LA VARIABLE DATO

LCDOUT $FE,$C0,"PALABRA: ", LETRA1, LETRA2, LETRA3, LETRA4

PAUSE 1000

‘MUESTRE LA FRASE “PALABRA: ” EN LA LINEA 2 DEL LCD, JUNTO CON EL DATO GUARDADO EN LAS VARIABLES LETRA1, LETRA2, LETRA3, LETRA4.

NODATO:

GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

Otra forma de haber recibido la palabra “HOLA” es por medio de la utilización de arreglos, con la finalidad de no crear las 4 variables una para cada letra. Primero se debe crear una variable de tipo array, en este caso la llamaremos FRASE y se la define como sigue:

FRASE VAR BYTE [4] ‘CREA UN ARREGLO DE 4 ELEMENTOS, EMPEZANDO DEL ELEMENTO 0 AL 3

Para la recepción con la instrucción SERIN2, tenemos:

SERIN2 PORTC.7, VELOCIDAD,TIEMPO_ESPERA, NODATO, [DEC3 DATO, FRASE(0), FRASE(1), FRASE(2),

FRASE(3)]

Para la visualización de los datos en el LCD, tenemos:

LCDOUT $FE,$C0,"PALABRA: ", FRASE(0), FRASE(1), FRASE(2), FRASE(3)

POR: Junior Figueroa Olmedo Página 72 de 91

Page 73: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

EJEMPLO 3: Realizar un programa en PIC BASIC que permita realizar un comunicación bidireccional entre dos módulos XBEE. El módulo 1 debe leer el valor de un switch conectado al puerto B0 del microcontrolador, si portb.0 es 1 enviar inalámbricamente el número 200 y la palabra “HOLA”, caso contrario si portb.0 es 0 enviar el número 400 y la palabra “CHAO” al módulo 2. El módulo 2 debe leer el valor de un switch conectado al puerto B0 del microcontrolador, si portb.0 es 1 enviar inalámbricamente el número “1”, caso contrario si portb.0 es 0 enviar inalámbricamente el número “0” al módulo 1, y ese valor debe ser visualizado en un LED colocado en el puerto A2 del microcontrolador del módulo 1. Además el módulo 2 debe leer serialmente la información enviada por el módulo1 y mostrar esos datos en un LCD. Utilizar los siguientes esquemas como referencia.

Configuración para el Módulo 1

‘PROGRAMA PARA EL CIRCUITO DEL MÓDULO 1

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL ‘DEFINICIÓN DE VARIABLES A UTILIZAR

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

PUERTOB0 VAR BYTE ‘VARIABLE PUERTOB0 PARA GUARDAR EL ESTADO DEL PORTB.0

CMCON = 7 ‘CONVIERTE EN DIGITAL TODO EL PUERTO A

DATO VAR BYTE ‘VARIABLE EN LA CUAL SE VA A GUARDAR EL VALOR ENVIADO POR EL

MODULO 2

TIEMPO_ESPERA CON 2000 ‘ES EL TIMEOUT PARA LA INSTRUCCIÓN SREIN2 DE 2000 ms

POR: Junior Figueroa Olmedo Página 73 de 91

Page 74: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

OUTPUT PORTA.2 ‘PUERTO POR DONDE SE VA A VISUALIZAR EL ESTADO DEL SWITCH

DEL MODULO 2

‘HACIENDO USO DE UN LED

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN: PUERTOB0 = portb.0 IF PUERTOB0==1 THEN

SEROUT2 portc.6, VELOCIDAD, [DEC3 200, “HOLA”]

PAUSE 10

ELSE

SEROUT2 portc.6, VELOCIDAD, [DEC3 400, “CHAO”]

PAUSE 10

ENDIF

NODATO:

SERIN2 PORTC.7, VELOCIDAD,TIEMPO_ESPERA, NODATO, [DEC1 DATO]

IF DATO==1 THEN

HIGH PORTA.2

ELSE

LOW PORTA.2

ENDIF

GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

Configuración para el Módulo 2

‘PROGRAMA PARA EL CIRCUITO DEL MÓDULO2

POR: Junior Figueroa Olmedo Página 74 de 91

Page 75: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL ‘DEFINICIÓN DE CONSTANTES Y VARIABLES A UTILIZAR

DEFINE LCD_DREG PORTB ‘DEFINE PINES DEL LCD B4 A B7

DEFINE LCD_DBIT 4 ‘EMPEZANDO DESDE EL PUERTO B4 HASTA B7

DEFINE LCD_RSREG PORTB ‘DEFINE EL PUERTO B PATA CONECTAR EL BIT RS

DEFINE LCD_RSBIT 3 ‘ESTE ES EL PUERTO B3

DEFINE LCD_EREG PORTB ‘DEFINE EL PUERTO B PATA CONECTAR EL BIT ENABLE

DEFINE LCD_EBIT 2 ‘ESTE ES EL PUERTO B2

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

DATO VAR WORD

LETRA1 VAR BYTE

LETRA2 VAR BYTE

LETRA3 VAR BYTE

LETRA4 VAR BYTE

TIEMPO_ESPERA CON 2000 ‘ES EL TIMEOUT PARA LA INSTRUCCIÓN SREIN2 DE 2000 ms

PUERTOB0 VAR BYTE ‘VARIABLE PUERTOB0 PARA GUARDAR EL ESTADO DEL

PORTB.0

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN:

SERIN2 PORTC.7, VELOCIDAD,TIEMPO_ESPERA, NODATO, [DEC3 DATO, LETRA1, LETRA2,

LETRA3, LETRA4]

NODATO:

LCDOUT $FE,1,"NUMERO: ",DEC3 DATO

‘LIMPIE EL VISOR DEL LCD Y SAQUE LA FRASE “NUMERO: " EN LA PRIMERA LÍNEA DEL LCD JUNTO CON EL VALOR DE LA VARIABLE DATO

LCDOUT $FE,$C0,"PALABRA: ", LETRA1, LETRA2, LETRA3, LETRA4

PAUSE 1000

‘MUESTRE LA FRASE “PALABRA: ” EN LA LINEA 2 DEL LCD, JUNTO CON EL DATO GUARDADO EN LAS VARIABLES LETRA1, LETRA2, LETRA3, LETRA4.

PUERTOB0 = PORTB.0

IF PUERTOB0 == 1 THEN

SEROUT2 portc.6, VELOCIDAD, [DEC1 1]

PAUSE 10

ELSE

POR: Junior Figueroa Olmedo Página 75 de 91

Page 76: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

SEROUT2 portc.6, VELOCIDAD, [DEC1 0]

PAUSE 10

ENDIF

GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

EJEMPLO 4: Realizar un programa en PIC BASIC que permita realizar un comunicación bidireccional entre un módulo XBEE y la PC. Para el envío y recepción de datos desde la PC utilice el X-CTU o cualquier otro software que tenga un funcionamiento parecido al Hyperterminal. El módulo XBBE 1 debe estar conectado al puerto COM1 mediante la tarjeta de interfaz y se encargará de enviar un número que no exceda al valor de 65535 junto con una palabra que no exceda las 6 letras, además este módulo se encarga de recibir cualquier dato enviado por el módulo XBBE 2. El módulo XBEE 2 debe de recibir los datos enviados por el módulo 1 y mostrarlos en un LCD, otra función que debe cumplir este módulo es la de enviar la frase “DATO RECIBIDO POR EL XBEE 2” una vez que se haya recibido la información previa.

POR: Junior Figueroa Olmedo Página 76 de 91

Page 77: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Configuración del módulo XBBE 2

‘PROGRAMA PARA EL MODULO XBBE2

‘----------------------------------------------------------------------------------------------------------------------------

INCLUDE "modedefs.bas" ‘PARA EL MODO DE COMUNICACIÓN SERIAL ‘DEFINICIÓN DE CONSTANTES Y VARIABLES A UTILIZAR

DEFINE LCD_DREG PORTB ‘DEFINE PINES DEL LCD B4 A B7

DEFINE LCD_DBIT 4 ‘EMPEZANDO DESDE EL PUERTO B4 HASTA B7

DEFINE LCD_RSREG PORTB ‘DEFINE EL PUERTO B PATA CONECTAR EL BIT RS

DEFINE LCD_RSBIT 3 ‘ESTE ES EL PUERTO B3

DEFINE LCD_EREG PORTB ‘DEFINE EL PUERTO B PATA CONECTAR EL BIT ENABLE

DEFINE LCD_EBIT 2 ‘ESTE ES EL PUERTO B2

VELOCIDAD CON 396 ‘VELOCIDAD DE TRANSMISIÓN EN BAUDIOS DE 2400

DATO VAR WORD

LETRA VAR BYTE [6]

TIEMPO_ESPERA CON 2000 ‘ES EL TIMEOUT PARA LA INSTRUCCIÓN SREIN2 DE 2000 ms

‘------------------------------------------------------------------------------------------------------------------------------------------------

‘PROGRAMA PRINCIPAL

MAIN:

POR: Junior Figueroa Olmedo Página 77 de 91

Page 78: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

SERIN2 PORTC.7, VELOCIDAD,TIEMPO_ESPERA, NODATO, [DEC DATO, LETRA(0), LETRA(1), LETRA(2),

LETRA(3), LETRA(4), LETRA(5)]

LCDOUT $FE,1,"NUMERO: ",DEC DATO

‘LIMPIE EL VISOR DEL LCD Y SAQUE LA FRASE “NUMERO: " EN LA PRIMERA LÍNEA DEL LCD JUNTO CON EL VALOR DE LA VARIABLE DATO

LCDOUT $FE,$C0,"PALABRA: ", LETRA(0), LETRA(1), LETRA(2), LETRA(3), LETRA(4), LETRA(5)

PAUSE 1000

‘MUESTRE LA FRASE “PALABRA: ” EN LA LINEA 2 DEL LCD, JUNTO CON EL DATO GUARDADO EN LAS VARIABLES LETRA(0), LETRA(1), LETRA(2), LETRA(3), LETRA(4), LETRA(5)

SEROUT2 PORTC.6, VELOCIDAD,["DATO RECIBIDO POR EL XBEE 2"]

‘ENVIE SERIALMENTE LA FRASE “DATO RECIBIDO POR EL XBEE 2”

NODATO:

GOTO MAIN

‘-----------------------------------------------------------------------------------------------------------------------------------------------

Ahora vamos a utilizar el XCTU para realizar la comunicación con el módulo XBBE 1, sguiendo los siguientes pasos:

1. Correr el X-CTU y verificar que la comunicación con el módulo XBEE 1 esté correcta, para lo cual en la pestaña PC Settings dar clic en el botón Test/Query.

2. Dirigirse a la pestaña Terminal y dar clicl en el botón Assemble Packet (ver figura).

POR: Junior Figueroa Olmedo Página 78 de 91

Page 79: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

3. En la ventana Send Packet escribir el número y la palabra deseada y dar clic en el botón Send Data, tal y como se muestra en la figura.

4. Una vez realizado lo anterior se realiza la transferencia y recepción de datos, teniendo en el X-CTU lo que se muestra en la figura.

POR: Junior Figueroa Olmedo Página 79 de 91

Page 80: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para terminar la comunicación presionar el botón Close.

Ahora vamos a utilizar el software, en este caso el que utilizo para realizar la programación de los microcontroladores MicroCode Studio – PICBASIC PRO, que cuenta con una ventana para comunicación serial, para esto presione en la pantalla de MicroCode F4 o abra View/Serial Comunicator y configuramos los parámetros que necesitamos, en este caso 2400/N/8/1, tal y como se observa en la figura.

POR: Junior Figueroa Olmedo Página 80 de 91

Page 81: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para este ejemplo debemos seleccionar el puerto COM1 que vamos a utilizar, luego la velocidad que se transmiten los datos, en este caso a 2400 baud, paridad ninguna, 8 bits de datos y 1 stop bit, una vez que estemos listos para iniciar la comunicación

presionamos el botón y notará en la parte inferior izquierda que decía Ready cambia a Connected…

Ahora ya estamos listos para enviar y recibir los datos requeridos (ver figura).

POR: Junior Figueroa Olmedo Página 81 de 91

Page 82: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

Para terminar la comunicación presionar el símbolo .

POR: Junior Figueroa Olmedo Página 82 de 91

Page 83: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

POR: Junior Figueroa Olmedo Página 83 de 91

Page 84: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

POR: Junior Figueroa Olmedo Página 84 de 91

Page 85: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

REFERENCIAS

1. REYES, Carlos, “Microcontroladores Programación en BASIC: PIC 16F862X, 16F81X, 16F87X”, 3era Edición, Volumen1, Ecuador, 2008.

2. Manual de programación para PicBasic PRO Compiler (Español):

http://www.todopic.com.ar/pbp_sp.html

3. Documento que señala las características generales de los módulos XBEE (Español):

http://www.c-stamp.com/Documents/Documentation/CS47300Xd2.pdf

4. Dispositivos Electrónicos y de Cómputo DEC. GUÍA RÁPIDA PARA LA PROGRAMACIÓN DE LOS MODULOS DE RF ZIGBEE BIDIRECCIONALES (TRANSCEIVERS) (Español):

http://www.decelectronics.com/html/XBEE/XBEE.htm

5. Guía de Usuario en español para el manejo de los módulos XBEE (Español):

POR: Junior Figueroa Olmedo Página 85 de 91

Page 86: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf

6. Manual de Usuario en inglés para el manejo de los módulos XBEE (Inglés):

http://ssdl.stanford.edu/ssdl/images/stories/AA236/0708A/Lab/Rover/Parts/xbeeproproductmanual.pdf

http://ftp1.digi.com/support/documentation/90000982_A.pdf

7. Página del fabricante (Digi, antes MaxStream) (Inglés):

http://www.digi.com/products/wireless/point-multipoint/xbee-series1-module.jsp

8. Procedimiento para actualizar el firmware (Inglés):

http://itp.nyu.edu/~raf275/meshnetworking/XBee/XBee_firmware_upgrade.html

http://www.libelium.com/squidbee/index.php?title=Uploading_XBee_firmware

9. Artículos muy completos y con ejemplos acerca de los módulos XBEE (Inglés):

http://www.circuitcellar.com/library/print/0906/Eady194/Eady-194.pdf

http://www.libelium.com/squidbee/index.php?title=Software

11. Esquema eléctrico para hacer una placa de desarrollo para comunicaciones Zigbee con tu ordenador “Convertidor RS232/Zigbe”, de una forma sencilla y económica a través del puerto RS232 (Español):

http://www.ray-ie.com/webray_019.htm

12. Esquema eléctrico para hacer una placa de desarrollo para comunicaciones Zigbee con tu ordenador “Xbee Explorer USB”, de una forma sencilla y económica a través del puerto USB. (Inglés):

http://www.olimex.cl/product_info.php?products_id=417

13. Página donde se puede descargar el software y la documentación necesaria para hacer uso de la herramienta de programación X-CTU (Inglés): http://www.digi.com/support/productdetl.jsp?pid=3352&osvid=57&tp=4&s=316

14. Proyectos de Rob Faludi que involucran XBee. Ejemplos del manejo de los módulos XBEE con microcontroladores (Inglés):

http://www.faludi.com/itp_coursework/meshnetworking/XBee/

http://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_example.html

http://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_Receive_Example.pde

http://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_program_Arduino_wireless.html

http://itp.nyu.edu/~jl2515/sustain/xbee.htm

15. El libro de Tom Igoe: Making Things Talk, que enseña como manejar módulos para comunicación inalámbrica haciendo uso de los microcontroladores (Inglés): http://www.8051projects.net/forum-t22743-last.html

POR: Junior Figueroa Olmedo Página 86 de 91

Page 88: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

POR: Junior Figueroa Olmedo Página 88 de 91

Page 89: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

POR: Junior Figueroa Olmedo Página 89 de 91

Page 90: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

POR: Junior Figueroa Olmedo Página 90 de 91

Page 91: Teoria y Programacion Modulos XBEE

CLUB DE ROBOTICA DE LA ESPE MODULOS DE RADIOFRECUENCIA XBee/XBee-PRO

POR: Junior Figueroa Olmedo Página 91 de 91