Arduino Simple Field Oriented Control (FOC) project
时代的进步通常令人激动。现今,无刷电机已经进入各种爱好者DIY社区,并且出现了很多高质量且拥有优异性能的无刷电机驱动方案。
相比于直流电机,无刷电机的优点可谓数不胜数,但同时它也拥有巨大的不足,那就是控制过于复杂。尽管身处工具链和PCB制造设计技术发达,设计自己的PCB变得很容易的年代,但一个低成本的无刷电机驱动方案却尚未出现。其中一个原因就是自行编写无刷电机的驱动方案太过复杂,尽管我们可以在网上找到很多成熟的FOC代码方案,但他们大部分都针对特定的硬件配置、特定的单片机;同时,现在很多的FOC算法和硬件开发尝试都是围绕着高功率无刷电机应用,低成本低功率的FOC硬件十分难找,甚至根本就找不到。
灯哥开源 是SimpleFOC官方中文资料的维护者。作为中文官方,我不仅及时更新SimpleFOC的中文翻译和技术资料,还基于SimpleFOC库开发了全开源的基于ESP32的双路无刷电机控制器硬件DengFOC。作为SimpleFOC技术的提倡者,欢迎大家使用SimpleFOC开源技术,若对中文资料有翻译问题或者疑惑,也欢迎大家联系我(待定)。
如果在国内的朋友访问速度慢,可以访问中国国内中文文档镜像站: http://simplefoc.cn/
基于以上痛点,本项目尝试:
- 🎯 揭开 FOC 算法的神秘面纱,制作一个强大而简单的 Arduino 库: Arduino SimpleFOClibrary
- 支持尽可能多的电机 + 传感器 + 驱动器 + MCU 组合
- 🎯 开发模块化和易于使用的FOC,支持BLDC的驱动板
- 官方驱动板,看SimpleFOCBoards
- 社区成员开发了越来越多的板子,看 SimpleFOC Community
新发布 📢: SimpleFOClibrary v2.3.5 查看发布
Arduino SimpleFOClibrary - 了解更多 …
这个视频演示了 Simple FOC 库的基本用法、电器连接并展示了它的性能。
特性
- 简易安装:
- Arduino IDE: Arduino 库管理器集成
- PlatformIO
- 开源: 在github上可以获得完整的代码和文档
- 目标:
- 易于设置和配置:
- 简单的硬件配置
- 每个硬件组件都是一个 C++ 对象(易于理解)
- 轻松 调整控制回路
- SimpleFOCStudio 配置 GUI 工具
- 内置通信和监控
- 跨平台:
- 从一个微控制器系列到另一个系列的无缝代码传输
- 支持多种MCU 架构:
- Arduino: UNO, MEGA, DUE, Leonardo, Nano, UNO R4, MKR ….
- STM32
- ESP32
- Teensy
- many more …
SimpleFOCBoards - 了解更多 …
SimpleFOC 项目的目标之一是开发低成本、易于使用、与 SimpleFOC 库兼容且完全开源的 BLDC 驱动板!因此,SimpleFOC 团队成员开发了一套专为易于使用而设计的板,以帮助您启动 FOC 之旅。除了易于使用之外,这些板的目标是作为社区构建的参考设计。最后,尽管其中一些板可以在我们的商店中找到,但我们的文档提供了大量有关如何自己制造板的文档和分步指南。
除了官方板之外,还有许多其他与 SimpleFOC 库兼容的板可供您探索,请参阅文档 。此外,社区还提出了一些其他很酷的硬件设计。查看我们的社区论坛了解更多信息。
以下是 SimpleFOC 团队开发的一些官方板:
SimpleFOCShield

