Rubik's cube Robot solver

I will recompile App with modified code:

    parameters.setPreviewFormat(ImageFormat.NV21);
    parameters.setExposureCompensation(RubikMainActivity.exposureCompensation);
    parameters.setWhiteBalance (RubikMainActivity.WBCompensation);
    parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_MACRO);
    try {
	      camera.setParameters(parameters);
    } catch (Exception e) {
	      Toast.makeText(getContext(), "setting not supported by camera", Toast.LENGTH_LONG).show();
    }

    parameters.setPreviewSize(864, 480);
    try {
	      camera.setParameters(parameters);
    } catch (Exception e) {
	      Toast.makeText(getContext(), "Preview 864X480 not supported by camera", Toast.LENGTH_LONG).show();
    }

I bet the unsupported feature is the 864X480 display; please confirm

Stay tuned

Check your mail :wink:

Hi KAS ,
so i installed the debug version ,
i get : "PreviewSize(864,480) not supported"

Makes sense
I will compile the updated version within a week

Hi kas ,
Your new version fixed the problem !!!
Thank you what a great guy,
do you have a paypal account can I buy you a coffee???

Your new version fixed the problem !!!

Glad it works :smiley:
I built the App using my Motorola Moto G, I really need that type of feedback to polish the code
and make it fully usable for other brands with different screen sizes

do you have a paypal account can I buy you a coffee???

I don't drink coffee :wink:
Thanks for this kind offer anycase

hi Kas ,
a quick question ,
in your android app what is the cube scan order ? (F THEN R THEN B Etc...)
do i need to set the cube orientation in a particular color order? (put red color in front ,blue color to the left,green color to the right etc...)
Thanks

a quick question ,
in your android app what is the cube scan order ? (F THEN R THEN B Etc...)


Yellow > Red > White > Orange > Blue > Green then back to Yellow
Colors are only for showing scan moves order
Pay special attention to Top & Bottom faces orientation

do i need to set the cube orientation in a particular color order? (put red color in front ,blue color to the left,green color to the right etc...)

Doesn't matter

Thank you kas ! ,

The complete sketch, including cube.cpp and cube.h posted on #43
seems to be corrupted..
can i find it anywhere else?

This is V1.3 (Maker Faire 2017 release)
Make sure to also download the VarSpeedServo Library

adjust DEBUG_SERIAL according to project type:
true for Python mode or Serial Monitor testing
false for Bluetooth Android mode

Enjoy :wink:

** Please rename file extension to .rar **

CubeMover13_posted.txt (4.55 KB)

i just went through all 22 pages of this project and i wanted to say thanks kas!

your project is totally inspiring. i just got a new arduino kit for my 10 year old son and your cube project is something we're definitely going to work towards.

i might even try to build a 2x2x2 cube solving robot, as i have never seen one of those before!!
i think the programming for it would even be easier than one for a 3x3x3. it uses the same sort
of standards as your project; basic singmaster notation, and has only corner pieces.

thanks again for the great project and inspiration.

derek...

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 ::slight_smile:

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 ::slight_smile:
Please post the video as per post #267

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: