Tutorial Arduino y Labview Con Ejemplos
Tutorial Arduino y Labview Con Ejemplos
Labview + Arduino
Utilizacin de Labview para la Visualizacin y Control de la
Plataforma Open Hardware Arduino
Ver. 1.0
Arduino
Jos Manuel Ruiz Gutirrez
Jos Manuel Ruiz Gutirrez
Serie: Herramientas Grficas para la programacin de
Arduino 1
2.
Personalizacin de la interfaz de
usuario
Permite dar al proyecto un toque profesional con los controles del panel frontal de
LabVIEW y los indicadores.
2. Programacin Grafica
Arrastrar y soltar
En lugar de tratar de recordar un
nombre de funcin, se encuentra en la
paleta y colquelo en su diagrama de
bloques.
Documentacin simple
Pase el ratn sobre cualquier VI o funcin con el ratn y ver al instante la
documentacin con ayuda contextual.
6
https://decibel.ni.com/content/docs/DOC-20084
Leer la intensidad de luz en una celda solar con Arduino
https://decibel.ni.com/content/docs/DOC-16069
Manipular los LEDs de la tarjeta arduino
https://decibel.ni.com/content/docs/DOC-16261
4.
10
11
5.
Para poder comunicar Labview con Arduino, previamente, debemos instalar en la tarjeta
el firmware correspondiente.
Partimos del supuesto de que ya tenemos instalado en nuestro PC el entorno IDE
Arduino.
El fichero que debemos cargar en el IDE de Arduino para luego descargar en la tarjeta
se encuentra en la carpeta en dinde tengasmos instaldo Labview
\National Instruments\LabVIEW 20XX\vi.lib\LabVIEW Interface for
Arduino\Firmware\LVIFA_Base
Ejecutamos el IDE Arduino y cargamos el fichero.
Pasos a seguir:
Abrir el IDE Arduino . Pulsando sobre arduino.exe
Con la opcin Fichero->Abrir Buscamos el fichero LVIFA_Base.pde
Una vez realizadas estas operaciones basta con que pulsemos el botn de carga
de sketch del IDE para que el fichero se transfiera a la tarjeta y, una vez
transferido, ya hemos dejado Arduino listo para comunicarse con LabVIEW
14
6.
(Traducido de https://decibel.ni.com/content/docs/DOC-16024)
1. Qu es la interfaz de LabVIEW para Arduino?
La interfaz de LabVIEW para Arduino (LIFA) Toolkit Free Toolkit es un conjunto
de herramientas gratuitas que permiten a los desarrolladores adquirir datos desde el
microcontrolador Arduino y procesarlo en el entorno de programacin grfica de
LabVIEW.
2. Qu versiones del entorno LabVIEW permiten la conexin con Arduino?
La interfaz de LabVIEW para Arduino es actualmente compatible con cualquier
versin de Windows o Mac OS que soporta LabVIEW 2009 o posterior. El kit de
herramientas tambin funcionan en cualquier versin de Linux que soporta
LabVIEW 2009 o posterior, sin embargo actualmente no existe un instalador (JKI
VI Package Manager) para Linux. JKI est trabajando actualmente en VIPM 2010
para Linux, que estar disponible aqu cuando haya terminado.
3. Qu versin de LabVIEW Qu necesito para utilizar la interfaz de LabVIEW
para Arduino?
2009 o posterior.
4. Qu hardware es necesario para utilizar la interfaz de LabVIEW para
Arduino?
Para empezar, el nico hardware que se necesita es una tarjeta Arduino, cable USB
y un ordenador con LabVIEW y la interfaz de LabVIEW para Arduino. La interfaz
de LabVIEW para Arduino fue desarrollado y probado usando Arduino UNO y
Arduino MEGA 2560
5. Cmo se instala la interfaz de LabVIEW para Arduino?
Siga los pasos de este documento. Instalacin.
6. Dnde se puede obtener soporte para la interfaz de LabVIEW para Arduino?
Soporte para la interfaz de LabVIEW para Arduino se proporciona en los foros de la
comunidad community forums. La interfaz de LabVIEW para Arduino no est
15
Cmo configuro la interfaz de LabVIEW para Arduino para usar una conexin
Bluetooth a mi Arduino?
o XBee or BlueSMiRF
o How Do I Setup the LabVIEW Interface for Arduino to use a Bluetooth
Connection to my Arduino?
10. Puedo agregar mis propios sensores a la interfaz de LabVIEW para Arduino?
S. Tanto el firmware y el VIS son de cdigo abierto pensado para la
personalizacin.
11. Cmo funciona la interfaz de LabVIEW para Arduino (LIFA) de trabajo?
En pocas palabras, la interfaz de LabVIEW para Arduino enva paquetes de datos de
LabVIEW para Arduino. Arduino procesa los paquetes y enva paquetes de retorno.
Los paquetes de retorno se analizan por LabVIEW para proporcionar informacin
til para el usuario final. Cada paquete es de 15 bytes por defecto y contiene un
encabezado, un byte de comando, los bytes de datos, y una suma de comprobacin.
La longitud del paquete se puede cambiar para adaptarse a aplicaciones especficas
mediante la modificacin del firmware y especificar el tamao del paquete a la VI
Init en LabVIEW (La mayora de los usuarios no tendrn que hacer esto). El
firmware LIFA en el Arduino procesa los paquetes, asegurando que los datos no se
han daado durante la transmisin. A continuacin, una vez ledo el paquete,
comprueba el byte de comando y ejecuta las instrucciones con los bytes de datos
proporcionados basndose en el byte de comando.
16
La salida del dato ledo es un dato tipo Integer de 8 bits por lo tanto se deber
realizar la conversin a dato tipo booleano
Para despus llevarlo a un indicador de tipo array booleano TRUE FALSE.
Pulsando
en el botn del Panel
19
20
7.2.
Test 1
21
Este bloque necesita que le pongamos el valor del canal de entrada analgica
g
y en su salida nos entrega un valor tipo Double que se corresponde con la
lectura realizada. La salida la encaminamos a los instrumentos de medida MedidaA0
que ese corresponde con el medidor de aguja del panel.
28
7.5.
que
Esta funcin saca el valor de t cuando la entrada s es TRUE y saca f cuando su entrada
s es FALSE.
29
.
Este sera el esquema de pruebas
30
7.6.
Intermitente
31
3. Genera las seales Rojo, Amarillo y Verde. Mediante una estructura tipo
ados que se
asociaran a cada uno de los estados de nuestro semforo.
En las figuras siguientes se muestra cada uno e los casos creados. Hemos definido
35
7.8.
Semforo Ajustable
38
40
42
Es muy importante que se sepa que los canales digitales 0 y 1, PIN 0 y PIN 1 estn
reservados para la comunicacin con LabVIEW por lo tanto su lectura obedece al
trfico de datos que se est realizando y en ningn caso se podrn colocar interruptores
de entrada en esos canales.
43
Este es el montaje para poder probar el gobierno de salidas. Bastara con cambiar el hilo
de la salida para comprobar que funciona.
45
Pondremos:
Servo 0
Servo 1
en el PIN 1
en el PIN 11
Una vez dentro del bloque de control controlaremos los servos de la manera siguiente:
En primer lugar escribiremos en el Servo 0 mediante el bloque de funcin
48
49
Dentro del bucle de ejecucin se deben colocar dos bloques de lectura de PIN
Read
y uno de escritura
La seal que gobierna este ltimo
bloque se obtiene de realizar la funcin AND de las salidas obtenidas de las lecturas del
PIN 9 y PIN 10.
Los elementos de visualizacin de estado se han colocado en las salidas de los tres
bloques. No olvidemos que las seales deben convertirse de Array 1D a Array booleano
mediante el bloque de funcin:
50
esta funcin
etiquetado como
se
53
L293D
Tabla de funcionamiento del Motor 1
CHIP INHIBIT 1
H
H
H
H
L
INPUT 1
L
H
L
H
X
INPUT 2
H
L
L
H
X
FUNCION
Gira a la Derecha
Gira a la Izquierda
Para rpida del motor
Para rpida del motor
Para rpida del motor
Este circuito es relativamente fcil de implementar y lo haremos con un solo motor que
simplifica an ms el conjunto. Tngase en cuenta que se trata de drivers para el
gobierno de dos motores de corriente continua ( http://www.lextronic.fr/P5073-platinede-commande-de-moteurs-dc.html ).
Descripcin de pines para el control del Motor 1:
El Pin 1 (CHIP INHIBIT 1) sirve para activar el Motor 1. Si este pin est conectado a
una salida de Arduino del tipo PWM, se puede variar la velocidad del motor haciendo
variar el valor de salida de este PIN.
Los Pines 2 (INPUT 1) y 7 (INPUT 2) permiten fijar el sentido de giro del motor o la
parada. Los pines 3 (OUT 1) y 6 (OUT 2) son los pines de salida de potencia del motor.
55
57
En el primer caso True el sentido de giro es a la Izquierda por lo que debemos sacar
los valores correspondientes en las salidas PIN 7 y PIN 8 de Arduino. La velocidad se
recoge del control tipo numrico de aspecto circular que hemos etiquetado como
Velocidad y sentido de giro
PIN Arduino
PIN 7
PIN 8
Valor
0
1
PIN L293D
PIN L293D
Giro
INPUT 1
0
INPUT 1
1
Izquierda
PIN 7
PIN 8
Valor
1
0
PIN L293D
PIN L293D
Giro
INPUT 1
1
INPUT 1
0
Derecha
58
La velocidad se genera en una escala de -100 a 100 por lo que se debe multiplicar por 2.5 para alcanzar los 255 que es el valor mximo que se puede sacar en una salida PWM
equivalente a 5v. en el PIN 11
Finalmente en la salida del bucle se detiene el motor enviando un 0 a la salida PWM
PIN 11 se cierra el puerto y se tratan los errores.
59
La secuencia de inicializacin para integra este elemento en el bus I2C es la que sigue
(contamos con que los pines A0, A1 y A2 se conectan a masa GND):
1. Condiciones de inicio (start)
2. Escriba 0 90: se selecciona la casilla A2A1A0 = 000 escribir
3. Escribir 0xac: se escribe en el registro de configuracin
4. Escriba 0 00: conversin de la temperatura continua
5. Condicin de parada (stop)
6. Esperar 20 ms: escribir eeprom de la configuracin anterior
7. Condiciones de inicio (start)
8. Escriba 0 90: se selecciona la casilla A2A1A0 = 000 escribir
9. Escribir 0xEE son: lanzamiento de la conversin a la temperatura constante
10. Condicin de parada (stop)
La siguiente secuencia se usa para leer la temperatura:
1.
2.
3.
4.
5.
6.
7.
8.
Te das cuenta que no es fcil, pero vamos a tratar de poner en prctica todas las
funciones de LabVIEW con Arduino. Dependiendo de la versin de la tarjeta Arduino
UNO tiene el SCL y SDA pines no son el mismo lugar (ONU Rev2: A4 = SDA, SCL =
A5; UNO Rev3: dos pines en un dedicado SCL y SDA). Al escribir este tutorial tengo
una placa Arduino rev2 UNO, el siguiente diagrama de cableado es adecuado para esta
plataforma:
61
Nota: Un indicador que se utiliza para seleccionar la direccin del sensor DS1621 en el
bus I2C. Bajo el ttulo "Datos I2C" es en realidad una forma de tabla de indicadores, se
puede ver los datos ledos del bus I2C.
El diagrama se puede presentar como sigue:
En primer lugar para entender cmo trabaja el VI sub I2C mir a las seales procedentes
de la Arduino I2C en un osciloscopio y debo decir que me ayud. La lectura del
diagrama de izquierda a derecha:
62
64
65
Una vez que el cdigo compilado e instalado en el arduino con su ethershield, vamos a
hacer un panel frontal de LabVIEW para controlar el conjunto.
66
67
y a la vez
tambin se puede salir si se produce un error mediante el bloque
70
71
El montaje es el de la figura.
73
Montaje de pruebas
75
Se trata de realizar una aplicacin para medir la cantidad de luz del ambiente.
Para ello recurrimos a un bloque de funcin de la librera LIFA que realiza justo esta
tarea. Bloque
Los Parmetros que hemos de configurar en este bloque se muestra n la figura
si se produce un ev
78
Montaje de pruebas
79
No olvidemos que deben ser pines del tipo PWM (en Arduino UNO son los pines
3,5,6,9,10,11)
Una vez dentro del bucle se colocara un bloque de escritura para sacar los valores por
cada una de las salidas:
. La informacin de los PIN de las salidas
se recoge del bloque de configuracin anterior RGB LED Pins
81
Estos valores los pondremos, en esta ocasio0n, a travs del Panel de visualizacin.
La visualizacin del valor
Temperatura y un cuadro numrico.
83
84
PIN 6
PIN 5
PIN 3
2
3
4
85
de la librera de Arduino
Esta librera se encarga de generar una seal de frecuencia variable en la que es posible
tambin variar la duracin. Es decir genera tonos de duracin y frecuencia variable.
89
Nota: Aunque las imgenes muestran a la ahora obsoleta LabVIEW 2010, que son el
envo de 2011. La foto de Arduino no es tambin la R3 a pesar de que este paquete
incluye ahora la ltima Arduino Uno R3. Imgenes de los productos se actualizarn para
reflejar este cambio.
Caractersticas:
Utiliza USB, XBee, o enlaces Bluetooth para la comunicacin.
Tasa de 150 Hz con conexin de cable (50 Hz Wireless).
Le da acceso a analgica de Arduino, digitales, PWM, I2C, SPI y la
funcionalidad en el equipo.
Completamente de cdigo abierto del firmware (E / S del motor en el Arduino) y
el marco de LabVIEW.
92
Modo de dato
Permite seleccionar el puerto con el que nos
comunicaremos con Arduino
93
94
Configura un PIN digital como Entrada o salida. Los parmetros de entrada sern el
nmero de puerto y el modo de trabajo (I/O).
Lectura del valor en un pin digital. Lee el valor de una entrada digital designada
valor
96
Configura3 PIN como salida PWM: Se indican los PINs y devuelve el valor de los
puertos configurados
Escribe el puerto PWM: Controla tres salidas PWM cuyo nmero de PINs los recoge
del valor PWM PINs. Los valores de cada seal se suministran en los pines de entrada
PW 0, PWM 1 y PWM 2
98
Librera SPI
100
101
104
106
Lee valores de un joystick: Lee los valores y los presenta en las salidas
correspondientes a los ejes X e Y y Seleccin
107
Librera BlinkM
108
Configura motor paso a paso: Especifica una salida para conectar un motor.
Escribe valores sobre un motor paso a paso: Escribe el nmero de pasos a girar y la
velocidad de generacin de pasos, as como el motor a activar
109
110
Libreras de Servos
111
112
Librera LCD
113
Librera Utilidades
Ejemplos
114