☰
hoverboard-firmware-hack-FOC 完整指南: 如何用 FOC 场定向控制让平衡车电机又静又顺
2026/10/23 6:09:36 网站建设 项目流程

hoverboard-firmware-hack-FOC 完整指南: 如何用 FOC 场定向控制让平衡车电机又静又顺

【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

你拆开平衡车,盯着那台嗡嗡作响的轮毂电机——想让它转得更安静、输出更平滑,钥匙其实在固件里。hoverboard-firmware-hack-FOC 就是给这类平衡车主板刷入 FOC(场定向控制)的开源方案:不用换硬件,只换控制算法,电机的噪音、效率和最高转速都会改观。项目采用 GPL-3.0 协议,基于 STM32F103RCT6(也兼容 GD32F103RCT6 主板),今天咱们就带你把它从头到尾看一遍。

平衡车电机为什么总是一顿一顿的

原厂固件用的是"六步换相":给三相互感电流按六个固定扇区轮流上电,相当于用六个台阶去逼近一个圆。电机能转,但每一步切换都会带来拉扯感,噪音和振动就是这么来的。

FOC 换个思路:它在每个时刻实时估算转子位置,然后给电机施加一个方向连续旋转的电流矢量。台阶变成了平滑曲线,于是你会得到三样东西——更低的噪音、更稳的扭矩输出,以及更高的能量效率(省电就是省得电机白白发热)。

FOC 固件是怎么做到的

核心控制器在 Src/BLDC_controller.c,电机校准参数集中在 Src/BLDC_controller_data.c。为了在 72MHz 的 Cortex-M3 上跑得快,参数都用定点数表示,想微调的话可以直接改这个文件。

电压、速度、扭矩:三种模式按需切换

打开 Inc/config.h,两个宏决定整个控制性格:

  • CTRL_TYP_SEL:选控制类型,COM_CTRL(换相)、SIN_CTRL(正弦)、FOC_CTRL(默认),
  • CTRL_MOD_REQ:在 FOC 下再选模式,VLT_MODE/SPD_MODE/TRQ_MODE。

大白话解释:电压模式只管"给多少伏",响应最快,适合机器人这类要急停急起的应用;速度模式是个闭环,你给个 RPM 目标,它负责顶住负载偏差,适合恒速场合;扭矩模式直接追扭矩指令,松手后电机自然滑行(freewheeling),载人场景最舒服——官方注释也建议滑板、悬浮车这类有人乘坐的玩法优先用TRQ_MODE。

场削弱:把最高转速往上再抬一抬

电机接近最高转速时,反电动势会顶满母线电压,再快就上不去了。"场削弱"(Field Weakening)就是故意让磁场抵消一部分,给转速腾出空间,代价是更费电。

它默认关闭。在config.h里设FIELD_WEAK_ENA = 1启用,然后用FIELD_WEAK_LO和FIELD_WEAK_HI标定起效区间、FIELD_WEAK_MAX标定上限。下面这张图展示了不同校准曲线的差别:

⚠️ 一句安全提醒:重新标定时务必留好安全距离——车轮可能飞转,且功耗飙升可能触发电池组(BMS)过压保护。

这些新能力,都是为落地场景准备的

近两年固件明显往"更好用"的方向长了几块肌肉:

  • 电子刹车:ELECTRIC_BRAKE_ENABLE打开后,扭矩指令为 0 时不再是滑行,而是持续制动,ELECTRIC_BRAKE_MAX可调力度——停车更利索;
  • 静止保持:STANDSTILL_HOLD_ENABLE让车在斜坡或坡道上停稳后"锁住"位置,不用一直轻踩;
  • 硬保护:所有 FOC 模式都带最大转速和最大电流限制,给机器人应用留了安全兜底;
  • 玩法矩阵:一套固件切 Variant 就能变身——VARIANT_HOVERCAR(双踏板,双击刹车挂倒车)、VARIANT_SKATEBOARD(遥控 PWM)、VARIANT_TRANSPOTTER、VARIANT_NUNCHUK(Wii 双节棍手柄)、VARIANT_ADC(双电位器)、VARIANT_USART(串口协议)等,在 platformio.ini 里选环境即可。

硬件层面,主板那两根 4 针侧板排线引出 GND、12/15V 以及 USART2/3,可接 UART、PWM、PPM、iBUS,USART2 还能当 12bit ADC、USART3 能接 I2C。引脚定义可看主板文档 docs/ 里的资料(注意:左侧 USART2 引脚不耐 5V)。

你该从哪入手:一条最短的上手路径

  1. 把仓库拉下来:git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC
  2. 打开platformio.ini,按你的玩法取消对应 Variant 的注释(新手推荐VARIANT_ADC或VARIANT_HOVERCAR),
  3. 接上 ST-Link,pio run+pio run -t upload用stlink协议烧录,
  4. 想玩串口控制,直接看 Arduino/hoverserial/ 里的示例草图hoverserial.ino,用一块 Arduino 从右侧传感器口发指令就能驱动电机。

电机参数、引脚、文献(含 STM32F103 数据手册和反推原理图)都放在 docs/,烧录遇到问题先翻那里的 Getting Started 与 Troubleshooting 页面,基本能对上号。

【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询