Table of Contents

X și 0

Introducere

Acest proiect, X și 0, se bazează pe clasicul joc între 2 playeri, “X”, respectiv “0”, care marchează pe rând o căsuță dintr-un tabel cu 3 linii și 3 coloane. Jucătorul care reușește primul să marcheze 3 căsuțe adiacente pe orizontală, verticală sau diagonală câstigă jocul.

Ideea acestui proiect a venit în urma dorinței de a face un joc cu ajutorul plăcuței Arduino, iar ca punct de start am considerat acest joc a fi cel mai potrivit pentru învățare și aprofundarea cunoștințelor, acesta fiind și un joc clasic și popular.

Descriere generală

Proiectul este dezvoltat pe o plăcuță Arduino Uno R3 ATMega328P și este afișat pe un ecran LCD sub forma unei matrici 3×3.

Jucătorii pot selecta căsuța în care să plaseze simbolul pentru joc prin intermediul unui joystick, fiecare jucător având un led care se aprinde atunci când îi este rândul să mute.

La fiecare mutare se va auzi și un sunet prin intermediul unui buzzer, iar la finalul jocului se va afișa un mesaj în funcție de cine a câștigat, în timp ce se aprinde led-ul jucătorului respectiv, și afișând scorul dintre cei 2 jucători.

Hardware Design

Listă de piese necesare pentru acest proiect

Schemă componente

1. Conectarea LCD-ului:
- LED-, GND la GND de pe Arduino.
- LED+, VCC la 5V de pe Arduino.
- RESET la PIN8 de pe Arduino.
- A0 la PIN9 de pe Arduino.
- SDA la PIN11 de pe Arduino.
- SCL la PIN13 de pe Arduino.
- CS la PIN10 de pe Arduino.

2. Conectarea Joystick-ului:
- GND la GND de pe Arduino.
- 5V la 5V de pe Arduino.
- VRx la A0 de pe Arduino.
- VRy la A1 de pe Arduino.
- SW la A2 de pe Arduino.

3. Conectarea Buzzer-ului:
- GND la GND de pe Arduino.
- I/O la PIN12 de pe Arduino.
- VCC la 5V de pe Arduino.

4. Conectarea LED-urilor:
- roșu la PIN12.
- albastru la PIN4.

Software Design

Mediu de dezvoltare: PlatformIO

Biblioteca utilizata: st7735.h

Descriere implementare

Mediul de dezvoltare folosit pentru realizarea acestui proiect a fost PlatformIO. În ceea ce privește componenta de bază a proiectului, și anume LCD-ul pe care este afișat tabla de joc, am folosit o librărie 3rd-party (st7735.h), dar și programare pentru setarea regiștrilor pentru jocul propriu-zis de X și 0 ca în laboratoare.

Pentru gestionarea mutărilor jucătorilor am folosit modulul Joystick, pentru care am avut nevoie de modulul ADC, adica transformarea semnalului analog în digital, ca în laboratorul 4.

Pentru sunetul buzzer-ului am folosit timer-ul 0, care se declanșează la momentul plasării în căsuță a piesei corespunzătoare jucătorului.

Pentru a determina tabla, m-am folosit de o matrice de dimensiune 3 x 3, în care se stochează mutările, afișându-le în LCD prin intermediul unor coordonate, și folosindu-mă de funcțiile date de librărie pentru desenarea X-ului și 0-ului în căsuță, la finalul jocului afișându-se care jucător a câștigat și scorul final, cu rundele căștigate de jucătorul 1, jucătorul 2, respectiv egalitate.

Rezultate Obţinute

Rezultatele au fost cele așteptate de la început. Toate componentele funcționează, fiecare jucător are o culoare a led-ului specifică, iar la finalul fiecărui joc se afișează și scorul per total.

Concluzii

În concluzie, a fost un proiect interesant în care am reușit să îmbin mai multe noțiuni legate de acest curs, și totodată să creez ceva fizic. Am învățat cum să leg aceste componente și să funcționeze simultan, iar rezultatul a fost unul plăcut și satisfăcător.

Download

x_si_0_final.zip

Jurnal

Bibliografie/Resurse

Export to PDF