This is an old revision of the document!
TicTacToe++ simuleaza o consola handheld care faciliteaza jucarea jocului X si 0 (TicTacToe). Acesta simuleaza mai multe gamemoduri posibile cu grid variabil. Ofera feedback vizual prin intermediul unui ecran si vizual prin intermediul unui buzzer. Proiectul are incarcare prin baterii pentru putea fi folosit si “handheld”, fara a fi conectat la un calculator. Interactiunea cu jocul se face prin 5 butoane tactile de miscare (WASD) si unul de Select.
Componentele principale pe care le utilizez în proiect sunt:
Microcontroler ATmega328P (Xplained Mini)
Este unitatea centrala de procesare a consolei, responsabila pentru rularea logicii jocului și coordonarea tuturor perifericelor. Acesta citește semnalele de la butoane, procesează mutarile jucatorilor si transmite datele vizuale către ecranul TFT prin protocolul SPI, precum și semnalele audio catre buzzer.
Display TFT LCD 1.44 inch
Am utilizat un ecran TFT color cu rezoluție de 128×128 pixeli pentru a oferi o interfata grafica moderna jocului TicTacToe++. Acesta comunica cu microcontrolerul prin protocolul SPI. Ecranul este compatibil cu logica de 5V și afișează grila de joc, simbolurile “X” si “0” în culori diferite, cursorul de selecție si animații pentru mesajele de victorie sau remiză.
Butoane Push-Button (Input Control)
Sistemul utilizează un set de 6 butoane tactile configurate pentru un control optim: patru butoane așezate în format “D-Pad” pentru navigarea pe grilă (sus, jos, stânga, dreapta), un buton pentru confirmarea mutării (Select) și un buton pentru funcții suplimentare (Reset). Fiecare buton este configurat folosind rezistențele interne de tip pull-up ale microcontrolerului pentru a asigura citiri digitale stabile și pentru a simplifica circuitul electronic.
Buzzer Pasiv
Modulul buzzer pasiv este utilizat pentru a oferi feedback audio în timp real, imbunatatind experiența de utilizare.
Suport de baterii (3xAA)
Asigura alimentarea autonoma a consolei. Doar 3 baterii de aproximativ 1,6 V fiind suficiente.
| Pin Arduino | Port Hardware (Mcu) | Componenta Periferica | Rol / Functie in Joc |
|---|---|---|---|
| D3 | PD3 | Buton SELECT | Confirma selectia in meniu si pune piesa pe tabla |
| D4 | PD4 | Buton W (Sus) | Navigare in sus pe grila / Schimba dimensiunea in meniu |
| D5 | PD5 | Buton S (Jos) | Navigare in jos pe grila / Schimba dimensiunea in meniu |
| D6 | PD6 | Buton A (Stanga) | Navigare la stanga pe grila de joc |
| D7 | PD7 | Buton D (Dreapta) | Navigare la dreapta pe grila de joc |
| D8 | PB0 | Ecran TFT DC (Data/Command) | Spune ecranului daca primeste pixeli sau comenzi |
| D9 | PB1 | Ecran TFT RST (Reset) | Reseteaza ecranul la pornirea sistemului |
| D10 | PB2 | Ecran TFT CS (Chip Select) | Activeaza/dezactiveaza comunicarea SPI cu ecranul |
| D11 | PB3 (MOSI) | Ecran TFT SDA / MOSI | Linia principala de date prin care trimitem grafica |
| D13 | PB5 (SCK) | Ecran TFT SCL / SCK | Semnalul de ceas (Clock) pentru sincronizarea SPI |
| A5 | PC5 | Buzzer Pasiv | Generare audio low-level pentru efecte si alerte |
| 5V / VCC | VCC | Ecran TFT VCC | Alimentarea cu energie a ecranului |
| GND | GND | Ecran / Buzzer / Butoane | Masa comuna a intregului circuit electric |
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.