Hardware/AX-12 (Dynamixel)

로보티즈 다이나믹셀 쉴드 (DYNAMIXEL Shield, ROBOTIS)

초인로크 2022. 1. 19. 13:51
반응형

평소에는 다이나믹셀 실드를 자작해서 쓰는데,

 

내가 만드는 것에도 한계가 있어서 로보티즈에서 발매된 쉴드를 한번 구매해 봤다.

 

https://fermium.tistory.com/373

 

AX-12A를 아두이노(Arduino)로 제어하기 : 자작 아두이노 쉴드

여태껏 아두이노를 가지고 모터 제어만 한 관계로, 각도랑 속도같은 파라메터를 받을수가 없는 회로를 이용하였는데, 역시 제어하다보면 현제의 각도가 필요하더라. Direction_port를 제어하기 위

fermium.tistory.com

 

 

로보티스에서 발매하는 다이나믹셀을 자주 사용하는 편이라 이것저것 공부 중인데,

 

나 스스로가 사용법을 기억 할 수 있도록 여기에 정리한다.

 

 

우선 아래의 링크가 매뉴얼이다.

 

https://emanual.robotis.com/docs/kr/parts/interface/dynamixel_shield/#%EC%8B%9C%EB%A6%AC%EC%96%BC-%EB%AA%A8%EB%8B%88%ED%84%B0-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95

 

개요

 

emanual.robotis.com

 

처음에는 무턱대고 해 보니 잘 안되길래 왜 안되는가 고민하다가 여기에 정리한다.

 

일단 무조건 매뉴얼은 읽고 시작해야 한다.

 

이번에 사용한 모터는 AX-12A 모터를 사용하였다.

 

 

무조건 알아두어야 하는 부분에 표시를 해 두었다.

 

1. 전원 부분

 

AX-12A는 12V 전원이 필요하다. 따라서 외부 전원 입력이 필요한데,

 

입력받을 수 있는 곳은 위의 사진에 표기된 [외부 전원 입력 1]과 [외부 전원 입력 2]이다.

 

평소대로 [외부 전원 입력 1]에 전원 케이블을 연결해서 사용해도 아무 지장이 없지만

 

이럴 경우에는 전원 점퍼가 연결된 상태로 있어야 된다.

 

[외부 전원 입력 2]를 이용하는 경우에는 전원 점퍼가 연결이 해제되어 있어도 동작한다.

 

2. 아두이노에 스케치 업로드

 

스케치를 업로드할 경우에, [모드 변경 스위치]가 2번 방향에 오도록 변경시켜야 된다.

 

실드가 아두이노와 통신을 할 경우에 시리얼 핀을 사용하는데,

 

아두이노는 시리얼 핀에 뭔가 꽂혀 있으면 USB로 업로드가 되지 않고 에러 메시지를 낸다.

 

따라서 업로드를 할 경우에는 2번 방향, 모터 제어를 할 경우에는 1번 방향에 오도록 스위치를 조작해 주어야 한다.

 

3. 전원 스위치

 

모터를 동작시킬 경우에는 전원 스위치를 ON 방향으로 스위치를 조작한다.

 

4. 라이브러리 인스톨

 

아두이노의 라이브러리를 추가해 주어야 사용 가능하다.

 

추가하는 방법은 아두이노 소프트에서 [스케치] - [라이브러리 포함하기] - [라이브러리 관리]를 클릭하면 아래와 같은 화면이 나오는데,

 

여기서 검색창에 [dynamixel]을 검색한 뒤에 로보티즈에서 나온 [DynamixelShield]를 인스톨하면 된다.

 

 

5. 프로그램 수정

 

라이브러리를 추가하고 나면 샘플 프로그램들을 사용해 볼 수 있다.

 

[파일] - [예제] - [DynamixelShield] - [basic] - [position_mode]로 샘플 프로그램을 불러올 수 있다.

 

이걸 그대로 사용하면 모터가 움직이지 않는 경우가 많다.

 

모터 ID, 프로토콜 버전, 모터 보 레이트의 설정을 맞춰 주어야 한다.

 

 

위는 소스코드의 일부분인데

 

모터 아이디는 1, 프로토콜 버전은 2, 보 레이트는 57600 이 기본 설정이다.

 

내가 가지고 있는 모터는 ID는 1이지만,

 

아래와 같이 프로토콜 버전 1로 보 레이트는 1000000으로 설정해야 움직인다.

 

const uint8_t DXL_ID = 1;
const float DXL_PROTOCOL_VERSION = 1.0;

dxl.begin(1000000);

 

이 파라메터는 본인이 가지고 있는 모터 설정에 맞게 바꾸어 주어야 한다.

 

6. 모터제어

 

AX-12A와 쉴드의 케이블을 연결하는데 잘 안 된다.

 

지극히 정상이니 약간 힘을 주면서 연결한다.

 

 

설정을 제대로 했다면 모터가 일정하게 움직이는 것을 확인할 수 있다.

 

(본 블로그의 내용에 대한 불펌은 금지합니다!)

 

반응형