Introduction
Herkulex DRS-0201 smart servo is state of the art modular smart servos incorporating motor, gear reducer, control circutry and communications capability in one single package. Through metal brush coreless DC motor, it can provide torque up to 24kg.cm at 7.4v.
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(PHM 2X5), Joint Bolt(PHM 2X5), Wire Harness(200mm) and with it's amazing structure, DRS-0201 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
- Education
- Robot Arm
- Humanoid Robot
- Hexapod Robot
- Any other servo driven application
Mechanical specification
- Metal Brush Coreless DC Motor
- A lot of adapting pieces
- Rotation angle range: 320° Continuous Rotation
- Resolution: 0.325°
- Stall torque: 24kg.cm (7.4v)
- Maximum Speed: 0.147s/60° (7.4v)
- Gear: 1:266, Heavy Duty Metal
- Size: 45mm(W) x 24.0mm(D) x 31mm(H)
- Weight: 60g
Electrical specification
- Working Voltage: 7~12VDC(Optimized 7.4V)
- Rated Current: 450mA @ 7.4V : 1.7kg.cm
- Communication Link: Full Duplex Asynchronous Serial(TTL Level), Binary Packet, Multi Drop
- Multi control through Servo ID: 0 ~ 253, 254(Broadcast only)
- Maximum Baud Rate: 0.67Mbps
- Feedback: Position, Speed, Temperature, Load, Voltage etc.
- Various Control Algorithm: PID, Feedforward, Trapezoidal Velocity Profile, Velocity Override, Torque Saturator & Offset, Overload Protection, Neutral *Calibration, Dead Zone
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
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));
}
More Documentation
FAQ
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.