Introducción de Arduino LabVIEW

Para comenzar con el tema de Arduino LabVIEW, vamos a hablar del objetivo del proyecto: Enviar y recibir datos mediante el puerto serial, gestionado por LabVIEW. Esto, para poder controlar diferentes parámetros de el Arduino. En este caso Arduino emula a un dispositivo o equipo controlado por serial. Por ejemplo, un controlador de motores o algún sistema industrial.
En este tutorial de Arduino LabVIEW, vamos a ver como leer el buffer serial en Arduino, como crear funciones particulares, como comparar cadenas de caracteres y como medir el tiempo que lleva un programa corriendo.
En LabView, veremos como limitar la comunicación serial para evitar errores, como extraer los datos disponibles que hay en el puerto serial, como guardar información en un archivo de texto y como medir el tiempo que lleva corriendo un programa.
Código de Arduino LabVIEW
En primer lugar, vamos viendo el código para posteriormente analizarlo.
Análisis de código
Función leer_comparar
Primeramente en este código de Arduino LabVIEW, vamos viendo la función «leer_comparar» la cual va a comparar, como su nombre lo dice, dos cadenas de caracteres. Se puede observar que lo que hace es que espera a que el serial tenga por lo menos un dato mediante el ciclo de control while. Posteriormente lee la cantidad de datos en el buffer serial con Serial.available(). A continuación, inicializamos un ciclo de control for para leer todos los datos en el buffer. Notese que el for termina comparando con los datos que sacamos del Serial.available.
Posteriormente, hacemos la comparación con la función «strcmp» propia de C++. La cual retorna un valor TRUE si los dos parámetros de entrada tienen las mismas cadenas de caracteres. Este valor lo usamos para condicionar el «if» indicando que si es igual a 0. Considerar que la variable caso_lectura viene desde la función «leer_comparar» como parámetro de entrada. Posteriormente imprime ambas cadenas. Si no están iguales, el programa se cicla en la condición else. Al finalizar, con la función «memset» limpiamos la cadena, byteRead o mejor dicho, la sustituimos por ceros.
Función setup
En este caso, podemos observar que solo se configura la comunicación serial. Esto lo podemos ver con la instrucción Serial.begin(9600) que es el objeto serial, con la función de inicialización begin con el parámetro de entrada de la velocidad, que son 9600 baud/s. Para este ejemplo de Arduino LabVIEW se uso dicha velocidad.
Función loop
Ahora que ya se describió la función a utilizar y la configuración inicial procedemos a explicar la función principal o loop.
En primer lugar, activamos un pin digital del Arduino para visualizar el LED conectado al pin 13. Imprimimos con la función write del objeto Serial, con Serial.write. Notese, que tenemos que poner en doble comillas el texto. Mandamos a imprimir el nombre del dispositivo y solicitamos el nombre de usuario. Posteriormente mandamos a llamar la función leer_comparar, que como ya sabemos lee todos los datos del buffer y compara si la cadena es igual a la de referencia que ponemos en el código. Hacemos esto para los parámetros Nombre de usuario, password o contraseña y comando.
Inicia el «ciclo de depuración del sistema» y corre un ciclo for imprimiendo puntos de la variable data_num. Ojo, en este caso este es como una plantilla para lo que podría ser un proceso. No tiene funcionalidad real.
Finalmente, imprimimos el valor de retorno de la función «millis» que es un valor de tipo entero con el tiempo, en mili segundos, que el sistema ha estado activo desde que se inicio el programa de Arduino.
Explicación a aplicaciones de ejemplo Arduino LabVIEW
Básicamente, este ejemplo de Arduino LabVIEW, como se puede observar el sistema sirve como una plantilla para correr un proceso en función de determinados comandos. Por ejemplo, podríamos tener, un sistema que sea una banda transportadora en donde requiera una validación de usuario. Los datos pueden estar en una base de datos que podemos leer con un sistema con conexión a la nube, como un ESP8266, ESP32, SIM900, etc. Para posteriormente ejecutar un comando, por ejemplo: «B1,120, D» que podríamos tomar como B1 = Banda 1, 120 seria la velocidad, por ejemplo 120 cms por minuto y «D» podría ser la dirección, en este caso Derecha.
LabView
A continuación podemos observar el código de LabView:

Este lo podemos descargar aquí «Arduino LabVIEW»: https://www.dropbox.com/s/0zl7sy9mk4l0z3z/Arduino%20LabVIEW%200344.vi?dl=0
Comunicación serial Arduino LabVIEW
Primero que nada, tenemos que configurar el puerto serial, esto lo hacemos con el módulo de VISA que es el controlador de el puerto de comunicación serial a través del USB en la computadora. Este se instala aparte, puedes revisar en este enlace como descargarlo. http://www.ni.com/visa/
La configuración de VISA es automática, podemos dejar todos los parámetros en default y solo generar el controlador para el parámetro «Visa Resource Name» que es el indicador del COM para este ejemplo de comunicación Arduino LabVIEW.
Vamos a leer los caracteres del serial con el VISA Read y los vamos a mostrar en un indicador (Además vamos a guardar la información en un archivo). Esta es una parte importante de la comunicación Arduino LabVIEW. También vamos a poner un retardo para gestionar el control del flujo de datos. Posteriormente, vamos a escribir los comandos de Usuario, Password y Comando (Revisar la parte de Arduino). Notese que estos están en función a un ciclo de control Switch Case. El cual está controlado por cada iteración del ciclo While.
Es importante destacar, que no sabemos cuantos caracteres vamos a recibir, es por esto, que necesitamos un módulo que no de esta información. En LabVIEW es una de las salidas del VISA Property Node, en donde vamos a llamar la función de Number of Bytes at Serial Port, la cual nos dará cuantos bytes disponibles hay. Arduino LabVIEW.


Lectura escritura de Archivos
A continuación, también tenemos el módulo de abrir un archivo. este para gestionar documentos que podemos usar como registros del sistema. En este caso vamos a usar el «Open/Create/Replace File», solo configuramos la entrada file path.

La etapa de escritura es directa, en este caso, pasamos el dato leído del VISA; en formato string, al módulo de escritura de archivos.


Al finalizar el ciclo de control while (mediante el botón de paro) cerramos tanto el módulo VISA como el archivo.
Esperamos que te haya gustado este tutorial de Arduino LabVIEW, que hemos realizado aquí en HETPRO.
Síguenos en YouTube
Validación
A continuación validamos el programa de Arduino LabVIEW con los comandos seriales a través de la terminal serial. Los comandos son Hector, 1234 y MOV32M1 como contraseña.

Finalmente, al conectar el Arduino a LabVIEW podemos ver el programa corriendo en la interfaz. El código de LabVIEW manda los comandos de manera automática, uno en cada ciclo de control while, mediante el swtich case.
