Lab 6.2 Automate Finite - Semafor

Lab 6.2: Control comportamental cu Automate Finite – Semafor Inteligent

Scopul lucrării
Realizarea unei aplicații modulare în baza de MCU care implementează un semafor inteligent pentru o intersecție cu două direcții de trafic (Est și Nord), utilizând un automat finit și sistemul de operare în timp real FreeRTOS. Controlul stărilor semaforului se va face în funcție de cereri provenite de la senzori (prezență vehicul sau apăsare buton pietonal).

Obiectivele lucrării

  • Înțelegerea modului de implementare a automatelor finite în contextul controlului comportamental.

  • Implementarea controlului unui semafor pentru două direcții de trafic utilizând FreeRTOS.

  • Sincronizarea tranzițiilor de stare ale semaforului prin mecanisme FreeRTOS (taskuri, semafoare, delayuri).

  • Reacția automatului la cereri provenite de la senzori digitali.

  • Afișarea stării curente a semaforului prin interfața serială sau LCD.

Definire Problemă
Să se proiecteze și implementeze o aplicație care controlează un semafor inteligent la o intersecție în cruce cu două direcții de trafic:

  • direcția Est ↔ Vest

  • direcția Nord ↔ Sud

Semaforul va avea următoarele caracteristici:

  • Trecerea de la o direcție verde la cealaltă va avea loc în funcție de o cerere activă (simulată cu un buton sau senzor digital).

  • Dacă nu există cerere pentru direcția Nord, direcția Est are prioritate și rămâne verde.

  • Tranzițiile vor respecta regulile de semnalizare rutieră: verde → galben → roșu.

  • Timpul de afișare a fiecărei stări (verde, galben, roșu) va fi controlat prin delayuri FreeRTOS (vTaskDelay, vTaskDelayUntil).

  • Automat finit implementat pentru controlul fiecărei direcții.

  • Cererea de trecere se poate activa printr-un buton sau un senzor de proximitate.

  • Starea curentă a semaforului va fi afișată prin STDIO (Serial sau LCD).

Materiale și resurse
Componente hardware:

  • Microcontroler (ESP32, STM32 sau Arduino cu suport FreeRTOS)

  • LED-uri: roșu, galben, verde pentru ambele direcții

  • Buton/senzor digital pentru simularea cererii de la direcția Nord

  • Rezistențe 220Ω

  • Breadboard și cabluri de conexiune

  • Sursă de alimentare USB

  • LCD (opțional)

Resurse software:

  • Visual Studio Code cu PlatformIO

  • Biblioteca FreeRTOS

  • Biblioteci pentru LCD și STDIO

  • Simulator hardware (opțional: Proteus)

Recomandări

  • Utilizați câte un task dedicat pentru fiecare direcție de trafic sau pentru fiecare semafor.

  • Utilizați semafoare binare sau variabile globale pentru comunicarea între taskul de cerere și taskul semaforului.

  • Structurați codul modular, cu automatul finit separat și configurabil.

  • Afișați stările curente și cererile active în format text pe terminalul serial sau LCD.

Pontaj
Cerințe obligatorii:

  • Respectarea structurii modulare a proiectului.

  • Prezentarea schemelor bloc, a FSM-ului (automat finit) și a interfețelor HW/SW.

  • Respectarea formatului raportului conform normelor UTM.

Notare:
50% – Funcționarea corectă a semaforului inteligent cu FSM și reacție la cerere
10% – Utilizarea corectă a serviciilor FreeRTOS pentru temporizare și sincronizare
10% – Afișarea stării semaforului prin STDIO (Serial/LCD)
10% – Prezentarea diagramei de sistem, a FSM-ului și a interfețelor HW/SW
10% – Prezentarea schemelor electrice și diagramelor arhitecturale
10% – Implementarea unui comportament adițional improvizat (ex.: mod pietonal cu temporizare separată, prioritate vehicul de urgență, mod noapte cu galben intermitent)

NOTĂ: Pontajul maxim este posibil doar la prezentarea funcționării fizice complete a soluției și a unui comportament adițional improvizat.

10% penalizare pentru fiecare săptămână întârziere față de termenul stabilit.

Întrebări de control

  • Ce este un automat finit și cum se aplică în controlul semafoarelor?

  • Cum se utilizează FreeRTOS pentru a sincroniza taskuri și a controla temporizările?

  • Ce rol are semaforul binar în comunicarea între taskuri?

  • Cum se gestionează cererile multiple în cadrul automatului finit?

  • Care sunt avantajele controlului bazat pe cerere în intersecțiile inteligente?

  • Ce îmbunătățiri pot fi aduse sistemului pentru creșterea siguranței și eficienței?