Chicken Invaders

Introducere

__Ce face proiectul?__

Aceasta implementare simulteaza practic jocul original si ultra cunoscut Chicken Invaders, bineinteles la o scara mult mai mica. Deasemenea grafica si efectele speciale nu sunt aceleasi, insa indeea si modalitatea de a juca coincid. Exista un singur jucator care controleaza jocul prin 3 + 1 butoane (unul de START) folosite pentru deplasarea stanga-dreapta si pentru impuscare. De sus vin 'chicken' iar 'vanatorul' incearca sa doboare cat mai multe pana ca acestea sa ajunga la el…Atunci jocul se termina si este afisat scorul.

__Care sunt scopul si utilitatea proiectului?__

Proiectul fiind un joc are ca utilitate principala divertismentul jucatorului si satisfacerea dorintei de competitie a acestuia. Scopul proiectului este unul didactic. Acesta reliefeaza partea practica din continutul Proiectarii Microprocesoarelor.

Descriere generală

Ideea jocului este una simpla si am prezentat-o succint si mai sus: este un joc single-player in care jucatorul trebuie sa doboare cat mai multe tinte intr-un timp limitat. Perioada de joc este data de timpul pe care il face o tinta de la aparitia pe ecran pana la atingerea solului (mai precis cand prima tinta atinge solul jocul se opreste si este afisat punctajul obtinut). Inceperea jocului se realizeaza prin apasarea butonului 'Start'.

Practic jucatorul va vedea pe LCD (unul de Nokia 3310) niste 'chicken' venind de sus si va trebui sa se deplaseze stanga-dreapta si sa le doboare astfel incat nici una sa nu ajunga jos.

__Hardware design__

  • Listă de piese
    • Placa de baza realizata la jumatatea semestrului tutorial
    • Placa de test pentru lipirea noilor componente
    • LCD de Nokia 3310 + placa imprimata pentru a ajuta conectara acestuia cu restul proiectului
    • Piese: 10 rezistente (5 de 3k3 si 5 de 1k8), 4 butoane, un condensator 10μF, bareta + adaptor, 2 diode 1N4000, 12 pini 'mama'(ce fac legatura dintre cele 2 placi)
  • Schema din Proteus

  • Se observa ca aici conexiunile cu LCD-ul sunt facute de la placa de baza printr-un divizor de tensiune format din cele 10 rezistente. Pinii corespund astfel:
    1. SLCK cu PA6
    2. SDIN cu PA2
    3. D/C cu PA5
    4. SCE cu PA3
    5. RESET cu PA4

Se vede din schema de ma sus si corespondenta butoanelor, legate la portul C pe pinii PC2, PC3, PC4 si PC5. Singurii pinii despre care nu am vorbit sunt VDD, Vout si GROUND. VDD-ul se conecteaza prin cele 2 diode la Vcc-ul placii de baza(acele diode au impreuna cu divizorul de tensiune rolul de a micsora tensiunea ce vine de la microcontroler spre LCD), iar GROUND-ul se conecteaza bineinteles cu toate celelalte ground-uri. Conexiunea dintre GROUND si Vout se realizeaza printr-un condensator de 10μF.

Conexiunea este realizata printr-o placutza imprimata:

__Software Design__

Descrierea codului aplicaţiei (firmware):

  • Mediul de dezvoltare: AVR Studio
  • Librarii si surse 3rd-party: nokia3310library ce se afla aici
    • in acest API se gasesc functii si macrouri pentru foarte multe operatii pe Nokia LCD, spre exemplu lucrul si pozitionarea cursorului, setarea pixelilor, iluminare LCD si, bineinteles, functia de afisare.
    • intial trebuie modificate macrourile ce definesc ce pini ai microcontrolerului sunt conectati la LCD (acest lucru se realizeaza in lcd.h)
    • corespondenta aceasta a pinilor am prezentat-o si mai sus

__ Rezultate Obţinute__

Din pacate nu am reusit sa mai implementez partea software a proiectului din lipsa de timp, insa partea hardware a fost testata si corespunde cerintelor intiale. Urmeaza sa completez aceasta pagina de wiki cu cursele necesare in perioada de timp urmatoare. O imagine a proiectului final este: Download: urmeaza sa fie adaugate sursele

__Bibliografie/Resurse__

pm/prj2010/cvasile/spaceinvaders.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