Rubik's cube Robot solver

thanks again for the great project and inspiration

Hi Derek, thanks for the nice comments 8)

Again, before making any atempt so solve the cube, please make sure that: - the frame geometry is correct - rotations are exactly 90° by tuning XXX_CW and XXX_CCW parameters - griping strenght is adequate, with no slippage (XXX_CLOSE)

Bot should pass the two tests described in post #6 and post #13

Good luck for your project, feel free to report progress

Hey Kas. I'm trying to build a similar robot. The only problem i have now is that my servo's do not turn exactly a 90°. They turn like 90° in one direction and 75-80° in another. I'm using a digital Tower Pro MG995. I've seen that you are using Hitec HS-422 which are analog and should be more precise (from their description). Is there any difference between analog and digital. Are HS-422 precise enough? Will they give me a complete 90° turn?

Hi WitherKun

Not sure you are facing an accuracy problem ::)

I suspect that your servo's are not covering the full 180° range Apparently the MG995 can be used as a 'pinch' servo, but is not adequate as 'wrist' Any 180° servo will be suitable as 'wrist', Hitec HS-422 fits the bill

Hey Kas. I have the same problem of demirell95 in post #288 and i already checked post #267. How can i solve that error ?

@ClankingFeather Did you receive my email message ??

@WitherKun Really need more info ::) Please post the video as per post #267

kas: @ClankingFeather Did you receive my email message ??

@WitherKun Really need more info ::) Please post the video as per post #267

|500x212

First it was giving me this type of error. And i resolve it by adding an arduino.flushInput() string like that. Which i think is some kind of interrupt.

It works perfectly fine and scan all the cube, except the D-face. Even though i've added the same flush.input string.

And i resolve it by adding an arduino.flushInput() string like that. Which i think is some kind of interrupt.

"flushInput()" flushes Serial input buffer and discards its contents This python function is renamed "reset_input_buffer()" in Python V3.x

which Python version are you using ?? which RubikKasBot (python) version ?? which CubeMover (arduino) version ??

It works perfectly fine and scan all the cube, except the D-face. Even though i've added the same flush.input string

You mean you can scan all faces except the last one ?? :o

kas:
“flushInput()” flushes Serial input buffer and discards its contents
This python function is renamed “reset_input_buffer()” in Python V3.x

which Python version are you using ??
which RubikKasBot (python) version ??
which CubeMover (arduino) version ??

You mean you can scan all faces except the last one ?? :o

I’m using CubeMover_13, RubikKasBot V1.3 and Python 3.4.2.

Yes. By adding a flushInput it start scanning, but now it stops on U-face instead. And i did’t change nothing from yesterday. And if i change all flushInput with reset_input_buffer it’s says that it was not defined, so does inputflush*. So it’s a little bit confusing how it works*

Please stick to the original RubikKasBot V1.3 code

Within CubeMover_13 Arduino sketch, make sure DEBUG_SERIAL is set to false

"Test" button does scan one face only per press first press = face #1 (no move) second press = face #2 ...

Let me know how it works

Should it fail, please post both CubeMover and RubikKasBot

kas: Please stick to the original RubikKasBot V1.3 code

Within CubeMover_13 Arduino sketch, make sure DEBUG_SERIAL is set to false

"Test" button does scan one face only per press first press = face #1 (no move) second press = face #2 ...

Let me know how it works

Should it fail, please post both CubeMover and RubikKasBot

I downloaded original CubeMover and now the scanning part works fine. Must have been some variable changed without noticing it. Thanks for the help. :D ;)

Hello all , does anyone has the frame (stand) stl files for 3d printing ?? i 3d printed the claws from the previous posts and it works good , i saw kas support v2 dxf file but it seems not suitable for 3d printing , thanks

does anyone has the frame (stand) stl files for 3d printing ??

Did you find a solution ??

hey kas!! long time no contact, i gave up on my project for a little bit there but decided my school might disapprove. might have some simple coding questions to come like if i could get away with completing the project with out a buzzer.

as for you lampel, I did just upload my base for my cube solver, however the camera holder thing i made was a rushed job so might need to glue, drill or someting to make it work. here's the link to my base https://3dwarehouse.sketchup.com/model/cf7d9f09-c40f-469f-a40b-c59e31414775/Rubiks-cube-solver-base

hey kas, for your code for "Cube Mover hard coded Demo @kas2017\n" I'm having some troble as when i set the limits for closing the griper it works at the start and finish. however throughought the execution the gripers don't close enough, i can try provide video. thanks

Hi benbowman

might have some simple coding questions to come like if i could get away with completing the project with out a buzzer

A buzzer is really useful (and cheap). If you don’t have it for the moment, just comment the content of the bip() function:

void bip(int duration, int n)    {            // Bip piezo: duration in ms, n repeats
 // for(int i=0; i<n; i++)  {  
 //    digitalWrite(bipPin, HIGH);        
 //    delay(duration);
 //    digitalWrite(bipPin, LOW);         
 //    delay(75);
 // }
}

I’m having some troble as when i set the limits for closing the griper it works at the start and finish. however throughought the execution the gripers don’t close enough, i can try provide video.

A video will definitely help :wink:

hey kas, thanks for that i'll see if i can get a buzzer, but i should be able to run the code soon then.

here's a video of the cube, as you can see the gripper on the left is lose and the one on the right seems fine, these are what my limits are set to, i thought it might be because of the my limits being the oposite to yours (close is higher than open, yours is the opposite)

DOWN_CLOSE 76 DOWN_OPEN 35

BACK_CLOSE 79 BACK_OPEN 35

https://www.youtube.com/channel/UC7o9_8HEwzxFIk4ifCsnYtQ

@ benbowman

Video link is missing :-\ please edit your post

hey kas, any ideas?

First make sure that your can manually increase claw closure You may have reached the mechanical end stop of your left servo Just unscrew, lift the driving arm and rotate it

i thought it might be because of the my limits being the oposite to yours (close is higher than open, yours is the opposite)

That's a possibility Remove cube, adjust DOWN/BACK_CLOSE/OPEN parameters one at a time and see the effect for yourself For a good grip, without cube inserted, claw should close about 2mm more than the actual cube edge size and open 1 to 2mm more than cube diagonal

hey kas, thanks, I'd already been playing with my limits, so I've decided to change servo and to add different cushioning thats more gripy as one of my gripers is able to grip the cube while the other obviously can't. I've also been drawing up to 2.5 amps during the uses, does what does yours draw? thanks