Snake reprezinta cel mai popular joc al erei telefoanelor mobile, in special Nokia. Microcontrollerul Atmega16 mi-a oferit toate facilitatile pentru implementarea acestuia.
Jocul va putea fi controlat printr-un numpad cu 9 butoane, dintre care doar 4 vor fi folosite, pentru directii. Afisarea se va face pe un display Nokia 6100 (color, rezolutie 128 x 128). Numpadul si displayul vor fi conectate la placa de baza prin porturi de expansiune.
Am ales numpadul cu 9 butoane deoarece se poate conecta rapid si codul pentru interfatarea acestuia nu este dificil.
Pentru interfatarea displayului Nokia 6100, avand in vedere dimensiunile foarte mici ale conectorului, am achizitionat socketul aferent acestuia. Lipirea acestuia nu am reusit-o imediat. Dupa foarte multe incercari de a afisa ceva pe acest ecran am renuntat si am decis ca voi folosi un display Nokia 3310 (monocrom, rezolutie 84×48). Interfatarea acestuia s-a dovedit a fi mult mai usoara, dar caracteristicile acestuia lasa de dorit.
Multe incercari esuate cu Nokia 6100:
Cu displayul 3310 nu a durat prea mult:
Lista de piese:
Schema de conectare a displayului Nokia 3310:
Numpadul foloseste 7 pini iar butoanele sunt structurate intr-o matrice de 3×4 (3 coloane, 4 linii). Pentru a determina ce buton a fost apasat la un moment dat, se conecteaza cei 7 pini la microcontroler si se aplica urmatorul algoritm:
Jocul a fost realizat in limbajul C, sub linux, a fost scris in gedit si compilat cu avr-gcc.
Chiar daca nu am realizat ceea ce imi propusesem, am reusit sa termin jocul Snake pentru microcontrollerul AVR Atmega16.
Cu toate ca displayul Nokia 6100 s-a dovedit aproape imposibil de interfatat, sunt convins ca, daca aveam timpul necesar, as fi avut rezultate mai bune.
API folosit pentru displayul Nokia 3310: Quantum Torque
API folosit pentru displayul Nokia 6100: Sparkfun