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.
Schema generala:
Conceptual, proiectul va cuprinde o unitate de prelucrare (ATMega 16), o unitate de afisare (Led-urile) si o unitate de input (Butoanele)
Piese folosite:
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:
portul C:
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:
Finalul proiectului a adus un joc de X si 0 functional, cu o mica exceptie . 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
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.
ATMega 16 datasheet doc2466.pdf
Lab-uri PM lab1