X si 0 LCD Grafic

  • Rizea Florin Alexandru
  • 332CD
  • îndrumător: Răzvan Virtan

Introducere

Proiectul consta in implementarea jocului X si 0 pe un LCD touchscreen grafic, jocul fiind de tipul Player vs Player, iar interactiunea jucatorului cu jocul in sine se va realiza prin touchscreen. De asemenea, voi incerca sa integrez un scoreboard care sa tina cont de cate ori a castigat jucatorul 1 si de cate ori a castigat jucatorul 2.

Ideea mea a plecat de la pasiunea pentru jocuri avuta inca de cand eram mic, si nu de putine ori m-am intrebat cum sunt facute joculetele pe care le tineam in mana cand eram mic.

Descriere generală

Schema bloc reprezinta toate modulele proiectului, descriind modul in care functioneaza.

Hardware Design

Pentru realizarea proiectului, am folosit următoarele componente:

  • Placă compatibilă cu Arduino UNO (ATmega328p + CH340);
  • 2.8” SPI LCD Module cu Touchscreen cu ILI9341 si XPT2046 Controller

Pentru a activa functionalitatea touchscreen a LCD-ului a fost folosita biblioteca Adafruit pentru ILI9341 si XPT2064_TouchScreen.

Urmatoarea schema urmareste cablajele necesare functionarii proiectului:

Mai jos se poate vedea cum arata proiectul la nivel hardware:

Software Design

Mediu de dezvoltare:

  • Arduino IDE 1.8.19

Biblioteci folosite:

  • Adafruit pentru ILI9341
  • XPT2064_TouchScreen

Implementare & flux

La pornirea jocului, pe ecran vor fi afisate o matrice 3×3, o tabela de scor si un buton de reset.

Pentru fiecare runda se va alterna ordinea de inceput a jucatorilor (intotdeauna va incepe jucatorul 1 prima data, apoi jucatorul 2, etc). Initial, jucatorul 1 va fi reprezentat de simbolul 'X', urmand ca la urmatoarea runda acestuia sa ii revina simbolul 'O'. Tabela de scor va fi incrementata in functie de jucatorul castigator, iar in functie de egal, se va sterge matricea, neincrementand niciun scor (evident). La fiecare mutare realizata pe matrice, va fi verificat daca vreun jucator a castigat runda. Butonul de reset va reseta atat matricea, indiferent de stadiul in care este, cat si scorurile jucatorilor, precum si ordinea (va incepe jucatorul 1). Pentru ca daca resetam toata aplicatia pentru a o lua de la 0 performanta era una scazuta (practic se reseta tot programul, cu tot cu pornirea LCD-ului, ceea ce dura prea mult), am ales sa colorez pixelii matricii in culoarea fundalului, astfel incat la apasarea butonului 'RESET', resetarea va fi instantanee.

Rezultate Obţinute

In poza de mai jos se poate vedea cum arata proiectul in faza finala:

Download

In arhiva se gaseste codul sursa al proiectului.

tictactoe.zip

Bibliografie/Resurse

Lista cu resursele folosite in vederea realizarii proiectului:

Datasheet ATmega328p

Documentaţie Arduino IDE

Datasheet ILI9341

Datasheet XPT2046

Documentaţie SPI.h

pm/prj2024/rvirtan/xsi0riz.txt · Last modified: 2024/06/01 18:32 by florin.rizea
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