#!/usr/bin/env python3
"""完整控制示例"""
import time
import math
from motorbridge import Controller, Mode
def main():
with Controller("can0") as ctrl:
motor = ctrl.add_damiao_motor(0x01, 0x11, "4340P")
print("使能电机...")
ctrl.enable_all()
# ===== MIT 模式演示 =====
print("\n--- MIT 模式 ---")
motor.ensure_mode(Mode.MIT, 1000)
print("硬位置控制")
for _ in range(50):
motor.send_mit(0.5, 0.0, 50.0, 2.0, 0.0)
time.sleep(0.02)
print("柔顺控制")
for _ in range(50):
motor.send_mit(0.0, 0.0, 5.0, 0.5, 0.0)
time.sleep(0.02)
# ===== POS_VEL 模式演示 =====
print("\n--- POS_VEL 模式 ---")
motor.ensure_mode(Mode.POS_VEL, 1000)
for pos in [1.0, -1.0, 0.0]:
print(f"移动到 {pos:.1f} rad")
motor.send_pos_vel(pos, vlim=1.5)
time.sleep(1.0)
# ===== VEL 模式演示 =====
print("\n--- VEL 模式 ---")
motor.ensure_mode(Mode.VEL, 1000)
print("旋转 2 rad/s")
for _ in range(50):
motor.send_vel(2.0)
time.sleep(0.02)
print("停止")
motor.send_vel(0.0)
print("\n演示完成")
if __name__ == "__main__":
main()