The communication protocol

by nicole 3. February 2010 15:11

The actuating system of the robot is controlled by a SSC-32 serial servo controller (for details http://www.lynxmotion.com). The 32 servos provide precise control using a signal that consists of a positive pulse ranging from 0.50mS to 2.50mS (milliseconds) long. This range corresponds to about 180°. The motion control can be immediate response, speed controlled, timed motion, or a combination. A unique "Group Move" allows any combination of servos to begin and end motion at the same time, even if the servos have to move different distances.

Summarizing the communication protocol, a SSC-32 command is an ASCII string in this format:

#<ch> P<pw> S<spd> ... #<ch> P<pw> S<spd> T<time> <cr>

where:

  • <ch> is the channel number in decimal, 0-31
  • <pw> is the pulse width in microseconds, 500-2500
  • <spd> is the movement speed in uS per second for one channel (Optional)
  • <time> is the time in mS for the entire move, affects all channels, 65535 max (Optional)
  • <cr> is the carriage return character, ASCII 13 (Required to initiate action)
  • <esc> cancel the current action, ASCII 27

Multiple commands of the same type can be issued simultaneously in a Command Group so we can have a configuration with at most 32 commands at time. All the commands in a command group will be executed after the final carriage return is received.

It is possible to specify a time for the entire configuration or a speed for each servo; in case that you specify a speed value, consider that 1000uS of travel will result in around 90° of rotation so a speed value of 100uS per second means the servo will take 10 seconds to move 90°. Alternately, a speed value of 2000uS per second equates to 500mS (half a second) to move 90°.

For example:

#5 P1600 S750 <cr> : this command will move the servo on channel 5 to position 1600. It will move from its current position at a rate of 750uS per second until it reaches its commanded destination.

#5 P1600 T1000 <cr> : this command will move servo 5 to position 1600. It will take 1 second to complete the move regardless of how far the servo has to travel to reach the destination.

All the servos will start and stop moving at the same time; the time to complete the movement is the time of the slowest servo and it is depends on its own initial position.

It is possible to combine the speed and time commands; in this case the speed for each servo will be calculated according to the following rules:

  1. All channels will start and end the move simultaneously.
  2. If a speed is specified for a servo, it will not move any faster than the speed specified (but it might move slower if the time command requires).
  3. If a time is specified for the move, then the move will take at least the amount of time specified (but might take longer if the speed command requires).

Tags: , , ,

Comments

2/23/2010 12:16:53 AM #

Discount magazines

Hi buddy, your blog's design is simple and clean and i like it. Your blog posts are superb. Please keep them coming. Greets!!!

Discount magazines United Kingdom

2/23/2010 1:31:34 AM #

aloe juice

Great thread.  Enjoyed the posts..

aloe juice United States

2/24/2010 3:28:45 AM #

fishing in key west

If you are looking for information on fishing in Key West or Key West fishing guides, check out this site- http://www.keywestcustomcharters.com Tight lines!

fishing in key west United States

2/27/2010 12:09:05 AM #

std testing

Do you think you have STD symptoms?  See pictures here http://www.std-symptom.info and to find STD testing.

std testing United States

2/28/2010 11:21:50 AM #

stocks

Yes, I have been looking for this all day better now than never!

stocks United States

2/28/2010 10:14:13 PM #

cb predator bonus

I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will find that very useful.

cb predator bonus United States

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen