Razvan-Iulian BOGHIU (67371) - Joc Car Racing Game
Autorul poate fi contactat la adresa: razvan.boghiu@stud.acs.upb.ro
Grupa 343C2.
Introducere
Proiectul consta in implementarea unui joc pe un display LCD. Va exista o masina desenata pe un display ce se va putea deplasa stanga-dreapta. Vor exista 4 butoane ce vor actiona ca dispozitive de intrare. Utilizarea butoanelor sus-jos va mari sau va micsora viteza de deplasare a masinii. Jocul se va sfarsi atunci cand va aparea o coliziune intre masini.
Consider alegerea acestui proiect ca fiind una potrivita, deoarece implica utilizarea laboratoarelor, lucru ce duce la o mai buna intelegere a materiei atat ca parte de hardware, cat si ca parte software.
Hardware Design
Lista piese necesare:
Software Design
Mediul de dezvoltare folosit:
Sublime Text pentru dezvoltarea codului
Eagle pentru realizarea schemelor electrice
HIDBootFlash pentru încărcarea programului pe placuta
Biblioteci folosite:
Funcții folosite:
init_buttons() - pentru initializarea butoanelor (setare intrare si activare rezistenta de pull-up)
check_pressed_up_button(), check_pressed_down_button(), check_pressed_left_button(), check_pressed_right_button() - pentru verificare daca butonul respectiv este apasat
generateNr(const int nMin, const int nMax) - generare numar aleator si modificare variabila “time” ce reprezinta seed-ul de fapt
draw_player (Car player) - desenare masina player
draw_enemy (Car_enemy enemy) - desenare masina inamici
delay_ms(unsigned int milliseconds) - functie ce permite utilizarea de _delay_ms cu o variabila ce nu mai trebuie sa fie constanta (cum e in cazul _delay_ms)
start_game() - afisare ecran de inceput
game_over() - afisare ecran in caz de terminare joc
collision_detector(Car_enemy enemies[MAX_ENEMIES],uint8_t enemies_active[MAX_ENEMIES],Car player) - detectare coliziuni intre player si inamici
main() - initializarea variabilelor si bucla principala a programului ce utilizeaza functiile amintite mai sus
Rezultate Obtinute
Jocul functioneaza cum mi-am propus initial, cu exceptia unor mici buguri ce tin de software si au ramas nerezolvate din cauza lipsei de timp.
Concluzii
Am reusit sa termin proiectul si sa implementez ceea ce mi-am propus, in ciuda unor probleme hardware legate de placuta de baza care mi-au intarziat mult implementarea software a proiectului.
Download
Jurnal
11 aprilie - Alegere proiect
21 aprilie - Finalizare schema bloc si lista de piese
4 mai - Finalizare schema electrica si lipirea placutei de baza, dar nu functiona corespunzator
14 mai - Rezolvare problema placuta (2 diode si mufa USB arse)
17 mai - Lipire butoane si display pe placa de dezvoltare
22 mai - Finalizare software si practic, finalizarea proiectului
* Documentația în format PDF