Author Topic: ICS 3 Serial Servo  (Read 4096 times)

0 Members and 1 Guest are viewing this topic.

Offline strat321Topic starter

  • Jr. Member
  • **
  • Posts: 29
  • Helpful? 0
ICS 3 Serial Servo
« on: February 18, 2014, 03:24:30 PM »
I am attempting to control a servo that is compatible with ICS  3 and is only capable of being controlled via a dedicated serial signal. I assume this is done via UART. Could someone please walk me through controlling a dedicated serial servo?

Offline knossos

  • Robot Overlord
  • ****
  • Posts: 278
  • Helpful? 14
Re: ICS 3 Serial Servo
« Reply #1 on: February 18, 2014, 05:04:23 PM »
See if this walkthrough can be adapted to your needs.  It also links to this protocol description pdf.
« Last Edit: February 18, 2014, 05:09:57 PM by knossos »
"Never regret thy fall,
O Icarus of the fearless flight
For the greatest tragedy of them all
Is never to feel the burning light."
 
— Oscar Wilde

Offline strat321Topic starter

  • Jr. Member
  • **
  • Posts: 29
  • Helpful? 0
Re: ICS 3 Serial Servo
« Reply #2 on: February 18, 2014, 05:45:44 PM »
Is there a way to implement this using the axon ii? I'm kind of a beginner with serial communication. I'm not quite sure where to begin in controlling this servo. If I post the code that I have used with a PWM servo (successfully) is there anyway you would be able to help me understand how to port it to this serial protocol? It would be much appreciated.  Essentially I have a flex sensor (analog) that I want to use to control a servo

Offline jwatte

  • Supreme Robot
  • *****
  • Posts: 1,345
  • Helpful? 82
Re: ICS 3 Serial Servo
« Reply #3 on: February 18, 2014, 06:34:48 PM »
Instead of using the "Servo" library, you want to use the "SoftwareSerial" library.
And, to come up with the bytes to send to the servo using the SoftwareSerial library, you should read that PDF (and perhaps go through that walkthrough.)

Offline strat321Topic starter

  • Jr. Member
  • **
  • Posts: 29
  • Helpful? 0
Re: ICS 3 Serial Servo
« Reply #4 on: February 18, 2014, 08:20:23 PM »
SoftwareSerial lib from Webbot? That walk through and PDF seems to be intended for RCB4, however as you pointed out, the servo I am using, (http://www.robotshop.com/kondo-krs-6003hv-ics-servo-motor-red-version.html) uses the ICS 3 protocol. 

Offline knossos

  • Robot Overlord
  • ****
  • Posts: 278
  • Helpful? 14
Re: ICS 3 Serial Servo
« Reply #5 on: February 19, 2014, 08:45:33 AM »
My cursory search didn't yield a lot of english language documentation, but the walkthrough I posted for the RCB4 is based on the same LibKondo library I posted in your other post.  The LibKondo library works with RCB4 and ICS.  As I don't have a Kondo servo and most of the documentation a quick search yields is in Japanese, you might need to tinker with what information is available to make it work.  If you need some practice with serial communications you can use your Axon's USB to communicate with your computer.  In fact there are a couple of UART tutorials on this site under programming.  It might be worth shelving those servos until you have a little more familiarity with programming and/or can find better documentation for them.
"Never regret thy fall,
O Icarus of the fearless flight
For the greatest tragedy of them all
Is never to feel the burning light."
 
— Oscar Wilde

Offline strat321Topic starter

  • Jr. Member
  • **
  • Posts: 29
  • Helpful? 0
Re: ICS 3 Serial Servo
« Reply #6 on: February 19, 2014, 12:01:21 PM »
This may not be possible but is there anyway to replace the internal board of the kondo with a pwm servo? If not, from the walk through you sent me, is it simply a matter of placing the libkondo ics.c (replacing the ftid part with the serial communication) and then sending the bytes from my main project.c via the uart print/write? I think I may be able to code it... I'm just not exactly sure where or how to start. It is an extremely important project and I must learn how to complete it. Your assistance is greatly appreciated.

Offline knossos

  • Robot Overlord
  • ****
  • Posts: 278
  • Helpful? 14
Re: ICS 3 Serial Servo
« Reply #7 on: February 22, 2014, 02:23:20 PM »
A (very) quick look at the ICS and RCB do not appear to be direct replacements, but the source code seems to have all the comments needed to be able to figure out how to use the library.  For example:

Code: [Select]
/*-----------------------------------------------------------------------------
 * Set speed parameter of the servo
 * id: the id of the servo 0-31
 * stretch: the desired speed 1(2)-127(254)
 * Returns: the speed as reported by the servo (>= 0), or < 0 if error
 */
int ics_set_speed(ICSData * r, UINT id, UCHAR speed)

As you can see, you can use the ics_set_speed command to set the speed of the servo with correct id.  You should be able to communicate with the servo directly using UART commands but you would need to look at the libkondo library and try some experiments to see what you can manage.

As for replacing the internals with a pwm servo, it may or may not be possible.  I would venture that it would be a lot more trouble than it's worth to try to swap out the boards.
"Never regret thy fall,
O Icarus of the fearless flight
For the greatest tragedy of them all
Is never to feel the burning light."
 
— Oscar Wilde

Offline strat321Topic starter

  • Jr. Member
  • **
  • Posts: 29
  • Helpful? 0
Re: ICS 3 Serial Servo
« Reply #8 on: February 22, 2014, 03:17:38 PM »
Ok.... so the syntax would appear to be ics_set_speed(ICSData * r, UINT id, UCHAR speed)
Except I don't understand how the structure ICSData operates or what r is as it is never defined

 


data_list