Difference between revisions of "CanServo/ReadPosition"

From HITEC_HELP
Jump to navigation Jump to search
(Created page with " * 서보의 현재 위치는 CanServo/POSITION 에 있습니다. * 2가지 방법이 있습니다. * Read Command ** 위치값의 주소 0x0C 를 읽는 메시지를 발...")
 
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:


* 서보의 현재 위치는 [[CanServo/POSITION]] 에 있습니다.
* 서보의 현재 위치는 Register 0x0C [[CanServo/POSITION]] 에 있습니다.
** 만일 동작 각도가 360도를 넘어갈 가능성이 있다면 [[CanServo/POSITION-32/LOW]] 를 사용하는 것을 추천합니다.
* 2가지 방법이 있습니다.
* 2가지 방법이 있습니다.
* Read Command
* Read Command
** 위치값의 주소 0x0C 를 읽는 메시지를 발신합니다.
** 위치값의 주소 0x0C 를 읽는 메시지를 발신합니다.
** 해당하는 서보는 자신의 위치값을 보고합니다.
** 해당하는 서보는 자신의 위치값을 보고합니다.
* 모든 서보에게 방송
 
* 발신/반송 패킷 포맷
<pre>
<pre>
Host -> Servo: CAN ID = 0, DATA = 'r', 0, 0x0C, DLC = 3
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>, 0x0C, <Low Byte>, <High Byte>, DLC=5
Servo -> Host: CAN ID = <Servo's ID2>, DATA = 'v', <Servo's ID1>, <Address of Register>, <Low Byte>, <High Byte>, DLC=5
</pre>
</pre>
* 특정 서보(Servo ID=10, Servo CAN ID=0x123, CAN 2.0B)에게만 지정, 위치값 = 0x1122
* 예제: 모든 서보에게 방송, 서보1(ID1=5, ID2=15, 위치값=0x1234, TYPE=CAN 2.0B), 서보2(ID1=6, ID2=15, 위치값=0x3344, TYPE=CAN 2.0B)
<pre>
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
</pre>
* 예제: 특정 서보: Servo ID=10, Servo CAN ID=0x123, Type=CAN 2.0B, 현재 위치값 = 0x1122
<pre>
<pre>
Host -> Servo: CAN ID = 0x123, CAN=EXT, DATA = 'r', 10, 0x0C, DLC=3
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
Servo -> Host: CAN ID = 0x123, CAN=EXT, DATA = 'v', 10, 0x0C, 0x22, 0x11, DLC=5
</pre>
</pre>
* Read/Write Command, Return 메시지의 포맷은 [[SERVO/PROTOCOL/CAN/V1.0/ENG]] 를 참조해 주십시오.
* Stream 기능 사용
* Stream 기능 사용
** [[CanServo/Stream]] 기능을 켜면, 서보는 자신의 위치값 등의 정보를 발신합니다.
** [[CanServo/Stream]] 기능을 켜면, 서보는 자신의 위치값 등의 정보를 발신합니다.
** 추가적으로 원하는 정보들이 있으면, [[CanServo/Stream/Address]] 에 지정합니다.
** 추가적으로 원하는 정보들이 있으면, [[CanServo/Stream/Address]] 에 지정합니다.
* 참고로 서보의 ID 는 [[CanServo/ID1]], 서보의 CAN ID 는 [[CanServo/ID2]] 를 통해 설정합니다.

Latest revision as of 01:06, 21 April 2022

  • 서보의 현재 위치는 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 에 지정합니다.