Skip to content

Repository files navigation

移植 Simple-FOC 到 RT-Thread

项目介绍

本项目旨在将开源电机控制库 Simple-FOC 移植至 RT-Thread 实时操作系统平台,探索一种更工程化、更具扩展性的电机控制实现路径。


项目初衷

为什么要做这个项目?

目前我仍处于电机控制领域的学习阶段,但希望通过系统性的实践,逐步深入理解并掌握电机控制算法体系。我的目标不仅是“会用”,而是能够做到:

  • 使用 MATLAB 等工具进行算法建模与仿真

  • 实现电机参数自动标定与内参识别

  • 掌握无感控制及各类观测器算法,例如:

    • 龙伯格观测器
    • 滑模观测器
    • 磁链观测器
  • 理解并应用弱磁控制等进阶策略

与此同时,我也希望将整个学习过程完整记录下来,把每一个关键知识点进行整理与分享,让这条学习路径对更多人更友好、更可复现。


技术背景

我的技术栈主要集中在嵌入式软件方向,拥有六到七年的开发经验,对 MCU、RTOS 以及各类驱动移植与系统适配工作较为熟悉。

在此前的技术积累中,我接触到 Simple-FOC——一个基于 Arduino 生态、上手简单的 FOC 控制库。因此,我选择以它作为切入点:

  • 先通过移植让电机“跑起来”
  • 再逐步拆解各个模块,深入理解其实现原理

需要说明的是,Simple-FOC 本身定位为“轻量级入门库”,在高阶控制能力上仍有不足。因此,本项目更多承担的是一个“入门引导”的角色,相当于“师傅领进门”,后续的深入还需要进一步扩展和重构。


为什么选择 RT-Thread?

将 Simple-FOC 移植到 RT-Thread,主要基于以下几点考虑:

1. 良好的驱动抽象

RT-Thread 提供了统一的设备模型(rt_device_t),使得底层硬件适配更加清晰、简洁,有利于跨平台移植与复用。

2. 工程化能力更强

相比 Arduino,RT-Thread 更贴近真实工程环境,适合构建结构清晰、可维护性高的嵌入式系统。

3. 作为进阶桥梁的价值

在嵌入式开发的职业路径中,通常会经历:

单片机开发 → RTOS → Linux

很多开发者在从 MCU 转向 Linux 时,会遇到明显的“断层”——Linux 内核庞大复杂,难以下手。

而 RT-Thread 正好处于一个非常关键的“承上启下”位置:

  • 驱动模型与 Linux 有较高相似性
  • 代码规模适中,可完整阅读与理解
  • 有助于建立系统级开发思维

因此,通过 RT-Thread,不仅可以完成电机控制项目实践,也能够为后续深入 Linux 打下基础。


授人以鱼不如授人以渔

本项目的目标,并不仅仅是提供一套“可运行”的源码。

在完成移植后,项目本身已经具备实际可用性。基于 RT-Thread 的设备模型与驱动框架,这套方案也具备良好的可迁移性——在更换 MCU 平台时,只需围绕 rt_device_t 进行适配,即可较为平滑地完成移植。

但相比“给你一个结果”,我更希望分享的是完成这个结果的过程与方法


我更想传递的,是一套“移植方法论”

对于刚入门的嵌入式软件工程师来说,最大的门槛往往不是代码本身,而是:

  • 不知道从哪里开始
  • 不清楚如何拆解一个复杂项目
  • 面对不同平台时缺乏迁移思路

因此,本项目会尽量还原完整的移植路径,而不仅仅是最终代码,重点包括:

  • 如何阅读一个开源项目(如 Simple-FOC)
  • 如何识别平台相关与平台无关代码
  • 如何逐层替换底层接口(GPIO / PWM / ADC / 定时器)
  • 如何在 RTOS 环境下重构原有逻辑(如任务、时序、调度)
  • 如何逐步验证每一个功能模块,而不是一次性“全量跑通”

一条可复用的成长路径

我希望通过这个项目,构建一条对新手友好的成长路径:

跑通 Demo → 理解模块 → 拆解系统 → 重构架构 → 自主设计

从“能用”走向“理解”,再走向“掌控”。

当你真正掌握这套方法之后:

  • 换 MCU,不再慌
  • 换 RTOS,不再怕
  • 换项目,也有清晰切入点

项目的真正价值

最终,这个项目的价值不在于:

“你是否用了这套代码”

而在于:

“你是否学会了如何自己做一遍”


如果你正在嵌入式这条路上探索,希望这个项目不仅能帮你点亮第一个电机,也能帮你建立属于自己的工程方法论

写在最后

如果你:

  • 对电机控制算法感兴趣
  • 正在寻找一条清晰的学习路径
  • 或者也想从嵌入式迈向更高阶的系统开发

欢迎 Fork / Star 本项目,一起交流、共同进步 🚀

About

移植simplefoc + rtthread到正点原子ATK-DMF407板子上。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages