This is an old revision of the document!


ConnectFour

Introducere

Ce face proiectul? Proiectul este o transpunere digitală a clasicului joc de strategie „Connect Four”. Utilizatorul interacționează cu jocul printr-un joystick analogic pentru a naviga și a lansa piese colorate pe o matrice de LED-uri RGB. Sistemul gestionează în timp real „căderea” pieselor, rândul jucătorilor și verifică automat condițiile de victorie, oferind în același timp feedback sonor prin intermediul unui buzzer.

Care este scopul proiectului? Scopul principal este crearea unui sistem de divertisment interactiv care să demonstreze integrarea între hardware și software. Din punct de vedere academic, proiectul urmărește aplicarea conceptelor fundamentale de microprocesoare (comunicația cu periferice, gestionarea evenimentelor în timp real și optimizarea algoritmilor de logică) într-un produs finit și funcțional.

Care este ideea de la care am pornit? Ideea a pornit de la dorința de a reinventa un joc „fizic” popular folosind tehnologia modernă a LED-urilor. Scopul a fost să transform o tablă de joc statică într-o experiență vizuală dinamică, unde culorile vii ale matricei să înlocuiască jetoanele de plastic, oferind o interfață mai atractivă.

De ce este util?

  • Pentru alții: Reprezintă o sursă de entertainment rapidă și un exemplu despre cum jocurile de societate pot fi digitalizate folosind componente electronice accesibile.
  • Pentru mine: Realizarea acestui proiect îmi permite să fac trecerea de la simple exerciții de laborator la construirea unui produs complet. De asemenea, m-a ajutat să înțeleg cum să gestionez limitările de hardware (precum consumul de energie sau viteza de procesare) și cum să structurez un cod complex care să rămână ușor de utilizat.

Descriere generală

Proiectul constă în realizarea jocului de strategie Connect Four pe o platformă Arduino Uno, utilizând o matrice LED RGB 8×8. Scopul este de a crea un sistem interactiv unde doi jucători se pot întrece folosind culori distincte pentru a-și marca piesele.

Sistemul este structurat pe trei niveluri de interacțiune:

  • Input: Un joystick analogic este utilizat pentru navigarea pe axa orizontală (prin ADC) și pentru confirmarea mutării prin apăsarea butonului (gestionată prin întreruperi).
  • Procesare: Microcontrolerul ATmega328P rulează logica de joc, gestionează animația de “cădere” a pieselor și execută algoritmul de verificare a victoriei pe patru axe (orizontal, vertical și două diagonale).
  • Output: O matrice NeoPixel afișează starea tablei de joc, iar un buzzer pasiv oferă feedback sonor în momentele cheie (mutări sau victorie).

!!!insert schema bloc

Interacțiune și funcționare

Utilizatorul mișcă joystick-ul pentru a-și poziționa piesa în tabla de joc, vizibila pe primul rând al matricei. La apăsarea butonului, piesa „cade” pe coloana selectată până la prima poziție liberă. Sistemul verifică automat dacă s-a format o linie de patru piese și anunță câștigătorul prin animații vizuale și log-uri transmise prin UART către PC. Pentru siguranță, luminozitatea LED-urilor este limitată software pentru a permite alimentarea întregului ansamblu direct din portul USB.

Hardware Design

Nr. crt. Denumire Componentă Cantitate Rol în cadrul proiectului
1 Placuța Arduino Uno 1 Unitatea centrală de procesare care rulează codul în C și gestionează perifericele
2 Matrice LED RGB 8×8 WS2812B 1 Periferic de ieșire utilizat pentru afișarea tablei de joc, a pieselor jucătorilor și a animațiilor
3 Modul Joystick Analogic 1 Periferic de intrare pentru selectarea coloanelor (axa X) și lansarea pieselor (butonul SW)
4 Buzzer Pasiv 1 Periferic de ieșire utilizat pentru a oferi feedback sonor la mutări și în momentul victoriei
5 Condensator 1000 µF 1 Protejează matricea LED prin filtrarea vârfurilor de curent și stabilizarea alimentării
6 Rezistență 470 Ω 1 Protejează pinul de date al Arduino și primul LED al matricei împotriva reflexiilor de semnal
7 LED-uri simple 2 Periferice externe utilizate ca indicatoare vizuale pentru a semnala care jucător este activ
8 Rezistențe 220 Ω 2 Limitează curentul electric care trece prin LED-urile indicatoare pentru a preveni arderea lor
9 Breadboard 1 Suport hardware pentru realizarea conexiunilor electrice fără necesitatea lipirii componentelor
10 Fire jumper ? Asigură interconectarea modulelor (matrice, joystick) și a componentelor discrete cu Arduino

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/atoader/teodora.sintea.1778353159.txt.gz · Last modified: 2026/05/09 21:59 by teodora.sintea
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