Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul meu este jocul de X si 0 ce va fi implementat folosind un LCD grafic.
Vor exista 2 moduri de joc: Player vs Player si Player vs AI. Scopul proiectului este de a permite jocul dintre 2 utilizatori umani sau dintre un jucator uman si CPU. Modul de joc va putea fi selectat din cadrul unui meniu afisat pe LCD.
M-a impresionat jocul de Space Blaster de la ultimul laborator si am decis sa fac un joc pe LCD la proiect. Crearea unui joc de X si 0 ma va face sa inteleg si sa folosesc conceptele proiectarii pe microcontroller.
Consider jocul de X si 0 ca fiind unul distractiv si interactiv, numai bun de jucat atunci cand ai timp liber si vrei sa te duelezi cu un prieten sau cu un AI.
Schema bloc:
Descriere:
Jocul intra initial intr-un meniu afisat pe LCD, in care se poate alege modul de joc: Player vs Player sau Player vs AI. AI-ul va avea 3 dificultati: easy, medium sau hard. In cadrul matricei de 3×3 utilizatorul va putea alege casuta in care sa puna X sau 0 folosindu-se de 4 butoane prin care se va putea deplasa in sus, in jos, stanga, dreapta sau va insera X sau 0 in cadrul casutei dorite apasand butonul din centru. Cele 5 butoane vor fi pozitionate sub forma de cruce. Va mai exista inca un buton prin care se va intoarce jocul in meniu pentru a selecta alt mod de joc sau alta dificultate.
Un LED RGB va lumina in 2 culori diferite pentru a semnala care jucator este la rand. Langa matricea de joc va fi afisat si scorul in formatul: Wins Player 1 -Draws- Wins Player 2.
De asemenea, va exista si un buzzer care va da play la soundtracks si la anumite evenimente precum castigarea sau pierderea unui meci.
Lista componente:
Din pacate nu am putut duce proiectul la bun sfarsit. Am cumparat un LCD cu care nu am putut lucra, deoarece nu era compatibil cu placa ATMega 324, ci numai cu placile ce pot fi gasite in Arduino IDE. Am gasit biblioteci pentru modelul meu de LCD, insa nu am putut face nimic cu ele. Nu am putut rula niciun program de test, ecranul de LCD ramanand mereu gri. De asemenea, am avut probleme cu bootloader-ul care dintr-un oarecare motiv nu vroia sa detecteze placa cand aveam conectat si LCD-ul. Cand puneam un fisier .hex de test se bloca programul si primeam 'Not Responding'.
M-am apucat tarziu de proiect si mi-am dat seama destul de tarziu de aceste probleme. Aveam in gand sa fac X si 0 cu touchscreen, intrucat display-ul dispunea de asa ceva. Cum am un LCD useless, am incercat sa fac o solutie de avarie. Am scris cod pentru un X si 0 fara suport vizual folosind 6 butoane, un LED si un buzzer. Insa e destul de greu de jucat si de facut debugging pe asa ceva.
Proiectul complet ar fi fost scris in Programmer's Notepad, folosind avr-g++ drept compilator.
Ca rezultat final, am avut placa de baza conectata la un perfboard cu 6 butoane, un LED, un buzzer si un LCD care se aprinde dar care nu merge, fiind incompatibil cu ATMega324.
Am avut un proiect nefunctional din cauza LCD-ului. Nu am stiut ca o sa am asa mari probleme de compatibilitate, asa ca pe viitor o sa fiu mai atent cu ce cumpar. Ignorand acest aspect, proiectul a fost interesat pentru ca e printre putinele proiecte din facultate unde rezultatul este fizic si nu digital in totalitate.