Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:atoader:theodor.mitrofan [2026/05/09 16:04]
theodor.mitrofan [Rezultate Obtinute]
pm:prj2026:atoader:theodor.mitrofan [2026/05/14 20:06] (current)
theodor.mitrofan
Line 9: Line 9:
  
 Pentru mine, utilitatea este didactica si practica: invat sa stapanesc interactiunea dintre senzori asincroni (RFID, Ultrasonic) si actuatoare (Servomotor) folosind o arhitectura de tip Finite State Machine (FSM), eliminand total functiile blocante de tip delay(). Pentru un utilizator real, sistemul ofera un feedback clar (pe ecranul LCD) si un acces fluid. Pentru mine, utilitatea este didactica si practica: invat sa stapanesc interactiunea dintre senzori asincroni (RFID, Ultrasonic) si actuatoare (Servomotor) folosind o arhitectura de tip Finite State Machine (FSM), eliminand total functiile blocante de tip delay(). Pentru un utilizator real, sistemul ofera un feedback clar (pe ecranul LCD) si un acces fluid.
 +
 +Laboratoarele folosite au fost 3-timere, 5-spi si 6-i2c
  
 ===== Descriere generala ===== ===== Descriere generala =====
  
-Sistemul ​este centralizat in jurul microcontrolerului ATmega328P. La momentul scanarii ​unui card, microcontrolerul ​interogheaza senzorul RFID prin protocolul SPIDaca UID-ul cardului ​este validat si exista locuri disponibilesistemul trimite date prin I2C catre ecranul LCD pentru actualizarea interfetei si genereaza ​un semnal PWM pentru a ridica servomotorul (bariera)+Arhitectura software a sistemului ​este concepută sub forma unui automat cu stări finite (Finite State Machine)implementat în limbaj C la nivel de regiștri pe microcontrolerul ​ATmega328PSistemul ​este construit în jurul unei bucle principale non-blockingcare orchestrează comunicația cu perifericele,​ asigurând ​un management fluid al accesului auto și al resurselor parcării
  
-Ulterior, controlul ​este preluat de senzorul ultrasonic. Folosind functiile de temporizare (Timere hardware), microcontrolerul masoara timpul de raspuns al ecoului pentru a determina cand masina a eliberat complet zona de tranzit. Odata confirmata trecerea, bariera coboara, iar contorul locurilor de parcare este decrementat.+Fluxul operațional ​este împărțit în patru module logice principale:
  
-**Schema bloc a sistemului:​** +**1. Autentificare și Gestiunea Accesului ​(Comunicație SPI)** 
-  * **Intrari ​(Inputs):** Modul RFID RC522 (Senzor acces), HC-SR04 (Senzor prezenta/​tranzit). +Sistemul interoghează continuu senzorul ​RFID RC522 prin intermediul protocolului de comunicație de mare viteză SPI (Serial Peripheral Interface).  
-  * **Unitate de Procesare:** ATmega328P ​(pe placa Xplained Mini). +  * **Validarea Identității:** La detectarea unui tag RFID (card sau breloc), microcontrolerul extrage identificatorul unic (UIDpe 4 octeți. Acest UID este comparat cu o structură de date internă ce conține utilizatorii autorizați
-  * **Iesiri (Outputs):** Servomotor SG90 (Bariera)Ecran LCD 1602 + adaptor I2C (Interfata utilizator).+  * **Logica de Capacitate:** Chiar dacă un card este recunoscut ca fiind validaccesul este condiționat de variabila globală a locurilor de parcare. Sistemul verifică preventiv dacă există locuri disponibile,​ refuzând accesul ​(și afișând un mesaj corespunzător pe ecranîn cazul în care parcarea este la capacitate maximă.
  
-===== Hardware Design =====+**2. Interfață și Feedback Vizual (Comunicație I2C)** 
 +Feedback-ul către utilizator este asigurat de un ecran LCD 1602, controlat eficient prin protocolul I2C pentru a minimiza numărul de pini utilizați (se folosesc doar SDA și SCL). 
 +  * **Actualizare Dinamică:​** Microcontrolerul actualizează interfața grafică în timp real, gestionând tranzițiile de stare: de la mesajul implicit de așteptare (,,Locuri Libere: X''​),​ la mesaje de validare (,,Acces Permis''​),​ sau mesaje de eroare (,,Card Invalid''​ / ,,Parcare Ocupată''​).
  
-**Lista de piese:** +**3. Controlul Mecanic al Barierei ​(Timer Hardware și PWM)** 
-  * Placa de dezvoltare **ATmega328P-Xplained Mini** ​(Microcontroler central si interfata de debugging mEDBG)+Pentru acționarea fizică a barierei ​(Servomotorul SG90), sistemul evită funcțiile de blocare a codului ​(precum funcțiile de delay), bazându-se pe resursele hardware interne ale microcontrolerului
-  * Modul **RFID RC522** (13.56 MHz- Alimentat la 3.3Vconectat la pinii SPI (MOSI, MISO, SCK, SS). +  * **Generare Semnal Precis:** Este utilizat Timer-ul 1 pe 16-biți în modul Fast PWM. Prin setarea regiștrilor ​(ex: ICR1 și OCR1A), microcontrolerul generează un semnal ​PWM cu o frecvență fixă de 50Hz, modificând doar factorul ​de umplere ​(Duty Cycle) pentru ​a ridica bariera (poziția ​de 90 gradela momentul validării accesului.
-  * **Display LCD 1602** retroiluminat cu modul **I2C PCF8574** lipit pe spate Alimentat la 5V, conectat la pinii SDA (PC4si SCL (PC5). +
-  * **Servomotor SG90** - Alimentat la 5V, semnal de control conectat la un pin capabil ​de PWM (Timer1)+
-  * **Senzor Ultrasonic HC-SR04** - Alimentat la 5V, conectat la pini GPIO/Input Capture ​pentru ​masurarea impulsului ​de ecou. +
-  * Breadboard si fire de conexiune DuPont (Tata-Tata, Mama-Tata).+
  
-*(Aici se va adauga o schema electrica desenata in FritzingProteus sau Eagledetaliind conexiunile mentionate mai sus).*+**4. Telemetrie și Siguranța Tranzitului ​(Senzor Ultrasonic)** 
 +Odată bariera ridicatăcontrolul logic este delegat modulului de siguranță gestionat de senzorul ultrasonic HC-SR04pentru a preveni coborârea accidentală a brațului peste autovehicul. 
 +  * **Măsurarea Timpului de Zbor (ToF):** Microcontrolerul trimite un impuls scurt (Trigger) de 10 microsecunde și utilizează funcții de temporizare pentru a măsura durata impulsului de întoarcere (Echo). 
 +  ​**Conversie și Decizie:** Distanța este calculată matematic pe baza vitezei sunetului în aer. 
 +  * **Logica de Tranzit:** Sistemul monitorizează continuu distanța. Când distanța scade sub un anumit prag, sistemul detectează mașina sub barieră. Doar în momentul în care distanța revine la valoarea inițială (confirmând că mașina a eliberat complet zona de tranzit), microcontrolerul comandă închiderea barierei și decrementează contorul locurilor de parcare, actualizând simultan afișajul LCD. 
 +{{pm:​prj2026:​atoader:​mitrofan_theodor.png?​670}}
  
-===== Software ​Design =====+===== Hardware ​Design =====
  
-**Mediu de dezvoltare:** +^ Piesa ^ Link ^ Tip Utilizare ^ 
-  * Microchip Studio (fostul Atmel Studio) ​toolchain-ul AVR-GCCCodul este scris in C pur (<avr/io.h><avr/interrupt.h>).+| ATmega328P-Xplained Mini | [[https://​www.microchip.com/​en-us/​development-tool/​atmega328p-xmini|ATmega328P-Xplained Mini]] | Baza dezvoltare ​
 +| Modul RFID RC522 | [[https://​www.bitmi.ro/​modul-rfid-rc522-13-59mhz-cu-card-si-tag-10468.html?​gad_source=1&​gad_campaignid=22991722025&​gbraid=0AAAAADLag-nnaAD2-KamZ6qMPeX9EODW5&​gclid=CjwKCAjw5ZXQBhBdEiwAI5XVWWYh4P4q0otfQLW_UaE-AMkAOe1yxy4PVNM3kBF_5TlyA5kxobgOlhoC0qEQAvD_BwE|Modul RFID RC522]] | SPI | 
 +| Display LCD 1602 cu convertor I2C | [[https://​www.bitmi.ro/​electronica/modul-interfata-i2c-pentru-lcd1602-10456.html|Modul interfață I2C pentru LCD]] | I2C | 
 +| Servomotor SG90 | [[https://​www.bitmi.ro/​servomotor-sg90-180-grade-9g-10496.html?​gad_source=1&​gad_campaignid=22991722025&​gbraid=0AAAAADLag-nnaAD2-KamZ6qMPeX9EODW5&​gclid=CjwKCAjw5ZXQBhBdEiwAI5XVWQXZa27TW67QwGFsDZUVFMhMdv7029RM0G-rRfPgTVxxRnwx-d1RfRoCtfkQAvD_BwE|Servomotor SG90]] | PWM (Timer1) | 
 +| Senzor Ultrasonic HC-SR04 | [[https://​sigmanortec.ro/​Senzor-ultrasunete-HC-SR04-p125423514?​SubmitCurrency=1&​id_currency=2&​srsltid=AfmBOorCJkTIpRGAV4zxJQd6-_3oJh7cRBnG1qOWIAHL12xkTYJTcHGaZik|Senzor Ultrasonic HC-SR04]] | GPIOInput Capture | 
 +| Breadboard si fire DuPont | [[https://www.bitmi.ro/​breadboard-400-puncte-pentru-montaje-electronice-rapide-10633.html?​gad_source=1&​gad_campaignid=22991722025&​gbraid=0AAAAADLag-nnaAD2-KamZ6qMPeX9EODW5&​gclid=CjwKCAjw5ZXQBhBdEiwAI5XVWeDqc7DeK0XeCdZCfTkPi31TB3drat6GdZFtWn-J7no54kN9QCawohoCJsMQAvD_BwE|Breadboard si fire DuPont]] | Conexiuni hardware |
  
-**Arhitectura si Algoritmi:** +{{pm:prj2026:atoader:circuit_electric_mitrofan_theodor.jpeg?670}} 
-Fluxul programului este implementat sub forma unui **Automat de Stari (State Machine)** pentru a asigura non-blocarea executiei: +===== Software Design =====
-  - ''​STARE_IDLE''​Asteapta citirea unui card prin SPI si afiseaza numarul de locuri+
-  - ''​STARE_VALIDARE'':​ Verifica daca UID-ul citit are permisiuni si daca contorul ''​locuri_libere > 0''​. +
-  - ''​STARE_DESCHIS'':​ Genereaza semnal PWM pentru 90 de grade, deschizand bariera. +
-  - ''​STARE_IN_TRANZIT'':​ Interogheaza non-blocant senzorul ultrasonic. Asteapta scaderea distantei (masina este sub bariera) si apoi cresterea acesteia (masina a trecut). +
-  - ''​STARE_INCHIDERE'':​ Coboara bariera (PWM la 0 grade), actualizeaza variabila globala de locuri si comunica prin I2C noile date catre LCD.+
  
-**Librarii si surse 3rd-party:​** +Dezvoltarea software este bazata pe o masina de stari finita ​(FSMcare dicteaza comportamentul sistemului, eliminand complet functiile blocante.
-  * Librarie adaptata pentru comunicarea **I2C/TWI** si driver-ul afisajului HD44780 ​(ex. adaptari ale librariei lui Peter Fleury). +
-  * Librarie bare-metal C pentru manipularea registrilor modulului **MFRC522** (SPI).+
  
 +**Stari implementate:​**
 +  * **Starea IDLE:** Sistemul asteapta scanarea unui card RFID. LCD-ul afiseaza numarul actualizat "​Locuri libere: X".
 +  * **Starea VALIDARE:** Se verifica UID-ul cardului scanat. Daca cardul este recunoscut si exista locuri disponibile (contor > 0), se trece la deblocare; daca nu, se afiseaza "Acces Respins"​ sau "​Parcare Plina"​.
 +  * **Starea DESCHIDERE:​** Servomotorul se roteste la 90 de grade prin intermediul unui semnal PWM pentru a ridica bariera.
 +  * **Starea TRANZIT:** Sistemul citeste constant datele de la senzorul HC-SR04. Atata timp cat distanta masurata este mica, masina se afla sub bariera. Sistemul asteapta ca distanta sa revina la normal (confirmarea trecerii).
 +  * **Starea INCHIDERE:​** Dupa eliberarea zonei, bariera coboara (PWM la 0 grade), contorul de locuri libere este decrementat,​ iar sistemul revine in starea IDLE.
 ===== Rezultate Obtinute ===== ===== Rezultate Obtinute =====
  
Line 56: Line 65:
  
 ===== Jurnal ===== ===== Jurnal =====
- 
-  * **Saptamana 1:** Achizitia componentelor,​ lipirea pinilor I2C pe modulul LCD. Setup-ul mediului Microchip Studio pentru placa ATmega328P-Xplained Mini. 
-  * **Saptamana 2:** Implementarea comunicatiei I2C (TWI) si testarea afisarii de text si variabile pe LCD. 
-  * **Saptamana 3:** Configurarea Timerului 1 pentru generarea de semnal PWM (50Hz) si testarea miscarilor servomotorului. 
-  * **Saptamana 4:** Implementarea senzorului Ultrasonic fara delay(). Adaugarea librariei SPI pentru RFID. 
-  * **Saptamana 5:** Integrarea modulelor prin FSM (Automat de stari) si testarea logica (scaderea corecta a locurilor). 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2026/atoader/theodor.mitrofan.1778331888.txt.gz · Last modified: 2026/05/09 16:04 by theodor.mitrofan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0