Let's Make Robots!

Robotic Arm Control

I have built a robotic arm. You can see it in the robot section. It is called IPTUPED.

Now that it is built i can only prgram it to pick up something that is in the same time. I need a new control method.

Due to the fact that i am pretty new to this i need some ideas. Basically i am asking you guys if you can help me find a good method. I have seen wii and arduino, nd rc. I need a good tutorial online somewhere that can help me control it. So far i have only been able to find a method that can control 2 servos. I am using 4 and maybe 5 in the future. Thanks for any help.

 

By the way. Can you view the videos, i cant on this browser???

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

A little more clean up and a little more explaining.

First off, all the comments (anything after a ' ) is just a comment for yourself --not the computer so you can write anything you want. The notes you have written all seem to be correct.  Tell you what, gimme an hour and I will write the code for you. --You have put in a lot of work already, lets just get this working.

Be right back.

Alright --I need a refresher in picaxe Basic --I missed a bunch of endif's and a bunch of let's too. I have fixed it all now and it seems to compile. It will probably work right out of the box... I hope.

HERE is the file to download. Don't click the big button when you get there, it is an ad. Look around and download "Servo Move Sample.bas".

--or--

Cut and paste from here.

symbol Current1=b1
symbol Current2=b2
symbol current3=b3
symbol requested1=b4
symbol requested2=b5
symbol requested3=b6

''*****  From now on anytime we say "current1" it is the same as saying "b1"  ****
''*****  From now on anytime we say "requested3" it is the same as saying "b6" ****
''*****                  etc.        etc.           etc.                       *****

current1=150
current2=150
current3=150
requested1=150
requested2=150
requested3=150

servo 0,current1
servo 1,current2
servo 2,current3

pause 1000

''***** now all the servo numbers are centered and the servos themselves are centered  *****

Main: 
             
Requested1= 150 'i am requesting the servos all to go to the center position
Requested2= 150 ''You are correct --but they are already centered, it will basically skip this
Requested3= 150
Gosub Moveservos
Requested1=100
requested2=100 'i am reuesting servos to move to 100 position
requested3=100
gosub Moveservos
requested1=200
requested2=200 ' i am reuqesting servos to move to 200  position
requested3=200
gosub Moveservos

goto Main


Moveservos:

Do

If Requested1>Current1 then let Current1=Current1+1
endif
if Requested1<current1 then let current1=current1-1
endif
if Requested2>current2 then let current2=current2+1
endif
if Requested2<current2 then let current2=current2-1
endif
if Requested3>current2 then let current2=current2+1
endif
if Requested3<current2 then let current2=current2-1
endif

servo 0,current1
servo 1,current2
servo 2,current3

pause 100

loop until current1=Requested1 and current2=Requested2 and current3=Requested3

return

Thank you so much I really appreciate it... Btw I knew the whole comment part and I will be back in a couple minutes to let you know

yeah, I thought you did. :)

--Gotta be sure so we can get the basics outta the way.

Let me know if it compiles and works --It did on my end.

Shorten the pause 100 to speed it up --lengthen to slow it down.

If you want to try to go with bigger steps (current=current+2 or +3 etc.) we gotta change some stuff --if you try this and it doesn't work, don't worry --I know how to fix it.

Just lemme know if you get it going.

You owe me a video when it does.

 

sorry this is edited*** This is wat i downloaded but it didnt seem to work right, it kind of just shook around.

----------------------------------------------------------------------------------------------

symbol Current1=b1
symbol Current2=b2
symbol current3=b3
symbol requested1=b4
symbol requested2=b5
symbol requested3=b6

''*****  From now on anytime we say "current1" it is the same as saying "b1"  ****
''*****  From now on anytime we say "requested3" it is the same as saying "b6" ****
''*****                  etc.        etc.           etc.                       *****

current1=150
current2=150
current3=150
requested1=150
requested2=150
requested3=150
servo 0,current1
servo 1,current2
servo 2,current3
pause 1000

''***** now all the servo numbers are centered and the servos themselves are centered  *****

Main: 
             
Requested1= 150 'i am requesting the servos all to go to the center position
Requested2= 150 ''You are correct --but they are already centered, it will basically skip this
Requested3= 150
Gosub Moveservos
Requested1=100
requested2=100 'i am reuesting servos to move to 100 position
requested3=100
gosub Moveservos
requested1=200
requested2=200 ' i am reuqesting servos to move to 200  position
requested3=200
gosub Moveservos

goto Main


Moveservos:

 

If Requested1>Current1 then let Current1=Current1+1
endif
if Requested1<current1 then let current1=current1-1
endif
if Requested2>current2 then let current2=current2+1
endif
if Requested2<current2 then let current2=current2-1
endif
if Requested3>current2 then let current2=current2+1
endif
if Requested3<current2 then let current2=current2-1
endif

servo 0,current1
servo 1,current2
servo 2,current3

pause 100

'loop until current1=Requested1 and current2=Requested2 and current3=Requested3

return

I gotta go for tonight i will see if i can fix it tomorow or saturday i will let you know.

Thanks for your help and you will get a video when it is working.

A) did it do anything at all?

B) What DID it do?

 

 I think i kinda fixed it

A) Yes

B)it just slowly moved like in slow motion. It wasnt a smoth motion it was like a clock, tic tic tic.

 

Also when the servo turned all the way to the left it like tried to continue turning and made an awckward noise.

There was a problem in the code i found. Now it works right but it is quite slow. I am going to mess around with the pauses. To change up the speed.