En este artículo se mostrará un programa en LabVIEW que simula el funcionamiento de una ruleta o de una máquina tragamonedas, en la que cierto número de luces prenden y encienden iniciando rápidamente y terminando lento. En este caso, si la luz verde queda encendida al final, el jugador gana, en caso contrario.
Este programa es parecido al que ya se había mostrado anteriormente como máquina tragamonedas, pero en este caso, se tiene una peculiaridad, se utilizará Arduino para que las luces del panel frontal se vean físicamente en un circuito eléctrico, al igual que el botón con el que se comienza a jugar.
El panel frontal del programa es el siguiente:
Se tiene cuatro leds de distintos colores y dos botones, uno que detiene la ejecución del programa y otro que abre la página web del desarrollador.
Nótese que no se tiene un botón de inicio de juego, pues ese está físicamente en el circuito.
El código del programa es el siguiente:
Se tiene un ciclo while que alberga todo el programa, se configuró Arduino para utilizar los pines digitales 2, 4, 7,8 y 12, cuatro para los leds y uno para el botón de inicio.
Con un Case se establece que si el pin del botón está en cero (desactivado o falso), no se hace nada, cuando es uno (activado o verdadero), se utiliza un ciclo for para la función principal del programa.
Se utiliza un número aleatorio con un rango máximo de 127 para el número de repeticiones del ciclo.
Con un shift register inicializado en cero, se establece la velocidad de cada repetición, esto conectando el shift register a un timer que hace que cada repetición dure más, para dar el efecto deseado.
Se utilizan cinco shift register de tipo booleanos para los leds, uno inicializado como verdadero y los demás como falsos. Para que con cada repetición del ciclo se vaya encendiendo el siguiente led, de acuerdo al tiempo que el mismo ciclo proporciona. Luego, estos valores se envían a los leds del programa y a su vez al Arduino, con un convertidor de booleano a 0,1, para que el Arduino pueda reconocer el valor que se está enviando. De esta manera, lo que se observa en los leds de la computadora, también se observa en los leds del circuito físico.
Posteriormente, en el programa principal, dentro del While, se tiene una variable local del led que se tiene como ganador, en este caso el verde, conectado a un Case, en el que se tiene una constante de texto con una felicitación que se muestra en el indicador de texto del programa. También se tiene un elemento de sonido que hará que el sistema emita una alerta.
Para evitar que suene la alerta y se muestre el mensaje de victoria cuando ciclo de encendido de los leds sigue funcionando, se tiene un Timing que establece que el led debe estar encendido al menos 300 milisegundos.
Finalmente con otro case se tiene la acción de abrir una página web en el navegador por defecto. La página web que se abrirá se define mediante una constante de texto.
El circuito físico queda de la siguiente manera:
Video demostrativo