[아두이노] 로보티즈 다이나믹 셀 MX-12W를 Arduino로 제어하기 (without 3 state buffer)

몇달 전부터 말벌 인식 및 타격 시스템을 만들기 시작 하였다.

CCTV에서 사용되는 팬틸트를 사용하다 보니 덩치가 크고 느리게 작동 되어 여러가지 고민 중 헬 박사님이 로보티즈 다이나믹 셀을 추천해 주셔서 연동을 진행 하게 되었다. 

d8958fe2251e18cee872bd8b0b200c40.jpg

 연동 대해서 구글 검색을 통하여 확인 하였으며, 다이나믹 셀 아두이노 쉴드를 사용 하는 방법이 가장 손쉬워 보였으나, 해당 모듈은 Hardware Serial을 사용하여 다아니믹 셀과 통신 하도록 설계되어 외부 기기와 통신에 불편한 점이 보였다. 


 당장 관련 쉴드가 없어 특별한 부품 없이 로보티즈 다나믹 셀의 연동 할수 있는 샘플 코드로 작업 해보았다.


우선 다이나믹 셀의 통신 속도가 초기값 1Mbps => 57600bps 변경은 로보티즈 U2D2와 설정 프로그램 사용

(설정 프로그램 통신 속도, 관절 / 바퀴 모드, 동작 각도 등 세부 변경이 가능)

thumb_DXL_StartSet03_500.jpg

다이나믹 스타터 세트를 구매 후 다아니믹 셀과 연결

197ae2f211d822dfa077dbea53801765.jpg
PC제어 S/W에서 필자는 2개의 다이나믹 셀을 사용 하고 있어 가각 ID를 1과 2를 부여, Baud Rate와 CW, CCW의 동작 각도 변경 


DynamixelArduino_bb.png 

아두이노 회로 연결 8번 핀을 Half Duplex 통신 (RS485통신)  


필자는 처음 아두이노 나노 연동 하였으나 미묘한 설정 문제인지 실패하여 아두이노 우노 연동 하였으며  문제 없이 동작 하는 것을 확인 하였다.


6b7321f25531a76dedbbee97cab843bf.jpg edc119b7426e11bdc6c649e192b1c344.jpg
 

문제는 통신이 1개의 선을 사용하여 Half Duplex 통신을 하고 있어 데이타를 보내고 받기를 동시할 경우 문제가 예상되며 1~2개 정도 저속으로 연동하는 것은 큰 문제는 없어 보이나 수십개를 연동할 경우 안정성이 떨어지는 문제가 예상된다. 그래서 다이나믹 셀 초기 설정 1M 속도에서 57600bps 낮추 것이 아닌지 추측 되며 초기 설정으로 테스트는 추후 필요해 보인다.


95bf5ce9c3ad9dbecbae19c10e33dc71.png 

다이나믹 셀과 통신 시 중간 모듈 (74LVC2G241 / NC7WZ241등)이 보내는 데이타 받는 데이타 중간에 버퍼 역할을 해주면서 DIRECTIO_PORT를 통하여 TxD와 RxD를 구분한다. 실제 로보티즈에서 제작한 쉴드 S/W에서 DIRECTIO_PORT 사용 부분이 확인 되고 있다.


82361d44aa06b0e73611df7e43886a0c.png
 중간 모듈 없이 다이믹셀과 RS-485 통신시 오류를 최소화 하기 위한 방법으로 Teensy 3.1에서는 Rx/Tx에 100옴 저항을 넣는 방법도 검색 되고 있으나 추가는 테스트는 아직 해보지 않았다.


26049d203cf659e23651d070d1e7de28.png

 아두이노 나노와 우노의 미묘한 설정 차이로 동작하지 않는 부분에 대해서 한가지 추측은 사용 전압이 상이한부분이 있지 않나 의심 되며 Teensy 3.1에서 Poll up 저항 22k 연결 내용이 있어 추가 확인이 필요하다.

(테스트 시 U2D2 로보티즈 제어기를 연결 해두면 아두이노 나노에서 동작이 확인 된다.)


 지금 까지는 중간 모듈이 없을때 쓰는 편법 이고 정석은 RS-232 에서 RS-485변환 모듈 사용을 사용해서 안정석을 확보해야 한다.

6d87902e238bca8d14e394c5d3597bf4.jpg

헬 박사님이 만드신 로보티즈 용 RS-232 <-> RS-485 변환기기 (택배로 현재 배송 중)


f9c47d2470d38bd8578b31aad7aa286d.jpg

헬박사님으로 전달 받은 회로도


RE / DE 는 신호에 평소엔 Low로 수신모드로 놓고 제어 데이터 보내기 직전 H로 만드시고 보내고 난후 즉시 (약 1m초 후) Low로 보내기 프로그램 제작 하면 된답니다.


 MX-12W 팬틸트 제작 후 동작 시 1~2도 정도의 유격이 발생되어 로보티즈에 기술 문의 결과 상위 제품군 사용에 대한 답변을 받았으며, 제작 비용의 문제로 다른 대안에 대한 고민이 필요한 상황이다.


 사용하시는 MX-12W 제품은 플라스틱 기어이며, 보급형 다이나믹셀 특성상 백래시(Backlash)가 큽니다.

XM, XH 시리즈 등 금속 기어를 사용하는 다이나믹셀을 사용하시면 유격을 줄일 수 있습니다.





  















0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

메이커 스토리

번호 제목 글쓴이 날짜 조회수
125 아두이노 헬박사님의 로봇팔 살리기 icon 양재동메이커 05-13 4,114
124 일반 레이저 커터 동파 사고 icon 양재동메이커 04-23 4,091
123 일반 기존 고양이 마이크로 파이썬으로 포팅 - 밀린 숙제하기 icon 양재동메이커 01-03 5,791
122 일반 휴식 icon 청계천도사 12-13 5,354
121 일반 기기를 수리한다는 것 icon 청계천도사 09-09 5,865
120 일반 수학 공부 왜 하나요? icon 청계천도사 07-20 6,571
119 아두이노 ESP32 CAM을 활용한 도깨비 자동차 Ver 3.0 icon 양재동메이커 06-12 7,881
118 라즈베리파이 Pupper 시작해서 Mini Pupper로 마무리 - 밀린 숙제하기 icon 양재동메이커 01-08 8,700
117 일반 말벌 인식 및 레이저 타격기 V 2.0 icon 양재동메이커 08-23 10,723
116 아두이노 ESP32 CAM - 도깨비 자동차 2 icon 양재동메이커 07-13 11,643
115 아두이노 ESP32 CAM - 도깨비 자동차 icon 양재동메이커 05-07 13,162
114 일반 급~한~개~발!! icon 청계천도사 04-08 12,177
113 일반 말벌 레이저 타격 테스트 모듈 icon 양재동메이커 03-10 13,340
112 아두이노 로보티즈 다이나믹 셀 MX-12W를 Arduino로 제어하기 (without 3 state buffer) +2 icon 양재동메이커 02-24 17,160
111 일반 2021 피우다 프로젝트 출품작 소개 자료집 icon HellMaker 01-12 12,723
110 일반 서보 모터 관련 여러가지 문제 icon 양재동메이커 11-19 13,550
109 라즈베리파이 Top Maker 해커톤 2021 icon 양재동메이커 08-29 13,090
108 라즈베리파이 라즈베리 파이 4 WiFi 안테나 확장 방법 icon 양재동메이커 08-24 18,561
107 아두이노 Otto Bot Bluetooth 연동하기 icon 양재동메이커 05-14 13,888
106 일반 자이로센서 roll, pitch, yaw 데이터 처리 구조 #2 icon HellMaker 03-01 13,926