This shows you the differences between two versions of the page.
pm:prj2025:avaduva:emilia_antonia.toia [2025/05/17 13:58] emilia_antonia.toia [Hardware Design] |
pm:prj2025:avaduva:emilia_antonia.toia [2025/05/25 13:54] (current) emilia_antonia.toia [Software Design] |
||
---|---|---|---|
Line 81: | Line 81: | ||
** Diagrama de semnal intrare: ** | ** Diagrama de semnal intrare: ** | ||
- | {{:pm:prj2025:avaduva:diagrama_semnal_intrare_toia.png?600x200}} | + | {{:pm:prj2025:avaduva:diagrama_semnal_intrare_toia.png?650x200}} |
- | Explicație: | + | **Explicație:** |
- | Aici puneţi tot ce ţine de hardware design: | + | ^ Componentă ^ Pin ^ Descriere comportament ^ |
- | * listă de piese | + | | IR_SENSOR_1 | D3 | Detectează mașina la intrare. Semnalul trece de la HIGH la LOW. | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | SERVO_PIN_1 | D9 | Primește semnal PWM pentru a deschide bariera (110°), apoi revine la 0°(3 secunde așteaptă). | |
- | * diagrame de semnal | + | | TRIG_PIN_1 | D4 | Trimite un impuls de 10 µs către senzorul ultrasonic pentru a începe măsurarea. | |
- | * rezultatele simulării | + | | ECHO_PIN_1 | D5 | Primește semnal HIGH proporțional cu distanța până la obstacol (mașina). | |
+ | | LCD | - | Afișează actualizat numărul de locuri libere după intrarea mașinii. | | ||
+ | |||
+ | ** Diagrama de semnal ieșire: ** | ||
+ | |||
+ | {{:pm:prj2025:avaduva:diagrama_semnal_iesire_toia.png?650x200}} | ||
+ | |||
+ | **Explicație:** | ||
+ | |||
+ | ^ Componentă ^ Pin ^ Descriere comportament ^ | ||
+ | | IR_SENSOR_2 | D2 | Detectează mașina care iese din parcare. Semnalul trece de la HIGH la LOW la detectare. | | ||
+ | | SERVO_PIN_2 | D10 | Primește semnal pentru a deschide ușa/poarta (semnal HIGH), apoi o închide (semnal LOW). | | ||
+ | | LCD | - | Afișează numărul de locuri disponibile, actualizat când mașina iese din parcare. | | ||
+ | |||
+ | ** Simulare: ** | ||
+ | |||
+ | {{:pm:prj2025:avaduva:simulare_toia.png?650x400}} | ||
+ | |||
+ | ** Stadiul actual: ** | ||
+ | |||
+ | {{:pm:prj2025:avaduva:proiect_1_toia1.jpeg?650x600}} | ||
+ | {{:pm:prj2025:avaduva:proiect_1_toia2.jpeg?650x400}} | ||
</note> | </note> | ||
Line 96: | Line 117: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | ** 1. Mediu de dezvoltare: ** |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | - Platformă utilizată: Arduino IDE |
- | * (etapa 3) surse şi funcţii implementate | + | |
+ | - Placă utilizată: Arduino UNO R3 | ||
+ | |||
+ | - Limbaj de programare: C/C++ specific Arduino | ||
+ | |||
+ | ** 2. Librării și surse third-party: ** | ||
+ | |||
+ | - Wire.h – pentru comunicarea I2C. | ||
+ | |||
+ | - LiquidCrystal_I2C.h – pentru controlul unui afișaj LCD 16x2 cu interfață I2C. | ||
+ | |||
+ | - Servo.h – pentru controlul servomotoarelor. | ||
+ | |||
+ | ** 3. Surse și funcții implementate ** | ||
+ | |||
+ | ^ Funcție ^ Descriere tehnică ^ Observații ^ | ||
+ | | setup() | Inițializează pinii, LCD-ul și servo-urile | Se apelează o singură dată | | ||
+ | | loop() | Rulează continuu și gestionează starea sistemului | ::: | | ||
+ | | updateLCD() | Afișează pe LCD locurile disponibile și starea lor | ::: | | ||
+ | | checkSlot() | Verifică dacă un loc este ocupat, cu senzor HC-SR04 | ::: | | ||
+ | | handleEntry() | Gestionează intrarea unei mașini | Afișează mesaj dacă parcarea e plină | | ||
+ | | handleExit() | Gestionează ieșirea unei mașini | ::: | | ||
+ | |||
+ | ** 4. Integrarea funcționalităților din laborator: ** | ||
+ | |||
+ | ^ Laborator ^ Concept folosit în proiect ^ Unde apare în cod / ce face ^ | ||
+ | | GPIO | Configurare pini digitali ca IN/OUT | setup(): pinMode pentru butoane, trig/echo | | ||
+ | | UART | Comunicare serială pentru debug | Serial.begin() și Serial.print() | | ||
+ | | PWM | Controlul servomotoarelor prin PWM | Servo library → myservo.write() | | ||
+ | | I2C | Comunicare cu LCD 16x2 prin I2C | LiquidCrystal_I2C lcd(0x27, 16, 2); | | ||
+ | |||
+ | ** 5. Scheletul proiectului & interacțiunea dintre componente: ** | ||
+ | |||
+ | 1. //**Intrare/ieșire autoturism:**// | ||
+ | |||
+ | Senzorii IR detectează prezența. | ||
+ | |||
+ | Dacă există locuri disponibile, servomotorul se deschide și availableSlots se actualizează. | ||
+ | |||
+ | 2. //** Monitorizare locuri:**// | ||
+ | |||
+ | Fiecare loc de parcare are un senzor HC-SR04 care verifică dacă este ocupat. | ||
+ | |||
+ | Afișajul LCD indică: | ||
+ | |||
+ | - Numărul total de locuri libere (availableSlots – actualizat doar de IR). | ||
+ | |||
+ | - Starea fiecărui loc: L = liber, 0 = ocupat. | ||
+ | |||
+ | 3. //**Afișaj LCD:**// | ||
+ | |||
+ | - Primul rând: numărul de locuri disponibile. | ||
+ | |||
+ | - Al doilea rând: codificare pentru starea locurilor. | ||
+ | |||
+ | ** 6. Demo video și explicații: ** | ||
+ | |||
+ | https://youtube.com/shorts/tx_SWk4TcRA?feature=share | ||
+ | |||
+ | ** 7. Calibrarea senzorilor: ** | ||
+ | |||
+ | 1. //**IR (detecție):**// | ||
+ | |||
+ | Testat cu mâna/obiect negru pentru a determina distanța la care senzorul IR detectează. | ||
+ | |||
+ | Asigurat ca starea LOW este returnată doar când e cu adevărat blocat. | ||
+ | |||
+ | 2. //**HC-SR04:**// | ||
+ | |||
+ | Testat manual la diferite distanțe. | ||
+ | |||
+ | DIST_THRESHOLD = 10 cm ales ca limită de ocupare – validat cu obiecte reprezentând mașini | ||
+ | |||
+ | ** 8. Optimizări realizate:** | ||
+ | |||
+ | //**Separare logică a sloturilor și IR:**// | ||
+ | |||
+ | - Elimină fluctuații false în numărul de locuri. | ||
+ | |||
+ | - Asigură stabilitate. | ||
+ | |||
+ | //**Flag-uri entryFlag și exitFlag:**// | ||
+ | |||
+ | - Evită modificări multiple de locuri dintr-o singură trecere. | ||
+ | |||
+ | - Elimină necesitatea unor componente debounce hardware. | ||
+ | |||
+ | - Delay redus în loop(): | ||
+ | |||
+ | - A crescut timpul de reacție și responsivitatea sistemului. | ||
+ | |||
+ | //**LCD curățat dinamic:**// | ||
+ | |||
+ | - Se evită texte fantomă sau caractere rămase de la actualizări. | ||
</note> | </note> | ||
Line 106: | Line 220: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | În urma implementării proiectului sistemului de parcare automată controlat cu Arduino UNO, s-au obținut următoarele rezultate: |
+ | |||
+ | - **Detectarea precisă a vehiculelor la intrare și ieșire**: senzorii IR amplasați la punctele de acces au reușit să detecteze în mod eficient prezența unei mașini, trimițând semnalul corespunzător către Arduino pentru a acționa barierele. | ||
+ | |||
+ | - **Control automat al barierelor**: motoarele servo conectate la bariere au răspuns corect comenzilor primite de la Arduino, ridicând sau coborând barierele în funcție de semnalul primit de la senzorii IR. Astfel, s-a asigurat un flux controlat al vehiculelor în parcare. | ||
+ | |||
+ | - **Monitorizarea în timp real a locurilor de parcare**: cei patru senzori de parcare au reușit să identifice starea fiecărui loc (ocupat sau liber), trimițând date precise către unitatea de control. | ||
+ | |||
+ | - **Afișaj informativ pentru utilizatori**: display-ul LCD 16x2 a afișat în timp real numărul de locuri disponibile și cele ocupate, oferind utilizatorilor informații clare și utile la momentul potrivit. | ||
+ | |||
+ | - **Funcționare autonomă și sincronizată a componentelor**: întregul sistem a funcționat sincronizat, fără intervenție umană, demonstrând o bună integrare între senzori, actuatori și unitatea de control Arduino. | ||
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Proiectul realizat demonstrează eficiența și viabilitatea utilizării unui sistem automatizat pentru gestionarea locurilor de parcare, bazat pe microcontrolerul Arduino UNO. Implementarea senzorilor IR pentru detecția vehiculelor și a senzorilor de parcare pentru monitorizarea în timp real a locurilor disponibile a dus la crearea unui sistem funcțional, precis și ușor de utilizat. | ||
===== Download ===== | ===== Download ===== | ||
Line 119: | Line 244: | ||
</note> | </note> | ||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 129: | Line 249: | ||
<note> | <note> | ||
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
+ | |||
+ | ** 1. Resurse software: ** | ||
+ | |||
+ | https://forum.arduino.cc/t/project-on-automatic-parking-system/1083991/15 | ||
+ | |||
+ | https://marobotic.com/2023/10/18/how-to-make-car-parking-system-using-arduino-and-i2c-lcd-display-automatic-car-parking-system/ | ||
+ | |||
+ | ** 2. Resurse hardware: ** | ||
+ | |||
+ | http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf | ||
+ | |||
+ | https://www.geeksforgeeks.org/smart-parking-system-using-arduino/ | ||
+ | |||
+ | ** 3. Pentru schema electrică și simulare: ** | ||
+ | |||
+ | https://www.tinkercad.com/ | ||
</note> | </note> | ||
+ | |||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||