openCR 보드 TTL 포트 출력 전압 문의

openCR 보드와 Dynamixel이 연결되지 않아 멀티미터를 이용해 전압을 확인해보았습니다.
TTL Port VCC와 GND 전압을 측정하였을 때 9V 정도가 출력이 되는 상황입니다.

이 경우 소프트웨어 적으로 포트의 전압을 12V 이상으로 변경할 수 있는 것인지 회로 이상으로 수리가 필요한 것인지 여쭤보고 싶습니다.소프트웨어 적으로 회로의 전압을 변경할 수 있다면 가능한 방법도 알려주시면 많은 도움이 될 것 같습니다! (참고로 입력 전압은 12V로 잘 입력되고 있습니다)

++
아두이노 코드를 실행하며 확인해 본 결과 아래 코드를 실행하기만 하면 전압이 떨어지는 것을 확인하였습니다.

#include <DynamixelWorkbench.h>

#define BAUDRATE 57600
#define DXL_ID_1 1 // 모터 1 ID
#define DXL_ID_2 2 // 모터 2 ID

DynamixelWorkbench dxl_wb;

const int32_t goal_position_1 = 180; // 1번 모터 목표 각도
const int32_t goal_position_2 = 360; // 2번 모터 목표 각도
const int32_t increment_2 = 20; // 2번 모터 증분 각도 (20도)
const int32_t increment_1 = 20; // 1번 모터 증분 각도 (10도)

void setup()
{
Serial.begin(57600);
const char *log;
bool result = false;
}

void loop()
{
int32_t pos_2 = 0; // 2번 모터의 현재 위치를 선언

for (int32_t pos_1 = 0; pos_1 < goal_position_1; pos_1 += increment_1) {
// 1번 모터를 목표 위치로 설정
dxl_wb.goalPosition(DXL_ID_1, pos_1);
delay(100); // 1번 모터가 이동할 시간을 고려

// 2번 모터가 목표 각도에 도달했는지 확인
if (pos_2 == 0) {
  // 2번 모터의 각도를 증가시키기
  for (pos_2 = 0; pos_2 < goal_position_2; pos_2 += increment_2) {
    // 2번 모터를 목표 위치로 설정
    dxl_wb.goalPosition(DXL_ID_2, pos_2);
    delay(100); // 2번 모터가 이동할 시간을 고려
  }
} 
else if (pos_2 > 0) {
  // 2번 모터의 각도를 감소시키기
  for (pos_2 = goal_position_2; pos_2 > 0; pos_2 -= increment_2) {
    // 2번 모터를 목표 위치로 설정
    dxl_wb.goalPosition(DXL_ID_2, pos_2);
    delay(100); // 2번 모터가 이동할 시간을 고려
  }
}

}

// 무한 루프 방지
while (true);
}

코드 내용은 이렇고 이렇게 전압이 떨어진 보드의 경우 Examples/openCR/DynamixelSDK/dxl_monitor 해당 코드를 실행시키면 전압이 다시 12V로 돌아옵니다. 왜 위의 코드를 실행했을 때 문제가 발생하는 걸까요?? 코드는 단순히 두 개의 모터를 순서에 맞게 회전시키는 코드입니다.

안녕하세요.

dxl_wb.init() 함수를 추가해서 사용해 주세요.
*아두이노 IED에 있는 DynamixelWorkbench예제들을 참고하시면 좋습니다.

dxl_wb.init()DynamixelWorkbench 라이브러리에서 사용하는 초기화 함수로, Dynamixel 모터와의 통신을 설정하는 데 사용됩니다. 이 함수는 주로 다음과 같은 기능을 합니다:

  1. 시리얼 통신 설정: Dynamixel 모터와의 통신을 위한 UART(또는 다른 통신 방식) 포트를 설정합니다. OpenCR 보드의 경우 TTL 통신이나 RS485 통신을 사용할 수 있는데, init() 함수에서 이러한 통신 설정을 지정합니다.
  2. 모터 프로토콜 설정: Dynamixel 모터에는 1.0 또는 2.0 버전의 통신 프로토콜이 있습니다. 이 프로토콜을 init() 함수에서 설정하여 올바른 방식으로 모터와 통신할 수 있도록 합니다.
  3. 전송 속도 설정: 모터와의 통신 속도(baudrate)를 설정하는 역할도 합니다.
  4. 모터 연결 확인: init() 함수는 모터가 제대로 연결되었는지 확인하고, 통신이 성공적으로 이루어질 수 있는 환경을 조성합니다.

이 함수가 없으면 Dynamixel 모터와 보드 간에 제대로 된 초기 통신 설정이 이루어지지 않기 때문에, 코드가 정상적으로 동작하지 않을 수 있습니다.

이 함수가 제대로 호출되지 않으면 모터가 제어되지 않거나 전압이 떨어지는 등의 문제가 발생할 수 있습니다.