CanServo/ReadPosition

From HITEC_HELP
Jump to navigation Jump to search
  • 서보의 현재 위치는 Register 0x0C CanServo/POSITION 에 있습니다.
    • 만일 동작 각도가 360도를 넘어갈 가능성이 있다면 CanServo/POSITION-32/LOW 를 사용하는 것을 추천합니다.
  • 2가지 방법이 있습니다.
  • Read Command
    • 위치값의 주소 0x0C 를 읽는 메시지를 발신합니다.
    • 해당하는 서보는 자신의 위치값을 보고합니다.
  • 발신/반송 패킷 포맷
Host -> Servo: CAN ID = <Target ID2>, DATA = 'r', <Target ID1>, <Address of Register>, DLC = 3
Servo -> Host: CAN ID = <Servo's ID2>, DATA = 'v', <Servo's ID1>, <Address of Register>, <Low Byte>, <High Byte>, DLC=5
  • 예제: 모든 서보에게 방송, 서보1(ID1=5, ID2=15, 위치값=0x1234, TYPE=CAN 2.0B), 서보2(ID1=6, ID2=15, 위치값=0x3344, TYPE=CAN 2.0B)
Host -> Servo: CAN ID = 0, CAN=EXT, DATA = 'r', 0, 0x0C, DLC = 3
Servo1 -> Host: CAN ID = 15, CAN=EXT, DATA = 'v', 5, 0x0C, 0x34, 0x12, DLC=5
Servo2 -> Host: CAN ID = 15, CAN=EXT, DATA = 'v', 6, 0x0C, 0x44, 0x33, DLC=5
  • 예제: 특정 서보: Servo ID=10, Servo CAN ID=0x123, Type=CAN 2.0B, 현재 위치값 = 0x1122
Host -> Servo: CAN ID = 0x123, CAN=EXT, DATA = 'r', 10, 0x0C, DLC=3
Servo -> Host: CAN ID = 0x123, CAN=EXT, DATA = 'v', 10, 0x0C, 0x22, 0x11, DLC=5
  • Stream 기능 사용
    • CanServo/Stream 기능을 켜면, 서보는 자신의 위치값 등의 정보를 발신합니다.
    • 추가적으로 원하는 정보들이 있으면, CanServo/Stream/Address 에 지정합니다.