ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

hoverboard-firmware-hack-FOC:原厂平衡车刷写 FOC 场定向控制固件指南

hoverboard-firmware-hack-FOC:原厂平衡车刷写 FOC 场定向控制固件指南

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)实现替换了原厂固件,跑在平衡车原来的 STM32F103 主控芯片上,让你用串口、电位器或遥控信号直接驱动两个电机。

✅ 你将得到什么

  • 默认 FOC 场定向控制,电压、速度、扭矩三种模式可选;扭矩模式下目标为 0 时电机可以空转,适合有人乘坐的场景。
  • 10 个现成输入变体(串口、双电位器、Nunchuk、PPM/PWM/iBUS 遥控、hovercar 踏板等),在 platformio.ini 里改一行即切换编译目标。
  • 两级电流保护:单电机 15A、直流母线 17A,超流直接斩断 PWM 输出。
  • 弱磁可调:从 FIELD_WEAK_LO 到 FIELD_WEAK_HI 之间 D 轴电流线性抬升,把极速推到默认 1000 rpm 以上。
  • 电池电压校准、低电压蜂鸣与断电阈值(面向 10S 电芯)均可在 config.h 里配置。

🔌 刷写步骤与首次验证:从硬件到第一次转动

  1. 硬件准备:平衡车主控板、ST-Link V2、3.3V 的 USB 串口模块、arm-none-eabi 工具链或 PlatformIO。主控芯片多为 STM32F103RCT6,少数板子用 GD32F103RCT6,固件同样支持。先克隆代码:git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC。完成后,调试工具里能枚举到芯片。

  1. 主控解锁:原厂开启了读保护,直接读会报 "Can not read memory"。先执行make unlock(OpenOCD),或在 ST-LINK Utility 里做一次全片擦除。完成后,工具能正常读出 32 KB Flash。

  1. 编译:在 platformio.ini 里选一个变体(新手选 VARIANT_ADC)执行pio run,或用 Makefile:make VARIANT=VARIANT_ADC。完成后,build/ 目录里出现 hover.elf/hex/bin,并打印代码体积。

  2. 烧录上电:make flash经 st-flash 写入 0x8000000 并自动复位。上电后电机保持不动(固件默认处于安全状态),只有蜂鸣器与指示灯动作。

  3. 首次验证:把 3.3V 串口模块的 GND 和 RX 接到右侧板线(USART3),打开 115200 波特率终端,你会看到 in1/in2/cmdL/cmdR 调试流。转动电位器,cmdL/cmdR 随动变化并听到电机声,验证通过。

⚙️ 10 分钟看懂核心:FOC 到底在做什么

换相驱动就像用钥匙在 6 个扇区状态之间切换,电机只能就近"吸附",你感受到的顿挫就来自这些切换点。FOC 更像连续拧音量旋钮:控制环以 16 kHz 跑在 DMA 中断里,每个周期读两路相电流与直流母线电流(1A 约 50 个计数),用三路霍尔信号得到电角度,把电流分解为励磁与扭矩分量,反 Park 变换后输出三相 PWM。你感觉到的"顺滑"即:每 16 kHz 一次,电压矢量都指向该指的位置。

调参在两个地方。电机电感、电阻等参数是定点格式,存在 BLDC_controller_data.c,需用 Fixed-Point Viewer 工具读写;限位、保护、输入映射等高层行为都在 config.h。想提高极速,就在 config.h 里打开弱磁,并把 FIELD_WEAK_HI 设为不超过 1500。

⚠️ 常见坑:硬件陷阱与安全线

  • 左侧线 USART2 不耐 5V,只有右侧线 USART3 是 5V 耐受;串口模块必须 3.3V,线上红色 15V 线严禁当电源用。
  • 不先解锁直接烧一定失败,先执行make unlock。
  • 重校弱磁前拆掉轮子并设物理阻挡:电机转速会飙升,功耗可能触发 BMS 过压保护;默认极速上限是 1000 rpm(N_MOT_MAX),想更快需改 config.h 并重校弱磁。
  • VARIANT_HOVERBOARD 变体未实现平衡控制算法,两块侧板需刷对应的破解版。
  • 输入信号连续 20 次错误或缺失会触发急停,遥控用户需保证信号连续。

🧭 下一步去哪

README.md 有全部变体列表与关联项目;反推的主板原理图能看清板上每个引脚用途;做串口控制可以直接拿 Arduino/hoverserial/ 的示例工程作起点。如果你手头已有一块平衡车主控板,或想用串口、遥控做一个低成本驱动平台,从刷一个 VARIANT_ADC、接上电位器开始就好。

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

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进