control remoto con xx ee-31
DESCRIPTION
paperTRANSCRIPT
Resumen—El desarrollo de tecnologías crece día a día,
otorgándonos al alcance de nuestras manos dispositivos de
comunicación que nos permiten desarrollar técnicas de control y
supervisión de manera remota, fáciles de adquirir, diseñar y
programar.
En la búsqueda del aprendizaje de nuevas técnicas se
conjuntaron por una parte la plataforma de desarrollo basada en
microcontrolador, placa Arduino en conjunto con un Shield de
Xbee para proporcionarle comunicación inalámbrica de un rango
de 100 metros a 1.5 km en áreas abiertas, la cual a su vez se
comunica a un dispositivo móvil con Android mediante Bluetooth
para el monitoreo y control de sistemas. Se mencionan algunas
aplicaciones industriales en las cuales puede ser de utilidad.
Temas claves— Control y Supervisión remota, Xbee, Arduino.
I. INTRODUCCIÓN
os sistemas control, demandan una constante evolución en métodos y técnicas y/o tecnologías que se requieren para lograrlo. Actualmente en la industria la productividad de
los procesos depende en gran medida de la medición y manipulación de las variables físicas, razón por la que constantemente se buscan nuevas tecnologías y métodos enfocados en la adquisición, control y supervisión de dichos procesos [1].
La sinergia entre las tecnologías de la información y la electrónica favorecen el desarrollo de sistemas de control que permitan su manipulación en una forma más amigable, precisa y sencilla.
En la universidad Tecnológica de Torreón actualmente se
está trabajando con la plataforma Arduino así como con
diversos Shields para la creación de aplicaciones industriales y
domótica, desarrollando sistemas de control manipulados de
forma remota.
A. Arduino
Arduino es una herramienta y plataforma electrónica de
código abierto, flexible y sencillo de utilizar. Con ella es
posible crear objetos o entornos interactivos. Esta plataforma
puede detectar o afectar el entorno recibiendo entradas de
diversos sensores y activando algunos actuadores
respectivamente.
La tarjeta Arduino (Fig. 1), posee un microcontrolador el
cual se programa mediante el lenguaje de programación
Arduino y el entorno de desarrollo Arduino [2]. Posee un
software open source, los ficheros de diseño de referencia
1 Gloria Mónica Martínez Aguilar ([email protected]), Eduardo
Salazar Valle ([email protected]). Universidad Tecnológica de
Torreón, Carretera Torreón-Matamoros Km 10 S/N, Ejido el Águila C.P.
27400 Torreón, Coahuila, México.
pueden ser adaptables a las necesidades del usuario puesto que
se encuentran disponibles bajo una licencia abierta.
Otros microcontroladores ofrecen características similares al
Arduino, pero éste lleva ventaja en cuanto a asequibilidad,
multiplataforma trabajando con Windows, Mac y Linux;
entorno de programación simple; software y sobre todo
hardware ampliable.
Figura 1. Tarjeta Arduino.
Para empezar a trabajar con la placa solo es necesario
conectarla mediante USB a la computadora y abrir el
programa, escribir el código con el cual se trabajará y cargarlo
a la placa.
B. Xbee
Los módulos Xbee son dispositivos que integran un
transmisor - receptor de ZigBee y un procesador en un mismo
módulo, lo que le permite a los usuarios desarrollar
aplicaciones de manera rápida y sencilla. Zigbee es un
protocolo de comunicaciones inalámbrico basado en el
estándar de comunicaciones para redes inalámbricas
IEEE_802.15.4. Creado por Zigbee Alliance, una
organización, teóricamente sin ánimo de lucro, de más de 200
grandes empresas (destacan Mitsubishi, Honeywell, Philips,
Motorola, Invensys, entre otras), muchas de ellas fabricantes
de semiconductores. Zigbee permite que dispositivos
electrónicos de bajo consumo puedan realizar sus
comunicaciones inalámbricas. Es especialmente útil para redes
de sensores en entornos industriales, médicos y, sobre todo,
domóticas [3].
C. Android
Android (Figura 2) es un sistema operativo orientado a
dispositivos portátiles como teléfonos inteligentes, netbooks, tabletas, entre otros. Fue desarrollado inicialmente por la compañía de software Android Inc., absorbida por Google en el 2005. Con una plataforma basada en el kernel de Linux Google promocionó un nuevo sistema flexible y actualizable, llamando la atención de operadores y fabricantes de hardware y software.
L Part
e
Téc
nica
del
Artí
culo
Control Remoto Xbee con Arduino y Android
G. Martinez1, E. Salazar
1
Figura 2. Icono sistema operativo Android.
A diferencia de sistemas operativos para dispositivos
móviles como iOS o Windows Phone, el código fuente de Android se mantiene abierto. Soporta multimedia, interfaz táctil, características basadas en voz y una amplia variedad de componentes de hardware. Si se añade a esto un entorno de desarrollo gratuito que incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software, Android constituye una opción interesante para nuevos desarrolladores [4], [5].
D. App Inventor
App Inventor una herramienta muy útil, lanzada a la nube
por Google. Permite desarrollar aplicaciones para los teléfonos Android mediante un navegador web. Es ideal para introducirse al mundo de Android como desarrolladores o por simple curiosidad. El proceso para poder utilizar esta herramienta se empieza con la creación de una cuenta en un dominio de Google. Requerimientos mínimos: Un S.O. Mac OS X 10.5, 10.6, Windows XP, Windows Vista, Windows 7, Ubuntu 8+, Debian 5+ y un Navegador Mozilla Firefox 3.6 o más reciente, Apple Safari 5.0 más reciente, Google Chrome 4.0 más reciente, Microsoft Internet Explorer 7 o más reciente.
E. Módulo Bluetooth
Bluetooth es una especificación industrial para Redes
Inalámbricas de Área Personal (WPAN) que posibilita la
transmisión de voz y datos entre diferentes dispositivos
mediante un enlace por radiofrecuencia en la banda ISM de los
2,4 GHz. Los principales objetivos que se pretenden conseguir
con esta norma son:
Facilitar las comunicaciones entre equipos móviles y
fijos.
Eliminar cables y conectores entre éstos.
Ofrecer la posibilidad de crear pequeñas redes
inalámbricas y facilitar la sincronización de datos
entre equipos personales.
Los dispositivos que con mayor frecuencia utilizan esta
tecnología pertenecen a sectores de las telecomunicaciones y
la informática personal, como PDA, teléfonos móviles,
computadoras portátiles, ordenadores personales, impresoras o
cámaras digitales.
II. TRABAJO REALIZADO
o primero que se realizo fue la configuración de los
módulos Xbee, para lo cual se montan los Shields a sus
respectivos Arduinos. 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. Para configurarlos se debe 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 [6].
Figura 3. Ubicación de los jumpers selectores.
Se puede 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. El
comando necesario para comenzar la interacción es +++.
Tecleando esto se debe recibir como respuesta un OK. Con lo
cual se establece la conexión y 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 se debe
teclear +++ nuevamente.
Se usó 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 vía USB
con el módulo Xbee.
Los módulos se configuraron con 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 es el que está conectado a la
dispositivo móvil y el módulo con dirección 1 es 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 se
usó 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 direcció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. El segundo módulo se configuro como:
ATID3332,DH0,DL0,MY1,BD4,WR,CN
Una vez configurados los módulos se les volvió a montar el
microcontrolador y se procedió a conectar el modulo
Bluetooth al primer módulo.
L III. IV. V.
El modulo Bluetooth utilizado es el HC-05, dicho módulo
trabajo mediante conexión serie con el Arduino, y se comunica
con el exterior mediante Bluetooth, ya sea a través de un
teléfono móvil, ordenador, tabletas, etc.
Este módulo BT solo disponemos de 4 pines que son los
necesarios, por un lado tenemos VCC que se conectó a los 5V
del Arduino, por otro GND que va al pin GND de Arduino,
después tenemos TXD que va conectado al pin RXD del
Arduino y RXD que va al pin TXD de Arduino como se puede
apreciar en la figura 4.
Figura 4. Conexión de módulo BT.
Con la configuración de los módulos Xbee y la conexión del
módulo BT se procedió a la programación de las Arduinos
para el envío y recepción de datos vía serial. Para descargar
los programas a las Arduinos se desmonta primero los
Módulos Xbee. La programación del primer módulo es la
siguiente:
/* Modulo Xbee 1 ============= Este programa se utiliza para enviar un estado alto o bajo remotamente por Xbee, dicho estado lo recibe de un dispositivo móvil mediante BT M.C. G. Mónica Mtz A Diciembre 2012 */ void setup() { Serial.begin(9600); } void loop() { while(Serial.available()); { Char dato=Serial.read(); Serial.print(dato); Serial.println(); delay(1000); } }
La programación del módulo remoto es: /* Modulo Xbee 2 ============= Este programa se utiliza para recibir un estado alto o bajo remotamente por Xbee, y se refleja la recepción en el pin 13 M.C. G. Mónica Mtz A Diciembre 2012 */ void setup() { Serial.begin(9600); } void loop() {
while(Serial.available()); { Char dato=Serial.read(); switch (dato) { Case ‘ON’ { digitalWrite(13,HIGH); break; } Case ‘OFF’ { digitalWrite(13,LOW); break; } } }
Con los módulos programados se procedió a crear la
aplicación para Android, desde App Inventor para esto solo es
necesario acceder a la página del mismo con una cuenta de
google y crear un nuevo proyecto [7], lo primero fue generar el
acomodo visual de la aplicación como se puede apreciar en la
figura 5.
Figura 5. Acomodo visual de la aplicación.
Después se accedió al editor de bloques y se programó el
comportamiento de la aplicación, el primer bloque fue el de la
dirección Mac (Figura 6).
Figura 6. Bloque de texto con la dirección MAC.
La dirección Mac se puede obtener realizando una
búsqueda normal en cualquier aparato con Bluetooth, una vez
encontrado te dirá como se llama el dispositivo y cuál es su
dirección como se muestra en la Figura 7.
Figura 7. Muestra de cómo obtener la dirección Mac de cualquier dispositivo.
El bloque de inicialización de pantalla se puede apreciar en
la figura 8, en este se declaró “B_conectar”: Color del texto en
blanco, el texto interior que se mostrara y el comportamiento
del botón “Motor” deshabilitado.
Figura 7. Inicio de la pantalla de la aplicación.
El siguiente bloque es del comportamiento del botón
“B_conectar.clik” (Figura 8). Dentro de este bloque se
encuentra un botón que cuando se hace click en el, habilita el
botón de Motor, también entra en una condicional “si” (IF),
donde condiciona a BluetoothClient1.Connected sea igual a
Dirección Mac para cambiar la apariencia del botón
“B_conectar.clik” tanto en color como en texto.
A si mismo se programa el comportamiento de un Click
Largo en el botón “B_conectar.LongClick”, el cual
desconectara la comunicación, devolviendo la apariencia de
éste a su estado original y deshabilitando el botón para
accionar el Motor.
Figura 8. Bloques para declarar el comportamiento del botón “Conectar”, y
botón “Conectar click largo”
Lo siguiente fue programar el comportamiento del botón
“Motor”, para ello, se necesitan declarar dos acciones: un
simple click y un click largo. La Figura 9 muestra el diagrama
de bloques para definir como funcionara el botón. Cuando se
hace un click, realizara la tarea de enviarle un texto al
dispositivo previamente vinculado, el texto enviado es la
palabra en ingles “ON” y el otro comportamiento de click
largo envía una palabra “OFF”.
Figura 9. Definición del comportamiento para el botón “Motor” dependiendo
de si es un click corto o uno sostenido para mandar un Texto.
Y por último para el botón “Salir” se coloca en el diagrama
de bloques el siguiente esquema (Figura 10).
Figura 10. Cerrar aplicación por medio de un click en el botón SALIR.
Con esto se terminó la programación por bloques realizada
para la aplicación, la cual se guardó con el comando “SAVE”
y se descargó a la computadora para posteriormente pasarlo al
dispositivo móvil.
Para la descarga se selecciona “Package for Phone”
(empaquetar para teléfono) y luego del menú que se desprende
se da click en “Download to this Computer” (descargar a esta
computadora) como se puede ver en la Figura 11.
Figura 11. Descargar el instalador de la aplicación para Android (archivo con
extensión “.apk”)
Con la aplicación descargada e instalada en el dispositivo
móvil con Android (en este caso una tableta ViewSonic
VPAD7), se procedió a realizar las pruebas. Para ello se
conectó el primer módulo a una pila y se ubicó en un punto
fijo, con el segundo módulo se procedió de igual manera y se
situó a aproximadamente una distancia del primero de 100
metros en línea recta y en una área abierta, por último se
accedió a la aplicación creada en el dispositivo móvil y desde
una distancia de aproximadamente 10 metros en dirección
contraria al segundo módulo de realizo el envío y recepción de
datos. Un diagrama de ubicaciones se puede apreciar en la
figura 12.
Figura 12. Diagrama de ubicaciones.
Ubicados los módulos se conectó al módulo 1 desde la
aplicación y se mandaron comando los cuales se
retransmitieron al módulo 2 encendiendo y apagando el pin 13
del mismo.
III. CONCLUSIONES
l resultado de la aplicación expuesta en este artículo es el
control remoto mediante la conjunción de tecnologías
asequibles a cualquier persona, por una parte la tarjeta
Arduino y su Shield Xbee y por otra el S.O. Android, en el
cual se pueden desarrollar aplicaciones de una manera sencilla
mediante software open source.
Siendo Android en la actualidad el sistema operativo más
usado en dispositivos móviles inteligentes, el cual cuenta con
múltiples aplicaciones para distintos usos, dentro de las cuales
la comunicación a dispositivos por medio de distintos
protocolos, para este caso Bluetooth.
Por otro lado la tarjeta Arduino contiene varios Shields con
los que se pueden realizar un sinfín de aplicaciones en varias
áreas de electrónica, instrumentación y control. El enlace de
estas tecnologías se muestra de una manera sencilla en
contraparte de su aplicación en campo, algunas de la
aplicaciones del control mostrado puede ser el control de
motores en la industria, de sistemas neumáticos e hidráulicos,
inmótica y domótica entre otros.
Cabe destacar que otro los puntos favorables de este
control es la capacidad de personalización de la aplicación
realizada para Android, con lo cual se ofrece un enfoque
totalmente profesional. Además de que se pueden realizar
redes de módulos Xbee según sea necesario.
IV. REFERENCIAS
[1] A. Hernández, G. Martínez, E. Salazar, “Instrumentación Virtual
Remota con tecnología CGI”, Memoria Técnica del V Congreso de
Innovación Tecnológica de Eléctrica y Electrónica. Ciudad Obregón,
Sonora, Octubre 19-21,2011.
[2] Brian W. Evans. “Arduino Programming Handbook: A Beginner's
Reference”, Editorial, USA, 2 edición, 2008.
[3] S. Jimenez, “¿Que es Xbee?”, Septiembre 2011. Disponible en:
http://www.tecnologicobj12.blogspot.mx/2011/09/que-es-xbee.html
[4] Kevin Purdy. “The complete Android Guide”, Editorial, USA, 1 ed.
334, 2009. Disponible en:
http://www.completeguides.net/01_The_Complete_Android_Guide.
[5] Bonifaz Kaufman, “Desing and Implementation of a Toolkit for the
Rapid Prototyping of a Mobile Ubiquitous Computing “. Master Thesis,
University of Klagenfurt, Klagenfurt, Austria, August 2010.
[6] ”Arduino + XBee - Primeros Pasos”, Disponible en:
http://www.hangar.org/webnou/wp-content/2012/01/arduino-xbee-
primeros-pasos.pdf
[7] G. Martínez, I. Cabral, “Creación de aplicaciones de comunicación BT
para Android”, Memoria Técnica SOMIXXVII Congreso de
Instrumentación Culiacán, Sinaloa, Octubre 2012.
V. BIOGRAFÍA
Gloria Mónica Martínez Aguilar nació un 18 de
Diciembre de 1981 en Torreón, Coahuila. Obtuvo el título de
Ingeniero Electrónico con especialidad en Instrumentación y
Control en el Instituto Tecnológico de la Laguna en el año
del 2005. Obtuvo el grado de Maestro en ciencias en el año
2008 en Ingeniería Electrónica en la especialidad de
Instrumentación y Control el Instituto Tecnológico de Chihuahua. Labora en
empresas de automatización y control como ingeniero de diseño y
automatización desde 2007, e imparte cátedra en la Universidad Tecnológica
de Torreón desde 2009 en las carreras de Mecatrónica, Procesos de
producción y Tecnologías de la Información y Comunicación. Actualmente es
profesor de tiempo completo en la universidad desarrollando investigaciones
en las áreas de control, automatización y TIC´s.
Eduardo Salazar Valle nació un 18 de Mayo de 1964 en
Torreón, Coahuila. Obtuvo el título de Ingeniero Industrial en
Electrónica en el Instituto Tecnológico de la Laguna en el año
del 2000. Titulo Especialidad Automatización de Procesos
Industriales en el año 2005 en Instituto Tecnológico de
Saltillo Estudios de maestría en el año 2007 en sistemas
Electrónica en el Instituto Tecnológico de estudios superiores
de Monterrey. Imparte cátedra en la Universidad Tecnológica de Torreón
desde 1999 en las carreras de Mecatrónica, Procesos de Producción y
Mantenimiento Industrial. Actualmente es profesor de tiempo completo en la
Universidad desarrollando investigaciones en las áreas de control y
automatización.
EL
IV. V. P
a
r
t
e
T
é
c
n
i
c
a
d
e
l
A
r
t
í
c
u
l
o