hoverboard-firmware-hack-FOC 的 config.h 改哪几处,电机才既稳又快

发布时间:2026/10/23 6:03:43
hoverboard-firmware-hack-FOC 的 config.h 改哪几处,电机才既稳又快 hoverboard-firmware-hack-FOC 的 config.h 改哪几处电机才既稳又快【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC你手里有块跑 hoverboard-firmware-hack-FOC磁场定向控制 / FOC 固件的悬浮板主板Inc/config.h 有 800 多行到底该动哪几行这篇文章只讲必须改的 6 处、每处的推荐值和依据。先定变体输入设备决定你烧哪个固件这个固件一个源码树编出十种固件区别只在于控制信号从哪根线进来。主板上有两根四芯传感器排线先搞清楚它们各管什么左线USART2不耐 5V仅 3.3V、30mA。可当 12bit ADC 用PA2/ADC1、PA3/ADC2电位器和串口控制走这里右线USART35V 容忍PPM / PWM / iBUS / Nunchuk / I2C 屏都走这里你的输入设备选哪个变体两个电位器VARIANT_ADC串口如 ArduinoVARIANT_USART遥控 PPM 和弦信号VARIANT_PPM遥控 PWMVARIANT_PWMFlySky iBUSVARIANT_IBUSWii Nunchuk 手柄VARIANT_NUNCHUK刹车/油门踏板hovercarVARIANT_HOVERCAR滑板 遥控 PWMVARIANT_SKATEBOARD变体在哪改三种工具三种地方PlatformIO 用户改 platformio.ini 顶部的选择区;default_envs VARIANT_ADC ; ← 改这里取消注释且只保留一个变体default_envs决定pio run编哪套环境只能留一行生效留两行会编出不确定的东西。Keil uVision 用户不用碰代码直接点 Load 按钮右侧的 Target 下拉框选变体。命令行 make 的话看 Makefile 里的用法make -e VARIANTVARIANT_ADC # ← 改这里替换成你要的变体 make make flash也可以在 config.h 开头 VARIANT SELECTION 区直接取消注释对应行。编译时报Variant not defined!就是这步漏了。第一次刷不进去先解锁主板上的 STM32F103RCT6部分板子是 GD32F103RCT6出厂可能开了读保护make flash会失败。先用 ST-Link 执行make unlock内部是stm32f1x unlock 0再刷。线不知道接哪对照这张引脚图主控板引脚布局左/右传感器排线、XT60 电源输入和 SWD 编程口PA13/PA14都在板上左线只认 3.3V、右线 5V 容忍红线位置已标注把电流和转速锁到安全线config.h 电机最大电流 I_MOT_MAX 怎么改#define I_MOT_MAX 15 // [A] ← 改这里单个电机的最大电流 #define I_DC_MAX 17 // [A] ← 保持 I_MOT_MAX 2AI_MOT_MAX是每只轮机电流的硬上限超过就触发斩波限流I_DC_MAX是 DC 母线的最后一道保护文件注释明确要求它等于I_MOT_MAX 2A两个数要一起动。默认 15A 对原厂 10S 电池36~40V是留了余量的保守值想要更大扭矩可以逐步试到 18~20A——但上限由电池放电能力决定这块板上没有额外保险丝兜底。轮子里那台电机的承受力看什么拆掉外环的悬浮板电机定子上的铜线绕组和霍尔传感器环电流上限就是按这套绕组的线径留的余量15A 默认值对原厂电机是安全的转速上限 N_MOT_MAX 给多少#define N_MOT_MAX 1000 // [rpm] ← 改这里单轮最大转速这是单轮转速的天花板。默认 1000rpm 是原厂轮径下的保守值想再快不是调大它就行反电动势会把电机卡死得配合磁场削弱一起用见下文。选控制模式VLT、SPD、TRQ 各管什么改这一行就能换电机控制方式#define CTRL_TYP_SEL FOC_CTRL // ← 改这里COM_CTRL / SIN_CTRL / FOC_CTRL #define CTRL_MOD_REQ VLT_MODE // ← 改这里VLT_MODE / SPD_MODE / TRQ_MODECTRL_TYP_SEL切换整个控制算法FOC_CTRL 是默认的磁场定向控制噪声最小、效率最高SIN_CTRL 是正弦换相COM_CTRL 是传统六步换相。CTRL_MOD_REQ只在 FOC 下生效决定内环跟什么物理量。三种 FOC 模式怎么选模式行为适合VLT_MODE恒定电压输出响应最快需要快响应的机器人机构SPD_MODE闭环追目标转速可抗负载扰动恒速、定速巡航类应用TRQ_MODE跟随扭矩指令为 0 时电机自由滑行坐姿载人最舒服HOVERCAR / SKATEBOARD 变体默认就是它注意 HOVERCAR 和 SKATEBOARD 变体在 config.h 里会自己#undef再重定义CTRL_MOD_REQ你手填的值会被变体覆盖以变体为准。松手之后轮子要滑行还是刹车// #define ELECTRIC_BRAKE_ENABLE // ← 改这里取消注释TRQ 模式松输入变恒定制动 // #define ELECTRIC_BRAKE_MAX 100 // (0, 500) 制动强度越小越溜 // #define STANDSTILL_HOLD_ENABLE // ← 可选停稳后保持位置默认松手电机就自由滑行打开ELECTRIC_BRAKE_ENABLE后松手变成温和制动STANDSTILL_HOLD_ENABLE进一步让车停稳后锁在原地。两个开关只对 VLT/TRQ 模式有意义其中电闸只生效于 TRQ 模式。电池压到多少会断电先改串数否则阈值全错#define BAT_CELLS 10 // ← 改这里电池串数原厂悬浮板是 10S后面的 LVL2 / LVL1 / DEAD 全部按BAT_CELLS算。原厂悬浮板电池是 10S36~40V如果你换了 9S 或 13S 电池只改这一个数保护线就还落在对的位置上。三级电压保护线在哪宏每节电压板上动作BAT_LVL23.60 V慢速蜂鸣BAT_LVL2_ENABLE0可关BAT_LVL13.50 V快速蜂鸣该充电了BAT_DEAD3.37 V直接断电仅限未行驶状态数字的单位是每节电压 × 100改行首那个数就行#define BAT_DEAD (337 * BAT_CELLS * BAT_CALIB_ADC) / BAT_CALIB_REAL_VOLTAGE // ← 改 337锂电池低于 3.3V 就开始伤寿命默认 3.37V 断电线合理。如果你总骑到没电可以略微下探BAT_DEAD代价是电池寿命。电压读数差得远两步校准用万用表量实际输入电压×100 写进BAT_CALIB_REAL_VOLTAGE文件注释里的例子39.70V → 3970读串口调试输出的第 5 项BatADC写进BAT_CALIB_ADC再核对调试输出第 6 项×100 的电压是否和万用表一致默认BAT_CALIB_ADC1492对应 39.70V你的板子读数偏差大基本就是这两个数没对上。想突破 1000rpm磁场削弱怎么开开之前先动这四行#define FIELD_WEAK_ENA 0 // ← 改成 1 开启磁场削弱 #define FIELD_WEAK_MAX 5 // [A] ← 改这里最大削弱电流10A 以内实测过 #define FIELD_WEAK_LO 750 // (500, 1000] 输入目标到它开始介入 #define FIELD_WEAK_HI 1000 // (1000, 1500] 到它时削弱最大硬上限 1500FIELD_WEAK_MAX是 d 轴削弱电流越大极速越高但功耗越大——文件注释里写了 10A 只在 10 寸轮上实测过别一上来就拉满。LO/HI注意它们指的是输入指令值-1000~1000 那个区间不是 rpm削弱电流在这两点之间从 0 线性爬到最大值。曲线长什么样磁场削弱 / 相位提前在 FIELD_WEAK_LO 到 FIELD_WEAK_HI 之间从 0 线性升到 FIELD_WEAK_MAX图中是完全混合、部分混合、目标落在区间外三种标定对照着定 LO/HI如果用的是 SIN_CTRL对应参数换成PHASE_ADV_MAX角度制默认 25°原理相同。⚠️ 官方 README 的警告必须转述给你重新标定磁场削弱后电机可能转得非常快功耗骤增还会触发 BMS 过压保护——先在空地上用小的FIELD_WEAK_MAX试。避坑这几处改错轻则翻车重则烧板为什么别碰传感器线上的红 15V 线调试串口、串口控制、输入接线都复用最开始那两根排线最容易烧板的是接线的 30 秒适配器必须用 3.3V 版 UART-USB只接 GND、RX需要发命令再加 TX排线里的红色供电线是 15V绝对不要接到适配器的 VCC碰一下整条链路报废波特率统一 115200和 platformio.ini 里monitor_speed一致// #define DEBUG_SERIAL_USART3 // ← 改这里右线调试 // #define DEBUG_SERIAL_PROTOCOL // ← 改这里要发命令、在线改参数才打开调试口和控制/反馈口共用引脚config.h 末尾的#error检查会在冲突时直接编译失败比如DEBUG_SERIAL_USART3 and FEEDBACK_SERIAL_USART3 not allowed看到报错先想是不是两条路都想占同一根线。温度保护没校准别开 ENABLE#define TEMP_WARNING_ENABLE 0 // ← 校准完才改成 1 #define TEMP_POWEROFF_ENABLE 0 // ← 校准完才改成 1温度传感器就在 STM/GD 芯片内部不校准误差最大能有 45°C。直接开的话要么 30°C 就拒动要么烧到 100°C 才断电。按注释流程做两点校准冷态 热态各采一组 ADC/温度再启用警告值 60.0°C、断电值 65.0°C 对多数场景够用。改了 config 不生效校准值存在 flash 里VARIANT_ADC 的自动校准长按电源 5 秒以上听到蜂鸣再把电位器扫到最小/最大回中后按电源确认会把 min/max 写进 flash此后生效的是 flash 里的值不是你 config.h 里PRI_INPUT1/2的写法。输入手感不对时改一下FLASH_WRITE_KEY让板子忽略 flash 值、改用 config 值或者整片擦除PlatformIO 刷机默认带 erase后重新校准原厂自平衡那个变体还没做完VARIANT_HOVERBOARD 是给两根原厂边板准备的要求边板也刷了改版固件而且文件里明确标注平衡控制器还是 TODO——别指望它自动平衡想骑平衡车模式现在还不行。踏板改 hovercar 的接线拿不准时对照这张完整接线图![HOVERCAR 变体完整接线示意踏板接左线【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询