快速开始
项目克隆:
git clone https://github.com/Santerc/Controlry.git
安装依赖:
cd Backend
mkdir third #如果已经存在,则跳过这里以及下面的git clone
cd third
git clone https://github.com/ocornut/imgui.git
项目结构简介:
Frontend/
:仿真窗口(6020.exe)Backend/
:C++ 控制端核心代码User/src/MotorControl.cpp
:主循环控制逻辑
启动顺序:必须先运行 6020.exe
,再运行控制端
界面说明
通信协议
反馈数据包(11 字节)
字段 | 字节范围 | 说明 |
---|---|---|
包头 | 0 | 固定值 0xA0 |
电机 ID | 1 | 电机编号 (0~255) |
角度 | 2–5 | float (单位:度) |
角速度 | 6–9 | float (单位:rad/s) |
校验和 | 10 | XOR 校验(字节 0~9) |
命令数据包(7 字节)
字段 | 字节范围 | 说明 |
---|---|---|
包头 | 0 | 固定值 0xA1 |
电机 ID | 1 | 电机编号 (0~255) |
力矩 | 2–5 | float (单位:Nm) |
校验和 | 6 | XOR 校验(字节 0~5) |
电机控制
获取电机实例:
Motor* motor = MotorManager::getInstance().getMotor(0);
读取状态:
float angle = motor->getCurrentAngle();
float omega = motor->getCurrentOmega();
设置输出力矩:
motor->setTorque(1.5f);
调试 API
添加可编辑变量:
debugInterface.addEditableVariable("Kp", &kp, 0.0f, 10.0f, 0.1f, InputType::SLIDER);
添加观测变量:
debugInterface.addWatchVariable("速度", &omega, ViewMode::WAVEFORM, "rad/s", 0xffcc00);
参数编辑方式
枚举值 | 说明 |
---|---|
SLIDER |
滑动条 |
DRAG |
拖拽条 |
INPUT_BOX |
输入框 |
变量观测模式
枚举值 | 说明 |
---|---|
WAVEFORM |
波形显示 |
NUMERIC |
数值显示 |