STM32实现simpleFOC控制无刷电机

一、FOC基础知识学习

使用simpleFOC控制无刷电机前,需要大概了解一下相关知识,包括力矩控制、速度控制、位置控制的原理和它们之间的联系。

推荐学习资料:

教你写一个比SimpleFOC更好的电机库_哔哩哔哩_bilibili

《灯哥手把手教你写FOC算法》课程讲义及库的官方文档网站:http://dengfoc.com

SimpleFOC、ODrive和VESC 教程链接汇总_odrive和simplefoc哪个好-CSDN博客

SimpleFOC学习笔记汇总(2025.02.09更新)_simple foc-CSDN博客

二、环境安装

1、开发工具

由于simpleFOC实现基于arduino,单片机的开发环境需要支持arduino。可选择两种方式:

(1)arduinoIDE

安装方法可参考如下链接:

Arduino开发环境配置 - Dapenson - 博客园

https://zhuanlan.zhihu.com/p/591784392

(2)VScode+platformIO

这种方式可以基于我们常用的VScode来开发单片机程序,查看库代码很方便。

安装方法可参考如下链接:

SimpleFOC—VSCode下载及PlatformIO安装SimpleFOC库-CSDN博客

【公开课】VSCode+PlatformIO开发环境的搭建_哔哩哔哩_bilibili

2、调试工具

可使用VOFA调试查看电压、电流等波形

【VOFA+速成】半小时入门VOFA+简明教程(快速上手一款强力的串口助手)-CSDN博客

三、硬件搭建

硬件环境可根据自己的项目需求选择单片机主控板和电机。以下是我选用测试的硬件。

主控板:STM32F103C8T6/ESP32

电机:2804无刷电机,扭矩仅有0.02Nm,扭矩太小了,只能学习用。

编码器:AS5600,用于测量电机旋转角度和方向。

驱动板:电机驱动芯片选用DRV8313,电流传感器选用INA240,这种电流传感器采用在线电流检测(不要用INA199之类的,这种是低侧电流采样,精度差,控制也很麻烦,需要PWM和采样ADC同步,但是有些商家为了降低成本没有告知,注意避坑)

电源:12V/2A直流电源

四、软件测试

可以用simpleFOC的库中的例程进行测试。测试时,根据选用的主控板改代码中的引脚。

可参考:

https://zhuanlan.zhihu.com/p/390682580

Document

DengFOC官方文档

需要注意的是,STM32测试串口通信的时候,arduino中需要将Serial改为Serial1(如果用的是第一路串口,其他的类推),否则跑不通。

5、相关功能或项目

【simpleFOC】一个电机如何模拟不同旋钮的手感反馈?

简单来说,STM32FOC是一种在STM32控制器上实现无刷电机控制的方法。它是基于开源项目simplefoc进行的移植工作,通过对simplefoc源码在STM32上进行适配,实现了对无刷电机的转速、角度闭环和电压力矩控制。[1] 对于初学者来说,simplefoc是一个非常适合入门的项目,因为它可以让零基础的人也能够轻松使用无刷电机。然而,由于个人对动手需求和DIY需求,不太适应Arduino的开发方式,因此进行了在STM32上的无损移植工作。目前已经完成了对STM32C8T6的适配工作。[1] 在使用STM32FOC进行无刷电机控制时,可以按照以下步骤进行操作: 1. 首先,进行六步换相的开环控制。这涉及到使用霍尔传感器获取相位值,并根据相位值进行换相操作。 2. 接下来,可以在开环的基础上进行闭环控制。可以使用定时器进行PID运算,并根据运算结果更改占空比设定值,实现闭环控制。 3. 在代码中,可以使用UART进行调试输出,以便进行调试和监测。同时,还可以使用其他外设如RTC进行闭环控制。[2] 需要注意的是,以上步骤是基于特定的硬件和软件环境进行的,如使用STM32CubeMX和Keil5进行开发,以及特定的无刷电机驱动板和霍尔传感器。因此,在使用STM32FOC进行无刷电机控制时,需要根据具体的硬件和软件环境进行相应的配置和适配。[2] 总之,STM32FOC是一种在STM32实现无刷电机控制的方法,通过移植simplefoc项目并进行适配,可以实现无刷电机的转速、角度闭环和电压力矩控制。它适合初学者入门,并且可以根据个人需求进行定制和扩展。[1][2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值