layout | title | nav_order | description | permalink |
---|---|---|---|---|
default |
首页 |
1 |
Arduino Simple Field Oriented Control (FOC) project documentation. |
/ |
时代的进步通常令人激动。现今,无刷电机已经进入各种爱好者DIY社区,并且出现了很多高质量且拥有优异性能的无刷电机驱动方案。
相比于直流电机,无刷电机的优点可谓数不胜数,但同时它也拥有巨大的不足,那就是控制过于复杂。尽管身处工具链和PCB制造设计技术发达,设计自己的PCB变得很容易的年代,但一个低成本的无刷电机驱动方案却尚未出现。其中一个原因就是自行编写无刷电机的驱动方案太过复杂,尽管我们可以在网上找到很多成熟的FOC代码方案,但他们大部分都针对特定的硬件配置、特定的单片机;同时,现在很多的FOC算法和硬件开发尝试都是围绕着高功率无刷电机应用,低成本低功率的FOC硬件十分难找,甚至根本就找不到。
灯哥开源 是SimpleFOC官方中文资料的维护者。作为中文官方,我不仅及时更新SimpleFOC的中文翻译和技术资料,还基于SimpleFOC库开发了全开源的基于ESP32的双路无刷电机控制器硬件DengFOC。作为SimpleFOC技术的提倡者,欢迎大家使用SimpleFOC开源技术,若对中文资料有翻译问题或者疑惑,也欢迎大家联系我 (QQ群:471832283)。
如果在国内的朋友访问速度慢,可以访问中国国内中文文档镜像站: http://simplefoc.cn/
基于以上痛点,本项目尝试:
- 🎯 揭开 FOC 算法的神秘面纱,制作一个强大而简单的 Arduino 库: Arduino SimpleFOClibrary
- 此库要支持尽可能多的**电机+传感器+电流检测+驱动器+单片机 **,做到通用性
- 🎯 建立几套适应不同应用情况的低成本FOC驱动板:
- 新 📢: 简化版 无刷直流驱动器 (<3A) : SimpleFOCMini .
- 支持小功率 云台设备的板子(<5A): Arduino SimpleFOCShield .
- 支持中等功率 无刷直流电驱动器的板子(<30A): Arduino SimpleFOCPowerShield .
- 另外 @byDagor 也做了完全集成的 基于ESP32 的板子,大家可以一看: Dagor Brushless Controller
<iframe class="youtube" src="https://www.youtube.com/embed/Y5kLeqTc6Zk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 这个视频演示了 Simple FOC 库的基本用法、电器连接并展示了它的性能。新发布 📢: SimpleFOClibrary v2.3.0 查看发布
- Arduino Mega 6pwm 支持更多定时器 - Arduino 板子 - 支持频率更改,支持32kHz或4kHz - Arduino Uno - 在3pwm和6pwm模式下具有同步定时器 [#71](simplefoc/Arduino-FOC#71) - Teensy 3.x 初始化支持 6pwm - Teensy 4.x 初始化支持 6pwm - v3.1 SimpleFOCShield 的示例 - RP2040 兼容性适用于earlehillpower核心 [#234](simplefoc/Arduino-FOC#234) [#236](simplefoc/Arduino-FOC#236) - 更灵活的 monitoring API - 开始、结束和分隔符字符 - 小数点位数(可通过Commander进行设置) - 在 `Commander` 中添加了机器可读的详细模式[#233](simplefoc/Arduino-FOC#233) - *Simple**FOC**WebController* - 基于Web的SimpleFOC用户界面 [@geekuillaume](https://github.com/geekuillaume) - [webcontroller.simplefoc.com](https://webcontroller.simplefoc.com) - bugfix - 修复了`MagneticSensorPWM`的多个问题 - [#258](simplefoc/Arduino-FOC#258) - bugfix - 修复了电流传感器对齐的问题,在交换引脚时添加了偏移交换 - bugfix - 修复了梯形波150的问题 - bugfix - 修复了ESP8266上的4pwm问题 [#224](simplefoc/Arduino-FOC#224) - Additional `InlineCurrentSense` and `LowsideCurrentSense` constructor 构造函数使用每安毫伏进行设置 [#253](simplefoc/Arduino-FOC#253) - STM32L4xx 电流感应支持由 [@Triple6]提供(https://github.com/Triple6) (discord) [#257](simplefoc/Arduino-FOC#257) - 在6pwm模式下可以禁用相位 - stm32 - 软件和硬件6pwm - atmega328 - atmega2560 - 使用电机电感进行滞后补偿 [#246](simplefoc/Arduino-FOC#246) - 通过电压转矩模式增强电流控制 - 扩展了 `BLDCMotor` 和 `StepperMotor` 构造函数以接收电感参数 - 也可以通过 `motor.phase_inductance` 或通过 `Commander`进行设置
-
简易安装:
- Arduino IDE: Arduino 库管理器集成
- PlatformIO
-
开源:在github上可以获得完整的代码和文档
-
目标:
-
易于设置和配置:
- 简单的硬件配置
- 每个硬件组件都是一个 C++ 对象(易于理解)
- 轻松 调整控制回路
- SimpleFOCStudio 配置 GUI 工具
- 内置通信和监控
-
跨平台:
- 支持尽可能多的 传感器,无刷直流电机和驱动器板 组合
- 从一个微控制器系列到另一个系列的无缝代码传输
- 支持多种 MCU架构:
- Arduino: UNO, MEGA, DUE, Leonardo ...
- STM32
- ESP32
- Teensy
- 其他
如果你对这个产品感兴趣,可以在这个链接上找到更多信息: Arduino SimpleFOCShield
列出几个可代用的FOC方案以供参考
Odrive | Trinamic | Infineon | FOC-Arduino-Brushless |
---|---|---|---|
✔️开源 | ❌ 开源 | ✔️ 开源 | ✔️ 开源 |
✔️易用 | ✔️ 易用 | ✔️易用 | ❌ 易用 |
❌ 低成本 ($100) | ❌ 低成本 ($100) | ✔️低成本 ($40) | ✔️ 低成本 |
❌ 低功率 (>50A) | ✔️ 低功率 | ✔️ 低功率 | ✔️ 低功率 |
❌ 支持步进电机 | ❌ 支持步进电机 | ❌ 支持步进电机 | ❌ 支持步进电机 |