PDA

View Full Version : Servo Quesion



brickbob
07-07-2009, 05:51 AM
Hi.

What's the different between servo and serial servo?

Noodle
07-07-2009, 06:36 AM
Hello there!

A servo is addressable via Pulse Width Modulation. Which basically pulses high, then pulses low at certain times for certain lengths. A 90* Pulse is typically, depending on your servo 1500ms. However this can vary. Servo's are often driven from a separate servo controller, or from a radio controller, rather than the microcontroller itself, however it is still possible to directly control a servo from a microcontroller.

Serial servos are different, infact a whole different game. Instead of pulsing each servo individually, servo's are given an ID. You then tell the servo where to go via a serial connection. This is theoretically a better approach as it removes the need for a servo controller and for examples the AX-12's boast a 300* range and pretty good torque. However this does come at a price.

Standard servos also come in digital and analog form but both are more common than serial servos.

Adrenalynn
07-07-2009, 09:02 AM
>> However this does come at a price

I think if we crunched the numbers, we'd find that oz-in for oz-in, the AX-12's are the less expensive choice actually...

brickbob
07-07-2009, 09:20 AM
Hi noogle .

Now I understand. So if come across a serial servo how can we know the ID. Is it provide by the manufacturer or theres a way to find out.

If possible how?

lnxfergy
07-07-2009, 09:21 AM
>> However this does come at a price

I think if we crunched the numbers, we'd find that oz-in for oz-in, the AX-12's are the less expensive choice actually...

Not to even mention the features like thermal shutdown, overload protection, and already having a built-in pivot point on the opposite side of the case (something you'll only find on the really high-end PWM robot servos)

However, on the subject of "removes the need for a servo controller", I might have to disagree a bit. While you don't need a crazy number of I/O that can generate very precise PWM, you will be forced to implement certain features that controllers like the SSC-32 have: for instance, interpolation will be entirely left to you the programmer, it's not incredibly tough, but it's something to take into account.

-Fergs

lnxfergy
07-07-2009, 09:23 AM
Hi noogle .

Now I understand. So if come across a serial servo how can we know the ID. Is it provide by the manufacturer or theres a way to find out.

If possible how?

If we are talking AX-12+, they default to 0 (or is it 1) from the factory... after that you set it to whatever you want. Most interfaces to the AX-12 bus have a feature for "scanning" the bus to see what's out there...

-Fergs

Noodle
07-08-2009, 03:22 AM
>> However this does come at a price

I think if we crunched the numbers, we'd find that oz-in for oz-in, the AX-12's are the less expensive choice actually...

This wouldn't surprise me in the slightest. You pay for what you get and you should only pay for what you need. Therefore only get what you need. You wouldn't use an ax-12 to pan an ultrasonic sensor or to mod to become a continuous rotation servo, not at that price. I've you're building a mech, it's a different question.

MikeG
07-08-2009, 07:21 AM
The use of an AX-12 is determined by your project requirements. If your project takes advantage of the a dynamixel bus (AX-12) then adding a pan to the network is simple work.

AX-12s come out-of-the-box with continuous rotation mode - see the manual.


A servo is addressable via Pulse Width Modulation.
PWM is used to set the angular position of a standard RC servo. RC servos are not addressable unless connected to device like a controller or RC receiver.

Adrenalynn
07-08-2009, 11:06 AM
And given their other features and terribly inexpensive cost - yeah, I would. As Mike pointed-out - they don't need to be modded, and "modding" is software, not hardware as it is with traditional servos. They actually make really effective little drive motors for a small bot.

Buying one or two starts looking pretty inexpensive when you start figuring on needing a PWM controller for some servos but not others on a bot.

lnxfergy
07-08-2009, 11:39 AM
And given their other features and terribly inexpensive cost - yeah, I would. As Mike pointed-out - they don't need to be modded, and "modding" is software, not hardware as it is with traditional servos. They actually make really effective little drive motors for a small bot.

Buying one or two starts looking pretty inexpensive when you start figuring on needing a PWM controller for some servos but not others on a bot.

Don't forget the nicer voltage range (7-12V)... cheap hobby servos on 5V can be tough, since either you have to have a separate battery, or add an extra regulator (as you typically can't run 5V electronics off 4-1.5V cells)

-Fergs

Adrenalynn
07-08-2009, 02:32 PM
Yup - and with the current draw, you're not just throwing a cheapie little 7805 at that regulation, you're looking for a switching BEC which can get expensive in a hurry.

brickbob
07-10-2009, 12:56 AM
I am trying to hack my Isobot to use BS2 or Propeller as the brain. How am I going to detect the servo ID instead using scope cause i dont have one.

