Sei sulla pagina 1di 6

SISTEMA DISTRIBUIDO CON ARDUINO Y LABVIEW, UTILIZANDO EL

PROTOCOLO UDP.
Hernndez R. Sergio I., Ortiz N. Bertha L., Meranza C. Manuel O.,
Bonifaz Estefany., Gutirrez Aarn, Duarte Rub.
Instituto Tecnolgico de Nogales
Ave. Instituto Tecnolgico Nm. 911, Nogales, Sonora. C.P. 84065
Telfono (631) 123- 9703.
sergio.hernandez@cicsa-net.com.mx
RESUMEN.
El presente trabajo de investigacin se realiz en el Instituto
Tecnolgico de Nogales, contempla el resultado del estudio e
implementacin de un sistema distribuido, basado en el
protocolo UDP (User Datagram Protocol). Para el desarrollo
de la aplicacin en la computadora se utiliz el lenguaje
LabView de la compaa National Intruments, el cual se
comunica con la plataforma Arduino, utilizando el protocolo
ya mencionado. La aplicacin puede ser aplicada a diferentes
ambientes o reas de trabajo, como el entorno industrial, la
domtica, el sector de bienes y servicios entre otros, para un
uso en especfico. En este caso se realiz el estudio
desarrollando una aplicacin orientada al rea de la domtica.
Palabras Clave: UDP, Arduino, LabView.

ABSTRACT.
This research was conducted at the Instituto Tecnolgico de
Nogales, presents the results of the study and implementation
of a distributed system based on UDP (User Datagram
Protocol). For the development of the application, the
LabView language was used, which communicates with the
Arduino platform, using the aforementioned protocol. The
application can be applied to different environments and work
areas, such as industrial environment, home automation,
among others. In this case it was oriented to the area of home
automation.
Keywords: UDP, Arduino, LabView.

1. INTRODUCCIN
Las primeras redes que comunicaban computadoras se
instalaron en EE.UU. en los aos 60. En aquella poca
prcticamente cada red estaba implementada con una
tecnologa distinta e incompatibles unas con otras. A
principios de los 70 surgi un nuevo concepto: la
interconexin de redes. Ya no basta con comunicar
computadoras sino que haba que comunicar redes de
computadoras distintas [5]. Actualmente la tendencia a
la globalizacin exige que los sistemas y aplicaciones
informticos, cuenten con herramientas potentes que le
permitan una comunicacin entre todos los niveles [2].

Estos sistemas se denominan: sistemas distribuidos y sus


principales ventajas son:

Rendimiento.
Fiabilidad.
Escalabilidad.

Las aplicaciones distribuidas son aquellas construidas


sobre sistemas distribuidos, donde los aspectos de
complejidad como: localizacin, replicacin, fallos y
concurrencia, sean transparentes al programador de
aplicaciones. A continuacin se presenta la
implementacin de un sistema distribuido utilizando el
protocolo UDP, LabVIEW y la interface Arduino.
2. ESTADO DEL ARTE
2.1. Arduino.
Arduino es una plataforma de desarrollo de computacin
fsica (physical computing) de cdigo abierto, basada en
una tarjeta con un microcontrolador y un entorno de
desarrollo para crear software (programas). Arduino se
utiliza para crear aplicaciones interactivas, obteniendo
datos de una gran variedad de interruptores y sensores,
para el control de diferentes dispositivos como: luces,
motores y otros actuadores [3]. Los proyectos con
Arduino pueden ser autnomos o comunicarse con un
programa (software) que se ejecute en una computadora.
El hardware est disponible para realizarlo uno mismo o
se puede comprar ya listo para su uso, el software de
desarrollo es abierto y se descarga sin ningn costo [4].
El lenguaje de programacin de Arduino es una
implementacin de
Wiring, una plataforma de
computacin fsica, que a su vez se basa en Processing,
un entorno de programacin multimedia.

Figura 1. Tarjeta Arduino Uno.


Para la conexin se utiliz el dispositivo Ethernet
Shield, el cual permite conectar la tarjeta Arduino a la
red. Este dispositivo est basado en el chip Ethernet
Wiznet, provee una pila de red IP (Internet Protocol)
utilizando los protocolos TCP (Transmission Control
Protocol) y UDP, soportando hasta cuatro conexiones
simultneas.

Figura 2. Ethernet Shield.


2.2. UDP.
El protocolo UDP, definido en la RFC 768. No aade
fiabilidad, control de flujo o recuperacin de errores a IP
cuando funciona sobre l, simplemente trabaja como un
multiplexor/demultiplexor para enviar y recibir
datagramas, usando los puertos para dirigir los
datagramas.

Figura 3. Estructura UDP.


En IP hay direcciones que sirven para encaminar la
informacin de un host a otro a travs de la red, en UDP
hay puertos que sirven para identificar qu aplicacin
est asociada a esa informacin. Por tanto para
establecer una conexin entre dos dispositivos se
necesitan estos dos datos bsicos: puertos y direccin IP.
A esta pareja de datos se le llama socket [5].
2.3. LabView.
LabView es el acrnimo de Laboratory Virtual
Instrument Engineering Workbench. Es un lenguaje y a
la vez un entorno de programacin grfica en el que se
pueden crear aplicaciones de una forma rpida y
sencilla. National Instruments es la empresa
desarrolladora y propietaria de LabView, que comenz
en 1976 en Austin, Texas y sus primeros productos eran
dispositivos para el bus de instrumentacin GPIB.
LabView es una herramienta de programacin grfica.
Originalmente este programa estaba orientado a
aplicaciones de control de instrumentos electrnicos,
usadas en el desarrollo de sistemas de instrumentacin,
lo que se conoce como instrumentacin virtual [5].
3. DESARROLLO
Se desarroll e implement un sistema distribuido
basado en el protocolo UDP, para la transferencia de
informacin entre la computadora y un dispositivo
Arduino, el sistema se enfoc al rea de la domtica,
para el control y monitoreo de algunos dispositivos
utilizados en los hogares travs de la red (fig. 4).

muestra el panel de control de la aplicacin, donde se


pueden activar/desactivar dispositivos como: abanicos,
iluminacin, motores, entre otros.

Figura 4. Sistema distribuido, aplicado al hogar.


UDP es un protocolo basado en el envo y recepcin de
datagramas, este servicio es sin conexin, es decir no se
establece una sesin entre los dispositivos, de tal manera
que UDP no garantiza ni confirma la entrega de la
informacin, por tal razn la aplicacin desarrollada
debe proporcionar la confiabilidad necesaria para el
transporte de los datos de una manera correcta. Es
necesario asignarle una direccin IP y un puerto para
indicar el destino de la informacin a transmitir.
Figura 6. Panel de control.
Cuando la aplicacin enva la informacin para activar o
desactivar dispositivos, espera respuesta del dispositivo
Arduino, confirmando que la informacin fue recibida
correctamente, si la confirmacin no es recibida la
aplicacin volver a enviar nuevamente la informacin,
esto lo realizar hasta que un temporizador previamente
programado expire. Al no haber confirmacin de reciba
la informacin se generar un error de comunicacin, el
cual ser mostrado al usuario en una pantalla alterna.
Figura 5. Estructura de la aplicacin.
La tarjeta Arduino se conecta a la red a travs de la
Shield Ethernet de Arduino, se puede configurar como
un servidor al aceptar conexiones entrantes o como
cliente que realiza conexiones salientes, soporta hasta
cuatro conexiones simultneas (entre salientes, entrantes
o combinaciones). La Shield Ethernet utiliza el
protocolo SPI (Serial Peripheral Interface) para la
comunicacin con la tarjeta Arduino.
La aplicacin para la computadora se realiz en
LabView, como se mencion anteriormente el protocolo
UDP no garantiza, ni confirma la entrega de la
informacin, razn por la cual fue necesario desarrollar
e implementar un mtodo para asegurar la confiabilidad
del sistema y verificar el transporte de los datos para
que lleguen de manera correcta. En la figura 6, se

Figura 7. Cdigo en LabVIEW.

4. RESULTADOS
El problema de la prdida de datos es especialmente
difcil, debido a que la prdida puede ocurrir a la mitad
de la red, incluso cuando los dispositivos de origen y
destino no detectan problema alguno. Basados en las
especificaciones del protocolo UDP, el cual no
contempla conexin para el aseguramiento de la
informacin, se tuvo la necesidad de que la aplicacin
desarrollada fuera diseada con ciertas caractersticas,
configuraciones y temporizadores para manejar el
problema de prdidas de informacin. El transmisor
retransmite los datos a menos que llegue una
confirmacin antes de que expire el temporizador.

se verifica el puerto destino y conduce al segmento UDP


hacia el socket con ese puerto.

Figura10. Proceso para encender/apagar un dispositivo.

Figura 8.Segmento UDP.


La aplicacin en la computadora colecta los datos que
provienen de los sockets, envolvindolos con una
cabecera (que posteriormente ser utilizada para
demultiplexar). La aplicacin en el dispositivo recolecta
los datos y pasa los segmentos recibidos al socket
indicado (ver figura 9). Las capas internas del protocolo
realizan esta operacin, nicamente se le asigna el
nmero de puerto a utilizar por la aplicacin.

Figura 9. Multiplexado/demultiplexado sin conexin.


El socket UDP se identifica por: direccin IP origen,
nmero de puerto origen, direccin IP destino y nmero
de puerto destino. Cuando se recibe un segmento UDP,

Si se desea activar o desactivar un dispositivo del hogar,


el usuario enva un carcter, en el caso de la figura es
una c, la tarjeta recibe el mensaje y activa el puerto
donde se encuentra conectado el dispositivo, posterior
reenva el mismo carcter recibido a manera de eco, al
llegar a la computadora se confirma que la
comunicacin se estableci correctamente, si la
computadora no recibe el mensaje de la tarjeta en un
tiempo predeterminado (10 segundos previamente
configurados para esta aplicacin) reenva nuevamente
el carcter. Este proceso lo realiza tres veces, al no llegar
el eco se genera un mensaje de error en la pantalla del
usuario despus de transcurrido el temporizador.

Figura11. Generacin mensaje de error.


En resumen la aplicacin controla la transferencia de los
datos y su principal caracterstica es la de proveer
confiabilidad en el proceso, los tiempos aproximados de
comunicacin cuando no hay problemas en la
comunicacin es de 1.8 segundos. Se desconect la
tarjeta Arduino de la red, la computadora tard 32
segundos en generar el mensaje de error, indicando que
no pudo establecer comunicacin con la tarjeta,
finalmente con las pruebas realizadas se pude determinar
que el proceso cumple con: confiabilidad, control de
flujo, multiplexado y demultiplexado.
5. CONCLUSIONES
Uno de los objetivos principales del presente trabajo fue
el de conocer las caractersticas del protocolo UDP, para
presentar de manera general el contexto y los
requerimientos necesarios para establecer comunicacin
entre una computadora y un dispositivo Arduino.
Aunque el protocolo UDP no presenta propiedades para
el aseguramiento de la informacin, la aplicacin

desarrollada cumpli satisfactoriamente con los puntos


de confiabilidad, control de flujo, multiplexado y
demultiplexado. Haciendo que los aspectos de
complejidad como: localizacin, replicacin, fallos y
concurrencia, sean transparentes para el usuario. A
futuro se pretende estudiar el comportamiento del
sistema al utilizar el protocolo TCP.
6. REFERENCIAS
[1]

[2]
[3]
[4]
[5]
[6]

Sergio I. Hernndez R., Pedro Ochoa M., and Julio C. Ramrez V.


Bluetooth and OPC (OLE for Process Control) for the
Distributed Data Integration. Fourth Congress of Electronics,
Robotics and Automotive Mechanics. IEEE, 2007.
Bauls M Carmen, Irn Lus.Sistemas Distribuidos.
ActualidadTIC, pp 12-15, sidi@iti.upv.es.
Evans Brian, Beginning Arduino Programming, writing code
for the most popular microcontroller board in the world,
Technology in Action, 2011, ISBN: 978-1-4302-3778-5.
http://www.arduino.cc/es/.
Lajara Jos, Pelegr Jos, LabVIEW, Entorno Grfico de
Programacin, Ed. Alfaomega, 2007, ISBN: 978-970-15-1133-6
Herrera Enrique, Tecnologas y Redes de Transmisin de
Datos, Ed. Limusa, 2003, ISBN: 968-18-6383-6.

Potrebbero piacerti anche