This shows you the differences between two versions of the page.
pm:prj2022:cstan:500 [2022/05/27 22:45] rares.grumezescu [Schema electrica] |
pm:prj2022:cstan:500 [2022/05/27 23:52] (current) rares.grumezescu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 19: | Line 19: | ||
{{:pm:prj2022:cstan:diagrama.png?700|}} | {{:pm:prj2022:cstan:diagrama.png?700|}} | ||
- | ====== Hardware Design ====== | + | ===== Hardware Design ===== |
- | ===== Schema electrica ===== | + | ==== Schema electrica ==== |
- | {{:pm:prj2022:cstan:schema_dino.png?100|}} | + | {{:pm:prj2022:cstan:schema_dino.png?700|}} |
- | ===== Hardware Design===== | + | ==== Componente ==== |
<note tip> | <note tip> | ||
Line 49: | Line 49: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | In interiorul functiei loop se apeleaza functia intro(), responsabila de alegerea nivelului de dificultate. Odata aleasa dificultatea, se va stabili si viteza cu care jocul va functiona, folosindu-se variabila "frame". Tot in loop se face trecerea de la un nivel la altul, apelandu-se succesiv functiile level1(), level2() si level3(). De asemenea, in loop se tine si evidenta vietilor de care dispune player-ul, aprinzandu-se atatea led-uri cate vieti ramase mai are player-ul. Cand numarul de vieti ajunge la 0, atunci se afiseaza pe ecran mesajul "GAME OVER". |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | Codul este impartit in mai multe functii, fiecare ocupandu-se de un alt aspect al functionarii lui. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | Functia initializeGraphics(): initializeaza obiectele care vor aparea pe harta, creand caractere specifice ce se vor afisa repetitiv in fiecare cadru succesiv. |
+ | |||
+ | Functia drawHero() se ocupa de: desenarea jucatorului in fiecare ipostaza a jocului, stabileste daca jucatorul s-a lovit sau nu de un obstacol, respectiv actualizeaza si afiseaza scorul pe ecran. | ||
+ | |||
+ | Functiile level1(), level2(), level3(): sunt functii care seamana ca si functionalitate una cu alta; ele actualizeaza cadrele pe ecran si tot in interiorul lor se porneste buzzer-ul daca player-ul s-a lovit de un obstacol. Acestea primesc ca parametru un numar cu care, impreuna cu functia delay, vor reprezeta succesiuna cadrelor cu viteza corespunzatoare. | ||
+ | |||
+ | Functia intro(): se ocupa cu stabilirea dificultatii la care player-ul va juca. | ||
+ | |||
+ | Functiile loop() si setup() au aceeasi functionalitate ca si in laborator. | ||
</note> | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{:pm:prj2022:cstan:dino1.jpeg?200|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | {{:pm:prj2022:cstan:dino2.jpeg?200|}} |
- | </note> | + | {{:pm:prj2022:cstan:dino3.jpeg?200|}} |
+ | {{:pm:prj2022:cstan:dino4.jpeg?200|}} | ||
+ | {{:pm:prj2022:cstan:dino5.jpeg?200|}} | ||
+ | {{:pm:prj2022:cstan:dino6.jpeg?200|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Acest proiect reuseste sa se foloseasca de componente hardware ca sa evidentieze anumite aspecte ale codului jocului. Astfel, evenimente precum o coliziune sau pierderea unei vieti sunt reprezentate folosind efecte sonore sau luminoase extrem de sugestive, prin care cel care se joaca jocul acesta sa perceapa mult mai usor ceea ce se intampla in joc. Efectele sonore atrag mult mai bine atentia in momentul in care jucatorul s-a lovit de un obstacol, iar efectul produs de led-uri este unul extrem de sugestiv, in momentul in care jucatorul pierde vietile puse la dispozitie. | ||
+ | Consider ca proiectul este bine realizat, personal fiind multumit de rezultat. | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | 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ă ;-). | + | {{:pm:prj2022:cstan:proiect_pm.zip|}} |
- | + | ||
- | 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> | </note> | ||
Line 75: | Line 87: | ||
<note tip> | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | **16 mai 2022:** inceperea realizarii montajelor\\ |
+ | **18 mai 2022:** finalizarea realizarii montajelor\\ | ||
+ | **19 mai 2022:** inceperea scrierii codului aplicatiei\\ | ||
+ | **26 mai 2022:** finalizarea scrierii codului aplicatiei\\ | ||
+ | **27 mai 2022:** finalizarea paginii proiectului | ||
</note> | </note> | ||
Line 81: | Line 97: | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://www.youtube.com/watch?v=qR8KLEHuMkc\\ |
+ | https://www.youtube.com/watch?v=VPGRqML_v0w\\ | ||
+ | https://www.youtube.com/watch?v=e1FVSpkw6q4\\ | ||
+ | https://www.arduino.cc/reference/en/libraries/liquidcrystal/createchar/ | ||
+ | https://create.arduino.cc/projecthub/jehankandt/arduino-16x2-lcd-display-with-i2c-hello-world-4b1a41 | ||
</note> | </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> | ||