sábado, 9 de abril de 2011

Máquinas de Estado

Una máquina de estados es un sistema secuencial que consta de tres partes:  una lógica de estado siguiente, memoria de estado y lógica de salida. Los estados indican en que parte se encuentra el sistema, el número de posibles estados es fijo y las transiciones entre estos dependen del valor de las entradas y del estado en que se encuentra actualmente. Las salidas dependen del estado actual y en algunos casos del valor de las entradas (máquinas Moore y Mealy).

Desde mi punto de vista es una de las formas más sencillas de programación, donde el código es completamente legible y puede actualizarse o realizar mantenimiento al programa rápidamente sin importar si ha transcurrido mucho tiempo después de hecho. 

Veamos un ejemplo para controlar el funcionamiento de un robot seguidor de lineas. Se cuenta con dos sensores del tipo binario para detectar la linea negra, un '0' indica blanco y un '1' indica negro, y el objetivo es recorrer la linea negra. Las entradas ocupan dos bits: izquierdo-derecho. Las salidas son las señales para activar los motores izquierdo y derecho. Un diagrama de estados puede ser el siguiente:





Existen cuatro estados de operación:

ALTO -> motores apagados 00
ADELANTE -> dos motores encendidos 11
DERECHA -> motor izquierdo apagado, motor derecho encendido 10
IZQUIERDA -> motor izquierdo encendido, motor derecho apagado 01

http://www.filefactory.com/file/108cap635oon/n/MQS_EXE
http://www.filefactory.com/file/34bp13e2pzfd/n/seguidor_mqs