#include <DynamixelSerial.h>
void stance_Phase () {
// #tancePhase
// kaki 1
Dynamixel.moveSpeed(3, (350),150);
delay(20);
Dynamixel.moveSpeed(1, (512),150);
delay(20);
Dynamixel.moveSpeed(9, (250),150); //sudut dikurangi dari sudut center
delay(20);
//Gait kaki 1
Dynamixel.moveSpeed(3, (350),150);
delay(50);
Dynamixel.moveSpeed(1, (601),150);
delay(50);
Dynamixel.moveSpeed(9, (350),150);
delay(50);
// kaki 5
Dynamixel.moveSpeed(20, (720) ,150);
delay(50);
Dynamixel.moveSpeed(5, (400) ,150);
delay(40);
Dynamixel.moveSpeed(2, (512) ,150);
delay(40);
// kaki 5
Dynamixel.moveSpeed(20, (720) ,150);
delay(40);
Dynamixel.moveSpeed(5, (512) ,150);
delay(40);
Dynamixel.moveSpeed(2, (612) ,150);
delay(40);
// KAKI 3
Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (601) ,150);
delay(60);
Dynamixel.moveSpeed(14, (670),150); //570
delay(60);
// KAKI 3
Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (512) ,150);
delay(60);
Dynamixel.moveSpeed(14, (570),150);
delay(60);
}
// #################################################################################################################################################################################
void swing_Phase () {
// #SWINGPHASE
// KAKI 4
Dynamixel.moveSpeed(12, (710) ,100);
Dynamixel.moveSpeed(18, (400) ,100);
Dynamixel.moveSpeed(6, (350) ,100);
// KAKI 4
Dynamixel.moveSpeed(12, (710) ,100);
Dynamixel.moveSpeed(18, (512) ,100);
Dynamixel.moveSpeed(6, (450) ,100);
delay(80);
//kaki 2
Dynamixel.moveSpeed(4, (330) ,100);
Dynamixel.moveSpeed(16, (512) ,100);
Dynamixel.moveSpeed(15, (412) ,100); // ssudut dikurani dari posisi center
// kaki 2
Dynamixel.moveSpeed(4, (330) ,100);
Dynamixel.moveSpeed(16, (601) ,100);
Dynamixel.moveSpeed(15, (512) ,100);
delay(100);
// kaki 6
Dynamixel.moveSpeed(13,(308) ,100);
Dynamixel.moveSpeed(8, (610) ,100);
Dynamixel.moveSpeed(11, (370) ,100);
// kaki 6
Dynamixel.moveSpeed(13,(308) ,100);
Dynamixel.moveSpeed(8, (512) ,100);
Dynamixel.moveSpeed(11, (470) ,100);
delay(120);
}
// #################################################################################################################################################################################
void putar_kanan(void) {
// kaki 1
Dynamixel.moveSpeed(3, (310),250);
delay(20);
Dynamixel.moveSpeed(1, (601),250);
delay(20);
Dynamixel.moveSpeed(9, (350),250);
delay(20);
// kaki 1
Dynamixel.moveSpeed(3, (310),150);
delay(20);
Dynamixel.moveSpeed(1, (601),150);
delay(20);
Dynamixel.moveSpeed(9, (450),150);
delay(20);
// kaki 2
Dynamixel.moveSpeed(4, (330) ,150);
delay(40);
Dynamixel.moveSpeed(16, (601) ,150);
delay(40);
Dynamixel.moveSpeed(15, (512) ,150);
delay(40);
// kaki 2
Dynamixel.moveSpeed(4, (330) ,150);
delay(40);
Dynamixel.moveSpeed(16, (601) ,150);
delay(40);
Dynamixel.moveSpeed(15, (612) ,150);
delay(40);
// KAKI 3
Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (601) ,150);
delay(60);
Dynamixel.moveSpeed(14, (670),150); //570
delay(60);
// KAKI 3
Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (601) ,150);
delay(60);
Dynamixel.moveSpeed(14, (770),150); //570
delay(60);
// KAKI 4
Dynamixel.moveSpeed(12, (710) ,150);
delay(80);
Dynamixel.moveSpeed(18, (400) ,150);
delay(80);
Dynamixel.moveSpeed(6, (350) ,150);
delay(80);
// KAKI 4
Dynamixel.moveSpeed(12, (710) ,150);
delay(80);
Dynamixel.moveSpeed(18, (400) ,150);
delay(80);
Dynamixel.moveSpeed(6, (450) ,150);
delay(80);
// kaki 5
Dynamixel.moveSpeed(20, (720) ,150);
delay(100);
Dynamixel.moveSpeed(5, (400) ,150);
delay(100);
Dynamixel.moveSpeed(2, (512) ,150);
delay(100);
// // kaki 5
Dynamixel.moveSpeed(20, (720) ,150);
delay(100);
Dynamixel.moveSpeed(5, (400) ,150);
delay(100);
Dynamixel.moveSpeed(2, (612) ,150);
delay(100);
// kaki 6
Dynamixel.moveSpeed(13,(308) ,150);
delay(120);
Dynamixel.moveSpeed(8, (610) ,150);
delay(120);
Dynamixel.moveSpeed(11, (370) ,150);
delay(120);
// // kaki 6
Dynamixel.moveSpeed(13,(308) ,150);
delay(120);
Dynamixel.moveSpeed(8, (610) ,150);
delay(120);
Dynamixel.moveSpeed(11, (470) ,150);
delay(120);
}
void setup() {
Dynamixel.setSerial(&Serial3);
Dynamixel.begin(1000000,46);
delay(1000);
Serial.begin(9600);
}
void loop() {
stance_Phase();
swing_Phase();
}
the problem is the delay of the code sometimes, leg 1,2,3 move but sometimes it doesnt move properly. let me know if you guys know about it thank you very much