PERSONAL PROJECT / 个人项目
Where Motors Turn
从单轴实转、encoder 与安全停止开始,逐步建立两自由度桌面云台的底层电控。
- 作者
- Aquifers
- 当前范围
- 单轴开环 bring-up · 速度观测开发
- 技术
- C · STM32F103 · STM32 HAL · CMake · PWM · encoder
从一根轴开始的桌面云台
Where Motors Turn 的目标是两自由度桌面云台。当前先把一条执行与观测链路做清楚:STM32F103C8T6 控制 motor driver,驱动带 Hall encoder 的减速电机,再读取实际运动。
项目使用 STM32 HAL 与固定周期采样,当前位于单轴、低能量、开环 bring-up阶段。完整双轴控制、位置环和速度 PI/PID 尚未实现;能够转动是起点,不是完成一台云台。
执行之前,先能安全停止
当前样机由 MG310P20-7.4V 电机与 D153C V1.1 双路 TB6612FNG 模块组成。固件保留有限输出范围、明确的驱动使能和停止路径;通信超时后,2 秒 watchdog 撤销输出,回到 disabled / coast / pwm=0。
首次单轴空载实转已经观察到正反转正常,watchdog 可以停止驱动,期间没有观察到 MCU 复位或串口中断。这是当前样机与测试条件下的执行链证据,不能代表负载运行或无人值守安全。
encoder:先知道运动发生了什么
TIM2 使用 encoder mode 3/x4 读取 A/B 相。已有实测确认了方向识别与 16-bit wraparound 后的软件累计:当前接法下,正转计数下降,反转计数上升。
速度观测器已实现 1 kHz 原始计数差与 raw RPM,以及 20 ms 非重叠矩形平均。原始值仍被保留,便于观察低速量化和短窗口平均的关系;stop 与换向不会抹掉惯性滑行。
这个速度版本已有构建记录,尚未在实机上验证速度数值与曲线。输出轴计数换算使用的 CPR 仍是 provisional,需要机械标定,不能把暂定比例当作测量结果。
| 能力 | 当前证据 |
|---|---|
| 单轴空载正反转 / watchdog | 已在样机观察 |
| encoder 方向 / wraparound 累计 | 已在样机观察 |
| 1 kHz speed / 20 ms averaging | 已有实现与构建,待实机验证 |
| PID / IMU / 完整 2DOF | 未完成,属于后续目标 |
还没有闭合的边界
机械零位、行程、限位、急停与每轴电流保护还需要落实。encoder 没有零位索引,无法仅凭上电后的计数知道绝对角度;空载测试也无法证明堵转保护或负载能力。
当前样机的控制电平组合能够工作,但不等于满足 driver 最坏条件下的规格保证。这些问题需要分别通过电气与机械验证处理,不能靠加入闭环算法绕过。
实物照片尚待补充。本页没有用厂商图片替代样机,也没有把规划中的第二轴当作已完成硬件。
计划与目标
先让速度观测获得可核对的实测与标定,再逐步接入受保护的闭环控制。两轴协同与更完整的姿态/位置控制,需要建立在明确的机械范围、观测能力和安全停止机制上。
最终希望形成可解释、可调试的桌面云台底层系统:用户能知道它想怎么动、实际怎么动,以及为什么停止。当前单轴 bring-up 是这条路线的第一段。
本页展示技术与历史样机测试的汇总,本轮没有重新驱动电机或测量硬件。源码与仓库链接暂未开放。