Ya hemos visto en un artículo anterior una implementación de máquina de estados que nos permitía hacer un sigue líneas. Ahora vamos a utilizar el Template de máquina de estados que viene con LabVIEW para un poner en marcha nuestra marble run en LabVIEW. Este diseño se basa en el trabajo de Erling (Posibilidades del Datalog), aunque en este caso hemos utilizado un sensor de luminosidad para detectar la presencia de la bola y diferenciar el valor.
Vamos a estudiar primero los estados que tiene nuestro sistema, luego veremos cómo lo implementamos en LabVIEW.
1. Estado Inicial
2. Estado Color :
- 2.1 – Estado Azul
- 2.2 – Estado Rojo
3. Estado MotorEl siguiente es un diagrama de estados simplificado. Las condiciones para saltar entre estados están especificadas en el VI.Nótese que hemos utilizado la nomenclatura Estado Color y 2.1, 2.2 en lugar de 2 y 3 para los estados Azul y Rojo. Esto es porque el estado Inicial necesariamente irá a uno y sólo a uno de los estados posibles de color.
Lo primero que tendremos que hacer es abrir el Template de Máquinas de Estado, y nos encontraremos algo como esto.
Abrimos Type Def y añadimos los estados que nos interesan.
Este es el resultado de cada uno de los estados de nuestro sistema.
Estado inicial
Lo primero que hacemos es medir la luminosidad inicial, usaremos este valor para saber cuando hay una bola en la pala, además de usar las constantes numéricas para ajustar la diferencia entre este luz inicial y los distintos colores de las bolas.
La parte más compleja de esta máquina de estados es que el siguiente estado al inicial es variable, en función del color de la bola.
Estado Azul
Contador Azul +1
Estado Rojo
Contador Rojo +1
Estado Motor
Hacemos los movimientos de los motores que nos permiten subir/bajar la pala de recepción de bolas y la barrera.
Este es nuestro panel frontal, donde presentamos la información sobre el número de bolas que han recorrido el circuito, la luminosidad y el interruptor de salida.
Aquí tenéis un vídeo de muestra