Sunteți pe pagina 1din 8

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII

Universitatea Tehnică a Moldovei


Facultatea Calculatoare Informatică şi Microelectronică
Departamentul Ingineria Software și Automatică

Raport
Disciplina: Internetul Lucrurilor(IoT)
Tema: “Control comportamental cu Automate Finite”

Student: _____________ Mereuță Ana, TI-192

Coordonator: _____________ Lupan Cristian, asist. univ.

Chişinău 2022
Sarcina propusă
Sa se realizeze o aplicatie ce va implementa Automatele finite dupa cum urmeaza:
- Proiectare Automat Finit aplicatie Button-Led.
- Proiectare Automat Finit aplicatie Semafor
Recomandare:
- Sa sa se utiliza interfata seriala pentru rapoarte de functionare a automatelor;
- Reutilizati la maxim solutiile prezentate in laboratoarele precedente;
- Revizuiti resursele predate la curs.

Figura 1 – Circuitul lucrării de laborator

Pentru început automatul finit va avea starea inițială și anume ca semaforul pe vertical este verde
iar cel de pe orizontală este roșu. Acest lucru se observă în Figura 2.
Figura 2 – Aprinderea semaforului vertical în intersecție
În cazul când apar mașini pe orizontală, sau în cazul nostru se apasă butonul push care indică
horizontal flow, culorile se vor schimba respectiv, astfel în Figura 3 este aratată această schimbare.

Figura 3 – Aprinderea semaforului orizontal în intersecție

În timpul de schimbare ale culorilor se face o tranziție prin culoarea galbenă după care ajunge la
starea finală, lucru demonstrat în Figura 3.
Codul sursă
#define NORTH_PIN 1
#define EAST_PIN 2
#define EAST_RED_PIN 5
#define EAST_YELLOW_PIN 6
#define EAST_GREEN_PIN 7
#define NORTH_RED_PIN 8
#define NORTH_YELLOW_PIN 9
#define NORTH_GREEN_PIN 10
#define goN 0 // 0b00
#define waitN 1 // 0b01
#define goE 2 // 0b10
#define waitE 3 // 0b11
#define LED_PIN 13
#define LED_BUTTON_PIN 12
#define LED_OFF_STATE 0
#define LED_ON_STATE 1

struct SemaphoreState {
unsigned long Out;
unsigned long Time;
unsigned long Next[4];

};

typedef
const struct SemaphoreState SemaphoreType;

struct LedState {
unsigned long Out;
unsigned long Time;
unsigned long Next[2];

};

typedef
const struct LedState LedType;

SemaphoreType Semaphore[4] = {

{
0b100001,
1000,
{
goN,
waitN,
goN,
waitN
}
},

{
0b100010,
200,
{
goE,
goE,
goE,
goE
}
},

{
0b001100,
1000,
{
goE,
goE,
waitE,
waitE
}
},

{
0b010100,
200,
{
goN,
goN,
goN,
goN
}
}

};

int Semaphore_State = goN;

LedType LedFSM[2] = {

{
0,
10,
{
LED_OFF_STATE,
LED_ON_STATE
}
},
{
1,
10,
{
LED_ON_STATE,
LED_OFF_STATE
}
}

};

int LedFSM_State = LED_OFF_STATE;

void setup()

// init button pinMode(NORTH_PIN, INPUT); pinMode(EAST_PIN, INPUT);


pinMode(LED_BUTTON_PIN, INPUT);

// init led

pinMode(EAST_RED_PIN, OUTPUT);

pinMode(EAST_YELLOW_PIN, OUTPUT);

pinMode(EAST_GREEN_PIN, OUTPUT);

pinMode(NORTH_RED_PIN, OUTPUT);

pinMode(NORTH_YELLOW_PIN, OUTPUT);

pinMode(NORTH_GREEN_PIN, OUTPUT);

pinMode(LED_PIN, OUTPUT);

int GetInputSemaphore(void) {

int northButton = digitalRead(NORTH_PIN);


int eastButton = digitalRead(EAST_PIN);
if (northButton && eastButton)
return 0b11;

else if (northButton)

return 0b10;

else if (eastButton)

return 0b01;

else

return 0b00;

void SetOutputSemaphore(int out) {

int ledState;

ledState = (out & (1 << 5)) ? HIGH : LOW;


digitalWrite(EAST_RED_PIN, ledState);
ledState = (out & (1 << 4)) ? HIGH : LOW;
digitalWrite(EAST_YELLOW_PIN, ledState);
ledState = (out & (1 << 3)) ? HIGH : LOW;
digitalWrite(EAST_GREEN_PIN, ledState);
ledState = (out & (1 << 2)) ? HIGH : LOW;
digitalWrite(NORTH_RED_PIN, ledState);
ledState = (out & (1 << 1)) ? HIGH : LOW;
digitalWrite(NORTH_YELLOW_PIN, ledState);
ledState = (out & (1 << 0)) ? HIGH : LOW;
digitalWrite(NORTH_GREEN_PIN, ledState);
}

void HandleSemaphore(void) {

// 1. output based on current state

int output = Semaphore[Semaphore_State].Out;


SetOutputSemaphore(output);
// 2. wait fo time relevant to state delay(Semaphore[Semaphore_State].Time * 10);

// 3. get input

int input = GetInputSemaphore();

Semaphore_State = Semaphore[Semaphore_State].Next[input];

void HandleLed(void) {

int output = LedFSM[LedFSM_State].Out;


digitalWrite(LED_PIN, output);

int input = digitalRead(LED_BUTTON_PIN);

// 4. change state based on input and current state LedFSM_State =


LedFSM[LedFSM_State].Next[input];

void loop()

HandleLed();

HandleSemaphore();

S-ar putea să vă placă și

  • IoT LL2
    IoT LL2
    Document9 pagini
    IoT LL2
    Anya Mr
    Încă nu există evaluări
  • Grafica Laborator Nr.2
    Grafica Laborator Nr.2
    Document8 pagini
    Grafica Laborator Nr.2
    Cebotari Ion
    100% (1)
  • Damean Alexandra IOT4
    Damean Alexandra IOT4
    Document9 pagini
    Damean Alexandra IOT4
    Damean Alexandra
    Încă nu există evaluări
  • Damean Alexandra IOT5
    Damean Alexandra IOT5
    Document9 pagini
    Damean Alexandra IOT5
    Damean Alexandra
    Încă nu există evaluări
  • Damean Alexandra IOT6
    Damean Alexandra IOT6
    Document11 pagini
    Damean Alexandra IOT6
    Damean Alexandra
    Încă nu există evaluări
  • IoT LL4
    IoT LL4
    Document4 pagini
    IoT LL4
    Anya Mr
    Încă nu există evaluări
  • LL3 IoT ECiobanu
    LL3 IoT ECiobanu
    Document6 pagini
    LL3 IoT ECiobanu
    Ecaterina Ciobanu
    Încă nu există evaluări
  • IoT LL1
    IoT LL1
    Document12 pagini
    IoT LL1
    Anya Mr
    100% (1)
  • Lab1 CDE
    Lab1 CDE
    Document3 pagini
    Lab1 CDE
    Tudor Domenti
    Încă nu există evaluări
  • Lab1 GC
    Lab1 GC
    Document8 pagini
    Lab1 GC
    Andrei Barbalat
    Încă nu există evaluări
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Document4 pagini
    Laboratorul 2 PPE
    crismaruion
    Încă nu există evaluări
  • Lucrare de Laborator Nr.4
    Lucrare de Laborator Nr.4
    Document10 pagini
    Lucrare de Laborator Nr.4
    SpecialOps
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    dtatn
    Încă nu există evaluări
  • Subiecte Examen ASDN
    Subiecte Examen ASDN
    Document3 pagini
    Subiecte Examen ASDN
    Camy Tripon
    Încă nu există evaluări
  • ASDN2
    ASDN2
    Document6 pagini
    ASDN2
    Viktor Dobrovolschi
    Încă nu există evaluări
  • LFA Lab - 1
    LFA Lab - 1
    Document10 pagini
    LFA Lab - 1
    RoscaFlorin
    100% (1)
  • SEI Atest 1
    SEI Atest 1
    Document20 pagini
    SEI Atest 1
    Nicoleta Lesan
    100% (1)
  • AI-191 Medinschi Ion SO4
    AI-191 Medinschi Ion SO4
    Document5 pagini
    AI-191 Medinschi Ion SO4
    Carolin
    Încă nu există evaluări
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Document4 pagini
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Încă nu există evaluări
  • Ppe 1
    Ppe 1
    Document5 pagini
    Ppe 1
    Victor Lungu
    Încă nu există evaluări
  • Lab1 Apa
    Lab1 Apa
    Document15 pagini
    Lab1 Apa
    SlavicCaldare
    Încă nu există evaluări
  • Laborator 1 Cucu Eugeniu
    Laborator 1 Cucu Eugeniu
    Document5 pagini
    Laborator 1 Cucu Eugeniu
    Cucu Eugen
    Încă nu există evaluări
  • PS Lab #3-2020 Short PDF
    PS Lab #3-2020 Short PDF
    Document19 pagini
    PS Lab #3-2020 Short PDF
    Nina Cavcaliuc
    Încă nu există evaluări
  • LL4 PS
    LL4 PS
    Document12 pagini
    LL4 PS
    Anya Mr
    100% (1)
  • Lab 2 LFA Doc
    Lab 2 LFA Doc
    Document7 pagini
    Lab 2 LFA Doc
    Jenya Matevosean
    Încă nu există evaluări
  • SP Lab #4 2020 Short
    SP Lab #4 2020 Short
    Document15 pagini
    SP Lab #4 2020 Short
    Nina Cavcaliuc
    Încă nu există evaluări
  • PCAD
    PCAD
    Document4 pagini
    PCAD
    Fiodor Ciumac
    Încă nu există evaluări
  • Lab 4 Apa
    Lab 4 Apa
    Document21 pagini
    Lab 4 Apa
    crismaruion
    Încă nu există evaluări
  • TW Lab4
    TW Lab4
    Document8 pagini
    TW Lab4
    Dan
    Încă nu există evaluări
  • PPE Lab7
    PPE Lab7
    Document14 pagini
    PPE Lab7
    danielploaia
    Încă nu există evaluări
  • LL3 PS ECiobanu TI192
    LL3 PS ECiobanu TI192
    Document14 pagini
    LL3 PS ECiobanu TI192
    Ecaterina Ciobanu
    Încă nu există evaluări
  • Ppe 1-3
    Ppe 1-3
    Document86 pagini
    Ppe 1-3
    Doinita Dumanov
    Încă nu există evaluări
  • TAP Lab6 Popov Biatrice - CR 191
    TAP Lab6 Popov Biatrice - CR 191
    Document6 pagini
    TAP Lab6 Popov Biatrice - CR 191
    Alina Axenti
    Încă nu există evaluări
  • Lab 3 Ppe
    Lab 3 Ppe
    Document8 pagini
    Lab 3 Ppe
    Anastasia Gherman
    Încă nu există evaluări
  • IoT LL7
    IoT LL7
    Document4 pagini
    IoT LL7
    Anya Mr
    Încă nu există evaluări
  • PSI Lab 3
    PSI Lab 3
    Document10 pagini
    PSI Lab 3
    Nicolae
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Dorin Nicoara
    Încă nu există evaluări
  • Grafica Laborator Nr.3
    Grafica Laborator Nr.3
    Document5 pagini
    Grafica Laborator Nr.3
    Cebotari Ion
    100% (2)
  • TW Lab5
    TW Lab5
    Document3 pagini
    TW Lab5
    Dan
    Încă nu există evaluări
  • CR 191 Roscovanu Dumitru BTD Lab4
    CR 191 Roscovanu Dumitru BTD Lab4
    Document4 pagini
    CR 191 Roscovanu Dumitru BTD Lab4
    Alina Axenti
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Ion Cornea
    Încă nu există evaluări
  • Asdn2 Lab5
    Asdn2 Lab5
    Document4 pagini
    Asdn2 Lab5
    Жан Ганган
    Încă nu există evaluări
  • Lab2 Somipp
    Lab2 Somipp
    Document6 pagini
    Lab2 Somipp
    Iov Albu
    Încă nu există evaluări
  • CR-191 MIPI Axenti Alina Lab4
    CR-191 MIPI Axenti Alina Lab4
    Document6 pagini
    CR-191 MIPI Axenti Alina Lab4
    Alina Axenti
    Încă nu există evaluări
  • Laborator Metode Numerice
    Laborator Metode Numerice
    Document4 pagini
    Laborator Metode Numerice
    Florin Gheorghe
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document9 pagini
    Lab 1
    Cristian Conea
    Încă nu există evaluări
  • Lab NR 4 MMC2 Duca Dumitru TI 194
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Document11 pagini
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Santa Claus
    Încă nu există evaluări
  • POO1-varianta 3
    POO1-varianta 3
    Document5 pagini
    POO1-varianta 3
    Octavian Lucaș
    Încă nu există evaluări
  • Lab 1 LFA
    Lab 1 LFA
    Document10 pagini
    Lab 1 LFA
    Eric Semeniuc
    Încă nu există evaluări
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • Examen, TS, Bilet 75
    Examen, TS, Bilet 75
    Document1 pagină
    Examen, TS, Bilet 75
    Никита Баранов
    Încă nu există evaluări
  • Lab1 Somipp
    Lab1 Somipp
    Document14 pagini
    Lab1 Somipp
    Jen4ik
    100% (1)
  • Lab. Nr.1 - S.A.V - Ciubotaru Mihai
    Lab. Nr.1 - S.A.V - Ciubotaru Mihai
    Document10 pagini
    Lab. Nr.1 - S.A.V - Ciubotaru Mihai
    Mihai Ciubotaru
    Încă nu există evaluări
  • Damean Alexandra IOT3
    Damean Alexandra IOT3
    Document8 pagini
    Damean Alexandra IOT3
    Damean Alexandra
    Încă nu există evaluări
  • PSLab 4
    PSLab 4
    Document5 pagini
    PSLab 4
    Victor Turculet
    Încă nu există evaluări
  • AMOO - Proiect de An
    AMOO - Proiect de An
    Document4 pagini
    AMOO - Proiect de An
    Dan
    Încă nu există evaluări
  • IoT2 Raport
    IoT2 Raport
    Document10 pagini
    IoT2 Raport
    crismaruion
    Încă nu există evaluări
  • IoT Laborator NR 2
    IoT Laborator NR 2
    Document10 pagini
    IoT Laborator NR 2
    crismaruion
    Încă nu există evaluări
  • CURS ALRDRUINO BOGDAN C TIN Bun de Publicat
    CURS ALRDRUINO BOGDAN C TIN Bun de Publicat
    Document81 pagini
    CURS ALRDRUINO BOGDAN C TIN Bun de Publicat
    Tica Bogdan
    Încă nu există evaluări
  • Lab 6 IOT
    Lab 6 IOT
    Document5 pagini
    Lab 6 IOT
    pussdestroy234
    Încă nu există evaluări
  • IoT LL4
    IoT LL4
    Document4 pagini
    IoT LL4
    Anya Mr
    Încă nu există evaluări
  • IoT LL7
    IoT LL7
    Document4 pagini
    IoT LL7
    Anya Mr
    Încă nu există evaluări
  • Si LL1
    Si LL1
    Document12 pagini
    Si LL1
    Anya Mr
    Încă nu există evaluări
  • Si LL2
    Si LL2
    Document6 pagini
    Si LL2
    Anya Mr
    Încă nu există evaluări
  • IoT LL1
    IoT LL1
    Document12 pagini
    IoT LL1
    Anya Mr
    100% (1)
  • Proiect Baze de Date
    Proiect Baze de Date
    Document26 pagini
    Proiect Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL4 PS
    LL4 PS
    Document12 pagini
    LL4 PS
    Anya Mr
    100% (1)
  • LL2 Baze de Date
    LL2 Baze de Date
    Document15 pagini
    LL2 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Testarea1 IOC Mereuta Ana TI-192
    Testarea1 IOC Mereuta Ana TI-192
    Document3 pagini
    Testarea1 IOC Mereuta Ana TI-192
    Anya Mr
    Încă nu există evaluări
  • LL5 PS
    LL5 PS
    Document11 pagini
    LL5 PS
    Anya Mr
    Încă nu există evaluări
  • LL6 PS
    LL6 PS
    Document5 pagini
    LL6 PS
    Anya Mr
    Încă nu există evaluări
  • LL1 Prelucrarea Semnalelor
    LL1 Prelucrarea Semnalelor
    Document20 pagini
    LL1 Prelucrarea Semnalelor
    Anya Mr
    Încă nu există evaluări
  • FileMaker Pro - Mereuta - Ana - TI - 192
    FileMaker Pro - Mereuta - Ana - TI - 192
    Document4 pagini
    FileMaker Pro - Mereuta - Ana - TI - 192
    Anya Mr
    Încă nu există evaluări
  • LL3 PS ECiobanu TI192
    LL3 PS ECiobanu TI192
    Document14 pagini
    LL3 PS ECiobanu TI192
    Ecaterina Ciobanu
    Încă nu există evaluări
  • LL3 TS Final A TI-192
    LL3 TS Final A TI-192
    Document8 pagini
    LL3 TS Final A TI-192
    Anya Mr
    Încă nu există evaluări
  • LL
    LL
    Document7 pagini
    LL
    Anya Mr
    Încă nu există evaluări
  • LL8 Mereuta Ana TI-192
    LL8 Mereuta Ana TI-192
    Document6 pagini
    LL8 Mereuta Ana TI-192
    Anya Mr
    Încă nu există evaluări
  • NiveledeTestare Referat
    NiveledeTestare Referat
    Document10 pagini
    NiveledeTestare Referat
    Anya Mr
    Încă nu există evaluări
  • LL3 BD
    LL3 BD
    Document4 pagini
    LL3 BD
    Anya Mr
    Încă nu există evaluări
  • LL4 BD
    LL4 BD
    Document6 pagini
    LL4 BD
    Anya Mr
    Încă nu există evaluări
  • LL3
    LL3
    Document6 pagini
    LL3
    Anya Mr
    Încă nu există evaluări
  • LL6 Baze de Date
    LL6 Baze de Date
    Document7 pagini
    LL6 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL7 Baze de Date
    LL7 Baze de Date
    Document5 pagini
    LL7 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL6 Baze de Date
    LL6 Baze de Date
    Document7 pagini
    LL6 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL5 Baze de Date
    LL5 Baze de Date
    Document3 pagini
    LL5 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • LL1 Testarea Software
    LL1 Testarea Software
    Document4 pagini
    LL1 Testarea Software
    Anya Mr
    Încă nu există evaluări
  • LL1 Prelucrarea Semnalelor
    LL1 Prelucrarea Semnalelor
    Document20 pagini
    LL1 Prelucrarea Semnalelor
    Anya Mr
    Încă nu există evaluări
  • LL4 Baze de Date
    LL4 Baze de Date
    Document6 pagini
    LL4 Baze de Date
    Anya Mr
    Încă nu există evaluări