Autorul poate fi contactat la adresa: Login pentru adresa
Acest proiect presupune implementare unui Memory Game clasic la care am adăugat și câteva mini-joculețe pe LCD pentru a crește gradul de complexitate al proiectului. Scopul său este testarea cunoștințelor acumulate de-a lungul laboratoarelor de Proiectare cu Microprocesoare pentru a crea ceva distractiv, folosit în scop recreațional.
Idea inițială a fost de a crea un Memory Game simplu, dar, pentru a adăuga complexitate proiectului am decis să îmbunătățesc partea de software. Deoarece nu am vrut să renunț la ideea inițială, am adăugat alte joculețe simple. Proiectul este util doar pentru recreere și pierderea timpulu.
Proiectul va funcționa pe mai multe jocuri care or putea fi selectate de pe LCD. Jocul principal este Memory Game-ul pentru care există o plăcuță separată cu leduri și butoane. Pentru fiecare culoare există 4 leduri și un buton, în cazul în care se aprind ledurile de culoarea roșu, jucătorul va trebui să apese pe butonul corespondent culorii roșu. Astfel cculorile se vor aprinde într-o anumită ordine, iar jucătorul trebuie să reproducă ordinea, urmând ca la level-ul următor să reapară modelul plus încă o culoare. Pe lângă Memory Game va mai exista și un joc implementat pe LCD.
Listă de componente necesare:
Componentă | Cantitate | Preț/buc | Preț total |
---|---|---|---|
PCB + componente de bază | 1 | 8 + 40 | 48 lei |
LCD grafic 1.8 SPI TFT 128*160 KMR-1.8 SPI | 1 | 35 | 35 |
Buton 6x6x6 | 4 | 1 | 4 |
Buton cu capac rotund | 4 | 2.4 | 9.8 |
Modul cu buzzer activ | 1 | 5.5 | 5.5 |
Fire mamă-mamă (10p) | 3 | 4 | 12 |
Rezistor 470Ω | 4 | 0.4 | 1.6 |
Header de pini (40p) | 1 | 2 | 2 |
Leduri 5 mm | 16 | 0.5 | 8 |
Cablu USB AM la BM | 1 | 4 | 4 |
Cablaj de test 5x7cm | 2 | 4 | 8 |
Preț total | 137.9 |
LCD TFT SPI | |
---|---|
PIN modul | PIN ATMEGA324A |
GND | GND |
VCC | VCC |
LED+ | GND |
LED- | VCC |
RESET | PB1 |
CS | PB0 |
SCL | PB7 |
SDA | PB5 |
AO | PB4 |
Buzzer | |
PIN modul | PIN ATMEGA324A |
GND | GND |
VCC | VCC |
I/O | PD5 |
Matrice de leduri | |
PIN modul | PIN ATMEGA324A |
COL1 | PA0 |
COL2 | PA1 |
COL3 | PA2 |
COL4 | PA3 |
LIN1 | PA4 |
LIN2 | PA5 |
LIN3 | PA6 |
LIN4 | PA7 |
Butoane | |
PIN modul | PIN ATMEGA324A |
RED | PC1 |
YELLOW | PC2 |
BLUE | PC3 |
GREEN | PC4 |
UP | PD0 |
DOWN | PD1 |
RIGHT | PD2 |
LEFT | PD3 |
GND | GND |
Mediu de dezvoltare:
Headere
/* funcție ce seteaza butoanele ca ieșire */ void buttons_init(); /*funcție ce inițializează buzzerul */ void buzzer_init(); /* inițializează ledurile */ void init_leds(); /* inițializează tot */ void init(); /* prinetează pe LCD meniul jocului */ void LCD_menu(); /* cântă melodia dată */ void play_song(uint16_t song[], uint16_t durations[], int n); /* se apeleazp când playerul câștigă */ void win(); /* se apelează când playerul pierde */ void lose(); /* aprinde ledurile unei culori date */ void light_color(int color); /* verifică dacă este apăsat butonul corespunzător culorii așteptate */ void fair_color(int color); /* implementarea efectivă a jocului */ void play(int flow[], int level); /* pornește jocul */ void start_game();
Proiectul a fost interesant și destul de complicat, deoarece am ales să “combin” mai multe părți ale sale. Am reușit să învăț foarte multe atât pe partea de hardware, cât și pe cea de software. A fost nevoie de multă muncă și perseverență, dar totul e bine când se termină cu bine. Proiectul nu a fost finalizat deoarece am avut probleme cu unele componente. }