Autorul nu poate fi contactat momentan. Va rugam sa reveniti mai tarziu. : Login pentru adresa
Cubul Rubick este cel mai bine vandut puzzle din intreaga lume. In prezent 350 de milioane de cuburi au fost vandute, dar se estimeaza ca mai putin de 5.8% din populatia lumii poate rezolva celebrul joc.
Astfel ca proiectul meu va fi indreptat catre ceilalti 94.2%, avand ca scop indrumarea cuiva ce nu stie sa il rezolve inca cubul. Totul se va face prin afisarea pe un display a mutarilor ce vor fi efectuate de un om (pas cu pas) pentru a obtine solutia.
Starea initiala a cubului (culoarea tutror patratelor de pe fiecare fata) va fi introdusa manual folosind butoane. Dupa ce se vor calcula miscarile necesare, trecerea de la o mutare la alta se va realiza printr-un buton.
Initial ATMega324 va astepta introducerea celor 9×6 culori ale patratelor de pe fiecare fata a cubului, navigand prin matrice folosind butoanele din stanga diagramei. Vom pastra starea cubului intr-o matrice cub[6][3][3], iar pentru fiecare pozitie vom selecta culoarea.
Apasarea butonului Start va porni algoritmul de rezolvare al cubului. In momentul in care avem solutia, fiecare mutare va fi afisata pe display, navigand prin mutari folosind butonul “Next Move”. In functie de progresul proiectului si a resurselor hardware, voi incerca sa implementez si un buton de “Undo Move” pentru a remedia posibilele erori ale utilizatorului in momentul rezolvarii cubului.
Componente | Cantitate |
---|---|
ATMega324 | 1 |
Componente de baza | 1 |
Butoane | 12 |
Display LCD (probabil 128×160) | 1 |
Placa de test | 1 |
Schema Electrica
Codul a fost scris in Sublime, avand ca tutoriale exercitiile din laborator. Pentru a urca codul pe placuta am folosit bootloadHID oferit.
O parte din logica programului (reprezentarea mutarilor + algoritmul folosit) este inspirata de Cube-Solver si rubiks-cube, modificand codul pentru a avea o varianta C ce poate fi folosita pe ATMEGA324 + adaptarea la cerintele proiectului meu.
Culorile cubului sunt tinute codificat :
Starea initiala a cubului este citita si salvata intr-o matrice 3x3x6, el fiind privit in pozitie standard pe tot parcursul rezolvarii.
Pozitie standard : Albastru in fata, Alb sus, Portocaliu in dreapta
Mutarile folosite sunt codificate standard:
Programul va aplica algoritmul clasic de rezolvare
Se vor salva toti pasii necesari si se vor afisa pe ecran display-ul LCD, folosind codificarea mutarilor descrisa anterior.
In curs de dezvoltare, dar in final placuta te va indruma cu succes spre rezolvarea cubului Rubik.
In final, dezvoltarea acestui proiect m-a facut sa inteleg cum functioneaza dispozitivele din punct de vedere hardware (o sa am mai mult respect pentru un mouse de acum), dar si cat de complicat este sa faci un cod avand resursele limitate ale unui microcontroller.
Nefinalizat inca
Arhiva cod : rubikcode.zip
Scrierea codului si debug pentru a verifica daca mutarile duc la rezultatul asteptat dupa fiecare etapa a algoritmului.
Dupa partea Software, piesele folosite pentru a realiza proiectul.