Autorul poate fi contactat la adresa: Login pentru adresa
Mi-am propus in acest proiect sa realizez un joc de GO pe LCD. Am jucat acest joc de cand eram mic, am considerat ca este o oportunitate buna sa-mi creez propriul joc electronic. In general se joaca pe o tabla 19×19 dar, deoarece dimensiunea era prea mare pentru un LCD obisnuit, am ales o varianta mai usoara, de 9×9.
Deoarece jocul nu este foarte cunoscut, mai joi este un link cu regulile acestuia:
Vor exista 6 butoane: sus, jos, stanga, dreapta, pass si select. Acestea vor fi input-uri pentru ATMega 324 care va va afisa pe LCD evolutia jocului.
Lista de piese:
Majoritatea pieselor sunt luate de pe www.optimusdigital.ro
Schema electrica:
EDID: Am modificat putin schema initiala:
Pentru scrierea programului am folosit Programmer's Notepad si WinAVR (ca la laborator).
Inainte de realizarea hardware-ului, am inceput sa scriu functionalitatile jocului, testand algoritmii pe Ubuntu. Functiile care tin de aceasta parte sunt: check_win, check_capture, check_free_spaces, check_valid_move, get_first_valid_move si init_game din fisierul main.c (detalii mai multe despre aceste functii sunt in cod). Ca algoritmi principali, am folosit metode de recunoastere a unui contur intr-o matrice (necesari la capturarea pieselor si la calcularea punctelor jucatorilor).
Dupa ce am terminat de lipit tot hardware-ul, am lucrat la modul de comunicare intre cele 3 componente: butoane, microcontroller si lcd. Deoarece am avut o problema cu butoanele, mai intai am facut afisarea jocului pe LCD. Pentru aceasta am cautat mai multe librarii, si am ales pana la urma pe cea de pe www.quantumtorque.com. Folosind functiile de aici, mi-am implementat propriile functii de afisare a jocului pe ecran: clear_pixel, set_pixel, init_helping_point, init_board, draw_board, put_stone, remove_stone, print_winner din fisierul Nokia5110.c (detalii mai multe despre aceste functii sunt in cod).
La final, cand mi-au mers in sfarsit butoanele, am completat si comportamentul jocului in functia main si am rezolvat bug-urile care au aparut pe parcurs.
Rezultatul final este un joc de GO pe o tabla 9×9 care se poate juca in 2.
Imagini care reprezinta evolutia proiectului:
A fost un proiect foarte interesant de facut. Am intampinat destule dificultati pe parcurs (am pierdut 2 zile pentru ca nu-mi mergeau butoanele, dar de fapt nu era bine conectat pinul de ground la placuta..) dar in final am reusit sa realizez ce mi-am propus.
Arhiva contine:
Resurse hardware:
Resurse software: