...
POST No. 2406967
XL-320 dynamixel servo
2018-09-12 19:17:50 dheeraj

hello. 
I am a newbie to dynamixel servos. I have bought one XL-320 servo with connectors and one digital servo shield (by DFrobot) for Arduino and an Arduino UNO board. I am having a lot of trouble in trying to find the right library or connections to run the servo. I don't know what I am doing wrong or missing out. I don't know the right circuit diagram, hardware needed and other things to do.

these are the library examples I have tried:

1. https://github.com/hackerspace-adelaide/XL320
2. https://github.com/HelloSpoon/HelloSpoon-Spark
3. https://github.com/descampsa/ardyno
4.https://www.dfrobot.com/wiki/index.php/Digital_Servo_Shield_for_Arduino_SKU:DRI0027#Sample_Code

Can you please help me by sending step by step procedure to control and run the XL-320 servo. I can't emphasize enough on the 'please' there. please help me figure this out.

thankyou 

2018-09-12 19:17:50
dheeraj
2018-09-13 00:01:43 Kurt

Hopefully @Will Son or someone from Robotis might have more information on this shield...


For the fun of it I took a look up at DFRobot as I was curious about what this shield was and if I could suggest using one of my own libraries if nothing else worked...


But I think this one one may be difficult.  That is I believe the shield is setup such that it uses SPI to talk to the host board, and has it's own hard coded interface stuff, where for example  to set a position of a servo it does:

void ServoCds55::WritePos(int ID,int Pos){ 

  int PosB = (Pos>>8 & 0xff);//low
  int PosS = (Pos & 0xff);//high
  int velocityB = (velocity_temp>>8 & 0xff);
  int velocityS = (velocity_temp & 0xff);
  digitalWrite(cs, LOW);    
  transferAndWait ('p');
  transferAndWait (ID); 
  transferAndWait (PosB);
  transferAndWait (PosS);
  transferAndWait (velocityB);
  transferAndWait (velocityS);
  transferAndWait ('t');
  transferAndWait ('r');
  transferAndWait ('n');
  digitalWrite(cs, HIGH);
  delay(10);
}  
 

 The problem is this is setup for AX servos that do Protocol 1 and have specific register numbers...  Where as I believe the XL-320 talk using protocol 2.  So I don't think it will work.


Hopefully someone else has better information.  Or maybe someone has come up with updated firmware for the Atmega8 on that board for protocol 2 and a way to update it...


Good luck

2018-09-13 00:01:43
Kurt
2018-09-13 09:50:19 Will Son

Hi,


Basically what you are trying to achieve is to apply Dynamixel SDK on a 3rd party controller to control XL-320.

As long as the controller manufacturer does not provide a library for a hardware device, user has to (hard) work on porting libraries.

This process is involved with in-depth understanding in low level hardware.

The repositories from 1 to 3 are irrelevant to your controller so you won't be able to use them, but if you decided to work on porting libraries, you can use them as a reference.

As Kurt mentioned in the above reply, the Digital Servo Shield is hard coded for AX-12 which uses different Protocol version from XL-320, it may not appropriate for your purpose of use.


The good news for you is that we're preparing to release Arduino Dynamixel Shield.

The exact release date has not been disclosed but it's almost there.

You can also find some source code that might help you to setup your system.

https://github.com/ROBOTIS-GIT/DynamixelShield 


Thank you.

2018-09-13 09:50:19
Will Son
Reply
웹에디터 시작 웹 에디터 끝