Reverse 2048
Autorul poate fi contactat la adresa : valentin.crismaru@gmail.com
Introducere
Proiectul consta in crearea jocului 2048 in varianta inversata pe un ecran LCD.
Scopul jocului este de a ajunge la numarul “1” pornind de la numarul “2048”.
Toate numerele sunt puteri ale lui 2, iar unirea unui numar cu el insusi va genera un singur numar in locul celor 2 , care va fi egal cu numarul injumatatit.
Ideea de la care am pornit este, evident, clasicul joc 2048. Consider ca ar putea fi util pentru antrenarea atentiei, intrucat majoritatea lumii este obisnuita cu varianta originala a acestui joc, iar aceasta versiune ar putea la inceput sa induca in eroare jucatorii.
Descriere generala
Schema bloc
Jucatorul va avea la dispozitie 4 butoane “up”, “down”, “left”, “right” cu care va putea misca numerele in directia dorita. Comanda va fi preluata de catre microcontroller, iar rezultatul va fi afisat pe ecranul LCD.
Hardware design
Lista de piese
Placa de baza “PM2019”
Microcontroller-ul “ATMEGA324A”
4 butoane
Display LCD
Breadboard
8 fire mama-tata pentru LCD
5 fire mama-tata pentru butoane
4 fire tata-tata pentru butoane
Cablu de imprimanta
Schema electrica
Software design
Am inceput realizarea jocului de la “scheletul” de la laboratorul 5, folosind doar sursele “lab5.c” , “spi.c” si “ST7735R_TFT.c” pentru realizarea “lab5.elf” si ulterior “lab5.hex” care va fi incarcat pe placuta. (din cauza unor erori, am mai definit niste macro-uri in “ST7735R_TFT.h”. Pe langa functiile “SPI_init()” si “ST7735R_Begin()” am mai folosit “ST7735R_FillRect(..)” pentru background si pentru casutele din matricea jocului si respectiv “ST7735R_DrawText(..)” pentru afisarea numerelor in casute si a mesajelor (nume joc, nume propriu, mesajul de castigare a jocului, mesajul de pierdere a jocului) pe ecran. Dupa incarcarea pe placuta jocul incepe automat pe LCD si se poate “restarta” prin butonul de “RESET” de pe placuta. Butoanele sunt asezate intuitiv pe breadboard alaturi de LCD.
Rezultate obtinute
Jocul functioneaza, dar ca sa fiu sincer nu am avut rabdarea sa il testez pana la aparitia numarului 1. Totusi, am modificat pentru scurt
timp goal-ul la un numar mai mare si mesajul de succes apare pe ecran, programul stagnand pana la apasarea butonului RESET.
Concluzii
A fost o experienta interesanta care m-a ajutat sa inteleg mai bine anumite concepte predate la laborator.
Dupa o ora petrecuta pe Maica Domnului in cautare de LCD, am descoperit si eu ca exista Optimus Digital.
Download
Jurnal
22 Aprilie : Alegerea temei proiectului + Descriere + Schema bloc
29 Aprilie + 6 Mai : Lipire componente
9 Mai : Aventuri pe strada Maica Domnului
14 Mai : Schema EAGLE
15 Mai : Comanda piese lipsa
16 Mai : Preluare piese
21-23 Mai : Scriere cod
Bibliografie / Resurse