This is an old revision of the document!


TicTacToe++

Introducere

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.

Descriere generală

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.

Hardware Design

Sistemul de afișare (Ecranul TFT) este conectat direct la magistrala SPI Hardware a microcontrolerului ATmega328P. Pinii SDA (Pin 11) și SCK (Pin 13) asigură o viteză maximă de transfer a datelor grafice către ecran. Pentru controlul stării, pinii CS (Pin 10), RESET (Pin 9) și A0/DC (Pin 8) gestionează activarea perifericului, inițializarea hardware și sortarea fluxului de date între comenzi și pixeli. Iluminarea de fundal (LED) și alimentarea logică (VCC) sunt legate la linia de 5V pentru stabilitate și luminozitate maximă.

Interfața de control (Butoanele) este împărțită în două blocuri funcționale și folosește exclusiv configurația INPUT_PULLUP. Prin această metodă, pinii procesorului folosesc rezistențele interne de pull-up, iar butoanele doar închid circuitul către GND (masă). Acest lucru elimină rezistențele externe și riscul de scurtcircuit.

Blocul de navigare (WASD) folosește pinii digitali directi PD4 (W), PD5 (S), PD6 (A) și PD7 (D) pentru preluarea rapidă a direcțiilor.

Blocul de sistem (Start și Select) este mapat pe pinii PD2 și PD3. Acești pini au fost aleși strategic deoarece sunt singurii care suportă întreruperi hardware externe (INT0 și INT1), permițând oprirea instantanee a codului sau trezirea plăcii din modurile de economisire a energiei.

Sistemul audio (Buzzerul) este conectat la pinul PC5. Pentru a proteja poarta logică a microcontrolerului, semnalul trece printr-o rezistență de limitare de 220Ω, care menține curentul absorbit sub pragul critic de 20mA în timpul generării bipurilor de feedback.

Alimentarea portabilă este realizată prin legarea în serie a două celule de baterie (BT1 și BT2). Polul pozitiv este conectat la pinul VIN, trimițând tensiunea brută direct în regulatorul intern al plăcii Xplained Mini. Acesta o coboară și o filtrează la un nivel fix de 5V, protejând componentele sensibile și asigurând independența proiectului față de cablul USB al calculatorului.

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/alexandru.jipa2803/eusebiu.burtescu.1779546907.txt.gz · Last modified: 2026/05/23 17:35 by eusebiu.burtescu
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