domingo, 29 de noviembre de 2015

Ejemplo de máquina de Estados para arduino


Para controlar adecuadamente un proceso es importante estructurar los cambios de estado con una máquina de Estados.
El funcionamiento es simple.  Los estados definen una situación y permiten definir que acciones son factibles y por tanto simplifica la programación.
Este es un ejemplo de librería muy simple que puede servir para el proyecto en curso. (gracias a Igor Real por su implementación. 

ver aquí fuentes y el pdf del que he extraído la información publicada








 En el proyecto de las plazas, la máquina de estados se encuentra en el controlador de las dos plazas, posibles eventos/estados (depende de cómo se traten y reflejen) son:
Eventos:
- Petición de plaza (hay que definir si es genérica, corta , larga)
- Vehiculo entrando en garaje
- Vehiculo saliendo de garaje
- Vehiculo Detectado en plaza 
- Detección de plaza libre (cuando se libera)

Estados

- Plaza/s libre/s (al iniciar las plazas o cuando se libera)
- Plaza/s ocupada/s. no es lo mismo reservada que ocupada. detalles a resolver sobre la implementación . Hay que definir si se refleja el estado por plaza o del garaje completo. plazas ocupadas significa que no hay ninguna plaza, plaza ocupada es un estado de la plaza no del parking. 
- Vehiculo en parking.


A veces no es fácil manejar una sola máquina de estados y en necesario tener información en otras variables u otras máquinas de estados.  En esta implementación la parte que debe quedar bien definida son los eventos ya que será lo que se porte a colas y posteriormente a ontologías y plataforma de IOT. 


Links de interés:

   http://arduining.com/2015/09/18/traffic-light-states-machine-with-arduino/   Ejemplo de implementación de un cruce de semáforos con máquina de estados




No hay comentarios:

Publicar un comentario