You are on page 1of 6

IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO.

6, SEPTEMBER 2014 971

API for communication Between


Labview and Arduino UNO
F. J. Jimnez, F. R. Lara and M. D. Redel

Abstract This paper presents an API for communication II. MATERIAL UTILIZADO
between Arduino and labview platforms, proposing a flexible Como ya se ha comentado, las herramientas utilizadas en el
structure for programming both to serve as a template for any presente trabajo son, por un lado, el lenguaje de programacin
project you want to undertake and optimizing the time of grfica National Instrument Labview 2009 (versin 9.03f
development of these. Proposes the use of the Arduino UNO
platform, this being open-hardware and low cost, being its open-
32-bits) [3] y por otro la plataforma open-hardware Arduino
source development software and free. Projects that can be UNO [4].
addressed with the proposed structure can be of various kinds, data Labview 2009 es un lenguaje de programacin grfico de
acquisition, control, hardware in loop, process monitoring, rapid National Instrument Corporation (11500 N Mopac Expwy
prototyping, both for education and in research. Austin, TX 78759-3504), siendo su principal caracterstica la
facilidad con la que se pueden crear aplicaciones
Keywords Arduino, Labview, API, communication, Low relativamente complejas, an con un nivel de conocimientos
Cost, Open-hardware, Template, Prototyping.
en programacin no muy elevados y que seran muy difciles
I. INTRODUCCION de realizar con los lenguajes de programacin de alto nivel
tradicionales. Este lenguaje es ampliamente utilizado por

M uchos proyectos de Ingeniera y/o Investigacin,


requieren del control de algn tipo de proceso, as como
del registro y monitorizacin de las variables y magnitudes
ingenieros e investigadores para una larga lista de
aplicaciones, como por ejemplo comunicacin y control de
instrumentacin [5], adquisicin de datos [6] [7],
existentes. Son varias las opciones comerciales con altas automatizacin industrial [8] [9], control y supervisin de
prestaciones que pueden ser utilizadas para tal fin, pero suelen procesos [10] [11] [12], simulacin y prototipado rpido[13],
contar con el inconveniente de un elevado coste, limitaciones Hardware in Loop [14] [15], entre otras.
para su adaptacin a las necesidades reales de la aplicacin en Arduino UNO es una plataforma open-hardware de bajo
la que son integradas, adems de una pronunciada curva de coste [16] [17], basada en un entorno de programacin open-
aprendizaje, lo que conlleva ms tiempo a la hora del source (Wiring) [18] y en una placa de prototipado con un
desarrollo y prototipado, as como el adiestramiento del microcontrolador Atmega328 del fabricante Atmel
personal encargado de su desarrollo y actualizaciones [1] [2]. Corporation [19], diseado para un fcil desarrollo de
Fruto de la experiencia en el mbito acadmico e proyectos multidisciplinares [20, 21]. Al tratarse de open-
investigador, basada en el desarrollo de diversos proyectos y hardware puede utilizarse sin necesidad de licencias para el
trabajos de esta ndole se ofrece como una solucin ptima a desarrollo de cualquier tipo de proyectos, siendo libre tanto su
las necesidades ya descritas, el uso combinado del lenguaje de diseo como su distribucin. El modelo Arduino UNO
programacin grfica National Instrument Labview 2009 dispone de 6 entradas analgicas y 14 pines de propsito
(versin 9.03f 32-bits) [3] y la plataforma open-hardware general I/O, siendo 6 de los 14 pines I/O configurables como
Arduino UNO [4]. salidas PWM para la emulacin de salidas analgicas.
Para optimizar el tiempo de desarrollo de aplicaciones entre Tambin dispone un conector USB (Universal Serial Bus) con
estas plataformas, se ha desarrollado una estructura inicial en doble finalidad. La primera es la de comunicar el
los cdigos de ambas, que se traducen en una API de microcontrolador con el PC, tanto para cargar las aplicaciones
comunicacin de propsito general, flexible y de cmoda desarrolladas y compiladas en el entorno de desarrollo por los
implementacin, facilitando la interconexin y transmisin de usuarios, como para la comunicacin entre las aplicaciones de
datos, con independencia del tipo de aplicacin o proyecto en Labview 2009 y de Arduino UNO. La segunda es la de
el que se integre. En este trabajo se muestra el contenido y alimentar la placa. En este sentido, las caractersticas descritas
estructura de la API desarrollada facilitando de este modo la hacen de Arduino UNO una opcin ideal para su uso como
labor de todos aquellos desarrolladores que deseen trabajar tarjeta USB de adquisicin de datos para trabajar con Labview
con ambas plataformas de forma conjunta. 2009.

