Autorul poate fi contactat la adresa: Login pentru adresa
În cadrul acestui proiect îmi propun implementarea unei console Brick Game (“Joc electronic”), folosind microcontroller-ul ATmega324 și un Display LCD Nokia 5110. Utilizatorul va avea posibilitatea de a alege dintre 2 jocuri retro: Snake si No-Internet-Google-Chrome-Running-Game (Dino-Runner).
Pentru acest proiect am folosit Programmer's Notepad si Sublime Text 3. Libraria folosita in dezvoltarea aplicatiei poate fi gasita la adresa: avr-nokia5110.
Pentru jocul Snake folosesc un array de structuri care contine informatii despre fiecare block al Sarpelui - pozitia pe x si y si daca block-ul exista sau nu. Array-ul are o dimensiune fixa de 15 elemente (= lungimea maxima a Sarpelui). Apasarea butoanelor schimba directia capului Sarpelui, iar celelalte block-uri iau pozitia block-ului anterior din array. Din cauza unor limitari ale bibliotecii, Sarpele nu poate sa isi continue miscarea daca trece prin limita superioara si cea inferioara a ecranului. Acest comportament nu se intampla si in cazul marginilor stanga/dreapta.
Celalalt joc implementat, Dino-Runner-ul, se bazeaza pe un personaj format din 4 caractere care poate sa sara sau sa se lase in jos pentru a evita obstacolele care vin spre el pe 3 benzi. In implementarea sariturii am folosit un fel de timer improvizat, care modifica pozitia personajului odata la 2 “frame”-uri dupa apasarea butonului “UP”. Spawner-ul de inamici face ca un obstacol sa apara pe o banda in mod random, dupa ce obstacolul curent paraseste ecranul.
Proiectul a fost o activitate interesanta, din care am invatat destul de multe despre programarea pe microcontroller-e. Biblioteca gasita pentru LCD a simplificat destul de mult munca. Am gasit mai multe astfel de biblioteci, dar unele aveau limitari destul de mari, iar altele aveau bug-uri vizibile.
Acesta a fost primul proiect hardware din cadrul facultatii si pot spune ca a fost mai interesant decat ma asteptam. Lipirea componentelor pe placa a fost o experienta noua si sunt sigur ca imi va folosi pe viitor.
In arhiva de mai jos se gasesc fisierele sursa impreuna cu un Makefile si schema electrica a proiectului. Am adaugat de asemenea si sprite-urile folosite - care au fost convertite in caractere.