特征
- 基于 DRV8313 - 数据手册
- 电源: 8-35V
- 最大电流: 2A 每相 (3Amp 峰值)
- 绝对最大额定值 - 专为内阻为 >10 Ωs 的云台电机而设计
- 最大电流: 3A,
- 最大输入电压: 35V
- 在线电流检测: 高达双向5A
- ACS712 霍尔电流传感器
- 集成8V稳压器:
- 通过焊接确定是否使能
- 可堆叠: 可以同时运行两台电机
- 编码器/霍尔传感器接口: 集成 3.3kΩ 上拉(可配置)
- I2C 接口: 集成 4.7kΩ上拉(可配置)
- 可配置引脚排列: 硬件配置 - 焊接连接
- Arduino 接头: Arduino UNO, Arduino MEGA, STM32 Nucleo 板…
- 开源:
- 在 EasyEDA 中完全设计: EasyEDA 项目
- 完全可用的制造文件 - 如何自己制造
- 低成本:
- JLCPCB 生产成本 ~10-15€
- 商店有售: 15-30€
SimpleFOCMini

特征
- 基于 DRV8313 - 数据手册
- 电源: 8-35V
- 最大电流: 2A 每相 (3Amp 峰值)
- 绝对最大额定值 - 专为内阻为 >10 Ωs 的云台电机而设计
- 最大电流: 3A,
- 最大输入电压: 35V
- 小尺寸: 26x21 mm
- 开源:
- 在 EasyEDA 中完全设计: EasyEDA 项目
- 完全可用的制造文件 - 如何自己制造
- 低成本:
- JLCPCB 生产成本 ~3-5€
- 商店有售: 7-15€
SimpleFOCShield的一个简短演示视频(有点过时,但仍然相关)
(视频链接需要修改)
想了解更多关于电路板的信息以及自制方法,请查看 “ 电路板专区 ”
其他的可代用FOC方案
SimpleFOC 的重点是使 FOC 变得简单 (:D),并支持尽可能多的电机 + 传感器 + 驱动器 + MCU 组合。如果您不太关心固件的简单性 ,并且不介意为了性能而权衡跨平台灵活性,那么还有其他几个项目也使用 FOC,并且可以为您的应用程序提供更紧凑、更强大或更强大的解决方案。其中许多项目都是开源的,从一开始就是我们的灵感来源,尤其是 VESC 和 Odrive。如果您正在开始您的 FOC 之旅,请务必查看它们!
P.S. 这些项目都没有使用 SimpleFOC 库 ,但 SimpleFOC 库可以用作这些项目中开发的多个驱动板的软件
| 项目 | 开源硬件 | 开源固件 | 简易使用 | 低成本 | 额定功率 | 支持步进 | SimpleFOC 支持 |
|---|---|---|---|---|---|---|---|
Odrive | ✔️/(❌ 来自最近) | ✔️/(❌ 来自最近) | ✔️ | ❌ (>200$) | 高 (>50A) | ❌ | ✔️ |
Vesc | ✔️ | ✔️ | ✔️ | ❌ (>100$) | 非常高 (>100A) | ❌ | ✔️ |
![]() Trinamic | ❌ | ❌ | ✔️ | ❌ (>200$) | 低 (~10A) | ✔️ | ❌ |
![]() Infineon | ✔️ | ❌ | ✔️ | ✔️ (50$) | 低 (~10A) | ❌ | ❌ |
![]() FOC-Arduino-Brushless | ✔️ | ✔️ | ❌ | ✔️ (价格未知) | 低 (~10A) | ❌ | ? (未测试) |
![]() Tinymovr R5.2 | ❌ | ✔️ | ✔️ | ❌ (~90$) | 高 (~30A) | ❌ | ? (未测试) |
![]() Tinymovr M5.2 | ❌ | ✔️ | ✔️ | ❌ (~90$) | 低 (~6Amps) | ❌ | ? (未测试) |
Mjbots moteus | ✔️ | ✔️ | ✔️ | ❌ (70-160$) | 中等 (20Amps) 到 高 (100Amps) | ❌ | ? (未测试) |
Open robotics initiative MicroDriver | ✔️ | ✔️ | ❌ | ✔️(~50$) | 中等 (~20Amps) | ❌ | ? 未测试) |
SOLO | ❌ | ❌ | ✔️ | ❌(70$-600$) | 中等 (~16Amps) 到 非常高 (~120Amps) | ❌ | ❌ |
⚠️ 这个列表当然不是详尽无遗的,请随时为扩展/完成/更正它做出贡献!




