# Rubik Cube Solver (Program Help!) [closed]

I am Working on the final Year Project, The title says it all.

Before I explain my project I would like to state that I'm very much interested in the project not because of the deadline but rather the curiosity that has developed since I'm a speedcuber. I would request someone to solve this problem by either helping me through this subreddit or by any other medium (Skype). I've Excellent Knowledge in Mechanical but I'm not good in Programming.

I've researched about Rubik cube solvers online and have come along many prototypes, some use 4 face solvers some use only 2 face solvers and the best ones are the 6 face solvers. I decided to build a rubik cube solver of my own that uses 6 Stepper motors to solve the Cube using Herbert Kociemba's Algorithm to solve the cube within 24 steps (usually 21). I have a good knowlede about electrical and Mechanical aspects and I have implemented the same in my project however I am not able to understand the programming part. Could anyone help me out with the Program, The Project reference is taken from the Jay Flatland High Frequency Twister (which had held a World Record 0.9 Seconds, I'm not going for the speed). We are creating a replica of that robot with cheaper materials like wood instead of 3D printed Mounts.

We are using Cube Explorer to understand the pattern Cube Explorer Download!

The Electrical Material that we are using;

• NEMA 17 motors (Bi-Polar)

• A4988 Stepper Motor Driver

• Arduino

(We can choose between Uno or Mega (if any better options please suggest))

• Webcam (1 connected to the Laptop, unlike the project we are only using 1 webcam to capture the pattern first then decode it manually)

The Real concern is the programming part

I've explored the project's programming aspect as far as my senses enable it to & I have come to the following conclusion.

• The cube will be decoded (The images will be captured by A software called Cube Explorer)

• The same software will solve and generate the algorithm

• The Problem that I face is how to transfer the solution from the software to the Microcontroller (Arduino)

• There are 3 Arduino codes in the GitHub Page & sorry to say I'm not able understand even a single part of it.

I have a hard time understanding the concept of programming, I Request someone to help me explain the code or the programming of the code. The main part that has not entered in my mind is the web server concept that is used to transfer the solution from the Cube Explorer to the arduino (They have mentioned that a Python & C String Must be used). One more issue that I have a query about is the different codes that are used in the GitHub and what is its purpose

• You need to learn programming. This is too broad a topic for this site. I suggest using Sololearn. It's not as daunting as it may look. Then I suggest you come back and ask specific questions on the blocks of code you don't understand. – sa_leinad Dec 16 '17 at 6:08
• Also posted on reddit. – gre_gor Dec 16 '17 at 17:42

The Problem that I face is how to transfer the solution from the software to the Microcontroller

I don't want to sound unkind or unhelpful, but this is simply not a beginner's project. The thing you are worried about is really the least of your worries. You transfer the solution by writing some code in the IDE and selecting "Upload".

You have a number of issues to solve:

• Detecting what colours are in the current configuration. You mention a webcam, but the Uno or Mega are just not powerful enough to decode video images. Possibly multiple colour sensors would do. A video image could be overkill.

• Working out what transformations to apply to the cube to solve it.

• Sending the appropriate transformations via motors to the cube to move it to a new configuration.

Any one of these might occupy a reasonably experienced programmer quite some time.

I have a hard time understanding the concept of programming ...

You need to start with something simple, like pressing a switch which makes an LED turn on. Then maybe press a second switch to make it turn off.

Stack Exchange is not really a site where you can just request tuition in "how to program from scratch". There are many web sites that do that, I suggest you work your way through some simple examples. You don't even need to use an Arduino in the early stages.

They have mentioned that a Python & C String Must be used

Arduino Unos and Megas do not run Python, so I am wondering why they have this requirement.

• Well the Project has 2 modules. – Sagar Siwach Dec 16 '17 at 6:28
• First Module is the Cube Explorer that is used to detect the cube pattern and create a Solution that is to be transferred to the microcontroller (using webserver), Sorry but you have misunderstood me by telling that I dont have knowledge in programming means that I can't understand High Level Programs that consists Enumerators. I can Understand the basic arduino programs. (Arduino is not used for handling Image Processin it is for driving stepper motors) – Sagar Siwach Dec 16 '17 at 6:43