My previous nztasy stuff

Discussion specific to projects ideas and support.
Post Reply
rbnnxt
Posts: 20
Joined: 06 Oct 2010, 19:08

My previous nztasy stuff

Post by rbnnxt »

My previous contributions to nxtasy were related to projects involving colour sorting and robot arms. To restore some links, they are all documented on http://r.newman.ch/lego
In addition there are faster loading videos of the projects on youtube under username rbn1tube

The other areas I have played with on and off for a long time is in trying to get Hans Andersson's tiltedtwister to work. There were some quite large threads on this on the nxtasy site. I have recently had quite a lot of success with the latest tiltedtwister 2.0 version which is designed on the NXT 2 set. Hans has updated the software, and I find that this now works reliably as far as reading the cube is concerned. I have experimented with altering the design of the arm a bit, largely after viewing the video shown here http://www.youtube.com/watch?v=rvAjDHOTiHQ
The author has removed the orange Technic Bionicle 1 x 3 Tooth with Axlehole, has added 7 hole beams to stop the Technic Angle Connector #6 just behind the ultrasound sensor from coming apart, and appears to have altered the positioning of the two Technic Beam 4 x 4 Liftarm Bent 53.5 at the end of the arm assembly.
I now have an arm which will solve slightly disarranged cubes, but it still has problems when the cube sticks and doesn't align properly after some twists. I am experimenting with lubrication, and also am trying to hack the program to add a pause (until an added touch sensor is pushed) each time the cube is released by the arm, so that any manual tweeks can be made. Has anyone else done this?

I'll try and add an image when I've worked out how... just uploaded one but it seems to have disappeared.
HaWe
Posts: 2500
Joined: 04 Nov 2014, 19:00

Re: My previous nztasy stuff

Post by HaWe »

hi, thank you for contributing!
I embedded your viedeo here for all to watch it easily :

rbnnxt
Posts: 20
Joined: 06 Oct 2010, 19:08

Re: My previous nztasy stuff

Post by rbnnxt »

Below is an annotated image of my modified twister arm, based on fsalimen's youtube video. (twister225.jpg)
I have now also modified the program code so that it pauses each time a layer of the cube has been rotated, so that it can be manually adjusted if it is not completely square. Using this, I can now successfully solve any scrambled cube on my arm. I will now work on lubricating the cube, to try and get it to solve without manual intervention.

Code modifications:
This is to the version dated 2010-08-15

Add comment line to Wiring info
4 Touch sensor for debug

Add a line to the Initialize procedure:

void Initialize()
{
InitTilter();
InitScanner();
InitTurntable();
SetSensorLowspeed(IN_2);
SetSensor(IN_4,SENSOR_TOUCH); /* added by RBN */
}

add a line to the releasecube procedure

void ReleaseCube()
{
int tachoNow,tachoPrevious;
Off(OUT_A);
Off(OUT_B);
OnFwd(OUT_B,-100);
while(MotorRotationCount(OUT_B)>20);
OnFwd(OUT_B,-20);
while(MotorTachoCount(OUT_B)>20);
tachoNow=MotorTachoCount(OUT_B);
do
{
tachoPrevious=tachoNow;
Wait(10);
tachoNow=MotorTachoCount(OUT_B);
}while(tachoNow!=tachoPrevious);
Coast(OUT_B);
cubeGrabbed=false;
until(SENSOR_4 == 1); /*added by RBN */
}

With these alterations you plub a touch sensor into port 4, and each time the cube is released after it has had a layer twisted, you can adjust it manually if needed, and then push the sensor to allow the program to continue.
Attachments
twister225.jpg
My modified twister arm
(170 KiB) Downloaded 259 times
charis997
Posts: 5
Joined: 12 Nov 2010, 18:31

Re: My previous nztasy stuff

Post by charis997 »

I am new to this forum, I don't know what everything had been posted to previous nxtasy, but I want to share my experience too.
I have been also exited about the TiltedTwister. I think, it is still one of the most ingenious solutions among all cube solvers made of Lego.
When it works, of course. The opposite was a reason of my little disappointment.

