This is an old revision of the document!


X si 0

Autor: Balasoiu Cristina Ioana

Introducere

Proiectul are ca scop creerea clasicului joc de X si 0 folosind leduri NeoPixel pentru simularea chenarelor jocului si un ecran LCD ce poate afisa urmatoarele mesaje: “X WON”, “0 WON” si “TIE”

Descriere generala

Fiecare jucator va apasa pe rand cate un buton din intervalul 1-9 de pe keypad pentru a-si face miscarea. Initial toate ledurile conectate sunt albastre, ceea ce inseamna ca tabla de joc e goala. Ledul corespunzator butonului apasat se va face verde daca jucatorul joaca cu X sau rosu daca joaca cu 0. Jocul continua pana cand unul dintre jucatori castiga sau pana se ajunge la remiza. Rezultatul rundei va fi afisat pe ecranul LCD. Daca se doreste inceperea unui nou joc se va apasa butonul de reset, moment incare toate ledurile vor avea iar culoarea gri iar ecranul LCD va afisa mesajul “Reset pressed”.

Hardware Design

Lista de componente

  • Arduino Uno
  • BreadBoard
  • 9 leduri NeoPixel
  • Keypad 4*4
  • LCD
  • Rezistenta
  • Potentiometru
  • Pushbutton
  • Fire

Schema bloc

Schema electrica

Software Design

Descrierea codului aplicaţiei:

  • mediul de dezvoltare: Arduino IDE
  • biblioteci şi surse 3rd-party:
    1. Adafruit_NeoPixel.h (pentru led-uri)
    2. Keypad.h (pentru keypad-ul 4*4)
    3. LiquidCrystal.h (pentru ecranul LCD)
  • algoritmul:

Algoritmul creeaza o mapare intre butoanele 1-9 ale keypad-ului si cele 9 leduri conectate pentru a simula tabla de joc. Fiecare apasare a unuia dintre butoanele mentionate reprezinta o mutare. Se utilizeaza o variabila player initiata cu 1 pentru a retine jucatorul curent. Aceasta poate avea valorile 1 sau -1. La fiecare mutare se face switch intre jucatori (player *= -1) pentru a aprinde ledul corespunzator butonului apasat in culoarea jucatorului corespunzator si se verifica daca s-a creat un sir consecutiv de 3 culori identice pe oricare linie, coloana sau diagonala sau, in caz contrar, daca tabla este plina (remiza). Daca s-a detectat oricare dintre cele 3 rezultate posibile de finalizare a jocului (X castiga, 0 castiga sau remiza), acesta va fi afisat pe ecranul LCD impreuna cu scorul. Exista posibilitatea de incepere a unui joc nou prin apsarea butonului de reset, moment in care ledurile se vor intoarce la culoarea default (albastru), matricea folosita pentru retinerea apasarilor efctuate de jucatori e reinitiata iar rezultatul jocului anterior este sters de pe ecranul LCD.

Rezultate obtinute

Concluzii

Download

Jurnal

  • Etapa 1:

Dezvoltarea codului de baza si a circuitului pe platforma https://www.tinkercad.com/ pentru a putea realiza mai usor o lista cu piesele necesare pentru ideea de proiect aleasa.

  • Etapa 2:

Achizitionarea pieselor necesare si a ustensilelor utilizate pentru lipirea firelor

  • Etapa 3:

Asamblarea efectiva a partii hardware, adaptarea codului si testarea rezultatului final

Bibiliografie/Resurse

pm/prj2021/avaduva/xsi0.1621699454.txt.gz · Last modified: 2021/05/22 19:04 by cristina.balasoiu
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