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.
My previous nztasy stuff
Re: My previous nztasy stuff
hi, thank you for contributing!
I embedded your viedeo here for all to watch it easily :
I embedded your viedeo here for all to watch it easily :
Re: My previous nztasy stuff
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.
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
Re: My previous nztasy stuff
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
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
- tt-charis-01.jpg (109.17 KiB) Viewed 12176 times
Re: My previous nztasy stuff
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!
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!
Re: My previous nztasy stuff
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
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
-
- Posts: 2
- Joined: 02 Dec 2012, 18:30
Re: My previous nztasy stuff
Hello,
it's long time ago, but look at the code below.
Hope it helps.
br
charis
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);
}
Who is online
Users browsing this forum: No registered users and 0 guests