You are on page 1of 25

Junio 2012 Juan Carlos Quiroz Snchez

Junio 2012

JCQS

1 / 25

INTRODUCCIN El presente trabajo describe el procedimiento para instalar todos los programas necesarios para usar la tarjeta Arduino Uno como adquisicin de datos con el programa Labview y controlar procesos, cabe mencionar que este trabajo es una recopilacin de otros trabajos de otros autores y el objetivo principalmente es que el lector y usuario pueda a partir de este trabajo avanzar, librando las dificultades que se me presentaron para hacer realidad el uso de una tarjeta econmica para realizar proyectos sencillos a nivel escolar, que pudieran llegar a ser profesionales, siendo accesibles para poner en practica conocimientos alternos de control mas all de la teora que se presenta en los libros, y de esta forma llegar a un entendimiento practico-terico a travs de la experimentacin. As, finalmente armando un rompecabezas de trabajos, informacin y contribucin de varios autores y personal, este documento es de distribucin libre siempre que se mencione la referencia y su uso sea responsable. Primeramente mencionaremos que es necesario Labview 2009 o superior, an con el programa de evaluacin es posible usar con la tarjeta Arduino, adems supuesto que el usuario tiene instalado Labview y he realizado programas bsicos. La tarjeta Arduino puede ser usada para programacin independiente de microcontroladores con su propia plataforma de programacin (IDE), usaremos la tarjeta Arduino Uno como medio de adquisicin de datos para ser controlados va PC, ya que se puede instalar una serie de herramientas (toolkit) en Labview, para leer y/o escribir hacia la tarjeta configurando en el programa. Para completar todo el proceso de comunicacin, adquisicin y control es necesario tres partes fundamentales Hardware - Software Firmware. En caso de tener experiencia y conocimiento en el manejo de la tarjeta de Arduino entonces se puede ir directo al instalacin de los programas y paquetes necesarios para instalar y manejar el toolkit para Arduino en Labview, captulo 3. Hay que tomar en cuenta que las pginas, as como su contenido se van actualizando tanto con Arduino y Labview y la apariencia, direccin, ruta o pasos a seguir pueden variar, de igual manera depende de la computadora y tipo de Windows, por lo que antes de realizar la instalacin y seguir paso a paso el presente manual, se recomienda leerlo para tener una idea general y poder solucionar cualquier cambio en los pasos particulares.

Junio 2012

JCQS

2 / 25

ndice 1 ARDUINO.. 1.1 La plataforma ARDUINO . 1.2 Por qu ARDUINO? .. 2 HARDWARE . 2.1 Summary (Resumen de caractersticas elctricas) . 2.2 Power (Alimentacin) 2.3 Memory (Memoria) ................................................................................... 2.4 Input and Output (Entradas y Salidas) ..................................................... 2.5 Communication (Comunicacin) 2.6 Programming (programacin) ................................................................. 2.7 Automatic (Software) Reset (Reinicio) ................................................... 2.8 USB Overcurrent Protection (Proteccin USB) ...................................... 2.9 Physical Characteristics (caractersticas fsicas).................................... 4 4 4 5 6 6 7 7 7 8 8 9 9

3 SOFTWARE.... 9 3.1 Labview 2009 o superior. 9 3.2 Instalacin de la plata forma para Arduino y la interfase IDE 9 3.3 Instalacin de driver VISA 5.1.1 16 3.4 Instalacin de toolkit para Arduino en Labview (Labview Interface for Arduino, LIFA) 17 3.5 Cargar el programa (sketch) LIFA_Base.pde para el Arduino (Firmware) 21 4 Prueba final. Bibliografa y referencias. 22 24

Junio 2012

JCQS

3 / 25

1 ARDUINO
1.1 La plataforma ARDUINO
Arduino es una plataforma de prototipos electrnica de cdigo abierto (opensource) basada en hardware y software flexibles y fciles de usar. Est pensado para artistas, diseadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos. Arduino puede percibir el entorno mediante la recepcin de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el Arduino Programming Language y el Arduino Development Environment. Los proyectos de Arduino pueden ser autnomos o se pueden comunicar con software en ejecucin en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.). Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se puede descargar gratuitamente. Los diseos de referencia del hardware (archivos CAD) estn disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus necesidades. Arduino recibi una mencin honorfica en la seccin Digital Communities del Ars Electronica Prix en 2006.

1.2 Por qu ARDUINO?


Hay muchos otros microcontroladores y plataformas microcontroladoras disponibles para computacin fsica. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, y muchas otras ofertas de funcionalidad similar. Todas estas herramientas toman los desordenados detalles de la programacin de microcontrolador y la encierran en un paquete fcil de usar. Arduino tambin simplifica el proceso de trabajo con microcontroladores, pero ofrece algunas ventajas para profesores, estudiantes y aficionados interesados sobre otros sistemas: Barato: Las placas Arduino son relativamente baratas comparadas con otras plataformas microcontroladoras. La versin menos cara del modulo Arduino puede ser ensamblada a mano, e incluso los mdulos de Arduino preensamblados cuestan menos de $50 dolares. Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux. La mayora de los sistemas microcontroladores estn limitados a Windows. Entorno de programacin simple y claro: El entorno de programacin de Arduino es fcil de usar para principiantes, pero suficientemente flexible para que usuarios avanzados puedan aprovecharlo tambin. Para profesores, est convenientemente basado en el entorno de programacin Processing, de manera que estudiantes Junio 2012 JCQS 4 / 25

aprendiendo a programar en ese entorno estarn familiarizados con el aspecto y la imagen de Arduino. Cdigo abierto y software extensible: El software Arduino est publicado como herramientas de cdigo abierto, disponible para extensin por programadores experimentados. El lenguaje puede ser expandido mediante librerias C++, y la gente que quiera entender los detalles tcnicos pueden hacer el salto desde Arduino a la programacin en lenguaje AVR C en el cual est basado. De forma similar, puedes aadir cdigo AVR-C directamente en tus programas Arduino si quieres. Cdigo abierto y hardware extensible: El Arduino est basado en microcontroladores ATMEGA8, ATMEGA168 o TAMEGA328 de Atmel. Los planos para los mdulos estn publicados bajo licencia Creative Commons, por lo que diseadores experimentados de circuitos pueden hacer su propia versin del mdulo, extendindolo y mejorndolo. Incluso usuarios relativamente inexpertos pueden construir la versin de la placa del mdulo para entender como funciona y ahorrar dinero.

2 HARDWARE.
La tarjeta utilizada para el presente trabajo es Arduino Uno con las siguientes caractersticas (que se dejan en ingls para conservar conceptos y definiciones):

The Arduino Uno is a microcontroller board based on the ATmega328 (datasheet). It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Uno differs from all preceding boards in that it does not use the FTDI USB-toserial driver chip. Instead, it features the Atmega8U2 programmed as a USB-to-serial converter. "Uno" means one in Italian and is named to mark the upcoming release of Arduino 1.0. The Uno and version 1.0 will be the reference versions of Arduno, moving Junio 2012 JCQS 5 / 25

forward. The Uno is the latest in a series of USB Arduino boards, and the reference model for the Arduino platform; for a comparison with previous versions.

2.1 Summary
Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz

2.2 Power
The Arduino Uno can be powered via the USB connection or with an external power supply. The power source is selected automatically. External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector. The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts. The power pins are as follows:

VIN. The input voltage to the Arduino board when it's using an external power source
(as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.

5V. The regulated power supply used to power the microcontroller and other
components on the board. This can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.

3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is
50 mA.

GND. Ground pins.

Junio 2012

JCQS

6 / 25

2.3 Memory
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).

2.4 Input and Output


Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions: Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip. External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details. PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication using the SPI library. LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function. Additionally, some pins have specialized functionality: I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire library. There are a couple of other pins on the board: AREF. Reference voltage for the analog inputs. Used with analogReference(). Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board. See also the mapping between Arduino pins and ATmega328 ports?.

2.5 Communication
The Arduino Uno has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega8U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The '8U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being Junio 2012 JCQS 7 / 25

transmitted via the USB-to-serial chip and USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows for serial communication on any of the Uno's digital pins. The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.

2.6 Programming
The Arduino Uno can be programmed with the Arduino software (download). Select "Arduino Uno from the Tools > Board menu (according to the microcontroller on your board). For details, see the reference and tutorials. The ATmega328 on the Arduino Uno comes preburned with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol (reference, C header files). You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header; see these instructions for details. The ATmega8U2 firmware source code is available . The ATmega8U2 is loaded with a DFU bootloader, which can be activated by connecting the solder jumper on the back of the board (near the map of Italy) and then resetting the 8U2. You can then use Atmel's FLIP software (Windows) or the DFU programmer (Mac OS X and Linux) to load a new firmware. Or you can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.

2.7 Automatic (Software) Reset


Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload. This setup has other implications. When the Uno is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data. The Uno contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN".

Junio 2012

JCQS

8 / 25

You may also be able to disable the autoreset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.

2.8 USB Overcurrent Protection


The Arduino Uno has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.

2.9 Physical Characteristics


The maximum length and width of the Uno PCB are 2.7 and 2.1 inches respectively, with the USB connector and power jack extending beyond the former dimension. Four screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.

3 SOFTWARE
3.1 Labview 2009 o superior.
La interfaz de Labview para Arduino es un VI API que fue escrito y distribuido por National Instruments. Este programa que se ejecuta en el Arduino, responde a los comandos enviados en el bus USB desde el programa de Labview. Enva datos al ordenador a travs de la USB. El Labview VIs proporcionado, le permiten leer las entradas analgicas, las lneas de E/S digitales de control y utilizar varias otras caractersticas del hardware Arduino. Gua del proceso paso a paso para la instalacin de los programas.

3.2 Instalacin de la plata forma para Arduino y la interfase IDE.


Primeramente empezaremos con la instalacin del software para programar el Arduino Uno y los driver para dar de alta y reconocer el dispositivo. La pgina de donde se descarga el programa es: http://arduino.cc/en/Guide/HomePage , se recomienda tomar la versin actualizada por las diferentes versiones y nuevas tarjetas. Seleccionar de acuerdo al sistema de la computadora (Windows, Mac OS X, Linux), en nuestro caso es Windows , http://arduino.cc/en/Guide/Windows

Los pasos a seguir son: a) Get an Arduino board and USB cable b) Download the Arduino environment Junio 2012 JCQS 9 / 25

c) Select your board d) Connect the board e) Install the drivers f) Select your serial port g) Open the blink example i) Upload the program a) Get an Arduino board and USB cable In this tutorial, we assume you're using an Arduino Uno, Arduino Duemilanove, Nano, or Diecimila. If you have another board, read the corresponding page in this getting started guide. You also need a standard USB cable (A plug to B plug): the kind you would connect to a USB printer, for example. (For the Arduino Nano, you'll need an A to Mini-B cable instead.)

b) Download the Arduino environment, http://arduino.cc/en/Main/Software Se abrir una ventana para descargar un archivo comprimido y seleccionamos un lugar donde guardar.

Extraer y se crea la carpeta

La cual contiene lo siguiente:

De este flder seleccionar

Junio 2012

JCQS

10 / 25

Al terminar se tiene la siguiente ventana (IDE, Integrated Development Environment)

c) Select your board Verificamos que podamos programar la tarjeta ( Arduino Uno ) que estamos usando.

d) Connect the board

Antes de escribir o cargar un programa, es necesario verificar que la tarjeta sea reconocida al conectar al puerto USB.

Junio 2012

JCQS

11 / 25

Como podemos ver al entrar a Administrador de Dispositivos, a travs del Panel de control, la tarjeta no es reconocida en los puertos USB.

e) Install the drivers

Seleccionamos el dispositivo sin reconocer, vemos sus propiedades con el men, Actualizar controlador

Junio 2012

JCQS

12 / 25

Configuramos para actualizar.

Los drivers necesarios estn en la misma carpeta que contiene el programa de instalacin del Arduino.

Junio 2012

JCQS

13 / 25

Al terminar verificamos en Administrador de Dispositivos que nos muestra el nombre de la tarjeta y el puerto al cual esta conectada.

Arduino Uno R3 (COM3)

Junio 2012

JCQS

14 / 25

f) Select your serial port

En el men del IDE, Tools / Serial Port tenemos dado de alta el COM3. g) Open the blink example Usaremos la tarjeta como medio de adquisicin de datos, pero antes de eso verificamos que la tarjeta y la comunicacin funcionen correctamente, para eso abrimos un programa sencillo que viene incluido como ejemplos y solamente hay que abrir y cargar en la tarjeta, este programa (sketch) hace que parpadee un led que viene incluido en la tarjeta conectado en el pin 13.

i) Upload the program En la opciones del IDE para cargar el programa (sketch) al microcontrolador.

Junio 2012

JCQS

15 / 25

Hasta este punto ya tenemos la tarjeta (Arduino), configurado el puerto serial donde esta conectada la tarjeta y la interfase (IDE), para que pueda comunicarse con Labview hay que cargar el Firmware en la tarjeta, pero antes de eso ocupamos unos paquetes de Labview para la comunicacin serial con Arduino, para cargar el Firmware a la tarjeta en caso de tener lista todos los programas y paquetera ir a la seccin 3.5. Como menciono desde el inicio lo primero que necesitamos instalar es Labview, podemos descargar la versin de evaluacin en caso que no tener el programa de Labview 2009 en adelante, aunque para hacerlo primero tendremos que registrarnos. http://www.ni.com/trylabview/

3.3 Instalacin de driver VISA 5.1.1


Una vez instalado Labview, procedemos a instalar el pack de drivers de VISA, que podemos descargarlo desde la siguiente pgina. Yo he instalado la versin 5.1.1, pero funciona con la versin 5.0.3 y 5.1.2.
NI-VISA 5.1.1

Este paquete nos permitir seleccionar y configurar el puerto donde esta conectado el Arduino y as usarlo con Labview, esto se hace usando el VISA Resource Name.

Junio 2012

JCQS

16 / 25

En el caso que no identifique o este conectado el Arduino, no aparecer el men de opciones,

Este documento viene acompaado con la paquetera en caso de no tener Internet o instalar en otro equipo, seleccionar visa511full

Al terminar de instalar esta paquetera reiniciar la computadora y conectar la tarjeta a la computadora, verificamos en el Administrador de Dispositivos la conexin y entonces podemos ver en Labview que podemos seleccionar el mismo puerto COM3, en caso de no aparecer en el men del VISA Resource Name ,usar Refresh .

3.4 Instalacin de toolkit para Arduino en Labview (Labview Interface for Arduino, LIFA)
En este momento debemos tener: A) Tarjeta Arduino y la interfase de programacin IDE para cargar programas, verificando la comunicacin, tarjeta y funcionamiento. B) Labview 2009 o superior. C) Driver VISA 5.1.1 Solo no falta instalar el toolkit para Arduino para poder controlar y adquirir datos con Labview, este procedimiento requiere instalar el gestor de paquetes VI (VIPM). Podemos descargar la versin de la comunidad (free) de la siguiente pgina. Este programa ser el que descargue e instale los VI de Arduino en Labview. http://www.jki.net/vipm/download o JKI VI Package Manager.

Junio 2012

JCQS

17 / 25

Tambin se adjunta un flder con este paquete en caso de instalar en otra computadora o reinstalar. Esta carpeta contiene:

Seleccionado Internet.

, que requiere tambin estar conectado a

Junio 2012

JCQS

18 / 25

Si al iniciar esta aplicacin aparece un error respecto a: LabVIEW 2009 SP1 RunTime Engine (Standard) (32-bit) for Windows, entonces pasar manual 2 (Solucin SP1). Si funciona la aplicacin obtendremos la siguiente ventana:

Seleccionar la versin de Labview instalado en la computadora y buscamos Labview Interface for Arduino (LIFA).

La version pueden cambiar debido a la actualizaciones.

Seleccionamos instalar.

Y mostrar el programa que seleccionamos para instalar y presionamos continuar.

Junio 2012

JCQS

19 / 25

Al terminar aparecer la siguiente ventana:

Verificando la instalacin.

Junio 2012

JCQS

20 / 25

Al abrir un nuevo VI en Labview, en diagrama a bloques podemos ver en el men de funciones el toolkit para Arduino.

3.5 Cargar el programa (sketch) LIFA_Base.pde para el Arduino (Firmware)


Hasta ahora tenemos: A) Tarjeta Arduino y la interfase de programacin IDE para cargar programas, verificando la comunicacin, tarjeta y funcionamiento. B) Labview 2009 o superior. C) Driver VISA 5.1.1 D) Instalacin de LIFA (Labview Interface for Arduino ) El LIFA incluye un progrma (sketch) que debe ser cargado al Arduino antes de usar algn programa o VI de Labview. Es necesario usar el programa IDE del Arduino que se instalo en la seccin 3.2 , el sketch esta localizado en: C:\Program Files\National Instruments\LabVIEW Arduino\Firmware\LVIFA_Base\LVIFA_Base.pde 2010\vi.lib\LabVIEW Interface for

Esta direccin puede cambiar dependiendo del lugar donde se instalo el programa de Labview y el LIFA. Antes de cargar el sketch al Arduino verificar la seleccin de tarjeta y el puerto usado.

Junio 2012

JCQS

21 / 25

4 Prueba final
Al finalizar de cargar este sketch, desconectar la tarjeta (el programa se conservar en la tarjeta), podemos cerrar el IDE de Arduino para ahora realizar un sencillo programa en Labview. Este programa enciende un apaga un led que esta en el panel frontal y de igual forma lo puede hacer un led conectado al pin de la salida digital (Digital I/O Pin(0)), para este ejemplo el led esta conectado en el pin 8 con una resistencia de 330 ohms en sere a tierra (GND)

Junio 2012

JCQS

22 / 25

Junio 2012

JCQS

23 / 25

Junio 2012

JCQS

24 / 25

Bibliografa y referencias.
[1] Gua de Usuario de Arduino, Rafael Enrquez Herrador, 13 de noviembre de 2009

http://www.jameco.com/Jameco/Products/ProdDS/2121105.pdf http://www.atmel.com/Images/doc8161.pdf http://www.uco.es/aulasoftwarelibre/wpcontent/uploads/2010/05/Arduino_user_manual_es.pdf http://arduino.cc/en/Guide/HomePage http://vishots.com/getting-started-with-the-labview-interface-for-arduino/ How Do I Load the LabVIEW Interface for Arduino Firmware Onto My Arduino Uno? http://digital.ni.com/public.nsf/allkb/8C07747189606D148625789C005C2DD6

Junio 2012

JCQS

25 / 25