优雅草2026年10个开源鸿蒙工业软件项目三详解:鸿蒙星闪无线伺服电机同步控制 Demo
优雅草2026年10个开源鸿蒙工业软件项目三详解:鸿蒙星闪无线伺服电机同步控制 Demo
一、背景:多轴同步的线缆枷锁
包装机、贴标机、多轴协同产线中,3到5轴伺服需要保持位置同步。传统方案用脉冲方向信号或 EtherCAT/CAN 总线把各轴驱动器串起来,线缆从电柜一路拉到每个电机位置。产线重组时,这些线缆成为柔性瓶颈——轴要挪位置,线就得跟着走。
季华实验室在2025年星闪联盟产业峰会上已经展示了星闪无线电机同步控制方案,明确尝试用无线替代 CAN、EtherCAT 等工业现场总线,并取得了初步成效。这个方向已经被验证可行,但社区里缺少完整开源的硬件设计、固件代码和一手实测数据。我们要做的就是把这条路径上的每一步公开出来。
本项目定位明确:打样验证级。不宣称工业可靠性认证,不重复造功率级轮子。SimpleFOC 驱动板和带编码器的小型无刷电机在淘宝可直接采购,精力集中在星闪通信固件、同步策略、时延与同步精度实测上。
二、系统逻辑

关键设计选择:功率级直接用 SimpleFOC 成品模块,不画逆变器 PCB。WS63 通过 UART 或 PWM 与 SimpleFOC 驱动板通信:网关下发目标位置,WS63 转换为 SimpleFOC 可识别的指令(如 MotionControlType::angle 模式下的目标角度),SimpleFOC 完成闭环控制。编码器位置由 SimpleFOC 读取后回传 WS63,再通过星闪上报网关。
为什么用星闪 SLE 而不是 SLB:打样阶段先用 SLE(低功耗接入),虽然标称时延比 SLB 略高,但 OpenHarmony 的 SLE 接口在 WS63 上生态更成熟,润和、小熊派均有现成例程。同步精度的瓶颈在调度策略而非空口本身,SLE 的 250μs 量级空口时延对于毫秒级同步目标是有余量的。如果实测发现 SLE 抖动过大,再切 SLB 重测,这个对比数据本身也有公开价值。
三、实现逻辑思路(核心部分)
3.1 同步策略:时间戳对齐,不是“同时发”
三个轴不可能在同一微秒收到指令。星闪空口调度、协议栈处理、各节点中断响应都有微秒到毫秒级的差异。“同时下发”是做不到的,能做的是“时间戳对齐”。
网关在每条位置指令中携带一个目标执行时刻(基于网关本地时钟)。各轴节点收到指令后,不立即执行,而是将目标位置暂存,等待本地时钟到达目标时刻再更新 SimpleFOC 的目标角度。这样,即使指令到达时间有差异,各轴实际开始运动的时间点被对齐。
网关时钟和节点时钟的同步在打样阶段做简化处理:网关周期性发送时间同步帧,节点记录收到时刻与帧内网关时间戳的差值,建立粗略偏移量。精度不需要做到微秒级,毫秒级对齐对打样验证足够。
3.2 SimpleFOC 侧控制模式选择
SimpleFOC 支持多种控制模式:
| 模式 | 说明 | 本项目是否使用 |
|---|---|---|
angle | 闭环位置控制,依赖编码器 | 使用,每轴跑位置闭环 |
velocity | 闭环速度控制 | 不用,同步目标是位置 |
angle_openloop | 开环位置,无编码器反馈 | 不用,无法验证同步精度 |
torque (voltage) | 电压模式力矩控制 | 作为底层力矩模式,由位置环输出驱动 |
WS63 通过 UART 向 SimpleFOC 发送目标角度(弧度制),SimpleFOC 内部的位置环 PID 计算所需力矩,再经 FOC 电流环(或电压模式)驱动电机。打样阶段先用 TorqueControlType::voltage,简化电流采样需求;如果电机响应不够平滑,再考虑增加电流环。
3.3 同步误差怎么测
这是本项目最核心的产出。不用软件日志自报时延,用硬件手段捕获真实时刻。
方法一:编码器位置差分(主方法) 三轴机械上不耦合,各自独立转动。网关每隔固定周期(如 10ms)下发一次位置指令(如从 0° 转到 90°)。三个轴的编码器位置通过星闪回传网关,网关记录每个轴实际到达目标位置的时间戳(基于编码器读数越过阈值的时刻)。三轴到达时间的最大差值,就是同步误差。这个方法直接测的是“运动结果”,不是“指令到达”,更有说服力。
方法二:GPIO 翻转 + 逻辑分析仪(辅助验证) 每个 WS63 节点留一个测试 GPIO,在“更新 SimpleFOC 目标角度”的瞬间翻转。逻辑分析仪同时捕获三路 GPIO 和网关的指令发送信号,直接读取三路翻转时刻的差值。这验证的是“指令执行对齐”的精度,与编码器方法互相印证。
3.4 丢包与重连策略(打样简化版)
星闪 SLE 连接在打样阶段不做复杂容错。网关维护每个轴的“最后通信时间”,如果某轴超过 500ms 无回传,标记为离线,该轴不再接收新指令(安全默认:停止更新目标位置)。节点侧如果发现与网关断开,SimpleFOC 进入 angle_openloop 或直接禁用输出,避免电机失控。重连采用最简单的策略:网关周期性扫描,节点持续广播,连接恢复后从当前位置重新开始同步,不做状态恢复。
四、打样目标与交付
| 指标 | 目标值 | 验证方式 |
|---|---|---|
| 3轴同步误差(位置触发时刻) | < 5ms(打样验证目标) | 编码器位置差分统计 |
| 指令执行对齐精度 | < 3ms | GPIO + 逻辑分析仪 |
| 位置指令周期 | 10ms | 网关定时器 |
| 单轴位置跟随误差 | 由 SimpleFOC 参数决定,记录基线 | 编码器回传 vs 目标值 |
| 连续运行 | 30 分钟无断连 | 稳定性验证 |
打样交付物:3轴同步台架(SimpleFOC 驱动板 + 带编码器电机 + WS63 节点),星闪通信固件,同步误差统计 CSV,逻辑分析仪捕获截图,演示视频。
开源地址:
- AtomGit(GitCode):youyacao/harmonyosdianjitongbu - AtomGit
- GitHub:https://github.com/youyacao/harmonyosdianjitongbu
五、这个项目未来能长成什么
近期:把时间戳对齐策略从“粗略偏移”升级为周期性时钟同步协议,同步精度从毫秒级向百微秒级推进。同时增加轴数到 5 轴,验证星闪 SLE 多连接下的调度抖动。
中期:如果 SLB 模式可用,切到 SLB 重测同一套同步策略,公开SLE vs SLB 的时延与抖动对比数据。这是社区最缺的一手工程参考。
远期:与项目二的阀岛控制结合,形成“无线伺服 + 无线气动”的混合执行层 demo,展示产线上运动轴和气动执行器全部无线的可行性。不追求工业认证,追求的是把无线在真实运动控制场景中的边界摸清楚,把数据留给社区。
更多推荐




所有评论(0)