X si 0

Introducere

Proiectul meu consta in realizarea cunoscutului joc X si 0 (eng. tic-tac-toe). Reprezinta practic o inlocuire a pixului si a hartiei, elemente folosite in mod traditional pentru acest joc, cu o placuta cu un microcontroler si diverse alte elemente.

Placuta ofera ca mod de afisare a spatiului de joc 9 led-uri, fiecare reprezentand cate o casuta. Fiecare led, prin culoare aprinsa (verde sau galben), reprezinta X, respectiv 0.

Jocul se termina cu victoria unui combatant sau cu remiza.

Controlul aprinderii ledurilor este facut cu ajutorul a 5 butoane, reprezentand: sus, jos, stanga, dreapta si enter. Primele patru butoane asigura miscarea pe tabla de joc in timp ce butonul enter finalizeaza o mutare.

Led-ul aflat pe pozitia curenta iese in evidenta palpaind.

Descriere generală

Schema generala:

Conceptual, proiectul va cuprinde o unitate de prelucrare (ATMega 16), o unitate de afisare (Led-urile) si o unitate de input (Butoanele)

Hardware Design

Piese folosite:

  • placa Etapa1
  • 9 led-uri bicolore, cu 3 term.
  • 5 push buton
  • 11 rezistente

Schema implementare Proteus:

Deoarece nu am avut la dispozitie suficienti pini, am multiplexat Led-urile, aprinzand rand cu rand, la interval mic de timp (2ms), cum sper ca se poate observa in schema. Astfel, am folosit portul A in modul urmator:

  • primii 3 pini: bazele led-urilor, fiecare pentru un rand - pini iesire
  • urmatorii 5 pini: pini de intrare de la butoane. Ei sunt 1 daca butonul nu este apasat, si 0 altfel.

portul C:

  • primii 6 pini: iesire pentru led-uri, fiecare pentru o coloana
  • pinul 7: VCC (are mereu val 1) - pentru butoane
  • pinul 8: baza (are mereu val 2) - pentru butoane

Software Design

Din punct de vedere al codului, este o implementare simpla a jocului de X si 0 fara inteligenta artificiala.

Softul debuteaza cu o zona de “atractie”, adica o afisare a unui X si a unui 0. Zona se termina cand este apasat butonul de enter.

Apoi incepe un joc, primul ce muta fiind “verdele”. In urma finalizarii jocului, se afiseaza tabla, iar la apasarea taster de enter incepe un nou joc.

Sursa:

xsi0.zip

Rezultate Obţinute

Finalul proiectului a adus un joc de X si 0 functional, cu o mica exceptie LOL. Nu merge butonul de stanga, dar, miscarea fiind circulara, se poate ajunge dintr-un loc in altul folosind celelalte 3 “sageti”.

Era mai util ca led-urile sa fie rosu-verzi decat galben-verzi, dar nu asta e important LOL

Concluzii

In concluzie am reusit sa finalizez acest proiect, desi eram sceptic la inceput. Am invatat sa lucrez cu un microcontroler si mai ales sa folosesc un datasheet.

Ah, si inca ceva: sa nu pui niciodata mana pe letcon-ul incins. Am trait 3 ore groaznice dupa acest fortuit eveniment.

Bibliografie/Resurse

ATMega 16 datasheet doc2466.pdf

Lab-uri PM lab1

pm/prj2011/dtudose/xsi0.txt · Last modified: 2021/04/14 17:07 (external edit)
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