TIC TAC TOE

Autor : Dragos Cristache - 333CC

Introducere

Acest proiect va implementa tic tac toe intr-un mod interactiv, jucatorii fiind implicati fizic pentru a realiza mutarile dorite.

Descriere generala

Tabla de joc va fi simulata in aer, iar 3 senzori ultrasonic vor genera pozitia unde jucatorul curent va dori sa faca mutarea(fiecare senzor se va folosi pentru o coloana din tabla de joc 3×3), iar cu ajutorul unui lcd(128*64) se vor afisa mutarile anterioare ale jucatorilor si cine este la mutare. La finalul jocului se va afisa castigatorul printr-un joc de lumini si scorul de la ultima resetare a placutei. Ulterior se va reveni la starea initiala de unde se poate incepe un joc nou prin accesarea in zona 1 a tablei de joc(se va pozitiona mana in primul patratel virtual din stanga sus). Dupa ce se va respecta aceasta regula pentru a incepe jocul, se va afisa tabla de joc pe lcd, iar player 1(O in cazul de fata) va trebui sa faca prima mutare. Pe ecranul lcd se vor afisa informatii despre starea curenta a jocului si alte animatii(jucatorul care trebuie sa mute, scorul…)

Componente

Schema bloc

Schema electrica

Software design

Pentru afisajul jocului pe lcd am folosit biblioteca u8glib.

link→https://www.arduino.cc/reference/en/libraries/u8glib/

Pentru determinarea pozitiei mutarii jucatorilor am folosit senzori ultrasonic. In functie de distanta fata de senzor am setat 3 praguri care reprezinta limitele pentru cele 3 patratele din coloana respectiva. Distanta am calculat-o folosind formula fizica : v(m/s) = d(m) / t(s). Astfel se va genera o unda si se va calcula timpul pana cand aceasta se intoarce la senzor. Se va folosi viteza sunetului si se va lua in calcul faptul ca unda a parcurs distanta dus-intors pentru a rezulta distanta dorita. Mai multe detalii despre calcul si implementare se gasesc la link→https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/

Pentru retinerea mutarilor am folosit un vector de lungime 9 initializat cu un numar diferit de 0 si 1 care vor reprezenta mutarile celor doi jucatori 0 si 1 : X si 0. Am implementat cateva functii pentru verificarea castigatorului comparand mutarile actuale cu configuratiile castigatoare, resetarea tablei de joc si a mutarilor in cazul finalizarii jocului, randarea paginilor pe lcd.

Rezultat

Dupa cum se poate observa si in schema electrica am respectat aceleasi porturi si in implementarea propriu-zisa. Pentru a evita intercalarea undelor celor 3 senzori ii pornesc secvential pentru a calcula distantele fata de mutarea jucatorilor si de asemenea am incercat sa creez si o mica distantare prin cele 2 foi de carton puse vertical pentru a asigura receptia mutarii corecte in cazul in care jucatorul se va plimba cu mana prin fata mai multor senzori. Fiecare senzor foloseste 4 pini: vcc,gnd,trig,echo. Ultimii 2 se folosesc pentru a genera si a recepta undele pentru calculul distantei. Acestia se vor conecta la placuta pe un pin digital si unul digital pwm. Astfel cei 3 senzori vor folosi 6 pini de pe placuta. LCD-ul este conectat precum in schema electrica folosind 8 pini dintre care 1 vcc(5v), 1 vcc(3.3v, 1 gnd, 1psb(conectat la gnd), 3 pini conectati la placuta(13,11,10).

Bibliografie/Resurse

pm/prj2021/avaduva/tic-tac-toe.txt · Last modified: 2021/05/31 16:00 by dragos.cristache
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