III. METODOLOGA DE FUNCIONAMIENTO


F. J. Jimnez, Universidad de Crdoba (UCO), Crdoba, Espaa,
p72jirof@uco.es
La estructura bsica de la comunicacin serie entre dos
F. R. Lara, Universidad de Crdoba (UCO), Crdoba, Espaa, aplicaciones consta de una pareja de buffers para cada una de
el1laraf@uco.es ellas, uno de lectura y otro de escritura, como se puede
M. D. Redel, Universidad de Crdoba (UCO), Crdoba, Espaa,
ig1remam@uco.es
apreciar en la Fig. 1. Cada aplicacin podr leer de su buffer
972 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014

de lectura los bytes enviados desde la otra aplicacin y podr tenidas en cuenta previamente a la hora del diseo de las
enviar bytes a la otra aplicacin ubicando stos en su buffer de tareas. Luego hay que hacer notar:
escritura. Los buffers de lectura y escritura de ambas a) El primer byte recibido slo sirve para indicar qu tarea
aplicaciones estarn vinculados a travs del puerto serie. realizar y no tiene carcter de dato.
b) La tarea no puede comenzar hasta que el buffer de lectura
contenga al menos el nmero de bytes necesarios para
APLICACIN 1 APLICACIN 2
realizar la tarea, ms el byte de control comentado
Buffer de lectura Buffer de escritura anteriormente.
En funcin del tipo de tarea a realizar (segn retorne o no
Buffer de escritura Buffer de lectura datos), para indicar que Arduino UNO ha finalizado, la tarea
Figura 1. Estructura bsica de la comunicacin serie. enviar un byte de control para indicar a Labview que ha
terminado. Hasta que esta tarea no se complete Labview
Para iniciar la comunicacin entre la Labview y Arduino permanecer en espera.
UNO, es necesario que el usuario d la orden de inicio En las Fig. 2 y 3 se muestran los diagramas de flujo
mediante un control en Labview. En ese momento Arduino correspondientes a las aplicaciones de Arduino y Labview
UNO se reinicia, del mismo modo que lo hara si se reiniciara respectivamente.
desde el pulsador RESET de la propia placa, por lo que ste
tarda unos segundos en arrancar y estar listo para el envo y la INICIO COMUNICACIN
recepcin de bytes. Este hecho es crtico para asegurar una CON LABVIEW

correcta comunicacin, ya que si la aplicacin de Labview


comienza a enviar bytes antes de que Arduino UNO se haya
RESETEO DE ARDUINO
reiniciado, esos bytes no sern recibidos, perdiendo datos o
truncando stos en el caso de que estn compuestos de ms de
un byte. Por ello, al iniciar la comunicacin serie entre ambos, INICIO ARDUINO
Labview deber esperar a recibir un byte de control de
Arduino UNO, para confirmar que ha arrancado y que est
preparado para recibir y enviar datos. Una vez recibido este ENVIO BYTE CONTROL
DE INICIO
byte de control, las aplicaciones podrn ejecutarse
normalmente segn la secuencia de tareas requeridas en cada
instante.
La estructura bsica de programacin del microcontrolador
Arduino UNO consta de dos funciones principales setup() y
loop(). La funcin setup() se ejecuta una sola vez y en primer N BYTES EN
NO
lugar, en ella se pueden inicializar variables funciones pines BUFFER DE LECTURA
>= 1?
de propsito general o incluso partes de cdigo que necesiten
ejecutarse una sola vez. La funcin loop() ejecutar en forma SI
de bucle infinito todo el cdigo que contenga. Tambin, igual
que en cualquier lenguaje de programacin, se podrn crear LEER BYTE DE TAREA SIN
QUITARLO Y VER QUE TAREA
funciones propias del usuario, y estas ser llamadas desde las SE SOLICITA.

funciones principales.
El concepto a desarrollar, para una correcta comunicacin
y sin saturar los buffers de comunicacin, es el siguiente:
1. En la aplicacin de Arduino UNO se utilizar una N BYTES EN
BUFFER NECESARIOS
NO
estructura de control tipo switch{case} en la funcin PARA TAREA?

principal loop().
2. Cada una de las opciones switch{case} se corresponden SI
con una tarea entre ambas aplicaciones, de recepcin y/o
envo de bytes. REALIZAR TAREA
De esta forma, a cada tarea se le aplicar un cdigo
numrico que solamente se corresponde a las distintas
opciones del switch{case}. Dentro de cada una de estas
ENVIO BYTE CONTROL
opciones se comprueba que la cantidad de bytes que se deben DE TAREA FINALIZADA
recibir (mximo 128 bytes incluido el byte de tarea), o enviar
segn la tarea diseada en la aplicacin (nmero de bytes Figura 2. Diagrama de flujo de la aplicacin en Arduino UNO.
limitado por el tamao del buffer en Labview y de envo
simultneo a 128 bytes del buffer de escritura de Arduino
UNO), son las correctas. Esta cantidad de bytes han debido ser
JAVIER JIMNEZ et al.: API FOR COMMUNICATION 973

INICIO COMUNICACIN ejecuta una sola vez y la funcin loop() se ejecuta de igual
forma que un bucle infinito. La funcin setup() se utiliza
para inicializacin y configuracin de los perifricos de
Arduino UNO, como por ejemplo la configuracin de los
pines de propsito general, la comunicacin serie, declaracin
BYTE TESTIGO
NO de variables, y todo aquel cdigo que slo necesite ejecutarse
DE INICIO RECIBIDO
DE ARDUINO? una nica vez durante el funcionamiento del
microcontrolador.
SI Inicializacin del puerto serie:
El cdigo para la inicializacin del puerto serie en la
PETICIN DE TAREA,
ENVIO DE BYTE DE TAREA
aplicacin de Labview se muestra en la Fig. 4.
Y BYTES DE DATOS.

RECIBIDO BYTE
DE FINALIZACIN DE
NO
TAREA DE ARDUINO

SI Figura 4. Cdigo Labview para inicializacin del puerto serie.

Al inicializar la comunicacin serie desde la aplicacin de


Labview, el cdigo mostrado en la Fig. 4 se ejecutar. En l se
FINALIZAR APLICACIN?
NO pueden apreciar los distintos bloques de configuracin del
puerto serie utilizados y el valor de los parmetros de stos.
Una vez configurado e inicializado el puerto serie puede
SI
observarse un bucle while con la condicin de salida de la
recepcin de un byte. ste es el byte testigo que recibir
FIN COMUNICACIN
Labview desde Arduino para indicar que est iniciado y listo
para la realizacin de las tareas requeridas por la aplicacin,
FIN APLICACIN
ya que al iniciar la comunicacin entre ambas aplicaciones,
Arduino se reinicia y tarda unos segundos en arrancar. Una
Figura 3. Diagrama e flujo de la aplicacin en Labview. vez recibido el byte desde Labview, adems de salir del bucle
while para continuar con la ejecucin de la aplicacin se
IV. IMPLEMENTACIN leer el byte testigo para quitarlo del buffer de lectura de la
Las funciones utilizadas en Arduino para la comunicacin aplicacin de Labview.
serie son: Prueba de comunicacin:
Serial.begin(velocidad); Establece la velocidad de datos Cada cierto tiempo es conveniente realizar una
en bits por segundo (baudios) para la transmisin de comprobacin de comunicacin para asegurarnos del buen
datos. funcionamiento de la aplicacin, ya que en el caso de
Serial.available();Devuelve el nmero de bytes controlar elementos de potencia como resistencias o motores
disponibles para ser ledos por el puerto serie. Se refiere mediante Arduino conlleva cierto peligro que estn
a datos ya recibidos y disponibles en el buffer de funcionando sin control, y en el caso de no superar la prueba
recepcin del puerto. de comunicacin, es conveniente que la aplicacin se detenga
Serial.peek(); Devuelve el primer byte del buffer de para evitar un mal funcionamiento o un deterioro de los
lectura sin quitarlo de ste. Gracias a esta funcin materiales.
podremos ver la tarea requerida por Labview sin eliminar En la Fig. 5 puede observarse que la estructura case se
el byte de control, ya que en el caso de no estar
ejecutar cada intervalo de tiempo dado por el bloque
disponibles los bytes necesarios para realizar la tarea, se
Elapsed Time, que devolver true cuando pase el tiempo
realizara otra vez la comprobacin y se comprobara de
configurado. Una vez dentro del cdigo de la estructura
nuevo si estn disponibles los bytes necesarios.
case, lo primero es enviar el nmero de tarea a Arduino. Se
Serial.read(); Devuelve el primer byte del buffer de
lectura quitndolo de ste. observa como se enva un byte de valor 4, correspondiente a
Serial.write(); Escribe datos binarios en el puerto serie. la tarea de prueba de comunicacin en el case de Arduino, y la
Estos datos se envan como un byte o una serie de bytes. aplicacin de Labview entra en espera gracias a un bucle
El cdigo de Arduino UNO se compone de dos funciones while que terminar cuando reciba el byte testigo de
principales setup() y loop(). La funcin setup() se Arduino de la tarea de prueba de comunicacin. Una vez
974 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014

