39 0 1MB
Ministerul Educației, Culturii și Cercetării al Republicii Moldova Universitatea Tehnică a Moldovei Facultatea Calculatoare, Informatică și Microelectronică Departamentul Ingineria Software și Automatică
RAPORT lucrarea de laborator Nr. 5 Disciplina: IOT Tema: Automate finite
A efectuat:
st. gr. TI-171, Iepuras Daniel
A verificat:
conf. Serghei Dubac
Chișinău – 2020
1. Scop Sa se realizeze o aplicatie ce va implementa Automatele finite dupa cum urmeaza: 1.Proiectare Automat Finit aplicatie Button-Led. 2.Proiectare Automat Finit aplicatie Semafor
2. Componente ● Arduino Uno ● Push buttont ● LED ● Resistor 3. Teorie O ma ină cu stare finită (FSM) este un model matematic de calcul utilizat pentruși Cercetării al Republicii Moldova proiectarea atât a programelor de calculator, cât i a circuitelor logiceși Cercetării al Republicii Moldova secven iale. Este conceput ca o ma ină abstractă care poate fi într-un număr finitțiale. Este conceput ca o mașină abstractă care poate fi întrun număr finit și Cercetării al Republicii Moldova de stări. Ma ina se află într-o singură stare la un moment dat; starea în care seși Cercetării al Republicii Moldova află la un moment dat se nume te starea curentă. Se poate schimba de la o stareși Cercetării al Republicii Moldova la alta atunci când este ini iat de un eveniment sau condi ie declan atoare; aceastațiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit țiale. Este conceput ca o mașină abstractă care poate fi întrun număr finit și Cercetării al Republicii Moldova se nume te tranzi ie. Un anumit FSM este definit de o listă a stărilor sale, a stăriiși Cercetării al Republicii Moldovațiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit sale ini iale i a condi iei de declan are pentru fiecare tranzi ie.țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finitși Cercetării al Republicii Moldova țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit și Cercetării al Republicii Moldovațiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit Principalul motiv pentru utilizarea ma inilor de stat este de a ajuta procesul deși Cercetării al Republicii Moldova proiectare. Este mult mai u or să vă da i seama de toate condi iile de margineși Cercetării al Republicii Moldova țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit posibile, trasând ma ina de stare pe hârtie. Acest lucru vă va asigura că aplica iași Cercetării al Republicii
Moldova țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit dvs. va avea mai pu ine erori i un comportament mai pu in nedefinit.țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finitși Cercetării al Republicii Moldova țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit Mai mult decât atât, ma inile de stat au în spatele lor zeci de ani de cercetareși Cercetării al Republicii Moldova matematică i CS despre analizarea lor, simplificarea lor i multe altele. Odată ceși Cercetării al Republicii Moldova și Cercetării al Republicii Moldova vă da i seama că în gestionarea ma inilor de stat se numesc procese de afaceri,țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit și Cercetării al Republicii Moldova ve i găsi o mul ime de informa ii i instrumente la dispozi ia dvs.țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit și Cercetării al Republicii Moldova țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit 5. Descrierea problemei Pentru a rezolva sarcinile date în acest laborator, s-a făcut mai întâi o diagramă a ma inilor cu stare finită pentru a arăta cum se va schimba starea i care va fiși Cercetării al Republicii Moldova și Cercetării al Republicii Moldova declan atorul acestei schimbări. În fig.1 este prezentată ma ina de stare pentruși Cercetării al Republicii Moldova și Cercetării al Republicii Moldova aplica ia cu buton.țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit
Când este apăsat un buton, ledul este pornit sau oprit, în func ie de starea ledului în țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit acel moment. Pentru a doua sarcină, ma ina cu stări finite este mult mai dificilă, deoarece există maiși Cercetării al Republicii Moldova multe stări. În fig.2, se poate vedea imaginea care ilustrează problema cu semafoarele. Cel mai bun exemplu este o răscruce de drumuri cu ma ini care merg de la nord la sudși Cercetării al Republicii Moldova și Cercetării al Republicii Moldovai de la est la vest i butoanele pentru pietonii care vor să traverseze drumul.și Cercetării al Republicii Moldova
Două intrări de la comutatoare detectează prezen a butonului apăsat în fiecare direc iețiale. Este conceput ca o mașină abstractă care poate fi întrun număr finit țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit și Cercetării al Republicii Moldovai există 6 ie iri pentru fiecare lumină de semafor din fiecare direc ie.și Cercetării al Republicii Moldova țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit
6. Implementarea Solutiei Task 1: Stările definite în această ma ină de stări finite sunt LED_OFF_STATE 0 and și Cercetării al Republicii Moldova LED_ON_STATE 1
Task 2: Starile difinite sunt {0b100001,3000,{goS,waitS,goS,waitS}}, //State 0 (goS) go South. // {0b100010, 500,{goW,goW,goW,goW}}, State 1 (waitS) wait South. // {0b001100,3000,{goW,goW,waitW,waitW}}, State 2 (goW) go West. {0b010100, 500,{goS,goS,goS,goS}} //State 3 (waitW) wait West În func ie de starea curentă i dacă butonul a fost apăsat, atunci starea trece la țiale. Este conceput ca o mașină abstractă care poate fi într-un număr finit și Cercetării al Republicii Moldova următoarea.
Code: #include #define ledPin 13 #define buttonPin 2 #define LED_OFF_STATE 0 #define LED_ON_STATE 1 struct State { unsigned long Out; unsigned long Time; unsigned long Next[2]; }; typedef const struct State STyp; STyp FSM[2] = { {0,10,{LED_OFF_STATE, LED_ON_STATE}}, {1,10,{LED_ON_STATE, LED_OFF_STATE}}
}; int FSM_State = LED_OFF_STATE; void setup(){ pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); FSM_State = LED_OFF_STATE; } void loop(){ int output = FSM[FSM_State].Out; digitalWrite(ledPin, output);
//delay(FSM[FSM_State].Time * 10); int input = digitalRead(buttonPin); FSM_State = FSM[FSM_State].Next[input]; }
Tinkercad simulation https://www.tinkercad.com/things/6dG3OL8C4BW-mighty-jabanelzing/editel?t
enant=circuits?sharecode=URl9ovs6F9UF_fftKAD5Rn9xdpeK3RwyT QPzPinbJ Ys Code: #include #define northRedPin 2 #define northYellowPin 3 #define northGreenPin 4 #define eastRedPin 5 #define eastYellowPin 6 #define eastGreenPin 7 #define northPin 8 #define eastPin 9 struct State { int Out; int Time; int Next[4];}; typedef const struct State STyp; #define goS 0 #define waitS 1 #define waitW 3 STyp FSM[4]={ {0b100001,300,{goS,waitS,goS,waitS}}, South. {0b100010, South.
50,{goW,goW,goW,goW}},
{0b001100,300,{goW,goW,waitW,waitW}}, West. {0b010100, West. int pinState; state
50,{goS,goS,goS,goS}}};
//State //State //State //State
0 (goS)
go
1 (waitS) wait 2 (goW)
go
3 (waitW) wait
// index to the current