hoverboard-firmware-hack-FOC 完整配置教程五步把平衡车主板刷成 FOC 磁场定向控制【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOChoverboard-firmware-hack-FOC 是面向平衡车hoverboard原始主板STM32F103RCT6 / GD32F103RCT6的 FOCField Oriented Control磁场定向控制固件。它用基于霍尔传感器位置反馈的三相电流闭环取代原车方波换相控制提供电压、速度、扭矩三种控制模式并可选场削弱Field Weakening来扩展最高转速。项目适合想把二手平衡车改造成机器人、卡丁车HOVERCAR或电动滑板车的爱好者。本文覆盖刷写流程、关键参数和常见坑位。项目定位适合改造不适合站姿自平衡先说清楚边界这不是原车固件的无缝替代品。仓库中VARIANT_HOVERBOARD的平衡控制器balancing controller标注为未实现因此不能指望它恢复站姿自平衡功能。它定位为一套成熟的主板复用电机控制固件自带 10 种输入变体ADC 电位器、USART 串口、NUNCHUK、PPM/PWM/iBUS 遥控、HOVERCAR 踏板、SKATEBOARD 等并内置电流限制I_MOT_MAX、限速N_MOT_MAX、欠压断电BAT_DEAD与输入超时TIMEOUT20保护。如果你的目标是坐姿或遥控载具它可以直接用如果你要站姿平衡车或通用 ESC请另选方案。HOVERCAR 是仓库内置变体双踏板控制刹车与油门双击刹车踏板在静止时挂入倒车。快速上手五步刷写 FOC 固件并读出调试输出克隆仓库git clone https://gitcode.com/gh_mirrors/ho/hoverboard-firmware-hack-FOC选择控制变体在 platformio.ini 中取消注释一个default_envs VARIANT_XXX例如VARIANT_ADC双电位器、VARIANT_HOVERCAR踏板用 Keil uVision 时从 Target 下拉菜单选用 make 时可用环境变量指定。编译PlatformIO 下执行构建或命令行用make -e VARIANTVARIANT_ADCMakefile 基于 arm-none-eabi-gcc。烧录ST-Link 接主板 SWD 口PlatformIO 已配置upload_protocol stlink可直接上传make 用户执行 flash 目标st-flash写入 0x8000000。若 MCU 被读保护先执行 Makefile 的 unlock 目标内部调用 openocd 执行 stm32f1x unlock再全片擦除后烧录。上电验证用 3.3V USB-UART 转接线接左或右传感器线的 GND 与 RX⚠️ 红线是 12/15V勿碰串口终端设 115200 波特率可看到in1 / in2 / cmdL / cmdR / BatV / Temp等调试输出。主板有两根 4 针传感器线GND、12/15V、USART2/3右线 USART3 支持 5V 电平左线 USART2 不耐 5V。 若使用VARIANT_ADC长按电源键 5 秒以上触发电位器自动校准来回摆到极值后松手校准值会写入 flash全片擦除会丢失。核心原理速览FOC 电流闭环与三种控制模式原车主板按霍尔扇区对三相做 6 步换相类似只能换挡不能调速的固定齿比传动——转矩中间无法调节低速脉动大、噪声明显。FOC 的做法是连续调速比采样三相电流后做 Clarke 变换、Park 变换把电流分解为 d 轴励磁与 q 轴转矩两个正交分量q 轴电流经 PI 电流环代码中cf_iqKp/cf_idKp把转矩需求换算成 PWM 占空比霍尔信号只用于位置与转速估计转速环cf_nKp挂在外层。默认电压模式VLT_MODE开环跟随输入速度模式SPD_MODE与扭矩模式TRQ_MODE依赖 FOC 闭环且仅对CTRL_TYP_SEL FOC_CTRL生效。方波换相原车本项目 FOC转矩特性6 步扇区换相脉动大、噪声明显电流闭环输出平滑最高转速受反电动势限制场削弱/超前角可扩展工作模式仅开环电压/速度/扭矩三种闭环可选关键参数全解config.h 中最常改的参数以下参数均出自 Inc/config.h仓库默认值即作者已校准的一套控制器电机相关的定点参数在 Src/BLDC_controller_data.c。参数作用推荐值/范围配错会怎样CTRL_TYP_SEL控制类型方波/正弦/FOCFOC_CTRL默认设成COM_CTRL退回方波失去 FOC 全部收益CTRL_MOD_REQFOC 控制模式OPEN/VLT/SPD/TRQVLT_MODE默认坐姿推荐TRQ_MODESPD/TRQ 仅 FOC 可用OPEN 无闭环、带载不稳I_MOT_MAX单电机最大相电流限制 [A]15默认偏低动力不足偏高过流、MOSFET 过热I_DC_MAX二级 DC 母线电流限制 [A]17建议 I_MOT_MAX2A小于 I_MOT_MAX 时频繁电流斩波电机顿挫N_MOT_MAX电机最高转速限制 [rpm]1000默认偏低极速受限偏高有机械风险FIELD_WEAK_ENA场削弱/超前角使能0禁用⚠️ 未校准开启会让电机转得非常快可触发 BMS 过压保护FIELD_WEAK_MAX场削弱 D 轴最大电流 [A]5默认10 轮实测到 10A过高导致过流发热FIELD_WEAK_LO/HI场削弱起动/满值输入阈值750 / 1000LO≤1000HI≤1500LO≥HI 时插值曲线错误削弱突跳n_polePairsBLDC_controller_data.c电机极对数定点按实测电机校准仓库默认 15与电机不符时转速估计系统性偏差、低速抖动cf_iqKp/cf_idKp/cf_nKpq 轴/d 轴电流环与转速环 PI 增益定点保持校准值 1229 / 819 / 4833偏大振荡过流偏小响应迟钝BAT_CALIB_REAL_VOLTAGE/BAT_CALIB_ADC电池电压校准万用表值×100 / 调试输出值 5按自己的电池实测示例 3970 / 1492电量显示不准低压保护3.37V/格误触发DEFAULT_RATE/SPEED_COEFFICIENT/STEER_COEFFICIENT输入限速 / 速度 / 转向系数定点480(30.0) / 16384(1.0) / 8192(0.5)RATE 过低响应慢STEER0 则无转向官方文档中的 VESC 校准截图该电机 14 极对、空载 1400 ERPM、传感器侧 7000 ERPM可与自己的n_polePairs校准对照。避坑清单四个高频问题的原因与处理刷完电机对输入无反应→ 变体与实际输入源不匹配或电位器未校准VARIANT_ADC 需长按电源键 5 秒以上完成自动校准且校准值存 flash、全片擦除会丢失 → 核对 platformio.ini 里的 variant重新按上述流程校准或把PRI_INPUT1/2的 MIN/MAX 写入 config.h。SWD 连不上或烧录失败MCU 处于锁定状态→ 原平衡车主板普遍带读保护 → 先跑 Makefile 的 unlock 目标openocd 执行stm32f1x unlock解锁后全片擦除再烧录。串口调试乱码或一接就烧→ 波特率不是 115200或把传感器线红线12/15V接到 3.3V UART左线USART2不耐 5V只有右线USART3支持 5V → 只接 GND 与 RX用 3.3V 电平适配器优先走右线。低速抖动、异响或极速上不去→n_polePairs与电机不符或场削弱未校准 → 重新校准极对数以上截图的电机为 14以实测为准需要提速时在 LO/HI 允许区间内逐步校准场削弱勿一步到位。安全边界上电测试前的核对清单⚠️ 测试场削弱前先把车轮架离地面并设隔离区README 明确提示开启场削弱后电机可能转得非常快。⚠️ 场削弱会大幅提高功耗可能触发 BMS 过压保护项目原文警告测试时有人值守。传感器线红线为 12/15V 电源接到 3.3V UART 会烧毁设备USART2左线不耐 5V。保留欠压断电BAT_DEAD3.37V/格10S 电池与空闲断电INACTIVITY_TIMEOUT8 分钟两个开关不要为图省事关闭。I_MOT_MAX/I_DC_MAX不得超过主板 MOSFET 的持续电流能力不为更有劲盲目上调。平衡控制器未实现切勿作为站姿自平衡车使用。HOVERCAR 变体含三档驾驶模式新手限流 4A、限速 30rpm、进阶8A/80rpm、高级完整限制——新用户从新手档起步。图中展示了 Fully Blended / Partially Blended / Outside 三种 FIELD_WEAK_LO 与 1000 目标值的关系用于判断当前校准区间是否合理。总结hoverboard-firmware-hack-FOC 的价值在于把一个完整的 FOC 控制器霍尔位置估计、q/d 轴电流环、转速环、场削弱压进 72MHz 的 Cortex-M3 且全定点实现参数按固定点标度组织作者交付的是一套已校准的可用控制器。推荐的调参顺序是先刷默认变体、核对串口调试输出再校准电池电压与输入然后调I_MOT_MAX/N_MOT_MAX两个硬保护最后才动场削弱。想深入算法入口是 Src/BLDC_controller.c 与 Inc/BLDC_controller.h 中保留的 Simulink 块层级注释串口控制的参考代码见 Arduino/hoverserial。【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考