Librería de Arduino StateMachine


La librería StateMachine implementa una máquina de estados finita que puede ejecutarse en un procesador como Arduino.

La máquina de estados se inicializa indicando el número de estados y transiciones. Ambos, estados y transiciones, están identificados por un entero de 8bits (0 a 255). Los estados simbolizan las distintas configuraciones en las que puede estar la máquina. Las transiciones vinculan dos estados, uno de salida y uno de llegada, y tienen asociada una condición de disparo.

La máquina de estados tiene un estado actual. Para actualizar el estado debemos llamar frecuentemente a la función Update(), que comprueba las transiciones que tienen como entrada el estado actual, y las condiciones asociadas.

Si alguna de las transiciones asociadas al estado actual cumple la condición de disparo, la maquina para a estar en el estado final de la transicion activada.

Anuncio:

Las transiciones pueden, opcionalmente, ejecutar una función de callback asociada en el momento del disparo. Por otro lado, los estados pueden tener una acción de callback al entrar o abandonar el estado.

Para configurar la máquina debemos configurar correctamente las transiciones. Para ello podemos emplear las funciones SetTransition(…), indicando explícitamente el número de la transición de configurar. También podemos usar las funciones AddTransition(…), que incrementan un contador interno 0 a numTransitions-1, lo cuál la hace más sencilla de emplear para la configuración inicial de la máquina.

En el uso, conviene crear enumeraciones para los Estados, y es posible que para las transiciones.

Manual de uso

La clase StateMachine puede se instancia a través de su constructor,

Uso de StateMachine

Ejemplos

La librería StateMachine incluye los siguientes ejemplos para ilustrar su uso.

  • StateMachine: Ejemplo que muestra el uso de StateMachine.

  • Herencia: Ejemplo que muestra el uso de StateMachine mediante una clase derivada.

Instalación

  • Descargar la última versión desde GitHub
  • Descomprimir el archivo
  • Copiar en tu carpeta de librerías (normalmente Mis Documentos\Arduino\libraries)
  • Relanzar el IDE de Arduino

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino

Anuncio:

Previous Instalar Raspbian en Raspberry Pi con Etcher
Next Implementar una máquina de estados finitos en Arduino

¡Deja un comentario!...

1000