This shows you the differences between two versions of the page.
|
pm:prj2025:eradu:dragos.banica0711 [2025/05/21 17:53] dragos.banica0711 [Software Design] |
pm:prj2025:eradu:dragos.banica0711 [2025/05/25 15:03] (current) dragos.banica0711 [Concluzii] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | <note tip> Proiectul constă în realizarea unui sistem interactiv care detectează când o bilă trece printr-o poartă de lemn și reacționează prin activarea unui buzzer și actualizarea unui scor afișat pe un ecran, dar si luminarea unor LED-uri cand cineva marcheaza/rateaza (verde/rosu). Scopul este de a simula un mecanism simplu de marcare, asemănător celor întâlnite în jocurile de tip mini-fotbal sau pinball. | + | Proiectul constă în realizarea unui sistem interactiv care detectează când o bilă trece printr-o poartă de lemn și reacționează prin activarea unui buzzer și actualizarea unui scor afișat pe un ecran, dar si luminarea unor LED-uri cand cineva marcheaza/rateaza (verde/rosu). Scopul este de a simula un mecanism simplu de marcare, asemănător celor întâlnite în jocurile de tip mini-fotbal sau pinball. |
| Ideea a pornit de la dorința de a combina elemente hardware și software într-un mod creativ și vizual. Este util atât din punct de vedere educațional (înțelegerea senzorilor, a afișajelor și a controlului cu Arduino), cât și recreativ, putând fi folosit în proiecte de tip DIY sau în jocuri interactive. | Ideea a pornit de la dorința de a combina elemente hardware și software într-un mod creativ și vizual. Este util atât din punct de vedere educațional (înțelegerea senzorilor, a afișajelor și a controlului cu Arduino), cât și recreativ, putând fi folosit în proiecte de tip DIY sau în jocuri interactive. | ||
| - | </note> | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | <note tip> | ||
| {{:pm:prj2025:eradu:dkl5dgq_-_imgur.png?400|}} | {{:pm:prj2025:eradu:dkl5dgq_-_imgur.png?400|}} | ||
| Line 27: | Line 25: | ||
| Ecranul afiseaza MISS! si scorul ramas | Ecranul afiseaza MISS! si scorul ramas | ||
| - | </note> | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | {{:pm:prj2025:eradu:screenshot_2025-05-25_144015.png?400|}} |
| - | {{:pm:prj2025:eradu:undefined_-_imgur.png?400|}} | + | |
| - | Module: | + | 1) Module folosite: |
| Senzor ultrasonic (HC-SR04): Detectează trecerea bilei prin poartă | Senzor ultrasonic (HC-SR04): Detectează trecerea bilei prin poartă | ||
| Line 46: | Line 42: | ||
| Led-uri (5mm): Lumineaza cand se da gol | Led-uri (5mm): Lumineaza cand se da gol | ||
| - | </note> | + | |
| + | |||
| + | |||
| + | 2) Lista cu pinii folositi: | ||
| + | |||
| + | Microcontroller: Arduino UNO (A1) | ||
| + | |||
| + | | Pin Arduino | Funcție | Legat la | | ||
| + | | ----------- | ------------------------------- | ----------------------------------------------- | | ||
| + | | D2 | Trigger senzor ultrasonic | TRIG pin (senzor ultrasonic) | | ||
| + | | D3 | Echo senzor ultrasonic | ECHO pin (senzor ultrasonic) | | ||
| + | | D4 | Control LED1 | Anod D1 (LED1) | | ||
| + | | D5 | Control LED2 | Anod D2 (LED2) | | ||
| + | | D6 | Control buzzer | BZ1 (buzzer activ) | | ||
| + | | A4 (SDA) | I2C data | SDA (pin 3 de la ecranul LCD I2C - U2) | | ||
| + | | A5 (SCL) | I2C clock | SCL (pin 4 de la ecranul LCD I2C - U2) | | ||
| + | | 5V | Alimentare 5V pentru componente | VCC senzor ultrasonic, VDD LCD, buzzer, LED-uri | | ||
| + | | GND | Masă comună | GND senzor, LCD, buzzer, LED-uri | | ||
| + | |||
| + | Senzor Ultrasonic (HC-SR04) | ||
| + | |||
| + | | Pin Senzor | Conectat la | | ||
| + | | ---------- | ----------- | | ||
| + | | VCC | 5V Arduino | | ||
| + | | GND | GND Arduino | | ||
| + | | TRIG | D2 Arduino | | ||
| + | | ECHO | D3 Arduino | | ||
| + | |||
| + | LED-uri | ||
| + | |||
| + | | LED | Anod | Catod | | ||
| + | | --- | ---------- | ----- | | ||
| + | | D1 | D4 Arduino | GND | | ||
| + | | D2 | D5 Arduino | GND | | ||
| + | |||
| + | Buzzer (BZ1) | ||
| + | |||
| + | | Pin Buzzer | Conectat la | | ||
| + | | ---------- | ----------- | | ||
| + | | 1 | D6 Arduino | | ||
| + | | 2 | GND | | ||
| + | |||
| + | LCD (U2: NHD-C0220BiZ – LCD cu interfață I2C) | ||
| + | |||
| + | | Pin LCD | Funcție | Conectat la Arduino | | ||
| + | | --------------- | ------------------- | ------------------- | | ||
| + | | 1 (VOUT) | Tensiune referință | - | | ||
| + | | 2 (VSS) | GND | GND | | ||
| + | | 3 (SDA) | I2C data | A4 | | ||
| + | | 4 (SCL) | I2C clock | A5 | | ||
| + | | 5 (VDD) | Alimentare | 5V | | ||
| + | | 6 (RST) | Reset | - | | ||
| + | | 7, 8 (C1+, C1-) | Condensatori | - | | ||
| + | | 9 (A) | Anod LED backlight | 5V | | ||
| + | | 10 (K) | Catod LED backlight | GND | | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 52: | Line 103: | ||
| Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
| * mediu de dezvoltare: Arduino | * mediu de dezvoltare: Arduino | ||
| + | |||
| * librării şi surse 3rd-party: Wire.h, LiquidCrystal_I2C.h | * librării şi surse 3rd-party: Wire.h, LiquidCrystal_I2C.h | ||
| + | |||
| * algoritmi şi structuri pe care plănuiţi să le implementaţi: | * algoritmi şi structuri pe care plănuiţi să le implementaţi: | ||
| Line 67: | Line 120: | ||
| Array-uri pentru sunete (goalSound[], missSound[]). | Array-uri pentru sunete (goalSound[], missSound[]). | ||
| Boolean (ballDetected) pentru evitarea trigger-urilor multiple. | Boolean (ballDetected) pentru evitarea trigger-urilor multiple. | ||
| + | | ||
| + | * laboratoare utilizate: | ||
| + | |||
| + | GPIO - folosit in cam tot proiectul | ||
| + | PWM - leduri luminozitate | ||
| + | I2C - ecran LCD/I2C utilizat | ||
| + | | ||
| + | * pseudocod: | ||
| + | |||
| + | 1) Inițializare | ||
| + | Configurează pinii pentru: | ||
| + | senzor ultrasonic (TRIG, ECHO) | ||
| + | LED-uri (verde și roșu) | ||
| + | buzzer | ||
| + | buton de resetare | ||
| + | |||
| + | 2) Inițializează ecranul LCD și afișează mesajul inițial: | ||
| + | „Penalty Shootout” și „Score: 0” | ||
| + | |||
| + | 3) Loop: | ||
| + | 3.1) Verifică dacă s-a apăsat butonul de reset: | ||
| + | Dacă DA → resetează scorul la 0 | ||
| + | Afișează pe LCD: „Score Reset!” și „New Score: 0” | ||
| + | Apoi revine la ecranul principal | ||
| + | |||
| + | 3.2) Măsoară distanța cu senzorul ultrasonic: | ||
| + | Trimite un semnal TRIG | ||
| + | Măsoară timpul de întoarcere a semnalului ECHO | ||
| + | Calculează distanța în centimetri | ||
| + | |||
| + | 3.3) Verifică dacă mingea este detectată (GOAL): | ||
| + | Dacă distanța este între 5 cm și 15 cm și mingea nu a fost deja detectată: | ||
| + | Crește scorul | ||
| + | Afișează pe LCD: „GOAL!” și noul scor | ||
| + | Aprinde LED-ul verde | ||
| + | Redă un sunet de succes cu buzzerul | ||
| + | |||
| + | 3.4) Verifică dacă mingea a trecut și e afară (MISS): | ||
| + | Dacă distanța e mai mare de 30 cm și mingea nu a fost detectată: | ||
| + | Afișează pe LCD: „MISS!” și scorul curent | ||
| + | Aprinde LED-ul roșu | ||
| + | Redă un sunet de eșec cu buzzerul | ||
| + | |||
| + | 3.5) Așteaptă puțin și revine la pasul 1 | ||
| + | |||
| + | * cod sursa: https://github.com/BanicaDragos/pm_project | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | În urma realizării proiectului "Penalty Shootout", s-a reușit implementarea unui sistem interactiv de detectare a golurilor folosind un senzor ultrasonic. Dispozitivul a reacționat corect la trecerea mingii prin zona de detecție, afișând scorul pe un ecran LCD, oferind feedback vizual prin LED-uri și auditiv prin buzzer. Sistemul s-a dovedit funcțional și eficient în simularea unei experiențe de joc simplă, dar captivantă. |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | |
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | Proiectul a demonstrat cu succes integrarea senzorilor și a componentelor electronice într-o aplicație practică și distractivă. Prin combinarea hardware-ului cu programarea Arduino, s-a realizat un sistem capabil să ofere feedback în timp real, evidențiind potențialul tehnologiei în dezvoltarea jocurilor interactive. | ||
| ===== Download ===== | ===== Download ===== | ||