Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:amocanu:ball_maze [2021/06/02 16:41]
rares.badita [Descrierea Generala]
pm:prj2021:amocanu:ball_maze [2021/06/02 18:21] (current)
rares.badita [Rezultate obtinute]
Line 1: Line 1:
-====== Ball Maze ======+====== Ball Maze🏀 ======
 ===== Autor ===== ===== Autor =====
 [[rares.badita@stud.acs.pub.ro|Badita Rares-Octavian]] [[rares.badita@stud.acs.pub.ro|Badita Rares-Octavian]]
Line 6: Line 6:
 Proiectul implementeaza un joc format dintr-un labirint ce trebui parcurs cu o minge. Proiectul implementeaza un joc format dintr-un labirint ce trebui parcurs cu o minge.
 Imputul este dat printr-un joystick ce controleaza inclinatia labirintului. Imputul este dat printr-un joystick ce controleaza inclinatia labirintului.
-Scopul jocului este de aduce migea din punctul A in punctul B folosind doar inclinatia labirintului.+Scopul jocului este de aduce migea din punctul A in punctul B si inapoi in A folosind doar inclinatia labirintului.
  
 ===== Descrierea Generala ===== ===== Descrierea Generala =====
Line 34: Line 34:
  
 {{pm:​prj2021:​amocanu:​poza-deasupra-baditarares.jpeg?​800|800}} {{pm:​prj2021:​amocanu:​poza-deasupra-baditarares.jpeg?​800|800}}
 +
 +Designul este unul modular (labirintul poate fi dat jos usor prin desfacerea celor 2 piulite si desurubarea senzorului de lumina), ceea ce face ca labirintul sa poata fi inlocuit usor cu designuri noi.
 ===== Software Design ===== ===== Software Design =====
 Un ciclu in functia loop() are urmatorii pasi: Un ciclu in functia loop() are urmatorii pasi:
Line 45: Line 47:
 Asadar am ales functia de gradul 1 : //f(x) = 30 / 1024 * x//, unde x este valoare de la joystick pe una dintre cele 2 axe, pentru a transforma inputul in output pentru servo motoare. Asadar am ales functia de gradul 1 : //f(x) = 30 / 1024 * x//, unde x este valoare de la joystick pe una dintre cele 2 axe, pentru a transforma inputul in output pentru servo motoare.
 Intucat outputul este de formt int, functia nu este discreta si se comporta defapt ca //​parte_intreaga_inferoara( 30 / 1024 * x )//. Intucat outputul este de formt int, functia nu este discreta si se comporta defapt ca //​parte_intreaga_inferoara( 30 / 1024 * x )//.
 +
 +Pentru a inregistra timpul de parcurgere al jocului, variabila //​game_state//​ se poate afla in 2 stari posibile: //ongoing// sau //​finished//​.
 +Starea //ongoing// este asociata citirii valorii 0 de la senzorul de lumina (lumina nu este blocata de bila), iar starii //​finished//​ ii este asociata valoarea 1.
 +
 +Un joc nou este terminat daca //​game_state//​ este //ongoing// iar de la senzor se citeste starea //​finished//​.
 +Un nou joc este inceput daca //​game_state//​ este //​finished//​ iar la senzor se citeste //ongoing// timp de minim 5 secunde consecutive.
 +Timpul in joc este calculat ca diferenta intere valorii millis() la finalul si inceputul jocului.
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
-[[https://​www.youtube.com/​watch?​v=FRgoBYZ7KT0| ​Videoclip cu jocul]] jucat de mine.+[[https://​www.youtube.com/​watch?​v=FRgoBYZ7KT0| ​Prezentarea unui demo al jocului.]]
  
 Afisarea timpilor la interfata seriala dupa fiecare joc inregistrat:​ Afisarea timpilor la interfata seriala dupa fiecare joc inregistrat:​
Line 53: Line 62:
 {{pm:​prj2021:​amocanu:​timpibaditarares.png?​800|800}} {{pm:​prj2021:​amocanu:​timpibaditarares.png?​800|800}}
 ===== Concluzie ===== ===== Concluzie =====
 +Montajul tehnic a fost cea mai grea parte a proiectului.
 +
 +Din punct de vedere al softwareului am ajuns la concluzia ca 30 de grade de miscare pe fiecare axa este alegerea optima.
 ===== Resurse ===== ===== Resurse =====
 Linkuri utile: Linkuri utile:
pm/prj2021/amocanu/ball_maze.1622641272.txt.gz · Last modified: 2021/06/02 16:41 by rares.badita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0