This shows you the differences between two versions of the page.
|
pm:prj2026:farhad_ali.gul:teodora.plopeanu [2026/05/20 00:02] teodora.plopeanu [Software Design] |
pm:prj2026:farhad_ali.gul:teodora.plopeanu [2026/05/20 00:23] (current) teodora.plopeanu [Descriere generală] |
||
|---|---|---|---|
| Line 42: | Line 42: | ||
| === Schema bloc === | === Schema bloc === | ||
| - | {{:pm:prj2026:farhad_ali.gul:screenshot_2026-05-03_at_18.31.52.png?600|}} | + | |
| + | {{:pm:prj2026:farhad_ali.gul:screenshot_2026-05-20_at_00.22.56.png?600|}} | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| Line 100: | Line 101: | ||
| </code> | </code> | ||
| - | și activează buzzerul pentru feedback auditiv. | + | și activează buzzerul pentru feedback auditiv si actiunea de tragere in joc. |
| Sunetul de tragere este simulat prin varierea frecvenței semnalului PWM generat de Timer2. Incepe cu o frecvență ridicată (~900 Hz), care scade rapid către frecvențe joase (~120 Hz), simulând impactul unui foc de armă. | Sunetul de tragere este simulat prin varierea frecvenței semnalului PWM generat de Timer2. Incepe cu o frecvență ridicată (~900 Hz), care scade rapid către frecvențe joase (~120 Hz), simulând impactul unui foc de armă. | ||
| Line 109: | Line 110: | ||
| === Jocul de pe PC === | === Jocul de pe PC === | ||
| - | Jocul este dezvoltat în Python, folosind biblioteca Pygame pentru randarea grafică și gestionarea logicii de joc. Aplicația citește datele primite de la microcontroller prin portul serial al calculatorului și le folosește pentru actualizarea poziției țintei pe ecran. | + | Jocul este dezvoltat în Python, folosind biblioteca Pygame. |
| - | Coordonatele transmise de firmware controlează pozitia userului pe ecran, iar valoarea asociată variabilei 'shot' declanșează acțiunea de tragere în joc. | + | Jocul este de tip arcade, bazat pe o mecanica de tipul "light in the dark". |
| - | Jocul este de tip arcade, bazat pe o mecanica de tip "light in the dark". Pentru a castiga, trebuie sa tintesti cat mai multi monstri intr-un interval dat de timp. | + | Jucătorul are 60 de secunde să elimine cât mai mulți monștri, vizibili doar când intră în raza de lumină. Există 6 tipuri de monștri, diferențiați prin culoare și punctaj. |
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | În urma implementării, am obtinut un joc interactiv care funcționează conform cerințelor propuse. | + | În urma implementării, am obtinut un joc interactiv care funcționează conform cerințelor propuse. Integrarea inputului fizic ofera o experienta de joc captivanta. |
| - | Senzorul MPU6050 transmite date de accelerație către PC prin USART, iar aplicația le folosește pentru a controla cursorul în joc în timp real. Butonul de trigger declanșează acțiunea de tragere prin întrerupere hardware (ISR pe INT0), cu feedback auditiv asigurat de buzzerul pasiv controlat prin PWM pe Timer2. Jocul integrează complet inputul fizic. | + | Senzorul MPU6050 transmite date către PC prin USART, iar aplicația le folosește pentru a controla cursorul în joc în timp real. Butonul de trigger declanșează acțiunea de tragere prin ISR, cu feedback auditiv generat de buzzerul pasiv controlat prin PWM pe Timer2. |
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| - | Proiectul demonstrează integrarea unui sistem embedded cu o aplicație software în timp real. Utilizarea întreruperilor hardware pentru buton elimină latența specifică polling-ului, iar comunicația USART asigură transferul continuu al datelor de poziție. Sistemul poate fi îmbunătățit prin creșterea frecvenței de eșantionare a senzorului și adoptarea unui protocol serial mai compact, pentru o experiență de joc mai fluidă. | + | |
| + | Proiectul demonstrează cum un sistem embedded poate fi integrat cu o aplicație software în timp real. | ||
| + | |||
| + | Întreruperile hardware elimină latența specifică polling-ului, iar comunicația USART asigură transferul continuu al datelor. | ||
| + | |||
| + | Ca îmbunătățiri posibile, creșterea frecvenței de eșantionare și o comunicare seriala mai compacta ar putea crește fluiditatea controlului. | ||
| ===== GitHub ===== | ===== GitHub ===== | ||
| Line 127: | Line 133: | ||
| </note> | </note> | ||
| + | |||
| ===== Jurnal ===== | ===== Jurnal ===== | ||