Proiectul va fi dezvoltat pe o placuta compatibila Arduino UNO. Acesta va avea ca interfata un Modul LCD.
Utilizatorul va putea controla caracterul din joc cu ajutorul unui joystick. Acesta il va misca in sus pentru a se putea apara de blocurile aparute random in scena. Blocurile vor aparea din partea dreapta si se vor deplasa liniar spre stanga.
Pentru a fi mai interactiv vom avea un fisier in care vom putea sa vedem rezultatele unei sesiuni de joc, citite de pe un card SD.
O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.
Mediu de dezvoltare :Arduino IDE
Bibliotecile Arduino utilizate in dezvoltarea proiectului:
LiquidCrystal_I2C
SD
SPI
TMRpcm
Ca sa imi stochez “ecranul” am folosti doua array-uri de char-uri in care stochez ce am: terrainUpper, terrainLower.
Mi-am creat functii pentru initializare a display-ului, pentru a-mi crea caracterul si pentru a putea avansa cu blocurile generate spre stanga.
Pentru a trimite comenzi caracterului de pe display am folosit o intrerupere pentru joystick, care sa nu interfereze cu display-ul. De asemenea am folosit protocoalele SPI pentru utilizarea cardului SD si I2C pentru utilizarea display-ului. Oparte mai grea a fost desenarea caracterului, pentru a putea sa-l afisez in joc.
Blocurile pe care le generez sunt random, atat ca dimensiune cat si ca amplasare(jos/sus).
proiect.zip
A fost un proiect interesant care mi-a dezvoltat gandirea si mi-a indicat diverse greseli in abordarea problemelor si anumite probleme de organizare sau tehnice.
Dezvoltarea codului a fost interesant si provocator, mai ales din cauza dificultatilor tehnice care m-au obligat sa rescriu codul, astfel ca am avut multe de invatat si de descoperit datorita contruirii si dezvoltarii acestui proiect.
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună
.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.