Adrian RÎŞNOVEANU (67048) - Brick Game LCD

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Î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).

Descriere generală

schema_bloc.jpg

Hardware Design

Listă de piese:

  • ATmega 324
  • Modul LCD cu Controller PCD8544
  • 4 butoane

Schema Electrică:

Software Design

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.

Rezultate Obţinute

Proiectul final:

placara.jpg

gamera1.jpg

gamera2.jpg

Concluzii

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.

Download

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.

brick_game.zip

Jurnal

  • Saptamana 8 - alegerea temei
  • Saptamanile 10-12 - realizarea placii de baza si apoi adaugarea LCD-ului si butoanelor pe placa de test
  • Saptamana 13 - dezvoltare software

Bibliografie/Resurse

  • Documentația în format PDF
pm/prj2017/mandrei/77666.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0