This is an old revision of the document!
Student: Andrei Petrea
Grupa: 331CC
PacMan
Introducere
PacMan este un joc arcade dezvoltat de compania Namco in anul 1980, fiind considerat unul dintre cele mai influente jocuri din toate timpurile, fiind responsabil pentru popularizarea jocurilor arcade si a jocurilor video in constientul maselor, generand venituri de 14 miliarde de dolari si vanzand peste 43 de milioane de unitati.
Scopul proiectului meu este sa portez acest joc, de pe arcade pe un chip Arduino, pentru a ma putea juca acest joc intr-un mod cat mai autentic cu masina originala cu care venea odinioara. Ma voi folosi de butoane, ecran lcd, difuzor si led-uri pentru a realiza acest lucru.
Descriere generală
Voi folosi un Arduino Uno pe post de unitate de procesare, la care voi atasa un ecran de 1.8” LCD pentru a afisa jocul,
un speaker pentru a canta melodii si 5 butoane pentru a controla cele 4 directii (sus, jos, stanga, dreapta) + buton de start. Ecranul vine si cu un adaptor SD prin intermediul caruia care voi afisa imagine de start. La final ma voi folosi de un LED RGB pentru a afisa finalul (RED - pierdere, BLUE - castig).
Hardware Design
Lista de piese
Arduino Uno R3 ATMega328P
Ecran LCD 1.8” SPI
DFROBOT - FIT0449 - Add-On Board, Speaker Module, Gravity Series, Arduino, Digital Interface
Modul adaptor SD
5x Butoane
Modul LED RGB
Breadboard
Fire Jumper
Rezistente
Schema electrica
Pinii folositi
Butoanele - cele 5 butoane vor fi conectate la accelasi pin analogic A0, folosindu-ma de ADC pentru am-mi da seama ce buton este apasat.
Ecran LCD 1.8” SPI - ecranul foloseste SPI, asa ca voi trebuie sa conectez pinii MOSI, MISO si CS, puse pe pinii 11, 12, si 10 respectiv. Pe langa acestia, voi connect pinul de clock SCK la 13, la fel si pinul SCL, iar pinul SDA la 11, la fel ca cel MOSI. Pinul de reset va fi la pinul 8 iar A0 la pinul 9.
Modul SD - acesta vine integrat cu ecranul, asa ca toti pinii lui SPI vor fi cei ai ecranului, cu exceptia CS-ului pe care l-am setat pe pinul 4.
Speaker - Acesta vine cu o interfata Gravity, care are 3 pinii: GND, VCC si Signal, acest din urma mergand conectat la orice pin digital, asa ca am ales pinul 7.
Modulul LED RGB - il voi connecta la 3 pini digital cu PWM, acestia fiind 5, 3 si 6.
Software Design
Mediu de dezvoltare
Arduino IDE, limbaj C/C++
Biblioteci folosite
SD.h → folosita pentru interfatarea cu cardul SD
TFT.h → folosita pentru afisarea pe display
SPI.h → folosita pentru SD
-
-
Link GitHub
Descrierea implementarii
Start-up screen
La inceput, afisez o imagine sugestiva cu PacMan, acompaniata de muzica clasica si aprinderea led-ului in culoarea Verde. In cazul in care apar erori la incarcarea imaginii, voi afisa un mesaj pe ecran.
void intro() {
if (!imageError) {
TFTscreen.image(logo, 20, 25);
} else {
TFTscreen.text("Va saluta", 40, 64);
TFTscreen.text("Andrei", 64, 90);
}
analogWrite(PIN_GREEN, 64);
playPacmanIntro();
TFTscreen.text("Press START", 18, 85);
}
Game Loop
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
27.04 - Initializat pagina de proiect
03.05 - Adaugat documentatia initiala
05.05 - Adaugat imaginea de coperta
16.05 - Adaugat schema electrica + detalii pini + jurnal
19.05 - Adaugat legarea initiala
21.05 - Adaugat design software initial + bibliografie + legarea finala
Bibliografie/Resurse
Resurse Hardware
Resurse Software