☰
如何零基础刷写平衡车FOC固件:hoverboard-firmware-hack-FOC 新手完整实操指南
2026/10/23 1:59:15 网站建设 项目流程

如何零基础刷写平衡车FOC固件:hoverboard-firmware-hack-FOC 新手完整实操指南

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

给平衡车通电,主板一启动就嗡嗡响,车轮起步时一顿一顿往前冲,声音像剃须刀抵在膝盖上 🔊。别急着拆车查硬件,多数情况下电机和电池都好好的,坏就坏在主板里那套"出厂原装"的程序上。hoverboard-firmware-hack-FOC 就是一个专门干这件事的开源项目:把主板 MCU 里的控制程序刷写成 FOC(Field Oriented Control,磁场定向控制)固件,让左右两个轮毂电机变得安静、顺滑,还顺带解锁改装空间。这篇指南带你从零完成一次平衡车FOC固件刷写,从接线到调参,全程不跳步。

换相控制 vs FOC 磁场定向控制:声音为什么能变

先给结论:刷完之后你会直接听到和摸到四个变化。

  • 噪音和震动明显变小,骑行接近"无感"
  • 扭矩输出连续平滑,起步不再一冲一顿
  • 同样的电量跑得比原来更远
  • 支持弱磁控制,极速上限可以再往上抬一截

为什么?原厂固件用的是换相控制,原理像用手划船:手臂伸出去推一下,船走一段;抽回来停顿一下,再推。三相绕组轮流给转子"踹一脚",每一次推力之间都有空档,电流只能大段大段地灌,于是嗡嗡响、一顿一顿。

FOC 磁场定向控制更像一艘带舵的划桨船:MCU 用 PWM 实时、连续地调节流入每一相的电流大小和方向,磁场始终咬在转子的最佳角度上,推劲没有空档。这就是"为什么声音会变"的全部秘密——不是硬件变好了,是推力方式变了。

平衡车FOC固件刷写完整流程:从备齐工具到烧录验证

整条时间线是:备齐工具 → 断电接线 → 解锁读保护 → 烧录验证。四步做完,Flash 里就是新程序。

准备 ST-Link 和编译好的固件

先说这一步做完的结果:你手里有 4 根杜邦线、一个 ST-Link V2 编程器、一台装好 ST-Link Utility(或用 openocd 也行)的电脑、一个.bin固件文件。

主板里的芯片是 STM32F103RCT6,部分批次是兼容的 GD32F103,两者这个固件都支持。固件最简单的来路是克隆仓库后本地编译:

git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

用 PlatformIO 选一个 variant 一键编译即可;仓库里也自带 MDK-ARM 工程和 Makefile,哪条路顺手走哪条。

ST-Link 接 SWD 编程口的方法

这一步做完的结果:ST-Link 软件里能认出目标芯片,不再报 "no target found"。

找到主板上的 SWD 接口,四根线一一对应:

ST-Link主板引脚
SWCLKPA13
SWDIOPA14
3.3V3.3V
GNDGND

图1:主板引脚分布图。刷写前对着这张图核对 SWD 口(PA13/PA14)位置,右侧同时标出了两根侧板线,避免接线时接错端子。

⚠️ 避坑提示:接线前必须先断开电池电源。线序对着图数三遍再插,宁可多看三遍,不要插错一根。

STM32 读保护解锁步骤

这一步做完的结果:软件里不再弹 "Can not read memory",整片 Flash 可擦可写。

绝大多数原厂主板出厂就开了读保护(Read Out Protection)。插上 ST-Link 后软件提示读不了内存,别慌,这是芯片在正常"挡门"。处理路径只有一条:进入 Target → Option Bytes,把 Read Out Protection 改到最低档位并写入,随后做一次整片 Flash 擦除。擦除完成,门锁就开了。

图2:ST-Link 工具弹出的读保护提示界面。看到这个窗口说明你离解锁只差一次 Option Bytes 写入。

烧录固件到 0x08000000 并验证

这一步做完的结果:界面出现 "Verification OK",首刷完成。

点 Program & Verify,选择你的固件文件,起始地址保持默认的0x08000000不动,Start。等进度条走完、校验通过,就收工。

⚠️ 避坑提示:主板有两根侧板线。左侧(USART2)不耐 5V 电平,右侧(USART3)是 5V 容忍的,接串口调试优先用右线。另外两根线里都有一根 15V 红线,无论什么时候都不要碰它——碰一下就是烧板的节奏。

刷完之后调参:先选控制变体,再用串口在线改参数

烧录只是把程序装进去,怎么控制车由配置宏决定。这个项目把控制方案做成"选"出来的,而不是"写"出来的。

在 config.h 或 platformio.ini 里选对 VARIANT

这一步做完的结果:固件按你想要的方式接收输入,而不是对着空线发呆。

打开Inc/config.h(Keil/Make 路线)或platformio.ini(PlatformIO 路线),只保留一个 VARIANT:

  • VARIANT_USART:串口协议控制,适合接 Arduino 做二次开发
  • VARIANT_PPM/VARIANT_PWM/VARIANT_IBUS:适配 PPM 和 PWM 航模遥控器、Flysky iBUS 遥控器
  • VARIANT_NUNCHUK:Wii 双节棍当油门
  • VARIANT_HOVERCAR/VARIANT_SKATEBOARD:踏板卡丁车 / 遥控滑板形态

用串口 115200 波特率在线改参数(GET / SET / SAVE)

这一步做完的结果:不改代码、不重新编译,手感问题当场就能调。

在Inc/config.h里打开DEBUG_SERIAL_PROTOCOL重新编译烧录一次,之后用 115200 波特率接串口终端,三条命令管全部:

  • GET:读取当前参数值
  • SET:修改参数值
  • SAVE:写入 EEPROM,掉电不丢

调手感的核心旋钮:觉得响应太冲就调小RATE、调小FILTER让滤波更柔和;守安全底线就压住I_MOT_MAX(单电机最大电流,单位 A)和N_MOT_MAX(最高转速,单位 rpm),把它们限制在你敢用的范围内。

用 VESC Tool 图形化校验电机参数

这一步做完的结果:极对数、反电动势等电机数据全部有据可查,不用手动估。

不喜欢敲命令就借 VESC Tool 这类图形工具对电机跑一次参数检测,极对数、反电动势等关键数据直接列出来,和固件假设逐项比对,确认匹配无误再上路。

图3:VESC Tool 的电机检测结果页。极对数、反电动势等参数一目了然,用来核对固件与电机是否匹配。

想再快一点的话,翻到config.h的弱磁区:默认FIELD_WEAK_ENA是关闭的,打开后FIELD_WEAK_MAX决定弱磁电流上限,FIELD_WEAK_LO/FIELD_WEAK_HI决定在什么输入区间开始和到达最大弱磁。参考 docs/pictures/FieldWeakening.png 这张曲线图理解"输入目标 → 弱磁量"的线性插补关系。

⚠️ 避坑提示:弱磁参数调过头,电机可能高速飞转,还会触发 BMS 过压保护。测试前把车轮垫高,人在空旷场地远离车身,每次只动一个参数,SAVE后先小范围试车。

怎么确认刷写成功,失败了怎么救

三个动作确认 FOC 固件生效

这一步做完的结果:你可以确定车跑的是新固件,而不是残留的旧行为。

  1. 通电,短按电源键开机。
  2. 手动转动车轮:FOC 模式下你会感到一股均匀、绵密的阻力,这是磁场锁住转子的效果;原厂换相固件转起来是"咔咔"棘轮感,一冲一松。
  3. 用你选的输入源(遥控器、踏板或串口)发指令,看车轮是否平稳跟随。

读保护解不开、烧录失败、车不动:逐个排查

读保护解不开。先怀疑线:SWCLK / SWDIO 接反是最常见原因,换一下再试。再确认 3.3V 参考和 GND 都接触良好。仍不行就换 openocd 走一次同样的解锁流程,工具不同但 Option Bytes 的解锁逻辑一致。

烧录失败。按顺序查:固件文件和芯片型号是否匹配(STM32F103RCT6 / GD32F103 同规格);起始地址是否停在0x08000000;ST-Link 驱动是否需要更新;重新插拔编程器再试一次。

刷完车不动。九成是 variant 和输入对不上:你选了VARIANT_PPM却什么遥控器都没接,它自然没指令可执行。核对 variant 与实际接线一致;再检查I_MOT_MAX/N_MOT_MAX是否被改得过小,以及电池电压是否低于欠压保护线。

把平衡车变成你的东西:从顺滑到 hovercar 🚀

回顾一下你走过的路:断电接线、Option Bytes 解锁、烧到0x08000000、串口调参、三轮验证——五步,一台嗡嗡作响的旧平衡车就换上了 FOC 大脑。

下一步空间很大:接一块 Arduino Nano 跑 Arduino/hoverserial/ 里的串口例程,就能做机器人底盘的转向与速度控制;切到VARIANT_HOVERCAR,两个踏板一刹一油,双击刹车还能挂倒挡,平衡车直接升级成卡丁车。

图4:社区玩家基于该固件的 hovercar 卡丁车改装成品。踏板控制油门与刹车,是你调好参数后可以照着搭的进阶形态。

车就停在旁边等你。接线、解锁、烧录、调参,四件事都不难,难的是第一次动手。现在就去把电池断开,开始接线吧。

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

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

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

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

立即咨询