Editando
C10 - Finite State Machine
(sección)
Ir a la navegación
Ir a la búsqueda
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
= Lab 10 = == Introducción == <br> Diseñar un sistema que controle dos semáforos para tráfico y un semáforo para peatones.<br> Cada semáforo de tráfico tendrá un sensor para detectar si hay coches y el semáforo de peatones tiene otro sensor para detectar peatones.<br> El semáforo de coches tiene verde, amarillo y rojo. El semáforo de peatones tiene verde y rojo. Para pasar de verde a rojo el verde parpadea y luego pasa a rojo.<br> Cuando un semáforo está en verde los demás semáforos tienen que estar en rojo, no pueden estar en amarillo ni parpadeando.<br> <br> [[File: Edx-fsm-lab10.png | 300px]]<br> <br> Nomenclaturas: *C1 será la calle 1 *C2 será la calle 2 *P1 será el paso de peatones *W1 será le estado de transición del verde de C1 al amarillo de C1 despúes al rojo de C1 *W2 lo mismo pero de C2 *Las salidas serán: **V1 A1 R1 <math>\Rightarrow</math> los colores del semáforo de C1 **V2 A2 R2 <math>\Rightarrow</math> los colores del semáforo de C2 **VP1 RP1 <math>\Rightarrow</math> los colores del semáforo de peatones == Condiciones == <br> *Cambio de verde a rojo máximo 5 segundos *Si los tres sensores están activos se pasa de un estado a otro sin parar *De 9 a 30 estados es una buena implementación *Tener 3 inputs implica 8 next state link *Data Structure stored in ROM *No pueden haber conditional branching *Tiempo en cada estado (tiempo en que permanece en verde o rojo un semaforo) entre medio segundo y un segundo *Flash de no pasar para peaton 2Hz y ejecutarlo dos veces *Si coche llega a C2 y verde es C1 se espera que acabe C1 y luego empieza C2 *Si solo un sensor está activo en menos de 5 segundos se tiene que pasar a ese semáforo *Siempre que haya solo un sensor activo se mantiene en ese estado el tiempo que este ese sensor activo <br> == Definición FSM == <br> {| cellpadding="4" border="1" cellspacing="0" ! colspan="3" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | ! colspan="10" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Output ! colspan="8" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Input |- | colspan="2" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Estados | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | | colspan="3" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | West | colspan="3" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | South | colspan="2" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Walk | colspan="2" style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Salida Hex | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | WaSoWe |- | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Descrpción | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Nombre | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Tiempo | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | R | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | A | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | V | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | R | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | A | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | V | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | V | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | R | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Hex | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | Hex | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 0 0 0 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 0 0 1 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 0 1 0 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 0 1 1 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 1 0 0 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 1 0 1 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 1 1 0 | style="text-align: center; font-weight: bold; background:rgb(210,210,210);" | 1 1 1 |- | West verde. South rojo. Walk rojo | style="text-align: center;" | goWest | style="text-align: center;" | 30 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0x0C | style="text-align: center;" | 0x02 | style="text-align: center;" | goWest | style="text-align: center;" | goWest | style="text-align: center;" | waWest | style="text-align: center;" | waWest | style="text-align: center;" | waWest | style="text-align: center;" | waWest | style="text-align: center;" | waWest | style="text-align: center;" | waWest |- | West amarillo. South rojo. Walk rojo | style="text-align: center;" | waWest | style="text-align: center;" | 5 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0x14 | style="text-align: center;" | 0x02 | style="text-align: center;" | goWest | style="text-align: center;" | goWest | style="text-align: center;" | goSouth | style="text-align: center;" | goSouth | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk | style="text-align: center;" | goSouth |- | West rojo. South verde. Walk rojo | style="text-align: center;" | goSouth | style="text-align: center;" | 30 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0x21 | style="text-align: center;" | 0x02 | style="text-align: center;" | goSouth | style="text-align: center;" | waSouth | style="text-align: center;" | goSouth | style="text-align: center;" | waSouth | style="text-align: center;" | waSouth | style="text-align: center;" | waSouth | style="text-align: center;" | waSouth | style="text-align: center;" | waSouth |- | West rojo. South amarillo. Walk rojo | style="text-align: center;" | waSouth | style="text-align: center;" | 5 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0x22 | style="text-align: center;" | 0x02 | style="text-align: center;" | goSouth | style="text-align: center;" | goWest | style="text-align: center;" | goSouth | style="text-align: center;" | goWest | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk |- | West rojo. South rojo. Walk verde | style="text-align: center;" | goWalk | style="text-align: center;" | 30 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0x24 | style="text-align: center;" | 0x08 | style="text-align: center;" | goWalk | style="text-align: center;" | dontWalk | style="text-align: center;" | dontWalk | style="text-align: center;" | dontWalk | style="text-align: center;" | goWalk | style="text-align: center;" | dontWalk | style="text-align: center;" | dontWalk | style="text-align: center;" | dontWalk |- | West rojo. South rojo. Walk rojo | style="text-align: center;" | dontWalk | style="text-align: center;" | 5 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0x24 | style="text-align: center;" | 0x02 | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff | style="text-align: center;" | walkOff |- | West rojo. South rojo. Walk apagado | style="text-align: center;" | walkOff | style="text-align: center;" | 5 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0x24 | style="text-align: center;" | 0x00 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 | style="text-align: center;" | dontWalk2 |- | West rojo. South rojo. Walk rojo | style="text-align: center;" | dontWalk2 | style="text-align: center;" | 5 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0x24 | style="text-align: center;" | 0x02 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 | style="text-align: center;" | walkOff2 |- | West rojo. South rojo. Walk apagado | style="text-align: center;" | walkOff2 | style="text-align: center;" | 5 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0x24 | style="text-align: center;" | 0x00 | style="text-align: center;" | goWalk | style="text-align: center;" | goWest | style="text-align: center;" | goSouth | style="text-align: center;" | goSouth | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk | style="text-align: center;" | goWalk | style="text-align: center;" | goWest |} <br>
Resumen:
Ten en cuenta que todas las contribuciones a Proyectos se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Proyectos:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Menú de navegación
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Espacios de nombres
Página
Discusión
español
Vistas
Leer
Editar
Ver historial
Más
Buscar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Páginas especiales
Herramientas
Lo que enlaza aquí
Cambios relacionados
Información de la página