Table of Contents

Introducere

Proiectul meu consta in jocul clasic de X si 0, realizat pe o placuta ATMega16, folosind ca display un LCD de nokia 3310.

Se poate juca in unul sau doi jucatori si reprezinta o metoda foarte buna de antrenament pt acest joc dificil.

Descriere generală

Hardware Design

Lista de piese:

Simulare Proteus:

In afara de cele ce se pot vedea pe simularea Proteus, trebuie puse 2 diode intre pinul VCC al ATMega16 si pinul VDD al LCD-ului astfel incat tenisunea pe LCD sa fie ~3.3V

Pentru pinii RES, SCE, D/C, SDIN si SCLK trebuie realizat un divizor de tensiune astfel incat tensiunea pe acei pini sa fie ~3.3 V. Divizorul de tensiune se realizeaza punand o rezistenta de 1.8 K intre un pin al ATMega16 si unul al LCD-ului si o rezistenta de 3.3K intre pinul LCD-ului si masa.

Software Design

Mediu de dezvoltare: AVR Studio

Driver folosit: http://www.quantumtorque.com/content/view/32/37/

Pentru jocul de X si 0 voi implementa algoritmul minimax.

Descrierea codului aplicaţiei (firmware):

Functii LCD:

Functii joc:

Rezultate Obţinute

Am avut cateva probleme la lipirea LCD-ului deoarece pinii sunt foarte apropiati si trebuie avuta foarte multa grija sa nu apara scurt-circuite. Intai am incercat sa potrivesc firele, fara a le lipi efectiv. Intrucat erau cativa pini care nu faceau contact, am lipit intai firele din margine (mai solid) si apoi, foarte fin, firele din centru. Pentru mai multa siguranta panglica este fixata si ea.

De asemenea, se pare ca diodele 1N4007 achizitionate nu au UD = 0.7, deoarece voltajul la pinul VDD al LCD-ului era 4.2V. Din aceasta cauza, LCD-ul se oprea brusc dupa cateva zeci de secunde de functionare. Solutia a reprezntato adaugarea altor doua diode.

Placuta aditionala este lipita direct pe pinii A si C ai placii de baza.

Jocul contine un meniu din care utilizatorul isi poate alege modul de joc (1 sau 2 jucatori) si caracterul cu care joaca.

Dupa cum se observa din imaginile de mai sus, sunt identificate situatiile in care niciun jucator nu mai poate castiga. Lipsesc pozele cu mesajul “Am castigat”, deoarece nu am reusit inca sa inving inteligenta artificiala. De asemenea, trebuie mentionat ca oponentul nu realizeaza aceleasi mutari de fiecare data.

Citirea butoanelor se face intr-o bucla blocanta. Intre doua citiri consecutive ale aceluiasi buton exista un anumit timeout.

Download

Download surse

Bibliografie/Resurse

[1] Driver LCD http://www.quantumtorque.com/content/view/32/37/