Differences

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

Link to this comparison view

pm:prj2025:fstancu:itomita [2025/05/27 23:19]
itomita [Software Design]
pm:prj2025:fstancu:itomita [2025/05/28 22:44] (current)
itomita [Software Design]
Line 49: Line 49:
 ===== Software Design ===== ===== Software Design =====
  
-=== Mediu de dezvoltare ​=== +**Mediu de dezvoltare**: //Arduino IDE// (placă Arduino UNO – ATmega328P + CH340)
-Arduino IDE – utilizat pentru dezvoltarea și încărcarea codului pe placa compatibilă Arduino UNO (ATmega328P + CH340).+
  
-=== Librării ​utilizate === +**Librării ​folosite**: 
-**Servo.h** – pentru ​controlul servomotorului ​responsabil cu deschiderea/​închiderea capacului. +  ​* Servo.h – controlul servomotorului ​pentru ​deschiderea/​închiderea capacului 
-- **Adafruit_ADXL345_U.h** – pentru interfațarea ​cu accelerometrul ADXL345 prin I²C. +  * Adafruit_ADXL345_U.h – comunicare ​cu accelerometrul ADXL345 prin I²C 
-- **Wire.h** – pentru comunicarea ​I²C între microcontroler ​și accelerometru.+  LiquidCrystal_I2C ​– comunicare ​I²C între microcontroler accelerometru ​si LCD
  
-=== Stadiul actual al implementării software === +**Funcționalitățimplementate**
-Implementarea software este funcțională șinclude următoarele componente+  ​* ​**Deschidere ​automată ​capac**: La detectarea mișcării prin senzorul PIR, capacul se deschide automat și rămâne deschis ​un timp prestabilit. 
-**Deschiderea ​automată ​a capacului**: la detectarea mișcării prin senzorul PIR, capacul se deschide automat și rămâne deschis ​pentru o perioadă ​prestabilită+  ​* ​**Detecție manipulare neautorizată**: Accelerometrul ​monitorizează mișcările bruște/​inclinarea ​coșului și declanșează ​alarma ​sonoră. 
-**Detecția manipulării neautorizate**: accelerometrul ​monitorizează mișcările bruște ​sau înclinările ​coșului și declanșează ​o alarmă ​sonoră în caz de manipulare neautorizată. +  ​* ​**Alarmă sonoră**: ​Un buzzer emite un sunet de avertizare ​în cazul unei manipulări neautorizate. 
-**Alarmă sonoră**: ​un buzzer emite un semnal sonor specific ​în cazul detectării ​unei manipulări neautorizate. +  ​* ​**Afișaj LCD**: ​Afișează informații ​precum numarul de elemente introduse.
-**Afișaj LCD** *(opțional)*: pentru afișarea stării curente a coșului, numărul de deschideri sau alte informații ​relevante.+
  
-=== Motivația alegerii bibliotecilor ​=== +**Motivația alegerii bibliotecilor**: 
-- **Servo.h**: oferă o interfață simplă și eficientă pentru controlul ​servomotoarelor,​ permițând poziționarea precisă a capacului coșului. +  * Servo.h ​– interfață simplă și eficientă pentru controlul ​servomotorului 
-- **Adafruit_ADXL345_U.h**: bibliotecă robustă și bine documentată pentru ​interfațarea cu accelerometrul ADXL345, facilitând citirea și interpretarea datelor de accelerație. +  * Adafruit_ADXL345_U.h ​– bibliotecă robustă pentru accelerometrul ADXL345 
-- **Wire.h**: standard pentru comunicarea I²C, necesară pentru interacțiunea cu accelerometrul.+  * Wire.h ​– standard pentru comunicarea I²C
  
-=== Elementul ​de noutate ​al proiectului === +**Elemente ​de noutate**: 
-Proiectul se distinge prin integrarea mai multor senzori și actuatori ​pentru a crea un coș de gunoi inteligent ​care: +  * Integrarea senzorilo ​pentru a crea un coș inteligent 
-- Se deschide ​automat ​la detectarea mișcării, fără ​a necesita ​contact fizic. +  * Deschiderea ​automată ​a capacului ​fără contact fizic 
-- Detectează manipulările neautorizate ​și declanșează o alarmă sonoră specifică. +  * Detectarea tentativelor de manipulare ​și declanșarea unei alarme sonore 
-- *(Opțional)* Afișează informații relevante ​pe un ecran LCD, oferind feedback utilizatorului.+  * Afișarea informațiilor utile pe un ecran LCD
  
