Rubiks kuben Solver (4 / 7 steg)
Steg 4: Arduino skiss - kub lösa algoritm
[Kod: https://github.com/matt2uy/Cube-Solver]
Så i princip använder koden skrev jag kombinationer av driver, lastrum och plattform rotationer för att tillämpa algoritmer till kuben.
Det finns 3 viktigaste delar av min kod: algortihm, GUI (ange kub staten) och seriell kommunikation
Låt oss börja med den Arduino skiss. Det i grund och botten använder algoritmer för att manipulera kub färgerna:
1. det finns 6 röding matriser representerar varje sida av kuben.
2. Använd en grundläggande lager av lager metoden att lösa Rubiks kub, jag gjorde en funktion, cube_decide(), som går igenom varje steg eller kuben lösa process.
3. inom varje etapp, som cube_decide_cross() (lösa korset), programmet skulle kontrollera specifika platser av färger i kuben, och om en algoritm matchades med villkoret, kub notationen som 'U' (upp) eller hela algoritmer, som fix_cross_instance_1() skulle köras.
4. kub notationen och algoritmer att styra servo, till exempel push_cube() eller rotate_one().
Här är en grundläggande översikt över kodstruktur (lager av abstraktion):
Kub besluta funktioner < kub algoritmer < kub flytta funktioner < Servo funktioner < flytta funktion
Ett stort genombrott jag hade var att jag faktiskt simuleras kubens rörelser i programmet. Programmet tilldelar värden i matriser för att simulera och kub rotation. Detta sätt programmet kan simulera den kub flytten innan det fysiskt kör den.