Herkulex_DRS-0101_SKU_SER0032-DFRobot

SER0032 DRS - 0101 HerkuleX Smart Servo

Introduction

Herkulex DRS-0101 is state of the art modular smart servos incorporating motor, gear reducer, control circutry and communications capability in one single package.

Equipped with a lot of adapting pieces including Horn, Horn Bolt(BHT 2.6X8), Wheel Horn Bushing, Wheel Horn Washer, Wheel Horn Bolt(PHM 3X8), Cable Guard, I-type Joint, L-type Joint, L-type Joint(Single Nut), Bracket Bolt(PHT 2X5), Joint Bolt(PHM 2X5), Wire Harness(200mm) and with it's amazing structure, DRS-0101 is extremely easy to assemble. Two connectors attached to each servo allows serial connection as well as parallel connection if required.

It carries different Control Algorithms like PID, Feedforward, Trapezoidal Velocity Profile so on and so forth, which makes the movement smoothly and precisely. By Using UART Serial communications ,we can lightly change the speed, position, LED, operational compliance, stop and operational status of up to 254 servos simultaneoulsy at once. Meanwhile we can get the feedback such as internal temperature, position, and overload sensors.

Servos are capable of diagnosing seven different types of errors which are then indicated by the LED. And we can directly control the RGB of the LED for diagnostics and decorative purposes. It's especially suitable to mechanical arms, robots, joints and etc.

Application

Mechanical specification

Electrical specification

Connection Diagram

SER0032 DRS - 0101 HerkuleX Smart Servo Connection Diagram

Tips: There is only one Hardware Serial port on UNO, so that Software Serial has to be used. However, the default baud rate of HerkuleX is up to 115200, which may be unstable when using the Software Serial. Thus it's recommended to change the baud rate of HerkuleX to 57600 first.

Servo Motor Pinout

Black :GND

Red :VDD(7.4V)

Blue :TXD

Yellow :RXD

SER0032 DRS - 0101 HerkuleX Smart Servo Connection Diagram

Tips: There is no such problem as above with Mega as it has several Hardware Serial port.

Servo Motor Pinout

Black :GND

Red :VDD(7.4V)

Blue :TXD

Yellow :RXD

Sample Code for UNO

#include <Herkulex.h>

int n=0xfe; //motor ID - verify your ID !!!!

void setup()
{
  delay(2000);  //a delay to have time for serial monitor opening
  Serial.begin(115200);    // Open serial communications
  Serial.println("Begin");
  Herkulex.begin(115200,10,11); //open serial with rx=10 and tx=11
  Herkulex.reboot(n); //reboot first motor
  delay(500);
  Herkulex.initialize(); //initialize motors
  delay(200);
}

void loop(){
  Serial.println("Move Angle: -100 degrees");
  Herkulex.moveOneAngle(n, -100, 1000, LED_BLUE); //move motor with 300 speed
  delay(1200);
  Serial.print("Get servo Angle:");
  Serial.println(Herkulex.getAngle(n));
  Serial.println("Move Angle: 100 degrees");
  Herkulex.moveOneAngle(n, 100, 1000, LED_BLUE); //move motor with 300 speed
  delay(1200);
  Serial.print("Get servo Angle:");
  Serial.println(Herkulex.getAngle(n));
}

Sample Code for Mega

#include <Herkulex.h>
int n=0xfe; //motor ID - verify your ID !!!!

void setup()
{
  delay(2000);  //a delay to have time for serial monitor opening
  Serial.begin(115200);    // Open serial communications
  Serial.println("Begin");
  Herkulex.beginSerial1(115200); //open serial port 1
  Herkulex.reboot(n); //reboot first motor
  delay(500);
  Herkulex.initialize(); //initialize motors
  delay(200);
}

void loop(){
  Serial.println("Move Angle: -100 degrees");
  Herkulex.moveOneAngle(n, -100, 1000, LED_BLUE); //move motor with 300 speed
  delay(1200);
  Serial.print("Get servo Angle:");
  Serial.println(Herkulex.getAngle(n));
  Serial.println("Move Angle: 100 degrees");
  Herkulex.moveOneAngle(n, 100, 1000, LED_BLUE); //move motor with 300 speed
  delay(1200);
  Serial.print("Get servo Angle:");
  Serial.println(Herkulex.getAngle(n));

}

FAQ

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More Documentation