Proiectul reprezinta o replica proprie a renumitului joc „Chicken Invaders”. Scopul jocului este sa omori toate gainile. Deplasarea obiectului manipulat de jucator se va face prin apasarea butoanelor stanga-dreapta, precum si tragerea (butonul 3). Am ales acest joc, deoarece l-am jucat de foarte multe ori in copilarie. Consider ca realizarea acestui proiect va starni emotiile din copilarie ale colegilor mei si eu imi voi pune in practica cunostintele acumulate pana in acest moment.
Controlul navetei spatiale se realizeaza din butoane(stanga, dreapta si tragerea). Jocul va fi proiectat pe un LCD color.
Lista de piese:
Nume componente | Cantitate | Pret(RON) |
---|---|---|
Shield LCD 2.2” | 1 | 50 |
Placa de test | 1 | 7 |
Fire mama-mama | 40 | 14 |
Butoane | 3 | 9 |
Regulator tensiune | 1 | 2 |
Condensator electric 10uF 16V | 1 | 0.75 |
Placa de baza | 1 | 8 |
Piese de baza | X | 30 |
Componentele au fost cumparate de pe site-ul www.optimusdigital.ro si de la magazinele de pe strada Maica Domnului.
Specificatii:
Item | Description |
---|---|
Size | 2.2 inch |
Resolution | 240(RGB) x 320 |
Interface | 4-Wire SPI |
Color Depth | 262K/65K |
Technology Type | a-Si |
Pixel Pitch (mm) | 0.141×0.141 |
Pixel Configuration | R.G.B. Vertical Stripe |
Display Mode | TM with Normally White |
Surface Treatment(Up Polarizer) | Clear Type(3H) |
Viewing Direction | 6 o’clock |
Gray Scale Inversion Direction | 12 o’clock |
Pentru a realiza acest proiect am avut nevoie de:
Tot codul jocului este scris in fisierul main.c. Imaginile desenate pe LCD sunt reprezentate prin matrici, un element al matricei reprezinta un pixel, iar valoare elementului reprezinta culoarea(LCD-ul este color). Pentru fiecare imagine(matrice), am scris o functie care deseneaza/sterge imaginea de pe LCD. Racheta este manipulata din butoane. La apasarea unui buton, se actualizeaza variabilele care mentin pozitia actuala a obiectului. Daca in ciclul curent, al buclei while, valorile pozitiei (X,Y) difera de ciclul precedent, atunci este stearsa si desenata din nou pe noua pozitie.
Cu “rand” generez numere aleatoare, care reprezinta numarul gainii care va arunca un uo. Cu o frecventa stabilita ciclu de aruncarea oului se repeta.
Pentru tratarea coloziunilor dintre ou-rachete si proiectil-gaina, la fiecare iteratie verific daca pozitia oului se intersecteaza cu pozitia rachetei sau daca pozitia proiectilului se intersecteaza cu pozitia unui gaini.
La terminarea jocului, acesta se poate restarta apasand butoanele “standa” si “dreapta”.
Sunt foarte multumit si mandru de acest proiect, pe care l-am realizat de la 0. Multumesc intregii echipe de PM! A fost o experienta destul de placuta!
* Cablaj imprimat 2016 http://cs.curs.pub.ro/wiki/pm/cablaj/proiect2016
* ili9341 avr library