I build TT according to instructions. Used my twenty years old Rubik cube. The tilting worked fine but to twist was a problem. Also lubricating didn't help. I bought new one. Twisting works fine, but tilt fails quite often. Old cube weights 120g and new 100g. Twenty percent difference is
enough to settle down the cube correctly back to the cradle.

With help of test program - to test combinations of tilt, grab and release I tried to do some improvements. Some of them are also inspired
by the rbnxt post.

In the code I added GrabCube(); ReleaseCube(); after each Tilt();. It helps the cube to settle down into the cradle after not properly finished tilt. Takes longer to solve, but works much more better. But still not 100% reliable.

Charis
Attachments
Changes in the construction
Changes in the construction
tt-charis-01.jpg (109.17 KiB) Viewed 12171 times
boblmark
Posts: 4
Joined: 25 Nov 2012, 14:28

Re: My previous nztasy stuff

Post by boblmark »

charis,
You said: In the code I added GrabCube(); ReleaseCube(); after each Tilt();. It helps the cube to settle down into the cradle after not properly finished tilt.

Could you please share your changed code?

Really aapreciated with your help!
boblmark
Posts: 4
Joined: 25 Nov 2012, 14:28

Re: My previous nztasy stuff

Post by boblmark »

Dear al,
I download the building instruction and program in the below link:
http://tiltedtwister.com/tt2download.html

Currently I finished the building and the program can run, but arm always throw over the club in the flow, I don't know why? But I see one video in the Youtube:http://www.youtube.com/watch?v=4VmjC2DQy8s, Maybe Wiggle added to program during Tilt routine.This will be fix my issue,but I don't know how to add wiggle in the program, so any one can help it.

I'm really appreciated with your help!!!
Looking forwading for your replay!boblmark
charisronov
Posts: 2
Joined: 02 Dec 2012, 18:30

Re: My previous nztasy stuff

Post by charisronov »

Hello,

it's long time ago, but look at the code below.
Hope it helps.

br
charis

Code: Select all

void ScanCube()
{
  SetSensorColorFull(IN_1);
  ScanFace(BACKFACE,UPPERRIGHT,UPPERLEFT,DOWNLEFT,DOWNRIGHT,DOWNMID,MIDLEFT,UPPERMID,MIDRIGHT,0);
  Tilt();
  // ChR added cube to settle down
  GrabCubeSlow();
  ReleaseCubeSlow();
  ScanFace(LEFTFACE,UPPERRIGHT,UPPERLEFT,DOWNLEFT,DOWNRIGHT,DOWNMID,MIDLEFT,UPPERMID,MIDRIGHT,0);
  Tilt();
  // ChR added cube to settle down
  GrabCubeSlow();
  ReleaseCubeSlow();
  ScanFace(FRONTFACE,UPPERRIGHT,UPPERLEFT,DOWNLEFT,DOWNRIGHT,DOWNMID,MIDLEFT,UPPERMID,MIDRIGHT,-270);
  Tilt();
   // ChR added cube to settle down
  GrabCubeSlow();
  ReleaseCubeSlow();
  ScanFace(DOWNFACE,UPPERRIGHT,UPPERLEFT,DOWNLEFT,DOWNRIGHT,DOWNMID,MIDLEFT,UPPERMID,MIDRIGHT,0);
  Tilt();
   // ChR added cube to settle down
  GrabCubeSlow();
  ReleaseCubeSlow();
  ScanFace(RIGHTFACE,UPPERLEFT,DOWNLEFT,DOWNRIGHT,UPPERRIGHT,MIDRIGHT,DOWNMID,MIDLEFT,UPPERMID,0);
  Tilt();
 // ChR added cube to settle down
  GrabCubeSlow();
  ReleaseCubeSlow();
  ScanFace(UPPERFACE,DOWNLEFT,DOWNRIGHT,UPPERRIGHT,UPPERLEFT,UPPERMID,MIDRIGHT,DOWNMID,MIDLEFT,0);
  SetSensorType(IN_1,SENSOR_TYPE_NONE);
}
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest