Differences

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

Link to this comparison view

pm:prj2024:mdinica:amarinescu2409 [2024/05/05 00:34]
amarinescu2409 [Descriere generală]
pm:prj2024:mdinica:amarinescu2409 [2024/05/27 01:39] (current)
amarinescu2409
Line 1: Line 1:
-====== Parcare ​Rezidnetiala ​======+====== Parcare ​Rezidentiala ​======
 ===== Introducere ===== ===== Introducere =====
  
Line 11: Line 11:
  
 Utilizatorii o sa vina, o sa scaneze cardul RFID primit la cumpararea locuintei, daca acesta este valid, se aprinde beculetul si se ridica bariera. De asemenea, pentru eficientizare,​ gasirea mai simpla a unui loc liber, si evitarea incercarii de parcare cand nu sunt locuri se foloseste de Ecran si led-urile asignate fiecarui loc de parcare. Utilizatorii o sa vina, o sa scaneze cardul RFID primit la cumpararea locuintei, daca acesta este valid, se aprinde beculetul si se ridica bariera. De asemenea, pentru eficientizare,​ gasirea mai simpla a unui loc liber, si evitarea incercarii de parcare cand nu sunt locuri se foloseste de Ecran si led-urile asignate fiecarui loc de parcare.
 +
 +Aici este diagrama proiectului:​
 +
 +{{:​pm:​prj2024:​mdinica:​mari_drawio.png?​600|}}
  
  
Line 25: Line 29:
 </​note>​ </​note>​
  
-===== Software Design ===== 
  
 +**Lista de componente**:​
 +  * Arduino UNO R3 - microcontrollerul principal care gestioneaza toate componentele și functiile sistemului de parcare
 +  * Ecran IIC 1602 LCD - afiseaza mesaj daca avem loc liber de parcare
 +  * RFID MRFC-522 - detecteaza cartela folosita pentru a intra in parcarea rezidentiala
 +  * Senzori ultrasonici HC-SR04 - decteaza prezenta unei masini in dreptul acestora, fiind montat in proximitatea locului de parcare
 +  * IC Shift register SN74HC595N 74HC595 - controleaza multiple outputuri folosind doar 3 pini ai microcontrollerului. Am nevoie de el datorita numarului rrelativ mare de device-uri si numarului mic de porturi digitali ai microcontrollerului.
 +  * ServoMotor SG90 - este folosit pentru a deschide si inchide bariera de intrare in parcare
 +  * BYJ48 Stepper Motor - folosit pentru a ridica si inchide cealalta bariera de iesire din parcare
 +  * Buton Pushbutton - folosit pentru a comanda ridicarea barierei de la iesire.
  
-<note tip> 
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
-===== Rezultate Obţinute ​=====+**Schema electrica**:​ 
 + 
 +{{:​pm:​prj2024:​mdinica:​schema_pm.png?​400|}} 
 + 
 +**Stadiul actual**: 
 + 
 +{{:​pm:​prj2024:​mdinica:​parcare_pm_hardware.jpeg?​400|}} 
 + 
 + 
 + 
 + 
 + 
 +===== Software Design ​=====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Link către repo-ul de Github cu codul sursă: https://​github.com/​AlexMari1234/​Parcare-rezidentiala
 </​note>​ </​note>​
  
-===== Concluzii ​=====+===== Mediul de Dezvoltare ​===== 
 +Codul este destinat a fi rulat pe o platformă Arduino, utilizând mediul de dezvoltare Arduino IDE. Arduino IDE oferă suport pentru scrierea, compilarea și încărcarea codului pe plăcile de dezvoltare Arduino. Mediul de dezvoltare este ales pentru simplitatea sa și pentru suportul extins al comunității pentru proiecte de automatizare și robotică. 
 + 
 +===== Librării===== 
 +Codul utilizează mai multe librării pentru a gestiona diverse componente hardware: 
 + 
 +- **Servo.h**:​ Furnizată de Arduino, simplifică controlul servomotoarelor. Această librărie gestionează generarea semnalelor PWM necesare pentru a controla un servo motor standard. 
 + 
 +- **MFRC522.h**:​ Librărie utilizată pentru interfațarea cu cititorul RFID MFRC522. 
 + 
 +- **LiquidCrystal_I2C.h**:​ Utilizată pentru controlul unui ecran LCD cu interfață I2C, simplificând astfel conectarea și comunicarea cu ecranul. 
 + 
 +===== Organizarea Codului ===== 
 +Codul este structurat în două secțiuni principale: `setup()` și `loop()`. Secțiunea `setup()` este destinată inițializării componentelor hardware și configurării inițiale a sistemului, în timp ce `loop()` conține logica principală care se repetă continuu în timpul funcționării dispozitivului. Codul include următoarele elemente: 
 + 
 +  - **Include librării**:​ La început, codul include librăriile necesare pentru controlul servomotorului,​ cititorului RFID și ecranului LCD. Aceasta asigură că toate funcționalitățile necesare sunt disponibile pe parcursul programului. 
 + 
 +  - **Defineste constante**:​ Utilizează directive `#define` pentru a denumi pinii senzorilor ultrasonici,​ LED-urilor, butonului și cititorului RFID. De asemenea, sunt definite constante pentru timpii de operare ai servo motorului, pentru a simplifica modificările ulterioare și a crește lizibilitatea codului. 
 + 
 +  - **Inițializează variabile**:​ Declara variabile pentru a păstra starea inițială a servo motorului și pentru a gestiona temporizarea acțiunilor,​ cum ar fi timpul de ridicare și coborâre a barierei, precum și gestionarea stării de deschidere a barierei. 
 + 
 +  - **Configurare inițială (`setup()`)**:​ Această secțiune inițializează comunicația serială, configurarea pinilor pentru servo motor, senzorii ultrasonici,​ LED-uri, buton și ecran LCD. Inițializarea componentelor hardware este esențială pentru a asigura că toate dispozitivele funcționează corect de la începutul execuției programului. 
 + 
 +  - **Logica de control (`loop()`)**:​ Aceasta este secțiunea principală a codului care se repetă continuu și conține logica necesară pentru operarea sistemului de parcare. Include verificări pentru detectarea cardurilor RFID, citirea distanțelor de la senzorii ultrasonici,​ controlul LED-urilor și gestionarea afișării informațiilor pe ecranul LCD. 
 + 
 +===== Algoritmi și Structuri Implementate ===== 
 +  - **Citirea senzorilor ultrasonici**:​ Valorile de la trei senzori ultrasonici sunt citite și utilizate pentru a determina dacă un loc de parcare este ocupat. Aceasta se face prin trimiterea unui puls de trigger și măsurarea timpului de răspuns al pulsului de ecou pentru a calcula distanța. 
 +   
 +  - **Controlul LED-urilor**:​ LED-urile sunt aprinse sau stinse pe baza distanțelor măsurate de senzori. Dacă distanța este mai mică de 8 cm, LED-ul corespunzător se aprinde. 
 + 
 +  - **Controlul servo motorului**:​ Servo motorul este controlat pentru a ridica și a coborî bariera de acces. Dacă un card RFID autorizat este detectat sau butonul de ieșire este apăsat, bariera se ridică pentru 5 secunde și apoi coboară automat. 
 + 
 +  - **Afișarea pe ecranul LCD**: Ecranul LCD este utilizat pentru a afișa numărul de locuri de parcare libere și mesajul de status "​Parking free spots"​. 
 + 
 +===== Rezultate Obținute ===== 
 +  - Sistemul permite deschiderea și închiderea barierei de acces în parcare la detectarea unui card RFID autorizat sau la apăsarea unui buton. 
 +  - Ecranul LCD afișează în timp real numărul locurilor de parcare libere. 
 +  - LED-urile indică vizual starea fiecărui loc de parcare. 
 +  - Sistemul oferă o soluție eficientă și automatizată pentru gestionarea accesului și a disponibilității locurilor de parcare într-o parcare rezidențială.
  
 ===== Download ===== ===== Download =====
pm/prj2024/mdinica/amarinescu2409.1714858480.txt.gz · Last modified: 2024/05/05 00:34 by amarinescu2409
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