Difference between revisions of "CanServo/Protocol/V1.7"

From HITEC_HELP
Jump to navigation Jump to search
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Pot Calibration ==
== Pot Calibration ==


* Host -> Servo
* Pot Cali
** ZPST, < set position : -32768 ~ +32767, resolution 16384 = 360 deg >
** 서보 출력 축에 정밀한 각도 센서를 장착하여 서보 위치 센서의 값을 Calibration 하는 절차입니다.
*** 주의: Short Message도 가능해야 함.
*** Cali순서: 위치값 0->16383까지 등간격 혹은 특별한 순서로 서보를 이동시키면서, ZPST를 통해 외부 위치 센서값을 전달하는 컨셉
**** 단, 첫 위치는 원점(8192) 임.
*** 주의: 좌표에서 Turn 처리가 필요함.
**** 예: 좌표 0 왼쪽(마이너스 방향)은 16383이 아니라 -1로 처리. 좌표 16383의 오른쪽(플러스 방향)은 0이 아니라 16384로 처리해야 함.
** 추천 방식1: 0점, -60도 위치, +60도 위치, 3점에 측정
** 추천 방식2: 360도 전체를 등간격으로 측정


* Host -> Servo
* Process
** ZPGS, <start index : 2 byte>, <N: 2 byte>
** Cali Unlock:
*** 서보는 ZPVS 메시지를 보냅니다.
*** Write Reg 0x72: 40092, 40017, 40069
** Cali Start
*** Write 0x70, 3848
** Cali Set Position
*** ZPST message
** Cali End
*** Write 0x70, 3849
*** wait 1 sec


* Servo -> Host
* Erase Cali Table
** ZPVS, <start index : 2 byte>, <N: 2 byte>, <Pi : setted position>, <Vi : position sensor value>, ...
** Unlock
*** 서보는 최대 N개의 데이터를 보냅니다.
** Erase
**** 주의: 메시지 전송 버퍼의 한계 등을 확인하여 개수를 제한해야 합니다.
*** Write 0x70, 3843
*** Wait 100 msec
** Reset
 
* Message
** Host -> Servo
*** ZPST, ID2 (4), ID1 (1), external position sensor value ( 2 byte, signed 16 bits integer, 8192=center, resolution 16384 = 360 deg )
**** value range: -32768 ~ +32767
**** 주의: Host는 외부 위치 센서의 Turn 처리를 해야 합니다.
***** 예: 0-16383 범위를 벗어날 때
****** 센서값: 0 -> 16383 ==> -1 로 표시
****** 센서값: 16383 -> 0 ==> 16384 로 표시
** Host -> Servo
*** ZPGS, ID2 (4), ID1 (1), start index ( 2 byte ), N ( 2 byte )
**** 서보는 ZPVS 메시지를 보냅니다.
** Servo -> Host
*** ZPVS, ID2 (4), ID1 (1), start index ( 2 byte ), N ( 2 byte ), Pi ( setted position ), Vi ( position sensor value ), ...
**** 서보는 최대 N개의 데이터를 보냅니다.
***** 주의: 메시지 전송 버퍼의 한계 등을 확인하여 개수를 제한해야 합니다.

Latest revision as of 07:08, 25 September 2025

Pot Calibration

  • Pot Cali
    • 서보 출력 축에 정밀한 각도 센서를 장착하여 서보 위치 센서의 값을 Calibration 하는 절차입니다.
      • Cali순서: 위치값 0->16383까지 등간격 혹은 특별한 순서로 서보를 이동시키면서, ZPST를 통해 외부 위치 센서값을 전달하는 컨셉
        • 단, 첫 위치는 원점(8192) 임.
      • 주의: 좌표에서 Turn 처리가 필요함.
        • 예: 좌표 0 왼쪽(마이너스 방향)은 16383이 아니라 -1로 처리. 좌표 16383의 오른쪽(플러스 방향)은 0이 아니라 16384로 처리해야 함.
    • 추천 방식1: 0점, -60도 위치, +60도 위치, 3점에 측정
    • 추천 방식2: 360도 전체를 등간격으로 측정
  • Process
    • Cali Unlock:
      • Write Reg 0x72: 40092, 40017, 40069
    • Cali Start
      • Write 0x70, 3848
    • Cali Set Position
      • ZPST message
    • Cali End
      • Write 0x70, 3849
      • wait 1 sec
  • Erase Cali Table
    • Unlock
    • Erase
      • Write 0x70, 3843
      • Wait 100 msec
    • Reset
  • Message
    • Host -> Servo
      • ZPST, ID2 (4), ID1 (1), external position sensor value ( 2 byte, signed 16 bits integer, 8192=center, resolution 16384 = 360 deg )
        • value range: -32768 ~ +32767
        • 주의: Host는 외부 위치 센서의 Turn 처리를 해야 합니다.
          • 예: 0-16383 범위를 벗어날 때
            • 센서값: 0 -> 16383 ==> -1 로 표시
            • 센서값: 16383 -> 0 ==> 16384 로 표시
    • Host -> Servo
      • ZPGS, ID2 (4), ID1 (1), start index ( 2 byte ), N ( 2 byte )
        • 서보는 ZPVS 메시지를 보냅니다.
    • Servo -> Host
      • ZPVS, ID2 (4), ID1 (1), start index ( 2 byte ), N ( 2 byte ), Pi ( setted position ), Vi ( position sensor value ), ...
        • 서보는 최대 N개의 데이터를 보냅니다.
          • 주의: 메시지 전송 버퍼의 한계 등을 확인하여 개수를 제한해야 합니다.