Pages: [1]   Go Down
Author Topic: servo motor init pos set problem  (Read 619 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 301
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
I'm practicing constrained translational arm mechanism with Arduino and servo, and when I turn on the system, servo as usual first take a fast path to initial position to set its zero. This gives an ugly movement from the start. I don't know how to force it to at least do this in a smooth movement, slowly, and not to jump every time I turn it on smiley

Any idea please? Well sure it is possible to go to dc motor and PWM but that needs to add h-bridge, while a servo is directly commanded by Arduino - cheaper.

Logged

0
Offline Offline
Shannon Member
****
Karma: 161
Posts: 10446
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Unless the arm ends up in the same position every time it is powered _down_, then this behaviour is unavoidable for ordinary servos.  A more advanced motor/encoder which allows the software to know the current position would be needed - standard servos can only be commanded not read.
Logged

[ I won't respond to messages, use the forum please ]

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 301
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I got your point, that means that I must have a kind of turn-off-procedure that after turn-off command sets the arm to the position it's going to start from next time. If the system is shut down accidentally, jump will happen again, now how to totally avoid it please?

So I'd better use a stepper motor and couple it with a an encoder. Could you please leave some links to your favorite encoders you found people implemented on Arduino projects (from scratch) that you accept them as 'reliable' ones?
Logged

0
Offline Offline
Tesla Member
***
Karma: 116
Posts: 8944
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A little bit of work, but you can tap off of the pot wiper in the servo to get a voltage value relative to the position of the servo.

http://www.lynxmotion.net/viewtopic.php?f=2&t=2748
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 301
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you, nice post on Lynxmotion, I also have 2 ssc-32 controllers.

In summary, I think that it is easier to go with a dc, get the h-bridge out of some L293, an encoder and voila!
 
Thanks again!
Logged

0
Offline Offline
Tesla Member
***
Karma: 116
Posts: 8944
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
In summary, I think that it is easier to go with a dc, get the h-bridge out of some L293, an encoder and voila!

If the system accidently shuts down, how will an encoder know the current position? You could put small pots at the arm joints to read the current position.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

South Texas
Offline Offline
Edison Member
*
Karma: 8
Posts: 1023
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

An encoder will still need some inializing/homing code, which you will need to do with the stepper motor anyway. Make sure the stepper motor/gearbox has enough torque for the rest of your mechanism and don't bother with the encoder.
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 301
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well, then stepper motors, but with pots for that accidental shut down, right?

Logged

Pages: [1]   Go Up
Jump to: