Hai Steven,
This is my Java programming and a link below showing my AX-12a arm robot movement. I'm a little bit blur about how to integrate Java with the Roborealm or the PING ultrasonic sensor. What API do i have to use or any other tips from you Stevens? Thanks in advance.
https://www.youtube.com/watch?v=2Y2Og48rW_o
public class Test {
public static void main(String args[]) throws InterruptedException
{
int init = dynamixel_jni.dxl_initialize(); // initiating Dynamixel.
if(init == 1)
{
// dynamixel_jni.dxl_write_word(<servo number> , <addresses> , <value>);
dynamixel_jni.dxl_write_word(1, Control_Addresses.MOVING_SPEED, 150); // set servo1 moving speed is 150.
//dynamixel_jni.dxl_write_word(1, Control_Addresses.GOAL_POSITION, 0); // moving servo1 to 0 position.
Thread.sleep(1000); // wait 1 second. (Note that: 1000 miliseconds is equal to 1 second)
dynamixel_jni.dxl_write_word(1, Control_Addresses.GOAL_POSITION, 823); // moving servo1 to 1023 position
Thread.sleep(2000); // wait 2 second.
dynamixel_jni.dxl_write_word(2, Control_Addresses.MOVING_SPEED, 80); // set servo4 moving speed is 80.
dynamixel_jni.dxl_write_word(3, Control_Addresses.MOVING_SPEED, 80); // set servo5 moving speed is 80.
dynamixel_jni.dxl_write_word(2, Control_Addresses.GOAL_POSITION, 512); // moving servo4 to 623 position
//since servo 4 & 5 is in pair, the balance value from servo4 must be added to servo5 (1023 - 623 = 400).
dynamixel_jni.dxl_write_word(3, Control_Addresses.GOAL_POSITION, 511);
Thread.sleep(3000); // wait 1 second.
// same as above
//dynamixel_jni.dxl_write_word(4, Control_Addresses.GOAL_POSITION, 400); // moving servo4 to 623 position
//dynamixel_jni.dxl_write_word(5, Control_Addresses.GOAL_POSITION, 623); // balance value to servo5
//Thread.sleep(1000); // wait 1 second.
//dynamixel_jni.dxl_write_word(1, Control_Addresses.GOAL_POSITION, 512); // moving servo1 to 512 position.
//Thread.sleep(500); // wait 0.5 second.
dynamixel_jni.dxl_write_word(6, Control_Addresses.GOAL_POSITION, 512); // moving servo6 to 512 position, default speed.
//Thread.sleep(500);
dynamixel_jni.dxl_write_word(7, Control_Addresses.GOAL_POSITION, 480); // moving servo7 to 512 position, default speed.
//Thread.sleep(5000); // wait 2 second.
dynamixel_jni.dxl_write_word(7, Control_Addresses.GOAL_POSITION, 670); // moving servo7 to 512 position, default speed.
dynamixel_jni.dxl_write_word(2, Control_Addresses.GOAL_POSITION, 200); // moving servo7 to 512 position, default speed.
dynamixel_jni.dxl_write_word(3, Control_Addresses.GOAL_POSITION, 823); // moving servo7 to 512 position, default speed.
Thread.sleep(2000); /// wait 2 seconds
dynamixel_jni.dxl_write_word(1, Control_Addresses.GOAL_POSITION, 200);
Thread.sleep(1000);
dynamixel_jni.dxl_write_word(2, Control_Addresses.GOAL_POSITION, 512);
dynamixel_jni.dxl_write_word(3, Control_Addresses.GOAL_POSITION, 511);
Thread.sleep(2000);
dynamixel_jni.dxl_write_word(7, Control_Addresses.GOAL_POSITION, 480);
//dynamixel_jni.dxl_write_word(1, Control_Addresses.GOAL_POSITION, 200);
Thread.sleep (500);
dynamixel_jni.dxl_write_word(2, Control_Addresses.GOAL_POSITION, 200);
dynamixel_jni.dxl_write_word(3, Control_Addresses.GOAL_POSITION, 823);
dynamixel_jni.dxl_terminate(); // close Dynamixel.
}
}
}
|
|