3 步给平衡车换上 FOC 大脑:hoverboard-firmware-hack-FOC 从刷机到调参实战 3 步给平衡车换上 FOC 大脑hoverboard-firmware-hack-FOC 从刷机到调参实战【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC闲置在角落的平衡车嗡嗡作响、一上坡就没劲、刹车还带点电钻味这套开源的 FOC 固件 hoverboard-firmware-hack-FOC 可以直接刷进原平衡车主板把传统的六步换向换成场定向控制换来更安静的电机声、更跟脚的推背感还能用场削弱把极速往上抬一截——全程用你手里那块 STM32F103不用换硬件。它是什么给旧电机换一颗智能大脑普通平衡车出厂用的是六步换向电流按固定顺序跳着驱动电机便宜但代价就是噪音、抖动和低速扭矩不足。这套固件在 Src/BLDC_controller.c 里实现了完整的 FOC 控制器把三相电流拆成转矩分量和磁场分量分别闭环等于让电流始终沿着最有用的方向走。你可以把它理解成给电机配了个导航六步换向像走直线碰墙再拐弯FOC 则是实时测角、平滑转向。结果就是电机运行更顺滑、效率更高、续航更省。它跑在平衡车主板自带的 MCU 上——绝大多数是 STM32F103RCT6部分板子是 GD32F103RCT6固件两者都支持。第一口尝鲜最短路径把固件刷进去你只需要一块 ST-Link V2、一个 USB 转串口3.3V 档、会拆平衡车的耐心。下面这条是能最快看到电机转起来的路径推荐用 PlatformIO对新手最友好。1. 拿到代码git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC cd hoverboard-firmware-hack-FOC2. 选一个变体并编译变体输入方式在 platformio.ini 里切换把想用的那一行default_envs取消注释即可。比如先用最直观的VARIANT_ADC两个电位器控制左右轮default_envs VARIANT_ADC然后一条命令完成编译 烧录默认走stlinkpio run -e VARIANT_ADC -t upload如果你习惯命令行工具链仓库根目录还带了一份 Makefilemake -e VARIANTVARIANT_ADC构建make flash用st-flash写入make unlock调openocd先解锁被原厂锁定的芯片。3. 看到效果上电后用 USB 转串口以 115200 波特率接到右/左侧板电缆只接 GND 和 RX别碰红线那是 15V就能看到输入/指令的实时调试输出。提示原厂固件锁了 MCU首次烧录通常要先执行解锁步骤仓库docs/pictures/wiki_unlock/里有一步一图的操作截图可对照。知其所以然FOC 到底强在哪原理一句话FOC 通过测转子位置把电压矢量始终切在产生转矩的方向上而不是粗暴地整相换向。为什么重要换向控制下电流在相位切换瞬间会产生冲击这就是噪音和抖动的来源FOC 让电流连续平滑效率随之提升同样的电量能跑更远。如何体现你在 Inc/config.h 里能选控制类型CTRL_TYP_SELCOM_CTRL换向 /SIN_CTRL正弦 /FOC_CTRL场定向以及 FOC 下的三种模式CTRL_MOD_REQVLT_MODE电压模式响应快适合机器人或要秒跟手的场景SPD_MODE速度模式闭环抗扰、转速恒定适合定速应用TRQ_MODE扭矩模式输入即扭矩指令松手可自由滑行最适合有人乘坐的驾驶手感不同控制方式各有取舍一张表帮你快速选型控制方式效率平滑度场削弱自由滑行静止保持六步换向中差不支持不支持支持正弦控制高良优不支持支持FOC 电压模式优良良不支持支持FOC 速度模式优中良不支持优FOC 扭矩模式优优良支持不支持场削弱突破极速天花板电机转速越高反电动势越大留给电压的空间越小最后会顶死在某个速度。场削弱就是主动注入一点去磁电流给反电动势腾地方。在 Inc/config.h 里默认是关闭的FIELD_WEAK_ENA 0启用后按FIELD_WEAK_LO开始介入到FIELD_WEAK_HI拉满之间线性插值到FIELD_WEAK_MAX⚠️ 重调场削弱时务必断电操作、做好防护——电机会非常快功率飙升还可能触发电池 BMS 的过压保护。把它变成你的一套硬件多种玩法固件用变体来切换输入源你改一个宏就能把同一块板子变成完全不同的东西VARIANT_HOVERCAR接刹车 油门两个踏板静止时双击刹车进入倒车还能在开机时用踏板组合选 3 档驾驶模式新手/进阶/高手限速与限流逐级放开。VARIANT_SKATEBOARD右电缆接 RC 遥控 PWM默认走扭矩模式主打顺滑骑行。VARIANT_NUNCHUKWii 摇杆单手控制油门/刹车/转向常用于电动轮椅、搬运车。VARIANT_USART走串口协议从 Arduino 发指令控制Arduino/hoverserial 里有现成示例 sketch特别适合机器人底盘。VARIANT_ADC/VARIANT_PPM/VARIANT_PWM/VARIANT_IBUS电位器、RC 遥控PPM 和 iBUS等各种输入。改卡丁车时官方还给了接线原理图可对照踏板信号接在左侧长电缆上安全与避坑先看这几条再动手红线是 15V侧板电缆的红线是 12/15V接串口、电位器时只碰 GND 和信号线别碰红线。5V 耐压不对称右电缆的 USART3 耐 5V左电缆的 USART2 不耐 5V接电平转换时别搞反。电流/转速上限Inc/config.h 里默认单电机I_MOT_MAX 15A、直流母线I_DC_MAX 17A、N_MOT_MAX 1000 rpm。FOC 各模式都带最大转速与最大电流保护超了会限流但改之前先想清楚。输入超时保护连续 20 次错误/丢失指令TIMEOUT 20会触发紧急关断长时间不骑默认 8 分钟自动关机。电池与过热按每节 3.37V 低压断电并有分级报警过热保护建议先校准温度传感器再启用。参数是定点数电机参数集中在 Src/BLDC_controller_data.c用定点数表示以提高运行效率手改前最好配合定点数查看工具别拍脑袋。走得更远围绕它的生态这个仓库不只是固件还是一套可扩展的平台在线编译不想本地装环境时社区提供了网页版编译器改完直接出固件。Web 串口控制有人做了浏览器端远程操控界面免接线调试。ROS 驱动把刷好的板子接进机器人操作系统当移动底盘。扩展板有专门的平衡车 breakout 板方便挂传感器、I2C 外设。二次改车从单轮平衡车到各类卡丁车/童车都有人基于这套固件做了变体。社区原 Telegram 群已迁移到 Matrix历史消息含图片都搬了过去调参遇到问题可以直接问。想深挖控制器本身设计细节在配套的bldc-motor-control-FOC仓库还有个无需 Matlab 的网页版仿真可视化入口。常见问题 下一步刷进去还能回原厂吗能随时可刷回但大概率你不想回去。支持哪些板子基于 STM32F103RCT6 / GD32F103RCT6 的大多数主主板非分体板。要多少成本除了车本身基本就是一个 ST-Link V2 一个 USB 转串口。需要编程基础吗会用 C、懂一点嵌入式就够文档和注释相当细。现在就动手克隆仓库 → 取消注释platformio.ini里的一个变体 →pio run -e 变体 -t upload。先跑通最简的VARIANT_ADC看到电机转起来再逐步切到扭矩模式、打开场削弱、接入踏板——每一步都能立刻摸到差别。把旧平衡车唤醒顺便把现代电机控制这门手艺也一起练了。【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考