-Această combinație de funcționalități oferă o soluție inovatoare ​pentru ​gestionarea ​deșeurilor în mod igienic ​și securizat.+**Justificarea utilizării funcționalităților din laborator**:​ 
 +  * **Întreruperi (Interrupts)**:​ reacționează prompt la semnalele PIR, pentru ​deschiderea rapidă a capacului 
 +  * **Timere**: gestionează durata ​de deschidere a capacului ​și timpul de activare a alarmei 
 +  * **PWM (Pulse Width Modulation)**:​ permite controlul precis al poziției servomotorului 
 +  * **I²C**: interfață pentru comunicarea cu accelerometrul ADXL345
  
-=== Justificarea utilizării ​funcționalităților ​din laborator === +**Structura proiectului și interacțiunea ​funcționalităților**: 
-**Întreruperi (Interrupts)**: utilizate ​pentru a reacționa prompt la semnalele senzorului PIR, asigurând o deschidere rapidă ​capacului la detectarea mișcării. +  * **Așteptare detectare mișcare**: Sistemul monitorizează senzorul PIR pentru a detecta prezența
-**Timere**: folosite pentru a gestiona durata de deschidere a capacului ​și pentru a controla durata alarmei sonore+  * **Deschidere capac**: La detectarea mișcării, servomotorul deschide capacul și pornește un timer
-**PWM (Pulse Width Modulation)**: necesar pentru controlul precis al poziției servomotorului+  * **Închidere capac**: După expirarea temporizatorului,​ capacul se închide automat. 
-**I²C**: interfață de comunicare cu accelerometrul ADXL345permițând citirea datelor ​de accelerație.+  * **Monitorizare accelerometru**:​ Verifică dacă coșul este manipulat neautorizat
 +  * **Declanșare alarmă**: La detectarea unei manipulări neautorizate,​ buzzerul emite un semnal sonor
 +  * **Detectare obiecte cu senzor ultrasonic**: Senzorul ultrasonic montat pe capac detectează introducerea obiectelor în coș. Informațiile colectate sunt procesate și transmise pentru afișare pe ecranul LCD (de exemplu: număr obiecte detectatenivel de umplere, etc.).
  
-Aceste funcționalități au fost studiate ​și aplicate în laboratoarele cursului, demonstrând aplicabilitatea lor în proiecte practice.+**Calibrarea senzorilor**:​ 
 +  * Senzor PIR – ajustarea sensibilității și duratei semnalului pentru a evita alarmele false. (manual) 
 +  * Accelerometru ADXL345 – setarea la ±16g pentru detectarea mișcărilor bruște; stabilirea pragurilor de accelerare pentru declanșarea alarmei.
  
-=== Scheletul proiectului și interacțiunea dintre funcționalități === 
-Structura software este organizată în mai multe stări: 
-- **Așteptare detectare mișcare**: sistemul monitorizează senzorul PIR pentru a detecta prezența utilizatorului. 
-- **Deschidere capac**: la detectarea mișcării, servomotorul deschide capacul și începe un temporizator. 
-- **Închidere capac**: după expirarea temporizatorului,​ capacul se închide automat. 
-- **Monitorizare accelerometru**:​ în paralel, accelerometrul verifică dacă coșul este manipulat neautorizat. 
-- **Declanșare alarmă**: la detectarea unei manipulări neautorizate,​ buzzerul emite o alarmă sonoră specifică. 
  
-Validarea funcționării corecte a fost realizată prin testarea fiecărei componente individual și în ansamblu, asigurând o integrare coerentă a tuturor funcționalităților. +Cod sursa: 
- +https://github.com/Ionut-Tomita/​PM-Project
-=== Calibrarea elementelor de senzoristică === +
-- **Senzor PIR**ajustarea sensibilității și a duratei semnalului de ieșire pentru a evita declanșările false. +
-**Accelerometru ADXL345**: setarea gamei de măsurare la ±16g pentru a detecta mișcările bruște; stabilirea unui prag de accelerație pentru declanșarea alarmei. +
- +
-Calibrarea a fost realizată prin observarea comportamentului senzorilor în condiții reale de utilizare și ajustarea parametrilor pentru a obține o funcționare fiabilă.+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{ :pm:prj2025:fstancu:ionutit.png?600 |}}
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​ +
- +
-===== Concluzii ===== +
- +
-===== Download ===== +
- +
-<note warning>​ +
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +
- +
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​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 =====+
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
pm/prj2025/fstancu/itomita.1748377142.txt.gz · Last modified: 2025/05/27 23:19 by itomita
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