Rubik's cube Robot solver

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

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

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. :smiley: :wink:

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

...and to add different cushioning thats more gripy

I use rubber bands cut out of a bike inner tube, dipped in acetone to remove any greasy residues.

I've also been drawing up to 2.5 amps during the uses, does what does yours draw?

I tested my servo's last year and had no values over 1500mA YMMV

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.

Strange ::slight_smile: this call for additional investigation
Did you try inverting Right/Left servo connectors ?? did it transfer problem to the right servo ??

I'll give the idea of the bike tubing out,

that's strange do you know what the stall current of your servos are? but its no real pro blame I've just
increased my power supply

i changed the connections to the servos and they back gripper still doesn't hold the cube I'm a little lost about because the down claw holds the cube beautifully, but i did find that by prints aren't quite aligned so
i will need to upload a different frame for those that would like to use it.

i changed the connections to the servos and they back gripper still doesn't hold the cube I'm a little lost about because the down claw holds the cube beautifully

With cube removed, can you manually close the back gripper ??
How is the requested applied force compared to the down gripper ??

hey kas,
ive managed to solve the problem with the gripping, the claws werent aligned properly and i changed the foam that i was using on the claws.
however, i am now having some dificulties with the python, here's an image
any chance you know whats going on there, i changed the path that you set and it still didn't work.

Offending code:

try:
p=subprocess.Popen([cubeExplorerPath]) ## Cube Explorer launching
except:
vSolve.set("** Cube Explorer not found **")

The most probable reason for the raised exception is a wrong/malformed path to cube512htm.exe

  • can you launch cube512htm.exe manually ??
  • what is your absolute path to cube512htm.exe on your computer ??
  • are you Windows or Mac ??
  • please copy paste the "cubeExplorerPath = ...." line from your actual python code