首页 / 资讯中心 / 文章详情

从零开始给平衡车刷FOC固件:4步完成hoverboard-firmware-hack-FOC刷写实战教程

从零开始给平衡车刷FOC固件:4步完成hoverboard-firmware-hack-FOC刷写实战教程 ★ FEATURED ARTICLE
从零开始给平衡车刷FOC固件4步完成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 就是冲着这个问题来的开源固件它把电机控制升级成磁场定向控制FOC。读完这篇教程你可以亲手完成从接线、解锁到刷写的全过程让轮子真正听话。从换相到FOC这套平衡车FOC固件能带来什么先说结论刷完之后同样的硬件骑行质感会明显不一样。打个比方原厂的换相控制像老式三档变速箱靠咔咔换挡推着转子走换挡瞬间就是你听到的噪音和顿挫而 FOC 更像自动挡的无级变速实时调节三相电流的大小和方向让磁场始终咬住转子换挡动作彻底消失。刷上 FOC 固件你能拿到 4 个实打实的好处噪音和震动明显下降起步不再一冲一冲扭矩输出平滑电机效率提升同电量跑得更远支持弱磁控制Field Weakening不加大电流也能抬高极速上限控制方式由 Inc/config.h 里的 CTRL_TYP_SEL 参数决定FOC、正弦、换相三种随时可切图1国外玩家基于这套固件改的 hovercar 卡丁车刹车油门各占一个踏板双击刹车挂倒挡——都建立在 FOC 之上。图2拆开平衡车轮子能看到三相绕组和转子FOC 要控制的就是这套绕组里的电流方向与大小。刷写FOC固件前的工具准备4样必备加1样替代开工前把东西摆齐全程只需要 4 样必备件外加 1 样可以二选一的替代工具必备一台能正常开机的平衡车主板为 STM32F103RCT6 或兼容的 GD32F103RCT6 均可必备ST-Link V2 编程器 4 根杜邦线必备一台电脑装好 STM32 ST-Link Utility或者用 openocd 替代功能等价和任意串口助手必备一份编译好的固件文件——克隆仓库后本地编译最省事git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC编译有三条路挑一条你顺手的PlatformIO 一键编译最推荐、仓库自带的 MDK-ARM/ 工程Keil 用户、或者根目录的 Makefile命令行党。刷之前还要定一个玩法变体它决定电机听谁的指令VARIANT_USART 适合接 Arduino 二次开发VARIANT_PPM / VARIANT_PWM / VARIANT_IBUS 适配航模遥控器VARIANT_HOVERCAR 和 VARIANT_SKATEBOARD 分别对应踏板卡丁车和遥控滑板。变体在 platformio.ini 里取消注释对应那一行即可一次只留一个。图3主板引脚分布图SWD 编程口PA13/PA14和左右两根侧板线的位置都标得清清楚楚接线前先看这张图。SWD接线、解锁读保护、烧录固件分3个阶段完成首刷整个刷机流程压缩成 3 个阶段每个阶段动作都不多但顺序不能乱。阶段一断电接好SWD四根线要点先断电池再对照引脚图接线。断电后找到主板上的 SWD 编程接口把 ST-Link 与主板一一对应SWCLK 接 PA13SWDIO 接 PA14GND 接 GND3.3V 按需连接。⚠️ 避坑接线前务必先断开电池电源。正确动作是拔掉或断开电池开关对照图3确认线序每根线接前先比划两遍再落下。带电插线轻则芯片锁死重则直接烧板。阶段二两步解除读保护要点看到Can not read memory别慌那是芯片在正常挡门。绝大多数原厂主板出厂就开了读保护Read Out ProtectionST-Link Utility 连上后读内存会被拒绝。在 Target → Option Bytes 里把 Read Out Protection 降到 Level 0再对芯片做一次整片擦除门就开了。图4ST-Link Utility 弹出 Can not read memory 警告出现这行字说明离解锁只差一步。⚠️ 避坑擦除会清掉板内所有数据包括原厂固件。正确动作是确认你已经拿到可刷的 FOC 固件文件再动手别指望刷坏了还能恢复出厂。阶段三烧录固件并等待校验通过要点起始地址保持 0x08000000等Verification OK才算完。解锁擦除完成后点 Program Verify选中编译好的固件文件地址不用改点 Start。等日志刷完、屏幕上出现 Verification OK首刷就完成了。⚠️ 避坑烧之前先核对固件文件和你的变体VARIANT是否一致别刷了 HOVERCAR 版却拿遥控器当踏板用。正确动作是对照 platformio.ini 里你取消注释的那一行确认手里的固件就是这个变体编译出来的。刷完FOC固件怎么验证和进阶先验证再挑方向验证很简单给车通电短按电源键开机用手转动电机——FOC 模式下你会感到一股均匀、持续的阻力这就是锁定效果接着用遥控器或串口发一条速度指令车轮应平滑跟随转动没有换相时的咔哒顿挫。验证通过后有 3 个进阶方向可以挑串口在线调参。启用 DEBUG_SERIAL_PROTOCOL 后用 115200 波特率连上串口GET 查看参数、SET 修改、SAVE 写入 EEPROM。感觉响应太冲就调低 RATE、调大 FILTER 让输出柔和守安全底线就把 I_MOT_MAX单电机最大电流和 N_MOT_MAX最高转速限制在合理范围。弱磁冲极速。config.h 里 FIELD_WEAK_ENA 默认是关的打开后由 FIELD_WEAK_LO / FIELD_WEAK_HI 两个点决定弱磁从哪开始、到哪拉满不加大电流就能把极速再顶一截。图5弱磁/提前角的几种典型校准曲线LO 是起点、HI 是拉满点调参时对照这张图理解参数含义。换控制变体造新玩法。切到 VARIANT_HOVERCAR 就是踏板卡丁车油门刹车各一踏板、双击刹车倒车想拿航模遥控器玩就选 VARIANT_PPM / VARIANT_PWM摇杆上能直接切换 FOC/正弦/换相三种控制类型想代码级开发仓库自带 Arduino/hoverserial 例程协议带帧头、校验和与重同步接块 Arduino Nano 就能发指令并实时读回转速、电压与板温做机器人底盘刚刚好。图6Flysky 遥控器的通道配置示意CH1 转向、CH2 速度摇杆开关可切控制类型与弱磁开关——这是 VARIANT_PPM/PWM 玩法的参考接法。常见翻车点3个高频故障的排查路径现象ST-Link Utility 弹出 Can not read memory。原因原厂芯片开启了读保护软件被拒之门外。解法Option Bytes 里把 Read Out Protection 降到 Level 0整片擦除后再读正常能扫出 32K 字节的 Flash。现象电机能转但方向反了左右轮对调后好转。原因固件默认的电机相序与你的实物绕组接法不一致。解法在 Inc/config.h 里交换任一电机的两个相序宏重新编译刷写只换一对换两对等于没换。现象刷完能开机但遥控器/串口指令完全没反应。原因要么变体选错要么信号线接错路——左边侧板线USART2不耐 5V 电平接错来源会收不到正确信号。解法确认变体与输入源匹配串口调试优先用右侧USART35V 容忍的线并把波特率设成 115200 再试。从嫌车吵到车听话一共四步备齐工具、接线解锁、烧录固件、调参验证。车就在那儿嗡嗡等着动手吧 【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站