Differences

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

Link to this comparison view

pm:prj2026:mihnea.dinica:stelian.pungaru [2026/05/04 20:15]
stelian.pungaru created
pm:prj2026:mihnea.dinica:stelian.pungaru [2026/05/05 11:29] (current)
stelian.pungaru [Introducere]
Line 1: Line 1:
-test+====== Connect 4 Console ====== 
 +===== Introducere =====
  
-1+Proiectul constă în realizarea unei console hardware independente pe care rulează clasicul joc de societate.  
 +  * **Ce face:** Permite la doi jucători să joace Connect 4 pe un ecran TFT, jocul fiind însoțit de efecte sonore și muzică redate printr-un modul MP3 dedicat, totul fiind alimentat portabil de un acumulator integrat. 
 +  * **Scopul lui:** Replicarea fizică a unui joc de strategie cunoscut, combinând o interfață grafică digitală cu feedback audio pentru o experiență interactivă completă. 
 +  * **Ideea de la care am pornit:** Mi-am dorit să aduc un joc al copilăriei în format digital, construind o mini-consolă portabilă de tip arcade. Am vrut să explorez modul în care un microcontroller poate gestiona simultan grafică, logică de joc și redare audio. 
 +  * **Utilitate:​** Este un proiect excelent de divertisment,​ dar și o dovadă de concept (PoC) pentru integrarea a multiple periferice (display SPI, modul audio UART, management de putere) pe o singură placă de dezvoltare, depășind limitările clasice de curent ale acesteia.
  
-2+===== Descriere generală =====
  
-3+Arhitectura proiectului este centrată pe placa Arduino, care acționează ca unitate centrală de procesare. Arduino preia input-ul de la utilizator (butoane/​joystick),​ actualizează logica matricei de joc, trimite comenzi de desenare către ecranul TFT și comenzi de redare audio către modulul DFPlayer Mini.  
 + 
 +Pentru a susține consumul ridicat al ecranului și al difuzorului,​ sistemul este susținut de un circuit de management al puterii separat (Battery Shield), care preia energia de la acumulatorul Li-Ion și livrează o tensiune stabilă întregului circuit. 
 + 
 +**Schema Bloc a interacțiunilor:​** 
 +  * **Sursa de alimentare (Battery Shield V3):** Oferă 5V constanți și un curent de până la 3A către breadboard. 
 +  * **Creierul (Arduino Uno):** Primește 5V de la breadboard și coordonează perifericele. 
 +  * **Input (Butoane/​Joystick):​** Trimite semnale digitale/​analogice către pinii Arduino pentru selectarea coloanei. 
 +  * **Output Vizual (Display TFT):** Comunică cu Arduino prin protocolul SPI pentru a randa interfața grafică și piesele care cad. 
 +  * **Output Audio (DFPlayer Mini + Difuzor 3W):** Comunică cu Arduino via UART (Serial). Citește efectele sonore de pe cardul MicroSD și le amplifică direct în difuzor. 
 + 
 +===== Hardware Design ===== 
 + 
 +**Lista de piese:** 
 +  * 1 x Placă de dezvoltare (tip Arduino Uno) 
 +  * 1 x Display TFT (ex: 2.4" sau 2.8" SPI) 
 +  * 1 x Modul audio DFPlayer Mini MP3 
 +  * 1 x Card MicroSD (max 32GB, formatat FAT32) 
 +  * 1 x Difuzor Mini (3W, 8 Ohmi) 
 +  * 1 x Modul Powerbank (Battery Shield V3 18650, ieșire 5V/3A) 
 +  * 1 x Acumulator Li-Ion Samsung 18650 (3.6V, 3450mAh, 8A) 
 +  * Butoane push sau 1 x Joystick (pentru control) 
 +  * 1 x Breadboard 
 +  * Fire de conexiune (Dupont tată-tată,​ mamă-tată) 
 +  * Rezistențe (ex: 1k Ohm pentru TX-ul către DFPlayer, rezistențe de pull-down pentru butoane) 
 + 
 +**Design Electric (Scurtă descriere a conexiunilor):​** 
 +  * **Alimentare:​** Pinul de 5V și GND de pe Battery Shield alimentează șinele breadboard-ului. De acolo, se trage curent către pinul 5V de pe Arduino, VCC-ul TFT-ului și VCC-ul DFPlayer-ului. 
 +  * **Audio:** Pinul TX (SoftwareSerial) al Arduino-ului se leagă printr-o rezistență de 1k Ohm la pinul RX al DFPlayer-ului pentru a elimina zgomotul de fond. Difuzorul se conectează direct la pinii SPK_1 și SPK_2 ai modulului MP3. 
 +  * **Display:​** Se conectează pe pinii hardware SPI ai Arduino-ului (MOSI, MISO, SCK) și pinii de control (CS, DC, RST). 
 + 
 +===== Software Design ===== 
 + 
 +**Mediu de dezvoltare:​**  
 +  * Proiectul va fi dezvoltat folosind mediul **Arduino IDE**. 
 + 
 +**Librării utilizate:​** 
 +  * ''​SPI.h''​ - pentru comunicarea hardware cu display-ul. 
 +  * ''​Adafruit_GFX.h''​ și librăria specifică controllerului ecranului (ex: ''​Adafruit_ILI9341.h''​) - pentru randarea graficii (cercuri, linii, text). 
 +  * ''​SoftwareSerial.h''​ - pentru a crea un port serial virtual pe alți pini pentru a comunica cu playerul MP3. 
 +  * ''​DFRobotDFPlayerMini.h''​ - pentru controlul simplificat al modulului audio (play, pause, setare volum). 
 + 
 +**Logica jocului (Algoritmi):​** 
 +  * **Matricea de stare:** O matrice de int-uri de `[6][7]` va reprezenta tabla de joc (0 = gol, 1 = jucător 1, 2 = jucător 2). 
 +  * **Animația:​** Când un jucător alege o coloană, un algoritm va găsi cel mai de jos rând disponibil (`0`) din acea coloană, va schimba starea în matrice și va declanșa o funcție grafică de desenare a unui cerc colorat la coordonatele X/Y corespunzătoare. 
 +  * **Efecte Sonore:** În momentul "​căderii"​ piesei, se trimite o comandă serială către DFPlayer pentru a reda "track 1" (sunet de piesă lovind tabla). 
 +  * **Algoritmul de Victorie:** După fiecare mutare, o funcție scanează matricea pentru a găsi 4 elemente identice pe orizontală,​ verticală și diagonale. Dacă se returnează `true`, jocul se oprește, se afișează mesajul de victorie pe TFT și se redă sunetul specific. 
 + 
 +===== Rezultate Obţinute ===== 
 + 
 +În urma implementării,​ a rezultat o consolă independentă,​ portabilă și stabilă. Principala realizare hardware a fost echilibrarea consumului de curent. Utilizând modulul separat de alimentare (Battery Shield) și setându-l în modul "​HOLD",​ sistemul poate rula concomitent grafică pe TFT și redare audio puternică (difuzor de 3W) fără ca microcontrollerul să sufere căderi de tensiune (brown-out resets). Autonomia estimată cu bateria de 3450mAh este de câteva ore bune de funcționare continuă. 
 + 
 +===== Concluzii ===== 
 + 
 +Proiectul a demonstrat cât de important este managementul corect al alimentării în sistemele embedded. Cea mai mare provocare nu a fost neapărat logica jocului, ci înțelegerea limitărilor hardware ale plăcii de dezvoltare și depășirea lor (ocolirea regulatorului intern de pe Arduino pentru a susține consumul perifericelor). Combinația de feedback vizual pe TFT și efecte sonore clare pe DFPlayer creează o experiență foarte "​polisată"​ a unui simplu joc de masă. 
 + 
 +===== Download ===== 
 + 
 +(link Github) 
 + 
 +===== Jurnal ===== 
 + 
 +  * **01.05.2026:​** Achiziția componentelor și planificarea schemei bloc. 
 +  * **04.05.2026:​** Introducerea documentatiei sumare (prima versiune) 
 + 
 +===== Bibliografie/​Resurse ===== 
 + 
 +**Resurse Hardware:​** 
 +  * Datasheet DFPlayer Mini / Cip Amplificator 8002 
 +  * Specificații tehnice Acumulator 18650 Samsung 35E 
 +  * Pinout și specificații Arduino Uno 
 + 
 +**Resurse Software:​** 
 +  * [Github DFRobot] DFPlayer Mini Library 
 +  * [Adafruit] GFX Library Reference 
 +  * Tutoriale limitări formatare sisteme de fișiere (FAT32 vs exFAT pentru microcontrollere).
pm/prj2026/mihnea.dinica/stelian.pungaru.1777914926.txt.gz · Last modified: 2026/05/04 20:15 by stelian.pungaru
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