Autorul poate fi contactat la adresa: Login pentru adresa
Scopul proiectului consta in realizarea unui joc de tip connect four pe o matrice de led-uri 8*8.
Aceasta va avea led-uri de doua culori diferite pentru a face diferenta intre jucatori (). Intentionez sa folosesc
si un difuzor pentru a reda sunete cand sunt apasate butonale ce vor decide pozitionarea pieselor. Jocul
va avea un mod multiplayer si un mod in care se poate juca impotriva unui AI.
Utilitatea proiectului consta in rolul acestuia ca sursa de divertisment de care poate beneficia oricine.
Proiectul are 5 componente pricipale:
Lista de piese:
Edit:
Noua matrice folosita: https://www.optimusdigital.ro/ro/optoelectronice-matrice-de-led-uri/118-modul-cu-matrice-de-led-uri-max7219.html
Schema modificata:
Proiectul meu a avut 3 forme. Initial toate componentele au fost conectate pe un breadboard. Au aparut probleme de conexiuni imperfecte sau lipsa date de calitatea componentelor, ceea ce a dus la prima evolutie: mutarea matricei bicolore si a celor doua MAX7219 pe o placuta separata si efecturea lipirii acestora folosind fludor. Aspectul rezultat a fost unul neplacut si, desi conexiunile pareau sa fie corecte, iar matricea se aprindea, led-urile nu puteau fi controlate din program. Pentru a rezolva problema am inlocuit matricea bicolora cu una avand o singura culoare ce este controlata de un max7219. Acesta este conectat la matrice printr-un circuit integrat (max-ul a fost initial scos din circuitul integrat pentru fi legat de un altul in scopul controlarii matricei bicolore). Pentru a asigura conexiunile dintre componente, am mutat intreg proiectul pe o placuta si am realizat toate conexiunile prin lipire. Rezultatul final este unul de care ma pot declara mandru: proiectul are un aspect placut si este usor de controlat de catre jucatori.
Pentru a nu se rupe cablurile de pe spate am adaugat niste picioruse placutei sub forma unor suruburi de tip M4. In total sunt 5 suruburi: unul in fiecare colt si unul in mijlocul marginii orientate catre jucator pentru a facilita apasarea butoanelor.
Mediul de dezvoltare: Programmer's Notepad
Site-uri bibioteci MAX7219:
http://davidegironi.blogspot.ro/2013/07/avr-atmega-max7219-7-segment-led-matrix.html
https://tinusaur.org/projects/max7219led8x8/
La apasarea unuia dintre cele 7 butoane se coboara o piesa pe coloana corespunzatoare. Cand unul dintre jucatori isi aliniaza 4 piese pe linie, coloana sau diagonala acesta castiga jocul, fapt inregistrat pe tabela de scor ce retine punctajul fiecarui jucator in urma meciurilor ce au avut loc de la inceputul executiei.
Inregistrarea apasarii butoanelor este facuta folosind intreruperi.
La inregistrarea unei mutari, precum si la incheierea meciului se vor reda sunete folosind difuzorul.
Structurile folosite pentru cele doua matrice (rosu si verde) sunt doi vectori de unsigned char, fiecare bit reprezentand daca led-ul corespunzator din matricea bicolora este aprins.
Algoritmul de verificare a conditiei de castigare a jocului porneste de la ultima piesa asezata pe tabla si verifica daca aceasta face parte dintr-o formatie castigatoare.
Programul de testare a logicii din spatele proiectului ruleaza execat ca cel incarcat pe placuta, insa in loc de aprindere de led-uri sau alte efecte din tabela de scor / difuzor afiseaza matricea in consola. Aceasta isi ia intrarea de la tastatura, tastele folosite fiind 0, 1, 2, 3, 4, 5 si 6.
Biblioteca de control a MAX7219:
MAX7219_buffer_out a fost modificata pentru a transpune matricea inainte de trimiterea acesteia pentru a afisa corect desi matricea este rasucita la 90 de grade in proiect
O descriere mai in detaliu o modului de functionare a programului se poate gasi in readme.
A fost un proiect foarte interesant din care simt ca am invatat foarte multe. Sunt mandru de rezultatul obtinut, chiar daca nu este ideal. Planific pe viitor sa adaug un bot care sa fac o mutare pentru tine automat si eventual chiar un alt joc (unul care se potriveste mai bine pe o matrice de LED-uri de o singura culoare).
20.05.2018
21.05.2018
22.05.2018
23.05.2018
MAX7219 DS: https://www.sparkfun.com/datasheets/Components/General/COM-09622-MAX7219-MAX7221.pdf
ATMEGA PINOUT: https://elementztechblog.files.wordpress.com/2016/10/bobuino_pinout.png
Matrice LED-uri: https://static.optimusdigital.ro/3282-large_default/matrice-de-led-uri-bicolora-roie-i-verde-8x8-375-mm.jpg
Site-uri bibioteci MAX7219:
http://davidegironi.blogspot.ro/2013/07/avr-atmega-max7219-7-segment-led-matrix.html
https://tinusaur.org/projects/max7219led8x8/