HumansXドキュメントセンター 公式サイトへ ↗

サーボ制御通信プロトコルインターフェース

目的:ServoProtocol クラスのメソッドをすばやく理解できるよう、クラスのメソッド、パラメータ、戻り値、使用例を紹介し、開発に役立てます。

クラス概要

ServoProtocol クラスはサーボ制御通信プロトコルインターフェースで、サーボの回転とプロトコル制御を担当します。

1. 静的メソッド

calculate_checksum(data)

機能 :データフレームのチェックサムを計算します

パラメータ :

  • data (bytes):チェックサムを計算するデータのバイト列

戻り値 :

  • byte:チェックサム値(& 0xFF)

使用例 :

python

data = bytes([0x01, 0x02, 0x03])
checksum = ServoProtocol.calculate_checksum(data)
print(f"校验和: 0x{checksum:02X}")  # 输出: 校验和: 0xB0

2. 角度を 2 バイトに変換

angle_to_bytes(angle)

機能 :角度値を 2 バイトのプロトコル形式に変換します

パラメータ :

  • angle (float):角度値(度)

戻り値 :

  • list:2 バイトのリスト [High Byte, Low Byte]

使用例 :

python

bytes_data = ServoProtocol.angle_to_bytes(90.0)
print(f"90度对应的字节: {bytes_data}")  # 输出: [0x03, 0x84]

3. サーボの回転制御

servo_control(servo_num, servo_id, servo_angle)

機能 :複数のサーボを制御する完全なプロトコルデータフレームを生成します

パラメータ :

  • servo_num (int):制御するサーボの数(1~9)
  • servo_id (list[int]):サーボのピン番号のリスト
  • servo_angle (list[float]):対応するサーボ角度のリスト

戻り値 :

  • bytes:34 バイトの完全なプロトコルデータフレーム

使用例 :

python

protocol = ServoProtocol()

# 控制单个舵机
data = protocol.servo_control(
    servo_num=1,
    servo_id=[4],
    servo_angle=[90.0]
)
print(f"单舵机控制数据: {data.hex(' ').upper()}")

# 控制多个舵机
data = protocol.servo_control(
    servo_num=3,
    servo_id=[4, 6, 10],
    servo_angle=[90.0, 45.0, 180.0]
)
print(f"多舵机控制数据长度: {len(data)}字节")

4. サーボ制御プロトコル生成関数

_generate_protocol(servo_data)

機能 :サーボデータの辞書からプロトコルフレームを生成します(内部使用)

パラメータ :

  • servo_data (dict):サーボデータの辞書 {ピン番号: 角度値}

戻り値 :

  • bytes:完全なプロトコルデータフレーム

使用例 :

python

# 直接使用字典方式控制舵机
servo_data = {4: 90.0, 6: 45.0, 10: 180.0}
protocol = ServoProtocol()
data = protocol._generate_protocol(servo_data)