Adrenalynn
07-10-2009, 01:05 AM
You're not going to detect it using a scope unless you know enough about the protocol to decode the bitstream from a scope [shiver]

A protocol analyzer maybe.

If you don't have the tools, hacking things is much harder. You really need to just use someone else's design...

MikeG
07-10-2009, 07:50 AM
This guy hacked the Isobot's right arm and published the results
http://i-sobothacking.blogspot.com/2007/12/right-arm-control.html

The Isobot uses serial 2400 8N1. Each appendage acts as a single unit. So the ID is actually a position in the packet.

If you had a working controller, then you could grab the data stream while executing commands. Without the controller you're blind. You need someone to hand over the the commands or you'll spend countless hours trying to decode a command set. Also the hack site above states that 0xFF is the last byte in the stream. I find that hard to believe usually a checksum is the last byte but I have no way of verifying and my assumptions are often wrong.

Buy another Isobot... hack away... fix up your old bot... publish your results

brickbob
07-11-2009, 07:14 AM
I have tested with BS2 and successfully make the leg move. It can be done.
I hope somebody will publish the protocol on the net.

If I have to do it myself what are the equipment I should have and how to do it?

MikeG
07-11-2009, 08:06 AM
[Scratching head] You can move a leg but you need the protocol?

Equipment [confusion] You got it working with a BS2, right?


Please post your PBasic code.

brickbob
07-11-2009, 08:51 AM
I got this Protocol from here http://forums.trossenrobotics.com/showthread.php?t=2854

This thread start by milw so I copy the protocol and change the hex file. Its work. I dont really understand what I am doing but it's work using BS2.

I got the leg move to standing position.

Equipment - I mean equipment to get the protocol.

' {$STAMP BS2}
' {$PBASIC 2.5}



Lleg CON 8

PAUSE 1000

SEROUT Lleg,396,[255,5,0,101,181,154,00,186] '441 'hip, ankle NOT powered
SEROUT Lleg,396,[255,5,125,101,181,154,126,182]' B6 'repeated 7X, leaning
SEROUT Lleg,396,[255,5,124,101,181,154,125,180]' B4 'raise leg at hip
SEROUT Lleg,396,[255,5,124,101,181,154,124,179]' B3
SEROUT Lleg,396,[255,5,123,101,181,154,124,178]' B2
SEROUT Lleg,396,[255,5,123,101,181,154,123,177]' B1
SEROUT Lleg,396,[255,5,122,101,181,154,122,175]' AF
SEROUT Lleg,396,[255,5,121,101,181,154,122,174] ' AE
SEROUT Lleg,396,[255,5,121,101,181,154,121,173]' AD
SEROUT Lleg,396,[255,5,120,101,181,154,120,171]' AB
SEROUT Lleg,396,[255,5,120,101,181,154,120,171]' AB
SEROUT Lleg,396,[255,5,119,101,181,154,119,169]' A9
SEROUT Lleg,396,[255,5,118,101,181,154,118,167]' A7 ' repeated 16X
SEROUT Lleg,396,[255,5,116,102,182,154,118,167]' A7 'other joints begin motion
SEROUT Lleg,396,[255,5,113,103,184,154,118,167]' A7
SEROUT Lleg,396,[255,5,111,104,186,154,118,168]' A8

MikeG
07-11-2009, 10:21 AM
You just posted the protocol. If you want to know all the Isobot commands, you'll need a working controller, someone to give you the commands, or simply play around with the BS2 code until you figure it out on your own.

I must not be explaining myself very well or I'm completely off my rocker... Can someone help me out here?

Adrenalynn
07-11-2009, 11:30 AM
No, Mike. No soup for you! :P

From the thread you posted, the protocol is contained here: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1237771631

Do you mean that you need help learning to read and implement the source-code to make it do what you want?

brickbob
07-11-2009, 10:40 PM
Ok I understand.
The protocol is to send servo position for the leg from hip to ankle. there are five servo so to change the position I just change the value of each servo.
I know I have to start from the begining to make isobot walk. I know its hard and will be a long way to go but I think it must be fun too. And to make him walk by doing the program myself is big leap in my robotic hobby.

I know I look stupid to ask the question in previous post but that's how we learn. We ask question if we don't understand or not sure on certain issue.

For next I will hook another leg with my BS2 and try to make simple move.

Thanks.

brickbob
07-22-2009, 12:13 AM
Here is the video for Isobot hack which use BS2 for controlling the servo.

YouTube - Isobot Hack with BS2

darkback2
07-22-2009, 12:28 AM
Can you move each servo starting at the hip and working your way down consecutively? Can you set the angle for each servo? I would love to see video of that.

brickbob
07-23-2009, 10:12 AM
As per request:

YouTube - Isobot Hack 2




YouTube - Isobot Hack 4



Have Fun!!!