모터를 제어하기 위해 다음과 같은 단계를 거친다.
1) 모터 ID scan 확인 ( 파일->예제-> 06. Dynamixel->n_Dxl_Model_scan )
2) 모터 ID 설정 ( 파일->예제-> 06. Dynamixel->d_Dxl_ID_Change )
3) 모터 정회전/역회전 테스트 ( 파일->예제-> 06. Dynamixel->g_Dxl_Wheel_Mode2 )
주의) 모터 사용시 배터리를 사용해야 모터에 빨간불이 들어오지 않는다. (모터는 7.5V로 동작, USB는 5V 전원)
배터리를 연결 안한 경우 -> 모터 동작시 빨간 불이 들어온다.
배터리를 연결 한 경우 -> 정상적으로 스캔과 모터가 동작한다.
1) 모터 ID값을 스캔하여 확인한다.
[파일]->[예제]->[OpenCM9.04]->[08. DynamixelWorkbench]->[a_Model_Scan] 을 선택하고 소스를 수정한다.
소스를 다음과 같이 수정하여 실행한다.
프로그램 | 코드 수정 |
OpenCM IDE | [파일]->[예제]->[06. Dynamixel]->[n_Dxl_Model_scan] 선택 |
아두이노 IDE | [파일]->[예제]->[Dynamixel2Arduino]->[basic]->[scan_dynamixel] 선택
#elif defined(ARDUINO_OpenCM904) #define DXL_SERIAL Serial1 #define DEBUG_SERIAL Serial const uint8_t DXL_DIR_PIN = 28; |
아두이노 IDE | [파일]->[예제]->[OpenCM9.04]->[08. DynamixelWorkbench]->[a_Model_Scan] 선택
#if defined(__OPENCM904__) #define DEVICE_NAME "1" Dynamixel로 설정 #define BAUDRATE 1000000 모터 통신 속도 |
다음 그림은 1개의 모터를 찾았으며, ID는 5이고, 전송속도는 1Mbps 임을 알 수 있다.
2) 모터 ID 설정
처음 기본 모터는 모두 ID가 1로 설정되어 있다. 따라서 모터 ID를 2로 설정해 보자. 설정하기 위해 모터 한 개만 연결한다.
프로그램 | 코드 수정 |
OpenCM IDE | [파일]->[예제]->[06. Dynamixel]->[d_Dxl_ID_Change] 선택
#define NEWID 2 |
아두이노 IDE | [파일]->[예제]->[Dynamixel2Arduino]->[basic]->[id] 선택
#elif defined(ARDUINO_OpenCM904) #define DXL_SERIAL Serial1 #define DEBUG_SERIAL Serial const uint8_t DXL_DIR_PIN = 28;
... const uint8_t DEFAULT_DXL_ID = 1; // 기존 모터 ID const float DXL_PROTOCOL_VERSION = 2.0; ... uint8_t new_id = 2; // 새로운 모터 ID ... dxl.begin(1000000); // 모터 통신 속도 1Mbps
|
아두이노 IDE | [파일]->[예제]->[OpenCM9.04]->[08. DynamixelWorkbench]->[c_ID_Change] 선택
#if defined(__OPENCM904__) #define DEVICE_NAME "1" Dynamixel로 설정
#define BAUDRATE 1000000 // 모터 통신 속도 1M bps #define DXL_ID 4 // 기존 모터 ID #define NEW_DXL_ID 2 // 새로운 모터 ID를 2로 설정 |
<< 모터 ID 변경 >> [파일]->[예제]->[Dynamixel2Arduino]->[basic]->[id] 선택
OpenCM904 부분을 찾아 Seria1 과 28번 으로 수정한다.
현재 모터 ID와 새로운 모터 ID를 설정해 준다. 그리고 모터 통신 속도를 1Mbps로 설정한다.
다음 소스코드는 다시 원래대로 원상복구 하는 부분으로 삭제하거나 주석처리한다.
다운로드하여 실행한다. 프로그램이 제대로 실행되면 모터가 정회전/역회전으로 1초간 움직인다.