Hoy comparto en el blog un pequeño proyecto que he hecho usando el software de National Instrument LabVIEW, acompañado de una placa Arduino Uno.
LabVIEW es un entorno de desarrollo para diseñar sistemas. Utiliza un lenguaje de programación gráfico propio. A diferencia de los lenguajes tradicionales, aquí se usan funciones predefinidas y se unen mediante cables, es un paradigma distinto. En mi caso, como ingeniero informático, estoy acostumbrado a leer y escribir código, por lo que el cambio al lenguaje gráfico, a veces es costoso.
Para este proyecto traro de simular a través de sensores el climatizador de un coche, el sistema de encendido de luces en modo automático y la dirección. Es un ejemplo que me servirá como excusa para jugar con las entradas analógicas y las salidas digitales.
Materiales
Los componentes electrónicos utilizados se exponen a continuación:
• Arduino Uno
• Protoboard o placa de pruebas
• Sensor de temperatura LM35
• Diodos led
• Fotoresistencia
• Resistencias de 10kΩ
• Librería LINX para LabVIEW de MakerHub
Proyecto
LabVIEW tiene dos partes, por un lado, está el panel frontal, donde se dibujan los elementos gráficos de nuestro instrumento, y el diagrama de bloque, que es donde se “cablean” los diferentes componentes del sistema.
En el panel frontal de este proyecto he puesto un salpicadero, con un potenciómetro que regula el PWM como volante del vehículo, a su izquierda, están los elementos del climatizador, que consta de un termómetro que representa gráficamente la temperatura real que recoge del sensor, un interruptor de dos posiciones para activar o desactivar el sistema y otro potenciómetro para seleccionar la temperatura deseada. En caso de que la temperatura real sea inferior a la deseada se encenderá un led rojo, indicando que sale calor, en el caso contrario, el led encendido será de color azul. En el mismo panel, también hay la foto de un coche con dos leds en los faros. Se encenderán cuando haya menos de 300 lúmenes y se apagarán si hay suficiente luminosidad.
La dirección, como no disponía de ningún servo por casa, la he simulado con dos leds. En caso de girar el volante a la izquierda, se iluminará el led izquierdo y variará su intensidad en función del grado de giro, y al revés en caso de girar el volante a la derecha.
El panel frontal se puede ver en la siguiente imagen. He reorganizado los componentes para que quepan bien en la imagen y se puedan mostrar todos a la vez.
He querido mostrar un poco cómo se programa en este lenguaje, y dado que el esquema del circuito es demasiado grande, he decidido cortar algunos cables y poner un pequeño fragmento. Para que funcionase serían necesarios otros bloques, esto que muestro es sólamente parte del algoritmo para leer la entrada analógica de Arduino «A1», que se corresponde al voltaje de la fotoresistencia. Con las operaciones que se hacen entre medias, es posible obtener, de una forma aproximada, la cantidad de luz en lúmenes.
En los siguientes enlaces está el acceso al programa generado y al repositorio de adquisición de datos:
Repositorio de adquisición de datos
Programa/Simulación en LabVIEW
El código de Arduino como es?
Hola.
En este caso, el código de Arduino es generado automáticamente por LabVIEW. Cuando se trata de codigo autogenerado, el humano hace un pequeño esquema y la máquina crea un código ilegible para nosotros pero que hace la acción que deseamos. Si tienes LabVIEW, puedes encontrar mi trabajo en este enlace: https://github.com/jagumiel/Data-Acquisition/tree/master/LabVIEW/car_simulation
Saludos.