Arduino + XBee - Primeros Pasos



Documentos relacionados
COMUNICACION DE PLC S MEDIANTE EL PUERTO RS- 485 Y MONITOREADO POR PANTALLA.

Comunicación Arduino Bluetooth JY-MCU

PROYECTO DE ELECTRÓNICA

ArduLab. 1. Qué te pasa Nerea? 2.Este robot no funciona bien y no sé que le pasa

COMUNICACIÓN HYPERTERMINAL CON DELTA PLC.

Uso del Shield Ethernet con Arduino

Actividad 4: Comunicación entre PLC s vía Ethernet

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

ANEXO D X-CTU CONFIGURATION & TEST UTILITY SOFTWARE. Technical Support: Online support:

PIC-Ready2. Placa adicional. Manual de usuario. MikroElektronika

INSTALACION DEL Terminal Services. Instalamos el Terminal Services. Siguiente. Nos saldrá una advertencia, seleccionamos instalar.

TARJETA HC-05 ARDUINO

INSTRUCTIVO PARA LA PUESTA EN MARCHA DE LAS TERMINALES IP EN EL SISTEMA ACCESO

Comunicaciones vía Bluetooth

En el presente capítulo se describe la programación del instrumento virtual y cómo

Spider S3 Manual del Usuario

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

Manual de uso del software. RoboPlus. Octubre 6. Interconectividad de dispositivos Nombre del profesor: Emilio Vargas Soto

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

Tutorial para la configuración de GPRS.

GUÍA RÁPIDA DGT LIVECHESS + CAÏSSA SYSTEM

Cámara de seguridad SwannEye HD Conexiones Wi-Fi Guía de inicio rápido. Bienvenido! Comencemos.

La Video conferencia con Live Meeting

Sesión 8 Sensor de Ultrasonido

Configuración básica de una EGX300 mediante Internet Explorer

ELECTRONICA ESTUDIO MODULO TRASMISOR-RECEPTOR DE RF A RS232 BIDIRECCIONAL Clave: 875

Juan Carlos Serna Morales

PIC MICRO ESTUDIO Reloj Digital con alarma y termómetro digital

VCM II inalámbrico Manual del usuario

Guía Rápida Sistema de Control de Acceso Vehicular en Base a Rfid de Largo Alcance

Mondopad v1.8. Inicio rápido

PIC MICRO ESTUDIO Timer Monoestable/Biestable ajustable hasta 99H 59M 59S Timer 2T Clave:

3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE EL PLC 5. EJEMPLO DE RECEPCIÓN DE SMS EN EL PLC

AD a 24Vcc 100mA (1) SI SI SI 100 mw 1Km (2) 256 bytes AD a 24Vcc 500mA (1) SI SI SI 500 mw 3km (2) 256 bytes

KW x hora. on/off

Módulo Radio frecuencia FSK y Arduino

Departamento técnico. Guía rápida CC-LINK. Autómatas serie Q con variadores FR-E 1 / 33

Guía de Configuración

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

NANO GRABADOR OCULTO EXTENDED TS9680

- 1 - ÍNDICE. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

Creación de Funciones de Conducción

ZILOG DEVELOPER STUDIO

CONFIGURACION DE SERVIDOR NTP Y LOGS EN ZEROSHELL 1. USAR ZEROSHELL COMO SERVIDOR NTP (NETWOORK TIME PROTOCOL):

M95 SHIELD PARA ARDUINO. SIGMA ELECTRONICA

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

Creating your Single Sign-On Account for the PowerSchool Parent Portal

Proyecto : Control coche Arduino-Android

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS

TELEOPERACIÓN DE UN ROBOT MOVIL CON MANEJO DIFERENCIAL A BAJO COSTO

HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Guía de inicio rápido de IDS VCM II

Powerline 200 Home Network Adapter (PL200)

Ardunio. Control Led desde Lazarus

HARDWARE DE SISTEMA AUTOMÁTICO DE RASTREO DE VEHÍCULOS MEDIANTE TECNOLOGÍAS GPRS Y GPS

Gestor de Consumo Energético

SECURE ALERT. Acerca del uso de este manual.

AF GUIA ADSL TURBO.ai 1 26/02/13 12:18 AF GUIA ADSL TURBO.ai 1 26/02/13 12:18 C M Y CM MY CY CMY K

En el anterior capítulo aprendimos el concepto de conectividad inalámbrica WiFi, basado en transmisión de datos por microondas.

Configuración de los convertidores TCP/IP Micro y TCP/IP Compacto.

