다이나믹셀 회전을 길이로 제어하기

안녕하세요.

저는 현재 다이나믹셀 MX-28을 아두이노로 제어하려고 합니다.

원래는 시리얼 통신을 통해 입력한 메시지를 시간으로 바꿔서 단위 시간만큼 다이나믹셀이 일정한 속도로 정방향/역방향 회전할 수 있도록 제어를 해왔습니다.

그러나 이번에는 방식을 바꾸어서 시리얼 통신으로 입력한 메시지를 길이 (mm)로 인식한 후 그 길이만큼 다이나믹셀 회전을 일정한 속도로 정방향/역방향 제어하고 싶습니다. 그렇게 하려면 어떤 식으로 해야할지 도와주실 수 있을까요?

처음에는 제가 생각했을 때는 serial input한 값을 position으로 인식을 해서 dxl.setGoalPosition으로 하니까 다이나믹셀이 역방향/정방향 제어도 안 될 뿐 아니라 360도 이상 회전을 못한 것을 인지하여 다른 방식이 필요할 것 같네요.

어떤 방식이 좋을까요? 그리고 다이나믹셀 mx-28을 멀티턴 모드로 설정하기 위해서 특별한 코드를 아두이노에 입력해야하나요?

안녕하세요 @grace

우선 MX-28을 멀티턴 모드로 사용하시려면 프로토콜 2.0 버전으로 펌웨어를 변경(Wizard 2.0 사용) 해주셔야 하고요, 컨트롤테이블 11번주소에 값을 수정하여 멀티턴 모드로 변경후 사용하셔야합니다.
감사합니다.

Screen Shot 2023-06-20 at 1.27.56 PM

펌웨어에 나오는 41이라는 숫자는 무얼 의미하는 건가요?

그리고 이렇게 한게 멀티턴 모드로 변경이 된걸까요?

감사합니다!

41은 펌웨어 버젼을 의미합니다.
첨부한사진은 프로토콜 1.0으로 보입니다.
멀티턴사용을 위해 2.0으로 펌웨어 복구를 진행해야합니다.

프로토콜2.0 에서 컨트롤테이블 11번을 4(멀티턴)로 변경하면 됩니다.

펌웨어 복구를 진행할 때
Screen Shot 2023-06-20 at 4.17.11 PM

이렇게 선택하고

Screen Shot 2023-06-20 at 4.17.32 PM

이렇게 선택하면 MX-28 2.0으로 펌웨어 복구가 되는 건가요?

@grace
안녕하세요
첨부해주신 사진으로는 현재 프로토콜 1.0 펌웨어를 이용중이신거 같습니다.
아래 사진과 같이 Wizard2.0을 통해 펌웨어 2.0으로 업데이트 하시고,

컨트롤 테이블 11번주소 Operating Mode를 통해 멀티턴 모드로 변경 후, 사용 하시기 바랍니다.
(!주의 : 프로토콜 1.0과 프로토콜 2.0의 컨트롤테이블 주소가 상이하니 확인 부탁 드립니다.)