En el artículo LabVIEW para usuarios del NXT (I) vimos como crear un VI, y empezamos con un programa de prueba (el famoso “Hola Mundo”). En el artículo de hoy, LabVIEW para usuarios del NXT (II), vamos a ahondar un poco más en el manejo básico de LabVIEW, y ver manejo de motores y de algún sensor.
Manejo de Motores:
Para manejar el motor la función que debemos usar es Motor, que la podéis encontrar haciendo click derecho en el Block Diagram y seleccionando NXT I/O → Motor:
Motor On: Forward
Motor On: Reverse
Motor Off: Brake
Motor Off: Coast
A la hora de elegir a que puertos están conectados, o con que potencia van a moverse, tenemos que enganchar los valores deseados a las entradas (ya sea mediante constantes, controles….). La manera más cómoda de hacerlo es creando estas constantes, controladores o indicadores ya enganchados al las salidas y entradas. Para ello haced click derecho en la entrada o salida deseada y seleccionad Create y lo que queráis enganchar:
Para manejar los sensores utilizamos la función Sensor, que la podéis encontrar haciendo click derecho en el Block Diagram y seleccionando NXT I/O → Sensor. En este caso tenemos muchos sensores distintos disponibles, aunque no vamos a ver todos aquí. De momento me centraré en los dos más simples, el de contacto y el de luz.
Contacto: Pressed
Luz: Luz encendida
Luz: Luz apagada
Bucles While:
Un bucle es una estructura en la que continuamente se repite lo que haya dentro hasta que se cumpla una condición de salida que elegimos nosotros. Esta condición de salida tiene que devolver un valor booleano (verdadero o falso), como el que devuelve el sensor de contacto. Los búcles While los podéis encontrar en Structures → While Loop:
Programa de prueba:
Vamos ha hacer un pequeño programa en el que usaremos un par de motores y un sensor de luz. El programa consistirá en un robot que va girando mientras toma valores con el sensor de luz y los muestra por el Display del NXT. El programa terminará cuando presionemos el sensor de contacto Para que un robot gire un motor ha de moverse más rápido que el otro, esto se consigue aumentando la potencia de uno de los dos. En este caso vamos a tener un robot con los motores A y C, y le daremos mayor potencia al motor A.
Para que se repita la lectura del sensor de luz, y el display del valor en la pantalla del NXT, es necesario meter todo esto en un bucle (while en este caso). Como condición de salida del bucle pondremos que el sensor de contacto esté presionado, de manera que el programa terminará su ejecución cuando esto ocurra. El Block Diagram quedaría así: