This shows you the differences between two versions of the page.
pm:prj2022:agmocanu:pong_game [2022/05/09 10:44] mihai.stefan0811 created |
pm:prj2022:agmocanu:pong_game [2022/05/26 16:38] (current) mihai.stefan0811 [Rezultate Obţinute] |
||
---|---|---|---|
Line 3: | Line 3: | ||
Proiectul consta intr-un joc de tipul Pong in care utilizatorul isi va putea controla "caracterul" prin intermediul butoanelor si va putea juca impotriva unui alt utilizator real sau impotriva calculatorului propriu-zis, totul fiind afisat pe un ecran LCD. | Proiectul consta intr-un joc de tipul Pong in care utilizatorul isi va putea controla "caracterul" prin intermediul butoanelor si va putea juca impotriva unui alt utilizator real sau impotriva calculatorului propriu-zis, totul fiind afisat pe un ecran LCD. | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Imediat dupa startul programului, jucatorul va putea alege modul de joc (single/multi player), "caracterul" controlat de acesta fiind reprezentat de un dreptunghi care se poate deplasa pe axa Oy (in sus/jos) prin intermediul celor doua butoane. Cei doi jucatori sunt nevoiti sa "respinga" mingea reprezentata de un cerc care, in momentul atingerii uneia dintre laturi (stanga/dreapta), va incrementa scorul utilizatorului corespunzator si jocul se va relua. Jocul se opreste in momentul in care unul dintre utilizatori atinge un scor prestabilit, in momentul respectiv afisandu-se un mesaj specific. | + | Imediat dupa startul programului, jucatorul va putea alege modul de joc (single/multi player), "caracterul" controlat de acesta fiind reprezentat de un dreptunghi care se poate deplasa pe axa Oy (in sus/jos) prin intermediul celor doua butoane. Cei doi jucatori sunt nevoiti sa "respinga" mingea reprezentata de un cerc care, in momentul atingerii uneia dintre laturi (stanga/dreapta), va incrementa scorul utilizatorului corespunzator si jocul se va relua. Jocul se opreste in momentul in care unul dintre utilizatori atinge un scor prestabilit, ulterior afisandu-se un mesaj specific. |
{{:pm:prj2022:agmocanu:pong_diagram.drawio.png?600|}} | {{:pm:prj2022:agmocanu:pong_diagram.drawio.png?600|}} | ||
Line 9: | Line 9: | ||
Listă de piese: | Listă de piese: | ||
- | * Arduino UNO | + | * Arduino Mega |
* Breadboard | * Breadboard | ||
* Ecran LCD | * Ecran LCD | ||
Line 16: | Line 16: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | In cadrul dezvoltarii acestui proiect am utilizat libraria Adafruit cu scopul de a putea folosi display-ul LCD pe care jocul va fi afisat. In prima instanta am "umplut" ecranul cu culoarea negru, jucatorii fiind reprezentati de cate o linie cu dimensiunea de 90 de pixeli de culori diferite (rosu/verde). Mingea este afisata printr-un simplu pixel alb si, de asemenea, cele 4 laturi sunt desenate prin intermediul unor linii de culoare alba. | ||
- | + | De fiecare data cand mingea atinge unul dintre cei doi "pereti" verticali, pe ecran va fi afisat timp de 5 secunde scorul corespunzator celor doi jucatori, iar ulterior jocul se va relua. Acesta va fi incheiat in momentul in care unul dintre jucatori atinge scorul 5, imediat dupa afisandu-se un mesaj specific cu id-ul player-ului castigator. | |
- | <note tip> | + | |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{:pm:prj2022:agmocanu:img-0378.jpg?300|}}{{:pm:prj2022:agmocanu:img-0377.jpg?300|}}{{:pm:prj2022:agmocanu:img-0379.jpg?300|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Procesul de implementare a proiectului mi-a adus multa satisfactie deoarece, pe langa aplicarea notiunilor invatate la laborator, am reusit sa deprind si informatii cu privire la functionarea si "programarea" unui display LCD. Pe langa asta, dezvoltarea de jocuri reprezinta o pasiune pentru mine intrucat rezultatele efortului sunt, in general, tangibile si imediate. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2022:agmocanu:333cb_stefan_mihai.zip|}} |
- | 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**. | ||
- | </note> | ||
- | ===== Jurnal ===== | + | ===== Bibliografie/Resurse ===== |
- | <note tip> | + | PM Labs |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
- | + | ||
- | ===== Bibliografie/Resurse ===== | + | |
- | <note> | + | https://www.youtube.com/watch?v=D3lv0eySz8A&ab_channel=TechToTinker |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||