Differences

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

Link to this comparison view

pm:prj2025:avaduva:ioana.boari [2025/05/18 15:20]
ioana.boari [Software Design]
pm:prj2025:avaduva:ioana.boari [2025/05/24 12:19] (current)
ioana.boari [Bibliografie/Resurse]
Line 114: Line 114:
     * GND → **GND**     * GND → **GND**
   * Configurat ca: `INPUT_PULLUP` → logică activă pe LOW.   * Configurat ca: `INPUT_PULLUP` → logică activă pe LOW.
-  * Motivatie: Pinul D2 este unul dintre puținii pini de pe Arduino UNO care suportă întreruperi externe (INT0). Permite reacție imediată fără ​polling.+  * Motivatie: Pinul D2 este unul dintre puținii pini de pe Arduino UNO care suportă întreruperi externe (INT0). Permite reacție imediată fără ​busy waiting.
  
 7. **Breadboard + cabluri jumper** 7. **Breadboard + cabluri jumper**
Line 137: Line 137:
 Sistemul are trei stări: Sistemul are trei stări:
   - **0 - activ**: sistemul monitorizează vibrațiile.   - **0 - activ**: sistemul monitorizează vibrațiile.
-  - **1 - alertă**: se declanșează alarma, ​buzzerul și LED-urile.+  - **1 - alertă**: se declanșează alarma ​prin buzzer, LED-uri si mesaj pe ecranul LCD.
   - **2 - standby**: sistemul este oprit până la reactivare prin apăsarea butonului.   - **2 - standby**: sistemul este oprit până la reactivare prin apăsarea butonului.
  
 Trecerea între stări se realizează folosind o variabilă globală `systemState` și un flag `buttonPressed` setat printr-o întrerupere externă. Trecerea între stări se realizează folosind o variabilă globală `systemState` și un flag `buttonPressed` setat printr-o întrerupere externă.
  
-==== Biblioteci utilizate ​și surse 3rd-party ​====+==== Biblioteci utilizate ====
   * `Wire.h` – pentru comunicația I2C cu senzorul MPU6050 și ecranul LCD.   * `Wire.h` – pentru comunicația I2C cu senzorul MPU6050 și ecranul LCD.
   * `LiquidCrystal_I2C.h` – pentru controlul LCD-ului 1602 prin I2C.   * `LiquidCrystal_I2C.h` – pentru controlul LCD-ului 1602 prin I2C.
Line 185: Line 185:
 ==== Validare funcționalități ==== ==== Validare funcționalități ====
   * Sistemul a fost testat în mai multe scenarii prin lovirea suprafeței de sprijin.   * Sistemul a fost testat în mai multe scenarii prin lovirea suprafeței de sprijin.
-  * Serial Monitor și **Serial Plotter** oferă confirmare în timp real.+  ​* **Serial Monitor** și **Serial Plotter** oferă confirmare în timp real.
   * Comportamentul sistemului corespunde așteptărilor:​   * Comportamentul sistemului corespunde așteptărilor:​
     - Alerta se declanșează la vibrații.     - Alerta se declanșează la vibrații.
Line 192: Line 192:
  
 ==== Elemente de noutate ==== ==== Elemente de noutate ====
-  * **Reactivare inteligentă**:​ butonul trece sistemul în standby și apoi îl reactivează cu recalibrare. 
   * **Vizualizare live în Serial Plotter** a valorilor de accelerare.   * **Vizualizare live în Serial Plotter** a valorilor de accelerare.
   * **Calibrare în timp real** în paralel cu afișarea countdown-ului.   * **Calibrare în timp real** în paralel cu afișarea countdown-ului.
-  * **Semnalizare ​multimodală** (luminoasă, sonoră, textuală).+  * **Semnalizare ​diversă**luminoasă, sonoră, textuală.
  
 ==== Calibrarea senzorului ==== ==== Calibrarea senzorului ====
   * Se face automat la pornire sau reset.   * Se face automat la pornire sau reset.
   * În timpul afișării countdown-ului de 5 secunde pe LCD, se fac 100 de citiri:   * În timpul afișării countdown-ului de 5 secunde pe LCD, se fac 100 de citiri:
-    ​```cpp+    ​<​code>​
     for (int j = 0; j < 20; j++) {     for (int j = 0; j < 20; j++) {
       readAccel();​       readAccel();​
Line 206: Line 205:
       delay(50);       delay(50);
     }     }
-    ​```+    ​</​code>​
   * Media valorilor se folosește ca punct de referință pentru detecția vibrațiilor ulterioare.   * Media valorilor se folosește ca punct de referință pentru detecția vibrațiilor ulterioare.
  
Line 212: Line 211:
   * Folosirea delay-urilor precise în `calibreazaSistemul()` pentru preluare distribuită a datelor.   * Folosirea delay-urilor precise în `calibreazaSistemul()` pentru preluare distribuită a datelor.
   * Evitarea polling-ului prin folosirea unei întreruperi pentru buton.   * Evitarea polling-ului prin folosirea unei întreruperi pentru buton.
-  * Funcții separate pentru fiecare responsabilitate logică ​(modularizare). +  * Funcții separate pentru fiecare responsabilitate logică ​- **modularizare**. 
-  ​Eliminarea afișării constante în `Serial Monitor`, păstrând compatibilitatea cu `Serial Plotter`.+
  
-==== Video Demo ==== 
-  * {{https://​youtube.com/​shorts/​2w_z9hhUvBo?​si=aUbAqIuGFt7ByWH3|Demo complet proiect – YouTube}} 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 245: Line 242:
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:prj2025:avaduva:detector_de_vibratii_in_cutremure.zip|}}
-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>​+
  
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +**Resurse ​Hardware** 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse ​Software** şi **Resurse ​Hardware**. +  * [[https://​www.optimusdigital.ro/​ro/​|Optimus Digital]] – magazin online pentru componente electronice 
-</note>+  * [[https://​www.emag.ro/​modul-giroscop-mpu-6050-gy-521-accelerometru-arduino-3-axe-2-1-cm-x-1-1-cm-x-0-3-cm-albastru-c7/​pd/​DL3G1QYBM/​|Modul MPU6050 (eMAG)]] – senzor accelerometru + giroscop folosit în proiect 
 + 
 +**Resurse ​Software** 
 +  * [[https://​www.arduino.cc/​en/​software|Arduino IDE]] – mediu de dezvoltare folosit pentru scrierea și încărcarea codului 
 +  * [[https://​docs.arduino.cc/​libraries/​liquidcrystal/​|LiquidCrystal_I2C Library]] – afișare mesaje pe LCD cu interfață I2C 
 +  * [[https://​www.arduino.cc/​en/​reference/​wire|Wire Library]] – pentru comunicația I2C între Arduino și senzorul MPU6050
  
 <​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>​
  
pm/prj2025/avaduva/ioana.boari.1747570807.txt.gz · Last modified: 2025/05/18 15:20 by ioana.boari
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