基于开源电机驱动器调试诊断工具,支持 MT Protocol v3.2 协议。
v1.0
- 硬件: Hdrive开源驱动器 + 伺泰威GIM6010-8 电机
- 环境: Windows10 + Keil μVision V5.36 + st-link + 魔可灵 USB转RS485
- 固件: https://github.com/endpang/GoDrive/releases/download/%E5%9B%BA%E4%BB%B6/TEST.hex
- 协议: MT_Protocol_v3.2_GoDrive_完整说明.md
V2.0 (TO DO LIST) 预计 4月中上旬发布
- 1,支持Odrive CAN协议
- 2,支持多轴控制
- 3,支持手机云控制(飞书控制,web控制)
- 4,AI自然语言控制.
📺 点击上方链接或访问: https://b23.tv/Px1fEf6
点击 【Go】 按钮一键完成电机诊断:
| 步骤 | 名称 | 说明 |
|---|---|---|
| 1 | 通讯检测 | 验证串口连接和协议响应 |
| 2 | 零位校准 | 检查编码器校准状态 |
| 3 | 参数获取 | 读取电机电气参数 |
| 4 | 开环测试 | 强制矢量转动测试 |
| 5 | 闭环运动 | 位置模式定位测试 |
| 6 | 功能测试 | 播放测试曲子验证高频响应 |
- 零位校准 - 显示电气零位偏移、编码器方向、极对数
- 参数识别 - 显示电机电阻、电感、磁链等电气参数
- 极对数调试 - 显示极对数信息和计算公式
- 语言: Python 3.10+
- GUI: PyQt6
- 通信: pyserial
- 协议: MT Protocol v3.2 (RS485)
# 安装依赖
pip install -r requirements.txt
# 运行程序
cd src
python main.pyGoDrive/
├── src/
│ ├── main.py # 程序入口
│ ├── core/
│ │ ├── protocol.py # MT Protocol v3.2 实现
│ │ └── serial_worker.py # 串口通信线程
│ └── ui/
│ ├── main_window.py # 主窗口
│ └── widgets/
│ ├── step_widget.py # 单步状态组件
│ ├── go_panel.py # Go诊断面板
│ ├── calibration_panel.py # 零位校准面板
│ ├── param_identify_panel.py # 参数识别面板
│ └── pp_debug_panel.py # 极对数面板
├── requirements.txt
└── README.md
- 描述: 六步测试全部成功结束,进度条显示
5/6,应为6/6 - 位置:
src/ui/widgets/go_panel.py - 原因: 最后一步(第6步)成功时,状态机未正确更新进度
- 描述: Go诊断完成后,切换到【零位校准】【参数识别】标签页,数据为空
- 位置:
src/ui/main_window.py - 原因: 诊断流程获取的数据没有同步更新到各面板
- 描述: 连接一段时间后会自动断开
- 位置:
src/core/serial_worker.py - 原因: SerialWorker 超时检测机制(2秒未收到数据则断开),但诊断流程不是持续请求数据的
- 修复进度条显示问题
- 修复数据同步问题
- 修复连接自动断开问题
- 模式选择:位置/速度/电流模式
- 目标值设置和发送
- 实时显示反馈值
- 紧急停止按钮
- 支持 MIT 控制协议
- 参数:position, velocity, kp, kd, torque
- 混合控制模式界面
- PyInstaller 打包为 exe
- 安装程序制作
- 自动更新机制
- 波形显示功能
- 多设备同时连接
- 数据记录和导出
- 故障诊断知识库
| 命令 | 代码 | 功能 |
|---|---|---|
| GET_STATE | 0x20 | 获取状态 |
| GET_CALIBRATION | 0x25 | 获取校准数据 |
| GET_MOTOR_PARAMS | 0x43 | 获取电机参数 |
| SET_CUR | 0x12 | 设置电流 |
| SET_POS | 0x10 | 设置位置 |
| PLAY_SONG | 0x26 | 播放曲子 |
蟠桃 微信:endpang Email: endler@qq.com
Apache-2.0 license