Guía rápida de instalación Cámara CCTV-210

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario

Direcciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.

TUTORIAL: Cómo hacer más segura nuestra red MAC OS X

MR600 Router movil rápida guía de instalación

Comunicado para los socios

Manual de configuración de Replicación Multimaster en servidores Ldap

Manual de Re-registro para Modems HN7000s.

Guía para publicar su equipo en Internet.

Procedimientos iniciales

GVisualPDA Módulo de Almacén

SARA SOFTWARE MANUAL DE USUARIO VERSION 1.0.7

(decimal) (hexadecimal) 80.0A.02.1E (binario)

TUTORIAL: Cómo puedo instalar el Renault Media Nav Toolbox? TUTORIAL: Cómo puedo crear una "huella digital" del dispositivo en un dispositivo de

Manual de Usuario SIKOone ACW13

MANUAL DE USUARIO CONVERSOR TCP/IP A RS232 Y TCP/IP A RS485

Instrucciones de descarga de las Ultimas Mejorías de Software para el Sistema GreenStar

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO EN ELECTRÓNICA Y CONTROL

CREACIÓN DEL PRIMER PROYECTO EN mikrobasic PRO for AVR

Guía para configurar el monitor TCPIP

-PRODUCTO DESCATALOGADO- Relojes controlados por satélite Arbiter Systems, Inc.

Como utilizar un servo motor con Arduino.

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.

MATLAB: Computación Física Práctica 3 Guión 4 Informática Aplicada a la Biología

5.1.1 Sumadores con anticipación de Acarreo. g i = a i b i. c i = c i-1 p i + g i s i = p i + c i-1. c 0 = g 0 + c -1 p 0

VLSM Subnetting. Subnet Interface Number of Hosts Network Address Mask Address E0 90 HQ L0 2 E0 60 Remote L S0 2 Remote 2

El objetivo del proyecto el logra que arduino sea un servidor web. Poder acceder a contenidos web como cliente, usar Arduino como servidor.

Anexo B. Comunicaciones entre mc y PC

LBRTU Características

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

V i s i t a V i r t u a l e n e l H o s p i t a l

Curso básico de computación para principiantes

El Vehículo Eléctrico

BUENAS PRÁCTICAS PARA EL USO DE BLUE FORMS

Mi Cobertura Móvil. Preguntas frecuentes.

Sistema de Detección de Robo de Cable

5.5 Interfaces especiales Interfaz V.24. Norma V.24. neris 4/8/64

Transcripción:

Arduino + XBee - Primeros Pasos Introducción Los módulos XBee de MaxStream permiten enlaces seriales de señales TTL en distancias de 30 metros en interiores, 100 metros en exteriores con línea de vista y hasta 1.5 Km con los módulos Pro. Fig. 1. Módulo XBee de MaxStream Fig. 2. XBee Shield montado sobre la placa Arduino

Lós módulos XBee utilizan el protocolo IEEE 802.15.4 mejor conocido como ZigBee. Este protocolo se creó pensando en implementar redes de sensores. El objetivo es crear redes tipo mesh que tengan las propiedades de auto-recuperación y bajo consumo de energía. Tomado de Wikipedia (http://en.wikipedia.org/wiki/zigbee ), las áreas de aplicación son: - Entretenimiento en casa y control iluminación inteligente, control avanzado de temperatura, seguridad, películas y música. - Hogar Prevenido sensores de agua, sensores de potencia, electrodomésticos inteligentes y sensores de acceso. - Servicios Móviles pagos móviles, monitoreo y control móvil, seguridad y control de acceso móvil, cuidados de salud móviles y teleasistencia. - Edificios comerciales monitoreo de energía, HVAC, iluminación y control de acceso. - Plantas industriales control de procesos, gestión de ventajas, gestión ambiental, gestión de energía y control de dispositivos industriales. En nuestro caso particular vamos a utilizar los módulos de XBee para crear una comunicación serial inalámbrica entre una computadora y un Arduino. Materiales necesarios - 2 módulos XBee Shield - 2 placas Arduino, una de ellas SIN el microcontrolador (hay que tener cuidado especial al retirarlo para no doblarle los pines) - Un LED - Un eliminador de 9V para alimentar el Arduino remoto - Un cable USB para conectar el Arduino local a la computadora Configuración inicial De fábrica cada módulo XBee viene configurado con un PAN ID (el identificador de la red personal) de 3332 y configurados con una tasa de transferencia de 9600 baudios, con datos de 8 bits, sin paridad y 1 bit de paro. Cada XBee Shield tiene un par de jumpers para definir si la comunicación serial se realiza hacia el puerto USB o hacia el módulo XBee. Como primera prueba vamos a configurarlos para interactuar con el puerto USB, esto quiere decir poner ambos jumpers en la posición externa de los pines, en la figura 3 puede verse la ubicación de tales jumpers.

Fig. 3. Ubicación de los jumpers selectores Podemos utilizar el programa Hyperterminal en Windows para comenzar a configurar el módulo XBee. Otras alternativas son el Serial Monitor que viene integrado en el entorno de programación de Arduino o el programa Bray++ Terminal (http://hubbard.engr.scu.edu/embedded/avr/software/terminal.exe ). El comando necesario para comenzar la interación es +++, esto es, tres signos de suma consecutivos. Tecleándolos debemos de recibir como respuesta un OK. En la figura 4 podemos ver la entrada en la parte inferior y la respuesta en la parte superior.

Fig. 4. Estableciendo conexión con el módulo XBee Una vez establecida la conexión sólo tenemos 5 segundos para interactuar con el módulo. Después de ese tiempo, el módulo regresa a su estado nativo y para volver a interactuar tenemos que teclear +++ nuevamente. Cada comando que le ingresemos debe ir precedido por las letras AT. Este es el típico modo de operación de módems. La tabla de comandos más usuales la podemos obtener en http://www.arduino.cc/en/main/arduinoxbeeshield Usaremos para la conexión a la computadora la placa Arduino SIN el microcontrolador ATMEGA168. La razón de esto es que de esa manera podemos directamente interactuar via USB con el módulo XBee. Para este ejemplo proponemos la siguiente configuración: un PAN ID de 3332, un módulo con dirección 0 y otro módulo con dirección 1. El módulo con dirección 0 será el que estará conectado a la computadora y el módulo con dirección 1 será el módulo remoto. Para configurar el primero con la dirección 0, velocidad 9600 8-n-1 y comunicación con el módulo de ID1 usamos el siguiente comando:

ATID3332,DH0,DL1,MY0,BD4,WR,CN Las letras AT le indican al XBee que le vamos a enviar comandos. ID3332 le define un PAN ID de 3332, DH0 y DL1 definen la direción 01 como el XBee con el que se estará comunicando, el comando MY0 define la dirección propia como 0, BD4 define la velocidad en 9600, el comando WR escribe la configuración a la memoria y el CN cierra la configuración. Paso siguiente es conectar el segundo XBee shield al Arduino sin micro. Configuramos de la misma manera. Qué cambios se realizaron en el siguiente comando?: ATID3332,DH0,DL0,MY1,BD4,WR,CN Después de terminada la configuración ya estamos en condiciones de establecer una comunicación entre los dos módulos XBee. Programando el Arduino remoto Vamos a colocar el módulo XBee con dirección 1 en el Arduino que SÍ tiene microcontrolador y lo vamos a programar con un código que envía vía serial una cuenta numérica. También vamos a incluir una lectura del puerto serial para saber si se ha recibido un caracter en particular y en caso afirmativo conmutar el estado del LED conectado al pin 13. Es importante remover el módulo XBee de este Arduino mientras lo programamos para que podamos establecer la comunicación serial. /* Prueba Serial ============= */ Este programa se utiliza para enviar una cuenta por la conexión serial del Arduino y leer si se recibe un caracter para cambiar el estado del LED conectado al pin 13 Félix E. Guerrero Verano 2008 int cuenta = 0; char recepcion; int estado = 1; void setup() { Serial.begin(9600); } void loop() { Serial.print(cuenta); Serial.println(); delay(1000); cuenta++;

{ } } // leer del serial recepcion = Serial.read(); if (recepcion == 'x') estado =!estado; digitalwrite(13,estado); Después de cargar este código podemos probarlo abriendo una conexión serial hacia el Arduino. Debemos de observar una cuenta ascendente y cuando enviamos el caracter x debemos observar un cambio en el estado del LED conectado al pin 13. NOTA: parece que la primera vez que recibe la x no la reconoce como válida. Hasta la 2da ocasión es cuando comienza a conmutar el LED. Probando la comunicación inalámbrica Una vez programado el Arduino lo vamos a desconectar del USB y a colocar en otro sitio, donde podamos alimentarlo con el eliminador de 9V. También vamos a conectarle el módulo de XBee Shield para que pueda comenzar a transmitir inalámbricamente la cuenta ascendente. Debemos asegurarnos que los jumpers estén hacia el interior del Arduino, es decir, en la posición XBee. En la computadora vamos a conectar al USB el Arduino SIN microcontrolador con el XBee Shield de dirección 0 y vamos a abrir el Hyperterminal. Después de unos segundos debemos de empezar a observar la cuenta ascendente y cuando tecleamos la x debemos de lograr que el estado del LED cambie.

Fig. 5. Recibiendo datos inalámbricamente Actividades Sugeridas - Conectar un Actuador Universal (el seguro eléctrico de los coches, menos de 50 pesos) y accionarlo remotamente para asegurar o liberar una puerta o ventana - Leer y registrar temperatura remotamente - Montar una red completa donde la información se transmita por todos los nodos (hay que leer cómo implementar una red mesh) - Controlar el encendido y apagado de un motor para abrir y cerrar persianas - Transmisión y recepción inalámbrica de datos MIDI - Control de iluminación para escenarios via MIDI sin cables - Monitoreo remoto de nivel de un tinaco - Monitorear tinacos de un conjunto habitacional completo - Conteo de accesos a través de una puerta - Actualización inalámbrica de las imágenes para un sistema POV en rines de automóvil - Control inalámbrico de un brazo de robot utilizando un guante Referencias: Guía rápida - http://www.arduino.cc/en/guide/arduinoxbeeshield

Descripción detallada - http://www.arduino.cc/en/main/arduinoxbeeshield Versión 2 del XBee Shield - http://www.arduino.cc/cgibin/yabb2/yabb.pl?num=1208291234 Entrada en la Wikipedia para el protocolo ZigBee - http://en.wikipedia.org/wiki/zigbee Página del fabricante (Digi, antes MaxStream) - http://www.digi.com/products/wireless/point-multipoint/xbee-series1-module.jsp Procedimiento para actualizar el firmware - http://itp.nyu.edu/~raf275/meshnetworking/xbee/xbee_firmware_upgrade.html Ejemplo con PIC 18F452 - http://itp.nyu.edu/~raf275/meshnetworking/xbee/xbee_example.html Cómo programar un Arduino de manera inalámbrica - http://itp.nyu.edu/~raf275/meshnetworking/xbee/xbee_program_arduino_wireless.html Proyectos de Rob Faludi que involucran XBee - http://itp.nyu.edu/~raf275/cgi-bin/mt/mtsearch.cgi?includeblogs=3&search=xbee El libro de Tom Igoe Making Things Talk - http://itp.nyu.edu/~raf275/cgi-bin/mt/mtsearch.cgi?includeblogs=3&search=xbee El manual del usuario de MaxStream - http://www.makingthings.com/resources/datasheets/manual_xb_oem-rfmodules_802.15.4.pdf Un artículo muy completo por Fred Eady para Circuit Cellar - http://www.circuitcellar.com/library/print/0906/eady194/index.htm Tutorial para módulos XBee con el Make Controller - http://www.makingthings.com/documentation/tutorial/xbee-wireless-interface/tutorial-allpages Incluye un excelente comentario en direccionamiento: Addressing How to make sure your messages go where you want. There are 3 values that allow you to organize your XBee module address space: 1. Individual module addresses 2. PAN (Presonal Area Network) IDs 3. Channels

For two modules to communicate, they must be on the same channel, have the same PAN ID and the destination address of the sender must match the address of the receiver. Each XBee module has its own unique address, as well as a destination address that it sends its messages to. The destination address can specify a single destination or it can be a broadcast address, which will be received by all XBee modules within range. The broadcast address is 65535 (0xFFFF in hex). If you only have a couple modules, you'll probably never need to change the PAN ID or channel. But if you're in an evironment with a bit more traffic, you might want to be sure that nobody else's messages are getting mixed up with yours, so this offers a nice option for that. Unique and Broadcast Addresses XBee modules can be used with 16-bit addresses or 64-bit addresses. 16 bits already gives you 65536 possible unique values, but hey you never know when you might need number 65537, right? Any time a module's address is less than 0xFFFE, it will use 16-bit addresses. When the module's address is set to 0xFFFF or 0xFFFE, it will use a 64-bit address derived from its internal serial number. There are 2 values that configure the destination address - DH (Destination High) and DL (Destination Low). If DH is set to 0, as it is by default, the board will send to a 16-bit address. To send broadcast messages, which will be received by all modules on that channel and PAN, set DH 0x0000FFFF to and DL to 0x00000000 (default value).