This shows you the differences between two versions of the page.
pm:prj2022:dene:tetris [2022/05/27 09:16] dorian.verna [Software Design] |
pm:prj2022:dene:tetris [2022/05/27 23:49] (current) dorian.verna [Rezultate Obţinute] |
||
---|---|---|---|
Line 34: | Line 34: | ||
* Fire | * Fire | ||
* Servomotor | * Servomotor | ||
+ | |||
+ | {{:pm:prj2022:dene:schema.png?700|}} | ||
+ | |||
+ | == Schema pentru o matrice == | ||
+ | {{:pm:prj2022:dene:better_matrix_view_verna_dorian.png?500|}} | ||
+ | == Schema pentru tot ansamblul de 4 matrice == | ||
+ | {{:pm:prj2022:dene:matrix_whole_view_verna_dorian.png?500|}} | ||
+ | == Schema pentru butoane == | ||
+ | {{:pm:prj2022:dene:buttons_verna_dorian.png?500|}} | ||
+ | == Schema pentru display == | ||
+ | {{:pm:prj2022:dene:display_verna_dorian.png?500|}} | ||
+ | == Schema pentru microcontroller, potentiometru si servomotor == | ||
+ | {{:pm:prj2022:dene:atmega_pot_servo_verna_dorian.png?500|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
Line 48: | Line 61: | ||
Dupa aceea, a trebuit a implementez rotirea pieselor pentru urmatoarele butoane (rotire stanga, respectiv rotire dreapta). Ca dificultate, aceasta a fost cea mai grea parte din tema. Practic, aici folosesc o matrice auxiliara unde efectuez rotirea, iar daca aceasta este posibila, atunci translatez pozitiile care vor fi ocupate dupa rotire de piesa in matricea originala. Apoi am implementat stergerea unor linii si shiftarea in jos a liniilor de deasupra. | Dupa aceea, a trebuit a implementez rotirea pieselor pentru urmatoarele butoane (rotire stanga, respectiv rotire dreapta). Ca dificultate, aceasta a fost cea mai grea parte din tema. Practic, aici folosesc o matrice auxiliara unde efectuez rotirea, iar daca aceasta este posibila, atunci translatez pozitiile care vor fi ocupate dupa rotire de piesa in matricea originala. Apoi am implementat stergerea unor linii si shiftarea in jos a liniilor de deasupra. | ||
+ | Dupa aceea, am conectat display-ul LCD si am facut posibila afisarea unor mesaje precum cel care afiseaza scorul pe ecran, urmand ca, mai apoi, sa introduc si potentiometrul care sa faca posibila alegerea dificultatii (numar de linii care trebuie sterse si viteza piese). | ||
+ | |||
+ | La sfarsit de tot am introdus si servomotorul pe care l-am pus intr-o cutie. In momentul in care se castiga jocul, servomotorul deschide cutia si jucatorul isi poate lua premiul. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Proiectul arata in felul urmator: |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
+ | {{:pm:prj2022:dene:verna_dorian_poza_proiect.jpeg?600|}} | ||
+ | |||
+ | Mai jos este un demo: | ||
+ | |||
+ | * https://drive.google.com/file/d/1kuXiZmQBcJuJSCksjTUPsMBVEaROCct0/view?usp=sharing | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Am intalnit o serie de concepte noi in timpul realizarii proiectului. Am invatat cum sa conectez cele 4 matrice la microcontroller si sa realizez operatii cu servomotorul si display-ul. | ||
+ | Mare parte din proiect a constat in programarea jocului, acolo am intampinat si cele mai mari dificultati, dar per total consider ca a fost o experienta reusita:) | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | Mai jos este link-ul catre repo-ul meu de github unde am realizat implementarea proiectului: |
- | 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> | + | |
+ | * https://github.com/dorianverna17/Tetris | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | * 12.05 - alegere tema | ||
+ | * 15.05 - 16.05 - cumparare piese | ||
+ | * 15.05 - realizare miscare piese pe matrice | ||
+ | * 17.05 - completare joc | ||
+ | * 18.05 - conectare display, potentiometru | ||
+ | * 19.05 - realizare mecanism servomotor si legare la microcontroller | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * https://ocw.cs.pub.ro/courses/pm |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://create.arduino.cc/projecthub/akshayjoseph666/interface-i2c-16x2-lcd-with-arduino-uno-just-4-wires-273b24 |
- | </note> | + | * https://docs.arduino.cc/learn/electronics/servo-motors |
<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> | ||