This shows you the differences between two versions of the page.
pm:prj2023:alucaci:pong-game [2023/05/30 10:18] raluca_maria.pelin [Software Design] |
pm:prj2023:alucaci:pong-game [2023/05/30 11:08] (current) raluca_maria.pelin [Software Design] |
||
---|---|---|---|
Line 38: | Line 38: | ||
==Schema electrică:== | ==Schema electrică:== | ||
{{ :pm:prj2023:alucaci:pm_schematic.png?700 |}} | {{ :pm:prj2023:alucaci:pm_schematic.png?700 |}} | ||
+ | |||
+ | == Cablarea finală == | ||
+ | |||
+ | {{ :pm:prj2023:alucaci:whatsapp_image_2023-05-30_at_10.47.37.jpeg?600 |}} | ||
== Modelare și printare 3D == | == Modelare și printare 3D == | ||
Line 139: | Line 143: | ||
Pentru a detecta poziția mingii pe teren, se utilizează un senzor IR plasat aproape la jumătatea terenului. Senzorul măsoară distanța mingii fată de acesta atunci când mingea trece prin fața sa, apoi putând determina pe ce poziție ar trebui să se afle crosa de joc pentru a putea pasa mingea mai departe, cros fiind deplasată la poziția dorită folosind alogritmul de PID descris mai sus. | Pentru a detecta poziția mingii pe teren, se utilizează un senzor IR plasat aproape la jumătatea terenului. Senzorul măsoară distanța mingii fată de acesta atunci când mingea trece prin fața sa, apoi putând determina pe ce poziție ar trebui să se afle crosa de joc pentru a putea pasa mingea mai departe, cros fiind deplasată la poziția dorită folosind alogritmul de PID descris mai sus. | ||
- | Această strategie ar fi funcționat dacă senzorul utilizat nu ar fi avut un noise foarte sporit, însă, datorită spike-urilor ce apar în urma citirii valorii senzorului, nu se poate determina o poziție la care sa trebuiască mutată crosa, motiv pentru care am renunțat la input-ul din partea acestui senzor și am ales să ofer crosei o poziție random din 4 posibile poziții astfel încât să fie acoperită toată distanța porții din joc. | + | Această strategie ar fi funcționat dacă senzorul utilizat nu ar fi avut un noise foarte sporit, însă, datorită spike-urilor ce apar în urma citirii valorii senzorului, nu se poate determina o poziție la care sa trebuiască mutată crosa, motiv pentru care am renunțat la input-ul din partea acestui senzor și am ales să ofer crosei o poziție random din 4 posibile poziții astfel încât să fie acoperită toată distanța porții din joc, fiecare poziție acoperind un cadran din poartă, poarta având în total 4 cadrane. |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | **Video:** {{:pm:prj2023:alucaci:video_pm.zip|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | 2 playeri pot să joace în mod optim jocul de pong. Modul de autoplay pentru unul din jucători funcționează, deși este relativ ușor de a fi învins. |
+ | |||
+ | {{ :pm:prj2023:alucaci:whatsapp_image_2023-05-30_at_10.47.41.jpeg?300 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Realizarea acestui proiect a fost un proces interesant, însă mult mai complicat decât am anticipat întrucât am creeat toate componentele jocului de la 0. O altă parte interesantă a fost reutilizarea multor elemente pe care deja le aveam- am scos butoanele de joystick de la un joystick de PlayStation vechi, iar pe lângă motoare am folosit componente pe care le aveam dar cu care nu mă gândisem că pot realiza un proiect de o asemenea complexitate. | ||
+ | |||
+ | Cu această ocazie, am aflat mai multe despre particularitățile unui Arduino UNO, câteva din acestea fiind menționate în warning-urile documentației ca fiind bine de știut pe viitor, dar și despre particularitățile senzorilor și ce impact mare poate avea noise-ul unuia. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2023:alucaci:2players_final.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 ===== | ===== Jurnal ===== | ||
Line 172: | Line 177: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | - https://global.sharp/products/device/lineup/data/pdf/datasheet/gp2y0a21yk_e.pdf |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | - https://docs.arduino.cc/learn/electronics/servo-motors |
- | </note> | + | - https://forum.arduino.cc/t/demonstration-code-for-several-things-at-the-same-time/217158 |
<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> | ||