Differences

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

Link to this comparison view

pm:prj2026:victor.stoica0203:cosmin.buciu1904 [2026/05/22 21:42]
cosmin.buciu1904 [Bibliografie/Resurse]
pm:prj2026:victor.stoica0203:cosmin.buciu1904 [2026/05/23 12:38] (current)
cosmin.buciu1904 [Jurnal]
Line 54: Line 54:
 | LED RGB                                 | 1     | [[https://​sigmanortec.ro/​LED-RGB-5mm-4-pini-Anod-comun-p126008495| Link]]|1.51 | | LED RGB                                 | 1     | [[https://​sigmanortec.ro/​LED-RGB-5mm-4-pini-Anod-comun-p126008495| Link]]|1.51 |
 | Buton                              | 1     | [[https://​www.bitmi.ro/​electronica/​modul-buton-switch-ky-004-10672.html| Link]] |2.99        | | Buton                              | 1     | [[https://​www.bitmi.ro/​electronica/​modul-buton-switch-ky-004-10672.html| Link]] |2.99        |
-| Fire Dupont Tată-Tată 20cm               |TBD    | [[https://​www.bitmi.ro/​electronica/​40-x-fire-dupont-tata-tata-20cm-10511.html| Link]]|0.23+| Rezistențe ​                         |3    | [[https://​www.bitmi.ro/​electronica/​set-rezistori-20-de-valori-400-bucati-10-10m-1-4w-11255.html| Link]]|19.99 (1 set)         | 
-Rezistențe ​                         ​|   | [[https://​www.bitmi.ro/​electronica/​set-rezistori-20-de-valori-400-bucati-10-10m-1-4w-11255.html| Link]]|0.10         |+| Fire Dupont Tată-Tată 20cm               |20    | [[https://​www.bitmi.ro/​electronica/​40-x-fire-dupont-tata-tata-20cm-10511.html| Link]]|8.99 (1 set)
 +Fire Dupont Tată-Mamă 20cm               |   | [[https://​www.bitmi.ro/​electronica/​40-x-fire-dupont-tata-mama-20cm-10512.html| Link]]|6.99 (1 set)|
 ^ Preț total ^ ^ ^ 123.36 RON ^ ^ Preț total ^ ^ ^ 123.36 RON ^
  
Line 92: Line 93:
  
 **Biblioteci utilizate:​** **Biblioteci utilizate:​**
-  * **LiquidCrystal_I2C:​** ​Utilizată pentru controlul afișajului LCD prin protocolul I2C, permițând gestionarea mesajelor pe cele două linii ale ecranului+  * **LiquidCrystal_I2C:​** ​utilizată pentru controlul afișajului LCD prin protocolul I2C, permițând gestionarea mesajelor pe cele două linii ale ecranului
  
-  * **Keypad:​** ​Permite ​gestionarea matricei de taste 3x4, citirea input-ului și tratarea fenomenului de debounce (pentru a evita citirile false la apăsare)+  * **Keypad:​** ​permite ​gestionarea matricei de taste 3x4, citirea input-ului și tratarea fenomenului de debounce (pentru a evita citirile false la apăsare)
  
-  * **Wire:​** ​Biblioteca ​standard pentru comunicația I2C+  * **Wire:​** ​biblioteca ​standard pentru comunicația I2C
  
 **Elementul de noutate al proiectului:​** constă în reproducerea fizică a unei mecanice competitive de e-sports (defuse contracronometru) într-un sistem embedded bazat pe stări. Noutatea constă în multitasking-ul audio: suprapunerea dinamică a două fluxuri sonore independente (bip-ul bombei și ticăitul de defuse) pe un singur buzzer, fără a deforma unda PWM principală. **Elementul de noutate al proiectului:​** constă în reproducerea fizică a unei mecanice competitive de e-sports (defuse contracronometru) într-un sistem embedded bazat pe stări. Noutatea constă în multitasking-ul audio: suprapunerea dinamică a două fluxuri sonore independente (bip-ul bombei și ticăitul de defuse) pe un singur buzzer, fără a deforma unda PWM principală.
Line 103: Line 104:
   * **Timer 1 în mod Fast PWM** (Laborator Timere/​PWM):​ configurează Timerul 1 în Modul 14 (prescaler de 8) pentru a genera frecvențe audio flexibile pe buzzer, menținând un Duty Cycle fix de 50%.   * **Timer 1 în mod Fast PWM** (Laborator Timere/​PWM):​ configurează Timerul 1 în Modul 14 (prescaler de 8) pentru a genera frecvențe audio flexibile pe buzzer, menținând un Duty Cycle fix de 50%.
  
-  * **Timer 2 în mod CTC** (Laborator Timere/​PWM):​ configurat pe 8 biți cu prescaler 64 -> generează o întrerupere la fiecare 1 ms, înlocuind complet funcția software standard millis().+  * **Timer 2 în mod CTC** (Laborator Timere/​PWM):​ configurat pe 8 biți cu prescaler ​de 64 -> generează o întrerupere la fiecare 1 ms, înlocuind complet funcția software standard millis().
  
   * **Întreruperi Hardware Pin Change** (Laborator Întreruperi):​ activate prin regiștrii PCICR și PCMSK2 pe Pinul 2 -> permit citirea asincronă a butonului pentru reset/​defuse instantaneu,​ fără blocarea procesorului.   * **Întreruperi Hardware Pin Change** (Laborator Întreruperi):​ activate prin regiștrii PCICR și PCMSK2 pe Pinul 2 -> permit citirea asincronă a butonului pentru reset/​defuse instantaneu,​ fără blocarea procesorului.
Line 111: Line 112:
 **Scheletul proiectului și interacțiunea funcționalităților:​** programul este structurat ca un Automat de Stări Finit (FSM) rulat în loop() printr-un bloc "​switch-case":​ **Scheletul proiectului și interacțiunea funcționalităților:​** programul este structurat ca un Automat de Stări Finit (FSM) rulat în loop() printr-un bloc "​switch-case":​
  
-  * **B_IDLE:​** ​Scanează tastatura, ​stochează codul și așteaptă întreruperea de reset.+  * **B_IDLE:​** ​scanează tastatura ​pentru stocarea coduluioferă opțiunea de mascare a caracterelor (Hidden / Visible Mode) înainte de armare ​și gestionează întreruperea de reset.
  
-  * **B_ARMED:​** ​Monitorizează decrementarea cronometrului,​ sincronizează pulsațiile LED-ului RGB și, la detectarea asincronă a apăsării butonului, randează progresul dezamorsării pe ecran în paralel cu generarea sunetului secundar intercalat.+  * **B_ARMED:​** ​monitorizează decrementarea cronometrului,​ sincronizează pulsațiile LED-ului RGB și, la detectarea asincronă a apăsării butonului, randează progresul dezamorsării pe ecran în paralel cu generarea sunetului secundar intercalat.
  
-  * **B_EXPLODED / B_DEFUSED:​** ​Reprezintă stările terminale în care sistemul rulează secvențele audio-vizuale de final (zgomot alb bazat pe frecvențe aleatorii sau melodie de succes), după care reinițializează automat toate variabilele pentru revenirea în starea inițială.+  * **B_EXPLODED / B_DEFUSED:​** ​reprezintă stările terminale în care sistemul rulează secvențele audio-vizuale de final (zgomot alb bazat pe frecvențe aleatorii sau melodie de succes), după care reinițializează automat toate variabilele pentru revenirea în starea inițială.
  
-**Calibrarea ​componentelor de senzoristică:**+**Calibrarea ​perifericelor și sincronizarea I/O:**
  
   * **Stabilizarea electrică a intrării:​** calibrarea butonului s-a realizat prin activarea hardware a rezistenței interne de Pull-Up a microcontrolerului,​ fixând o stare stabilă de HIGH în repaus și eliminând zgomotul de fond (efectul de pin flotant).   * **Stabilizarea electrică a intrării:​** calibrarea butonului s-a realizat prin activarea hardware a rezistenței interne de Pull-Up a microcontrolerului,​ fixând o stare stabilă de HIGH în repaus și eliminând zgomotul de fond (efectul de pin flotant).
Line 131: Line 132:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +[[https://​youtube.com/​shorts/​4AbxcBFpYPQ|Video Proiect]]
 +
 +Materialul video prezintă funcționarea montajului fizic realizat pe placa Arduino Uno. Sunt ilustrate etapele de armare a sistemului prin tastatură, comportamentul alarmelor sonore și vizuale, precum și simularea procesului de dezamorsare contracronometru utilizând butonul hardware.
 ===== Concluzii ===== ===== Concluzii =====
 +Proiectul a demonstrat cu succes realizarea unui dispozitiv interactiv de simulare, utilizând eficient resursele hardware ale unei plăci de dezvoltare **Arduino Uno** (bazată pe microcontrolerul **ATmega328P**). Lucrarea a evidențiat faptul că o astfel de platformă accesibilă poate fi transformată dintr-un simplu kit de testare într-un sistem embedded rapid și stabil, capabil să ruleze o logică complexă în timp real.
  
 +Pe lângă dezvoltarea algoritmului de joc, proiectul a oferit o experiență practică valoroasă în structurarea codului și în sincronizarea proceselor. Cea mai importantă realizare a fost eliminarea completă a blocajelor software: actualizarea ecranului, scanarea tastelor și generarea alertelor sonore rulează fluid și simultan. Acest lucru garantează un răspuns instantaneu la acțiunile utilizatorului și demonstrează cum optimizarea atentă a programului permite obținerea unui multitasking real pe un hardware limitat.
 ===== Download ===== ===== Download =====
 +
 +  * {{:​pm:​prj2026:​victor.stoica0203:​bomb.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
Line 141: Line 149:
   * 08.05.2026 - Finalizarea milestone-ului de documentație pentru proiect   * 08.05.2026 - Finalizarea milestone-ului de documentație pentru proiect
   * 11.05.2026 - Realizarea schemei electrice și a pinout-ului pentru milestone-ul hardware   * 11.05.2026 - Realizarea schemei electrice și a pinout-ului pentru milestone-ul hardware
 +  * 19.05.2026 - Finalizarea codului în Arduino IDE și validarea funcționalităților pe hardware 
 +  * 22.05.2026 - Actualizarea paginii cu detalii de Software Design 
 +  * 23.05.2026 - Atașare videoclip și finalizarea paginii corespunzătoare proiectului meu
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
pm/prj2026/victor.stoica0203/cosmin.buciu1904.1779475365.txt.gz · Last modified: 2026/05/22 21:42 by cosmin.buciu1904
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