This is an old revision of the document!
!!! pls wait im writing it right now :(
Acest proiect are ca scop dezvoltarea unui dispozitiv capabil sa rezolve un cub Rubik 3x3x3, pornind de la orice configuratie initiala valida.
Un solver de cub rubik foloseste in mod normal 6 steppere (cele din competitiile de speed solving robots), implementarea mea incearca o varianta diferita, folosind numai 3 steppere. (totusi nu pot spune ca as fi un pionier al acestei abordari)
Miscarile posibile de actionare ale unui cub Rubik sunt urmatoarele: L (left clockwise), L' (left counterclockwise), R (right CW), R' (right CCW), F (front CW), F' (front CCW), B (back CW), B' (back CCW), U (up CW), U' (up CCW), D (down CW), D' (down CCW). Avand numai 3 steppere (left, right si back), doar 6 dintre aceste mutari sunt posibile as-is.
Pentru a putea executa celelalte miscari, se introduce un nou tip de miscare, rotateBackwards si rotateForward. Acest tip de mutare este realizata prin actionarea simultana a stepperelor laterale. In urma acesteia, cubul va fi rotit cu totul in jurul axei formate de cele doua steppere diametral opuse. (de exemplu, fata Up va ajunge sa fie pozitionata unde se afla anterior fata Back, prin aplicarea unui rotateBackwards sau in urma a 3 miscari rotateForward)
inca mai scriu la el, o sa revin asap cu restul detaliilor :))
asta e interfata grafica din python care o sa solveuie cubul si dupa trimite pe seriala comenzile ptr motoare. solutiile de cub vin normal in forma unei liste ordonate de miscari din setul: U (up), D(down), L(left), R(right), F(front), B(back), U'(up reverse), U2(up de 2 ori) etc.
inainte sa fie trimsie catre arduino, respectiv catre motoare, trebuie aplicate niste transformari pentru a ramane in spatiul a 3 motoare ce pot fi controlate doar din dir si step. astfel o miscare de tip R ar fi straight forward, dar una precum U' ar insemna intai rotirea intregului cub cu fata de sus catre spate, prin actionarea celor doua motoare laterale simultan, urmat de o miscare de rotire a motorului din spate.
in imagine se poate vedea in dreapta interfata grafica in care se vaa introduce configuratia initiala a cubului. jos in terminal se vede solutia intoarsa dupa solve and send. in stanga este o solutie de pe un site de solver cub de pe net. se poate observa ca e acelasi raspuns.
btw am luat un cnc shield ca daca tot n am mai avut timp de pcb macar sa nu fie cablaraie prea intensa. o sa actualizez cat de curand restul paginii.
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.