Autorul poate fi contactat la adresa: alenortep70@gmail.com
Ideea proiectului este realizarea jocului Pong pe un ecran LCD.
Pong este unul dintre primele jocuri video arcade lansat în 1972. Este un joc care simulează tenis de masa, in care fiecare jucator controleaza o platforma prin mutarea verticala a acesteia pe partea stanga sau pe partea dreapta a ecranului.
Primul jucator care ajunge la unsprezece puncte castiga. Aceste puncte sunt primite atunci cand adversarul pierde mingea. Am ales acest joc pentru ca este unul dintre jocurile copilariei mele, pe care il jucam cu drag alaturi de prieteni.
Jocul se va desfasura pe ecranul LCD-ului pe care vor aparea dupa apasarea butonului START: doua platforme, o minge in centru care va incepe sa se miste si scorul pentru fiecare jucator. Acestia vor avea cate doua butoane pentru a controla directia platformei in sus sau in jos. Atunci cand un jucator va primi un gol de la celalalt, se va aprinde ledul din directia lui, marcandu-se faptul ca nu a reusit sa isi apere poarta si oponentul sau va primi un punct. Primul care reuseste sa ajunga la scorul unsprezece castiga.
Lista de piese:
- Placa de baza cu microcontroller ATMega 324
- Componente de baza
- Modul LCD SPI de 1.8” (128×160)
- LED-uri
- Butoane
- Placa test
- Fire
Pentru realizarea proiectului am folosit masina virtuala pusa la dispozitie la laboratorul de PM. Implementarea programului am facut-o intr-un editor de text. Limbajul folosit este C iar compilarea se face utilizand un Makefile. Bibliotecile folosite sunt : avr/io.h, util/delay.h, avr/interrupt.h, iar pentru LCD : ST7735R_TFT.h, spi.h cele folosite si in laboratorul 5.
In fiserul game.c am creat functii pentru initializarea jocului, desenarea celor 2 paddle-uri si a mingii, mutarea celor doua paddle-uri, verificarea castigatorului (in Game_loop) si detectarea coleziunilor cu peretii si cu placile. In momentul in care un jucator pierde mingea se va afisa mesajul corespunzator pentru cel care a castigat si se va aprinde ledul celui care a pierdut. Am asociat pinii PA4 (platforma blue pierde) si PA5 (platforma pink pierde) pentru cele doua leduri. In fisierul pong.c am declarat si activat pinii butoanelor pentru platformele celor 2 jucatori si am apelat Game_loop pentru ca jocul sa reporneasca dupa ce unul dintre ei a pierdut.
Cel mai mult mi-a placut faptul ca am reusit sa realizez un proiect de la zero, de la partea de hard pana la soft. Una din cele mai complicate parti a fost lipirea componentelor si a firelor pe placuta de test. Din pacate nu am reusit sa rezolv problemele aparute, de aceea jocul nu are o functionalitate buna.
Arhiva: tudose_petronela_336cb_pong.zip
https://en.wikipedia.org/wiki/Pong
Placuta test:https://contactelectric.ro/constructia-de-prototipuri/922-placa-de-test-gaurita-verde-70x50mm-432-puncte-de-lipire-placa-universala-circuite.html
LCD:https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/1311-modul-lcd-spi-de-18-128x160.html?search_query=Lcd%20spi&results=41&fbclid=IwAR1fMLzsQMLSZYfg9U-HiWeIcdjHoYXlirGEpnbmgXwe2caH_1YzCM2letw
Rezistente pentru led-uri:https://www.optimusdigital.ro/ro/componente-electronice-rezistoare/1099-rezistor-025w-470.html?search_query=rezistor&results=71
Butoane:https://www.optimusdigital.ro/ro/butoane-i-comutatoare/1114-buton-cu-capac-rotund-rou.html?search_query=buton&results=198
Fire mama-mama:https://contactelectric.ro/fire-de-testare/212-set-cabluri-breadboard-cu-conectori-mama-mama-lungime-10cm-set-40-fire-colorate.html