Skip to main content

为什么要先扫描?

扫描是必不可少的步骤,因为:
  1. 确认接线正确 - CAN_H 和 CAN_L 有没有接反
  2. 确认波特率匹配 - 电机和 CAN 接口波特率必须一致
  3. 获取电机 ID - 控制电机需要知道它的 motor_idfeedback_id
  4. 发现 ID 冲突 - 多个电机不能有相同的 ID

准备工作

硬件检查

在开始扫描前,确认:
  • CAN 接口已连接(USB-CAN 或 PCAN)
  • CAN 总线两端有 120Ω 终端电阻
  • 电机已上电(LED 灯亮)
  • 只有一个程序在访问 CAN 接口

软件检查

方法一:使用 CLI 工具扫描(推荐)

扫描所有厂商

最简单的方式是扫描所有支持的厂商:
参数详解:

扫描特定厂商

如果你知道电机厂商,可以只扫描那个厂商:

理解扫描结果

扫描成功时,你会看到类似这样的输出:
输出解释:

记录扫描结果

把扫描到的信息记录下来,后面会用到:

方法二:使用 Python 代码扫描

如果你想在自己的程序中扫描电机:

不同厂商的 ID 规则

每个厂商的 ID 命名规则不同:

达妙 (Damiao)

RobStride

MyActuator

HighTorque

Hexfellow

使用串口扫描(达妙专用)

如果你用的是达妙的 USB-CAN 串口适配器:
串口参数说明:

故障排除

扫描不到任何电机?

检查清单:
  1. CAN 接口是否启动?
  2. 电机是否上电?
    • 检查电机 LED 灯是否亮
    • 检查电源电压是否正确(通常 24V)
  3. CAN 线是否接对?
    • CAN_H 接 CAN_H
    • CAN_L 接 CAN_L
    • 不要接反!
  4. 波特率是否匹配?
  5. 终端电阻是否安装?
    • CAN 总线两端需要 120Ω 电阻

只能扫描到部分电机?

可能原因:
  • 某些电机 ID 重复了
  • 某些电机波特率不同
  • CAN 线太长或接触不良
解决方法:

扫描很慢?

增加超时时间:
或者缩小 ID 范围:

完整示例:从扫描到控制

下一步

现在你已经知道如何扫描电机了!接下来学习: