平衡车主板改造全攻略:hoverboard-firmware-hack-FOC固件上手指南
2026/8/21 16:46:08 网站建设 项目流程

平衡车主板改造全攻略:hoverboard-firmware-hack-FOC固件上手指南

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

你的平衡车是不是总有这些毛病:起步一冲一冲、电机嗡嗡作响、爬坡明显没劲、松油门还会滑行很久?这不是车坏了,而是原厂固件只用了最基础的换相控制(Commutation)来驱动电机,电流"粗糙"、噪声和发热自然就高。本项目提供的hoverboard-firmware-hack-FOC固件,把磁场定向控制(FOC)算法塞进普通平衡车主板,让电机运行更安静、扭矩更平滑、能耗更低,还能解锁弱磁提速。

本文用"任务清单"的方式带你走完全流程:先看懂全局路线,再依次完成 4 个实操任务,最后附上排错锦囊与进阶玩法,新手也能照着做。


一、先建立全局认知:这套固件到底改了什么?

原厂固件的"换相控制"只是按固定顺序给三相线圈通电,简单但粗暴;而 FOC 把电机电流拆成"产生磁力"和"产生扭矩"两个分量分别闭环控制,相当于给电机装上了"精确的油门"。你可以这样对比三种控制方式:

控制方式平顺度效率高速表现适用场景
换相(Commutation)一般一般一般原厂默认
正弦波(Sinusoidal)较好较好较好初步升级
FOC优秀优秀优秀(支持弱磁)追求体验

固件在Inc/config.h中通过CTRL_TYP_SEL参数切换三种控制方式,FOC 下还能选择电压、转速、扭矩三种细分模式。关键一步:先把仓库克隆到本地:

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

整个刷写旅程可以浓缩为一条路线:识别板子 → 解锁芯片 → 烧录固件 → 选择控制变体 → 微调参数 → 上路测试。接下来我们逐个任务击破。


二、任务一:认出你的主板和每一根线

预期结果:能说清板子上 SWD 接口和两条传感器线缆的用途,避免接错烧板。

绝大多数平衡车主板的核心芯片是 STM32F103RCT6(部分为 GD32F103RCT6),下方引脚图已标注好刷写关键位置:

  • SWD 刷写口:固件刷写必须从这里接入 ST-Link V2,接线关系如下:
ST-Link 引脚主板对应位置
SWDIOPA14
SWCLKPA13
GNDGND
3.3V3.3V(可选)
  • 左右两条传感器线缆:主板引出两根 4 针线,内含 GND、12/15V 以及 USART2(左线)和 USART3(右线),未来接遥控器、串口调试都要靠它们。

⚠️ 常见坑:线缆中的红色导线是 15V 电源线,串口调试或接传感器时千万不要用它,否则会烧毁 USB 转 TTL 模块甚至主控。


三、任务二:解锁芯片读保护,烧入固件

预期结果:ST-Link Utility 能正常连接,固件成功写入 Flash。

原厂主板大多开启了读保护(Read Out Protection),不解除就无法写入。整个流程就三步:

  1. 解除保护:连接 ST-Link 后,在 STM32 ST-Link Utility 里点击Target → Option Bytes...,把 Read Out Protection 改为 Level 0 并 Apply;
  2. 擦除芯片:选择Target → Erase Chip,把原厂程序彻底清空;
  3. 写入固件:点击Program & Verify,选择编译好的.bin文件,起始地址保持0x08000000,等待 "Verification OK"。

固件从哪里来?两种方式任选:直接到项目的 Actions 构建页面下载现成产物(见下图),或在本机用 PlatformIO / Keil 自行编译。

💡 小提示:刷写前先确认你手里板子的芯片型号,MDK-ARM/目录下的工程默认按 STM32F103xE 配置,不同容量芯片的烧录地址略有差异。


四、任务三:告诉固件"你打算怎么开这辆车"

预期结果:固件能识别你的输入设备,并正确响应油门和转向指令。

固件支持多达 10 种输入变体,你只需在platformio.iniInc/config.h里选中对应宏定义即可:

变体输入方式典型场景
VARIANT_ADC两个电位器自制遥控、电动小车
VARIANT_USART串口指令Arduino/单片机控制
VARIANT_NUNCHUKWii 手柄电动轮椅、搬运车
VARIANT_PPM / PWM / IBUSRC 遥控器遥控滑板、卡丁车
VARIANT_HOVERCAR刹车/油门踏板踏板改造车
VARIANT_HOVERBOARD保留侧板通信原车姿态控制(待完善)

选择好变体后重新编译烧录,转动输入设备,电机应能随之平滑加减速。如果方向相反,可以在配置中打开INVERT_L_DIRECTION/INVERT_R_DIRECTION修正。


五、任务四:微调 FOC 参数,让电机又顺又稳

预期结果:电流、转速限制符合你的应用场景,电机无明显异响和过流报警。

打开Inc/config.h,重点调整三个参数:

  • CTRL_MOD_REQ:FOC 控制模式。机器人项目建议电压模式(VLT_MODE),追求稳定巡航用转速模式(SPD_MODE),人坐在上面代步用扭矩模式(TRQ_MODE);
  • I_MOT_MAX:单电机最大电流(安培),直接决定扭矩上限,别超过电机与电池的承受范围;
  • N_MOT_MAX:最大转速(rpm),限速保护的关键防线。

如果你想让极速再高一点,可以开启弱磁控制(Field Weakening)。它本质是向电机注入反向磁场分量,牺牲少量效率换取更高的转速上限,参数关系见下图:

⚠️ 弱磁调节有风险:电机可能转得飞快,功耗大幅上升并触发电池过压保护,请务必在安全环境(如架起车轮)下测试。


六、常见问题排查:刷完不转怎么办?

现象可能原因处理方法
ST-Link 报 "Can not read memory"读保护未解除按任务二先解除 RDP
电机抖动或尖叫控制方式/参数不匹配电机确认极对数、电流参数,参考Src/BLDC_controller_data.c校准
输入无响应变体选错或接线错线缆核对所选变体对应的 USART2/USART3 线缆
开机后自动关机电池电压校准不准config.h中 BAT 校准流程重新标定

调试时建议开启串口调试输出(DEBUG_SERIAL_USART2/3),波特率 115200,可在终端实时看到输入值、指令值和电池电压,很多问题一眼就能定位。


七、注意事项与进阶玩法

安全清单:刷写后第一次通电务必架起车轮;改弱磁参数前评估电机与电池余量;串口接线避开 15V 红线;调试串口与输入设备占用同一条线缆时需要互斥配置。

进阶玩法:开启CRUISE_CONTROL_SUPPORT实现巡航定速;在扭矩模式下启用ELECTRIC_BRAKE_ENABLE获得松油门自动缓刹;尝试 HOVERCAR 变体,用两个踏板配合"双击刹车倒车"实现卡丁车式驾驶。项目里Arduino/hoverserial/提供了现成的串口控制示例,可作为你接入其他平台(ROS 等)的起点。

固件的电机参数集中在Src/BLDC_controller_data.c,官方已内置一套校准好的默认值,绝大多数主板开箱即用。想深入理解 FOC 原理,可以结合Src/BLDC_controller.c的代码逐步研读——从"能转"到"懂原理",这才是 DIY 最大的乐趣。🚀

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

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

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

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

立即咨询