recibido el byte en el buffer de lectura en la aplicacin de entradas analgicas se utilizarn 2 bytes, luego el
Labview y terminado el bucle while se leer el byte testigo total de bytes a enviar por esta tarea ser de
para quitarlo del buffer. 4+12+4 = 20 bytes.
Tarea 3: envo del tiempo transcurrido en
microsegundos desde el ltimo reset del
microcontrolador y la ocupacin del buffer de
lectura de Arduino UNO. La funcin que devuelve
la ocupacin del buffer del microcontrolador lo
hace por medio de una variable tipo int (2 bytes),
luego el total de bytes de la tarea ser de 4+2 = 6
Figura 5. Cdigo Labview para realizar una prueba de comunicacin. bytes.
En la Fig. 8 podemos observar los resultados obtenidos
Finalizacin de la aplicacin: mediante graficas que indican en el eje de abscisas el
Una tarea siempre necesaria en cualquier aplicacin es la nmero de bytes que hay en el buffer de lectura, y en el eje
parada o finalizacin del proceso. Se puede observar en la Fig. de ordenadas la frecuencia de la ocupacin del buffer por
6 que es similar a la prueba de comunicacin, pero esta vez se un nmero determinado de bytes. Las grficas a), b) y c) de
dispone de un control tipo pulsador para entrar en el case de la Fig.8 se corresponden al caso de no utilizar la API a las
Labview, luego el usuario tiene el control de parar la distintas velocidades antes mencionadas, 9600,57600 y
aplicacin a voluntad durante su ejecucin. 115200 bits/s respectivamente, y en ellas podemos ver
como el buffer de lectura llega a saturarse bloqueando la
comunicacin y perdiendo el control en la ejecucin de las
tareas, en las grficas d), e) y f) de la Fig. 8 muestran los
resultados obtenidos con la API, en las cuales podemos
observar que el buffer es usado de forma ptima
independientemente de la velocidad sin llegar a saturarse.

Ejemplo de lectura de sondas de temperatura:


Una parte de las aplicaciones implementadas es la de la
Figura 6. Cdigo Labview para la finalizacin de la aplicacin. lectura de 6 sondas de temperatura PT100, en la cual se puede
apreciar de forma clara el funcionamiento del algoritmo en la
Test de saturacin del buffer: Fig. 7.
Para la comprobacin del funcionamiento de la API se ha
diseado un experimento el cual consiste en monitorizar el
buffer de lectura de Labview en los siguientes casos:
Utilizando la API a las velocidades de 9600,57600 y
115200 bit/s durante 120 segundos.
Sin utilizar la API a las velocidades de 9600,57600
y 115200 bit/s hasta que se sature el buffer.
Se han seleccionado estas velocidades estndar siendo la de
9600 bits/s la velocidad mnima usada en la mayora de Figura 7. Cdigo Labview para la tarea de lectura de 6 sondas PT100.
aplicaciones que utilizan comunicacin serie, 57600 bits/s
como velocidad media y 115200 bits/s como la mxima. Este es un ejemplo de aplicacin de una lectura de 6 sondas
Cabe sealar que lo ms interesante es siempre utilizar la de temperatura del tipo PT100 conectadas a las entradas
velocidad ms alta posible ya que la API se encargara del analgicas de 10 bits de Arduino. Se puede observar que el
proceso de sincronizacin entre tareas para la optimizacin byte de tarea es el 5, se enva a Arduino este byte y se entra
del uso del buffer. en un bucle while a la espera de recibir los bytes de la tarea
Para ambos casos se han diseado 3 tareas a realizar por que en este caso es 13. Cada lectura de sonda est
Arduino UNO por peticin de la aplicacin en Labview: compuesta por 2 bytes (16 bits) por 6 sondas (12 bytes), ya
Tarea 1: envo del tiempo transcurrido en que las entradas analgicas de Arduino son de 10 bits, ms 1
microsegundos desde el ltimo reset del byte testigo de que ha terminado, un total de 13 bytes. Una
microcontrolador, con un tamao de 4 bytes ya vez recibidos los 13 bytes se entrar en un bucle FOR con 6
que dicho valor se almacena en una variable tipo iteraciones, una por sonda, en el que se unirn el byte inferior
unsigned long. con el superior para componer la lectura de la sondas y
Tarea 2: incluye la tarea 1 al inicio de esta tarea 2, posteriormente almacenado el valor en el vector lectura de
lectura de las seis entradas analgicas de 10 bits y sondas. Por ltimo se lee el byte nmero 13 que es el byte
de nuevo la tarea 1. Para enviar la lectura de las testigo para eliminarlo del buffer.
JAVIER JIMNEZ et al.: API FOR COMMUNICATION 975

9600 bits/s, sin API 9600 bits/s, con API

a) d)

57600 bits/s, sin API 57600 bits/s, con API

b) e)

115200 bits/s, sin API 115200 bits/s, con API

c) f)
Figura 8. Ocupacin del buffer de lectura del puerto serie en los distintos ensayos: a) para una velocidad de 9600 bits/s sin usar la API, b) para una velocidad de
57600 bits/s sin usar la API, c) para una velocidad de 115200 bits/s sin usar la API, d) para una velocidad de 9600 bits/s usando la API, e) para una velocidad de
57600 bits/s usando la API y f) para una velocidad de115200 bits/s usando la API.

V. CONCLUSIONES independientemente de su nivel de conocimientos y


Se ha desarrollado una metodologa para el establecimiento experiencia en la programacin de este tipo de sistemas.
de una comunicacin fiable y robusta entre dos plataformas de La API y metodologa desarrolladas son independientes del
creciente inters en el mbito tcnico y cientfico, como son sistema que se quiera desarrollar, lo que la hace verstil y til
por un lado, la placa de prototipado Arduino UNO y por otro, en cualquier campo de aplicacin, donde intervenga la
el software de programacin grfica Labview. monitorizacin o control de variables.
Se aporta el esquema bsico para que pueda ser utilizado Las caractersticas propias del open-hardware utilizado, as
por cualquier desarrollador interesado en el uso de este tipo de como las de los dems componentes (opto-acopladores, rels,
plataformas, de modo que sirva como plantilla de partida, transistores, ect), hacen que el sistema sea de coste muy
976 IEEE LATIN AMERICA TRANSACTIONS, VOL. 12, NO. 6, SEPTEMBER 2014

reducido y por lo tanto, de fcil adquisicin y uso por parte de [20] V. Georgitzikis, et al., "Controlling physical objects via the internet
using the arduino platform over 802.15.4 networks," IEEE Latin
cualquier equipo de trabajo. America Transactions, vol. 10, pp. 1686-1689, 2012.
Por ltimo, se puede afirmar que con los resultados [21] T. O. Loup, et al., "Bluetooth embedded system for room-safe
obtenidos en esta plataforma, bajo esta filosofa de temperature monitoring," IEEE Latin America Transactions, vol. 9,
pp. 911-915, 2011.
comunicacin, han sido absolutamente satisfactorios por sus
caractersticas ya comentadas de fiabilidad, fcil
implementacin y prototipado, flexibilidad y bajo coste. Francisco Javier Jimnez obtiene el ttulo de Ingeniero
industrial en Automtica y Electrnica Industrial en 2010.
Actualmente trabaja como profesor de universidad en el
REFERENCIAS departamento de Ingeniera Elctrica en la Universidad de
[1] I. Texas. (1995, 07/10/2012). Texas Instruments website. Available: Crdoba (Espaa), donde imparte clase de Mquinas
Elctricas, Mquinas Elctricas Especiales y Regulacin
http://www.ti.com/
Automtica. Sus principales lneas de investigacin se centran en el estudio
[2] M. T. Inc. (1998, 07/10/2012). MICROCHIP website. Available:
del comportamiento acstico de las mquinas elctricas rotativas, as como en
http://www.microchip.com/ la eficiencia y ahorro energtico en Mquinas e Instalaciones Elctricas.
[3] N. I. Corporation. (2012, 07/10/2012). National Instruments. Available:
http://www.ni.com/labview/ Fco. Ramn Lara es Doctor por la Universidad de Crdoba
[4] Arduino. (2011, 07/10/2012). ARDUINO website. Available: (Espaa) desde 2012. Ingeniero en Automtica y Electrnica
http://www.arduino.cc/ Industrial desde 2003. Actualmente trabaja como profesor en
[5] R. Pittini, et al., "An interface board for developing control loops in power el Departamento de Ingeniera Elctrica de la Universidad de
electronics based on microcontrollers and DSPs Cores -Arduino Crdoba (Espaa), en asignaturas de Mquinas Elctricas y
/ChipKit /dsPIC /DSP /TI Piccolo," in Control and Modeling for Tecnologa Elctrica. Sus principales lneas de investigacin
Power Electronics (COMPEL), 2013 IEEE 14th Workshop on, pp. se centran en el estudio del comportamiento acstico de las mquinas
1-7, 2013. elctricas rotativas, as como en la eficiencia y ahorro energtico en Mquinas
[6] R. W. Fransiska, et al., "Electrical power measurement using Arduino Uno e Instalaciones Elctricas.
microcontroller and LabVIEW," in Instrumentation,
Communications, Information Technology, and Biomedical Mara Dolores Redel naci en Crdoba, Espaa, en 1977.
Engineering (ICICI-BME), 2013 3rd International Conference on, Recibi el grado de Doctor Internacional en Automtica y
pp. 226-229, 2013. Electrnica Industrial en 2012. Actualmente trabaja como
[7] A. P. Alves, et al., "BITtalino: A biosignal acquisition system based on the profesora Ayudante Doctor en el Departamento de Ingeniera
arduino," in International Conference on Biomedical Electronics Rural en la Universidad de Crdoba. Sus principales reas de
investigacin incluyen la identificacin de fuente de ruido y
and Devices, BIODEVICES 2013, pp. 261-264, Barcelona, Spain,
calidad del sonido en biocombustibles.
2013.
[8] S. R. R. D. Purusothaman, et al., "Implementation of Arduino-based multi-
agent system for rural Indian microgrids," in Innovative Smart Grid
Technologies - Asia (ISGT Asia), 2013 IEEE, pp. 1-5, 2013.
[9] W. B. Williams, "LabVIEW and arduino as a gateway to PLC
programming," in 120th ASEE Annual Conference and Exposition,
Atlanta, GA; United States, 2013.
[10] A. Zoric, et al., "Virtual multisensors data acquisition and analysis
system design," Elektronika ir Elektrotechnika, pp. 49-54, 2011.
[11] A. Kumar, et al., "Energy efficient air quality monitoring system," in
10th IEEE SENSORS Conference 2011, SENSORS 2011, pp. 1562-
1566, Limerick, Ireland, 2011.
[12] N. S. A. Zulkifli, et al., "XBee wireless sensor networks for Heart Rate
Monitoring in sport training," in International Conference on
Biomedical Engineering, ICoBE 2012, pp. 441-444, Penang,
Malaysia, 2012.
[13] M. Anwari, et al., "Small scale PV monitoring system software design,"
in 1st International Conference on Smart Grid and Clean Energy
Technologies, ICSGCE 2011, pp. 586-592, Chengdu, China, 2011.
[14] D. J. Rankin and J. Jiang, "A hardware-in-the-loop simulation platform
for the verification and validation of safety control systems," IEEE
Transactions on Nuclear Science, vol. 58, pp. 468-478, 2011.
[15] M. Iacob and G. D. Andreescu, "Implementation of hardware-in-the-loop
system for drum-boiler-turbine decoupled multivariable control," in
6th IEEE International Symposium on Applied Computational
Intelligence and Informatics, SACI 2011, pp. 45-50, Timisoara,
Romania, 2011.
[16] A. D'Ausilio, "Arduino: A low-cost multipurpose lab equipment,"
Behavior Research Methods, vol. 44, pp. 305-313, 2012.
[17] K. Baraka, et al., "Low cost arduino/android-based energy-efficient
home automation system with smart task scheduling," in 5th
International Conference on Computational Intelligence,
Communication Systems, and Networks, CICSyN 2013, pp. 296-
301, Madrid, Spain, 2013.
[18] Processing. (2012, 07/10/2012). Wiring website. Available:
http://wiring.org.co/
[19] A. Corporation. (1998, 07/10/2012). Atmel [website]. Available:
http://www.atmel.com/devices/atmega328.aspx

You might also like