Xbee Shield

Introducción

La Xbee shield permite a una placa Arduino comunicarse de forma inalámbrica usando Zigbee. Está basada en el módulo Xbee de MaxStream. El módulo puede comunicarse hasta 100ft (30 metros) en interior o 300ft (90 metros) al aire libre (en visión directa). Puede ser usado como reemplazo del puerto serie/usb o puedes ponerlo en modo de comandos y configurarlo para una variedad de opciones de redes broadcast o malladas. La shield tiene pistas desde cada pin del Xbee hasta un orificio de soldar. También provee conectores hembra para usar los pines digitales desde 2 hasta 7 y las entradas analógicas, las cuales están cubiertas por la shield (los pines digitales de 8 a 13 no están cubiertos por la placa, así que puedes usar los conectores de la placa directamente).

La Xbee shiel fue creada en colaboración con Libelium, quienes la desarrollaron para usarlo en sus SquidBee motes (usados para crear redes de sensores).

Esquema

XbeeShieldSchematic.pdf (los esquemas Eagle de la placa están disponibles en la página de descarga de la wiki de SquidBee de Libelium.)

Configuración de los jumpers

La Xbee shield tiene dos jumpers (las pequeñas fundas de plásticos que están sobre los tres pines etiquetados como Xbee/USB). Estos determinan como se conecta la comunicación serie del Xbee entre el microcontrolador (Atmega8 o ATmega168) y el chip serie FTDI de la placa Arduino.

Con los jumpers en la posición Xbee (e.g. en los dos pines más cercanos al interior de la placa), el pin DOUT de el módulo Xbee está conectado al pin RX del microcontrolador; y el pin DIN está conectado a TX. Notar que los pines RX y TX del microcontrolador están todavía conectados a los pines TX y RX (respectivamente) del chip FTDI - los datos enviados desde el microcontrolador serán transmitidos al ordenador vía USB y a la vez enviados de forma inalámbrica por el módulo Xbee. El microcontrolador, sin embargo, solo será capaz de recibir datos desde el módulo Xbee, no desde el USB del ordenador.

Con los jumpers en la posición USB (e.g. en los dos pines más cercanos al borde de la placa), el pin DOUT del módulo Xbee está conectado al pin RX del pin del chip FTDI, y el DIN del módulo Xbee está conectado al pin TX del el chip FTDI. Esto significa que el módulo Xbee puede comunicarse directamente con el ordenador - sin embargo, esto solo funciona si el microcontrolador ha sido quitado de la placa Arduino. Si el microcontrolador se deja en la placa Arduino, solo será capaz de comunicarse con el ordenador vía USB, pero ni el ordenador ni el microcontrolador podrán comunicarse con el módulo Xbee.

Redes

La Arduino XBee shield puede ser usada con diferentes módulos XBee. Las instrucciones a continuación son para los módulos XBee 802.15.4.

Direccionamiento

Hay múltiples parámetros que necesitan ser configurados correctamente para que dos módulos puedan comunicarse entre ellos (de todos modos con la configuración por defecto, todos los módulos deberían ser capaces de hablar unos con otros). Necesitan estar en la misma red, definida por el parámetro ID (ver "Configuración" a continuación para más detalles sobre los parámetros). Los módulos necesitan estar en el mismo canal, definido por el parámetro CH. Finalmente, la dirección de destino de un módulo (parámetros DH y DL) determina que módulo en esa red y canal recibirá los datos transmitidos. Esto puede suceder de las siguientes formas:

  • Si el DH de un módulo es 0 y su DL es menor de 0xFFF (e.g. 16 bits), los datos transmitidos por ese módulo serán recibidos por cualquier módulo cuyos 16 bits de dirección del parámetro MY sea igual al DL.
  • Si el DH es 0 y el DL es igual a 0xFFFF, las transmisiones del módulo serán recibidas por todos los módulos.
  • Si el DH no es cero o el DL es mayor de 0xFFFF, la transmisión solo será recibida por el módulo cuyo número de serie sea igual a la dirección de destino del módulo transmisor (e.g. cuyos SH es igual al DH del módulo transmisor y cuyo SL sea igual a su DL).

De nuevo, esta correspondencia de direcciones solo sucederá entre módulos en la misma red y canal. Si dos módulos están en diferentes redes o canales, no podrán comunicarse sea cual sea sus direcciones.

Configuración

Aquí hay algunos de los parámetros más útiles para configurar tu módulo Xbee. Para unas instrucciones paso-a-paso sobre leerlas y escribirlas, ver la guía para la Xbee shield. Asegúrate de poner AT delante de cada nombre de parámetro cuando envíes un comando a el módulo (e.g. para leer el parámetro ID, deberías enviar ATID).

Comando Descripción Valores válidos Valor por defecto
ID El ID de la red del módulo Xbee. 0 - 0xFFFF 3332
CH El canal del módulo Xbee. 0x0B - 0x1A 0X0C
SH y SL El número serie del módulo Xbee (SH devuelve los 32 bits superiores, SL los 32 inferiores). De solo-lectura 0 - 0xFFFFFFFF
(para ambos SH y SL)
diferente para cada módulo
MY La dirección de 16-bit del módulo. 0 - 0xFFFF 0
DH y DL La dirección de destino para las comunicaciones inalámbricas(DH son los 32 bits superiores, DL son los 32 inferiores). 0 - 0xFFFFFFFF
(para ambos DH y DL)
0 (para ambos DH y DL)
BD La velocidad de transmisión usada para las comunicaciones con el Arduino o el ordenador. 0 (1200 bps)
1 (2400 bps)
2 (4800 bps)
3 (9600 bps)
4 (19200 bps)
5 (38400 bps)
6 (57600 bps)
7 (115200 bps)
3 (9600 bps)

Nota: a pesar de que los valores por defecto y válidos de arriba están escritos con el prefijo "0x" (para indicar que son números decimales), el módulo no incluye el "0x" cuando reporta el valor de un parámetro, y tu debes omitirlo cuando establezcas valores.

Aquí hay unos cuantos comandos útiles más para configurar el módulo Xbee (necesitarás anteponer AT a estos también).

Comando Descripción
RE Restaura los valores por defecto (notar que como el parámetro cambia, esto no es permanente a no ser que esté seguido por el comando WR).
WR Escribe un nuevo valor para un parámetro configurado a la memoria no volátil (larga-duración). De otro modo, solo durarían hasta que el módulo sea desconectado de la corriente.
CN Sale del modo de comandos. (Si no mandas ningún comando a él módulo durante unos pocos segundos, el modo de comandos saldrá tras un tiempo incluso sin el comando CN).

Para más detalles sobre configurar el módulo Xbee, ver el manual de producto de MaxStream.

Share