我盯着手机屏幕,转账备注里就一句话:“把这台机子的代码和板子放出来吧。”过了一会儿,又补了一句:“我想照着做一台。”那会儿我手里正捏着一台58克的空心杯四轴,刚试完第三次改版的飞控,电机还微微发烫。说不触动是假的。我原本只是随口在群里提了一句“这版改完可能会开源”,根本没想到会有人直接转账。于是就有了这篇文章,把这台空心杯飞控从硬件选型、固件配置,到调参、试飞、开源发布的全过程完整拆开。这件事涉及的不仅仅是三块PCB和一坨代码,更是一个很典型的“粉丝赞助开源”项目样本:空心杯电机驱动怎么做、飞控板级方案怎么选、Betaflight如何适配有刷电机、开源仓库里到底该放哪些文件才不算敷衍,这些我都会尽量讲清楚。适合谁看?想入门无人机飞控、想做嵌入式开源硬件项目、或者单纯想弄明白“一台能飞的小四轴内部到底发生了什么”的人,这篇文章应该能给你省不少弯路。
1. 一台空心杯飞机,为什么值得开源
1.1 空心杯飞控到底是什么
先把概念摆清楚。我们常说的“空心杯电机”,全称是空心杯有刷直流电机,转子结构里没有传统的有铁芯叠片,而是直接绕成空心的杯状绕组,所以转动惯量小、响应极快、转速上得去,重量还轻。代价是扭矩偏小,只能带小尺寸螺旋桨。这种电机广泛用在微型无人机、玩具四轴、部分精密仪器里,而“空心杯飞控”就是指针对这类小电机设计的飞行控制硬件加软件平台。
我做的这台机子,目标很明确:一架室内可飞、能穿越小障碍、成本克制的微型四轴。整机不包含电池控制在60克上下,轴距大约130毫米,用1S锂电池供电。飞控板上集成了主控MCU、惯性测量单元IMU、空心杯电机驱动电路、接收机接口,刷的是开源固件Betaflight。听起来很“小玩具”,但实际上手调过你就知道,空心杯四轴在控制层面的麻烦一点不比5寸穿越机少,甚至更精致、更敏感。
为什么强调“开源”这件事?因为在无人机这个圈子里,硬件开源的历史相当长。从早期ArduPilot的硬件参考设计,到Pixhawk飞控全系开放原理图和固件,再到无数个人开发者把自己画的飞控板、机架图纸挂到GitHub/Gitee上,整个生态就是靠“你给我看一份能跑的东西,我还你一份改进和反馈”这样滚起来的。空心杯飞控虽然小众,但恰好是一个非常适合个人完成的切入点:BOM便宜、门槛适中、调试周期短、试错成本低。
1.2“粉丝先转钱,后拿文件”背后的开源生态逻辑
按常理理解,开源不应该是“东西免费送给别人”吗?为什么会有人先转1000元?这其实触及了开源硬件和开源软件的本质差异。
开源软件的成本趋近于零,一份代码复制粘贴就能跑;开源硬件不一样,每一版验证都烧钱。打样PCB一次几百块,IMU传感器一个几十块,空心杯电机属于消耗品,炸几次就换一批,更别提调试过程中烧掉的MOS管、扯断的排线、报废的锂电。一个认真做硬件的开发者,做出一个能稳定飞的项目,物料和打样成本很容易突破一两千元。这时候粉丝的“赞助”就不是买源码的价,更像是“众筹你已验证的部分”,我先垫付你的物料钱,你把图纸和文件完整放出来,我再照着做、再帮你测试反馈。这个逻辑在海外叫“赞助开源硬件”,在国内圈子也逐渐被接受。
但这笔钱同时也代表了一份信任。粉丝愿意先转账,本质上是相信你会兑现承诺、相信你放出来的东西不是残缺的半吊子。所以接到这笔转账之后的整个周末,我几乎都在整理文件、重新跑测试,为的就是对得起这句“直接转1000元”。个人开源项目最怕的就是“说了开源,结果仓库里躺着一个只有README的空壳”。那1000元对我而言,压力远大于收入本身。
2. 硬件设计:空心杯飞控的板级方案与选型
2.1 空心杯电机的驱动电路怎么搭
空心杯电机属于有刷直流电机,驱动方式比无刷简单:给电就转,换向翻转电压。但它有两个特点直接影响电路设计:一是启动和堵转瞬间电流很大,1S供电下单颗电机正常工作电流大约0.4到0.8A,堵转时可能冲到2A以上;二是电刷换向时会产生火花和电磁干扰,布局布线时必须考虑。
驱动方案上,圈内主流有两种:一种是使用专用有刷电机驱动芯片,比如DRV8833、TB6612,优点是集成度高、自带续流和保护,适合新手;另一种是直接用N沟道MOS管搭半桥或单管驱动,比如AO3400、SI2302这类小管子,优点是压降低、成本低,而且可以做得非常轻。我最后选了后者,四路单管驱动,理由很简单:飞控板面积就25毫米见方左右,专用驱动芯片加上外围去耦电容,占板面积并不小;而AO3400是SOT-23封装,满载电流能做到4A左右,RDS(on)只有几十毫欧,对1S系统来说损耗可以忽略。
PCB上每个电机通道的走法是这样的:MCU的PWM引脚输出到MOS管的栅极,源极接地,漏极接电机负极,电机正极接电池正极。这就是典型的低压侧开关驱动。栅极电阻一般串一个几十欧的小电阻,用来抑制振铃;电机两端必须并一个续流二极管,比如SS14肖特基,否则MOS管会被电机的反向电动势直接击穿。这一条非常关键,我见过太多新手画的驱动板,布板时漏了续流二极管,一上电就冒烟,问题根源往往就在这里。
PWM频率我也说一下经验值。Betaflight默认有刷电机模式下PWM频率在1kHz到2kHz之间,我最终定在2kHz,实测下来电机噪音略大,但油门响应更跟手,对室内精准操控有帮助。频率太低了电机会有明显顿挫感,频率太高了MOS管开关损耗上升、电机会发热,所以2kHz是空心杯的一个甜点位。
2.2 主控和传感器的选型逻辑
主控选型上,STM32F411CEU6几乎是这类个人飞控项目的“标配”。这颗芯片是ARM Cortex-M4F内核,主频100MHz,带硬件FPU,在QFN-48封装里塞了足够的Flash和RAM。为什么不用更常见的STM32F405?因为空心杯飞控不需要那么多UART和高级外设,F411的性价比更高、采购更方便,而且Betaflight对F411的支持已经非常成熟。你可以理解成:F405是干重活的卡车,F411就是一辆轻快的小跑车,在轴距130毫米这种场景里跑车反而更合适。
IMU选型是另一个容易踩坑的地方。早期Pixhawk和各类飞控板大量使用MPU6000/6050,通过SPI接口挂在总线上,稳定可靠,资料也充足。但MPU6000已经有些年头,目前市场上不容易买到全新原装货,拆机翻新片反而多。我这次选的是BMI270,博世的新一代IMU,体积更小,而且抗振动能力更突出——这正好命中空心杯电机的痛点,毕竟有刷电机的振动和电磁噪声比无刷大得多。BMI270通过SPI通信完全能满足飞控对采样频率的要求。
这里多说一句为什么飞控要用SPI而不是I2C。I2C速率上限一般在400kHz,读取IMU数据的频率撑死跑到1kHz左右;SPI轻松跑到10MHz,实际运行中可以在几kHz的频率下持续读取IMU原始数据。对于飞控这种对实时性要求极高的系统,每一毫秒的传感器延迟都可能在剧烈机动中放大成姿态偏差,所以正规飞控板上IMU清一色走SPI。
2.3 打样与焊接心得
这版飞控板我打了三次样,前两次都有结构上的遗憾。第一版为了追求小尺寸,把电机焊盘放在板子四角,结果装上空心杯电机之后,重心的聚合度不够理想,飞起来总有一种说不出来的“拖泥带水”。第二版调整了电机位置排列,但把电池焊盘设计得太靠边,重心偏移明显,飞起来得靠油门补偿。直到第三版才把电机呈正方形对称排列、电池放在板子正下方重心处,手感立刻干净了很多。
关于PCB工艺,我可以给你一个很明确的结论:2层板完全够用,但布局得用心。电源走线要够宽,尤其是电池正极到四路电机正极这条主干线,至少要能承受4A以上的电流,1盎司铜厚的2层板上走2毫米以上宽度比较稳。IMU区域的下方不要铺铜,或者至少把地平面做完整,不然传感器会读到莫名其妙的噪声。我第一版就是因为IMU底下信号线乱窜,导致陀螺仪数据有周期性跳变,排查了很久才发现是布线干扰。
焊接层面有个小技巧:空心杯电机是直接焊在PCB焊盘上的,而电机引线是漆包线,焊接前必须用刀片刮掉漆层或者用高温烙铁配合助焊剂把漆膜烧掉,否则会出现“看着焊上了,其实没导电”的假焊。另外,焊盘上长期承受电机震动,焊点容易疲劳断裂,最可靠的做法是焊完电机之后,在焊点和引线根部点一圈热熔胶或者环氧树脂做应力释放,这个小动作能省掉好多“为什么飞着飞着某一侧突然没动力”的困惑。
3. 固件配置:让Betaflight驱动有刷空心杯
3.1 有刷/无刷模式的选择
硬件板子焊好了,接下来就是让飞控“知道”自己带的是什么电机。Betaflight本身是为无刷穿越机设计的固件,但针对有刷电机提供了一套完整的支持方案。核心逻辑是:无刷电机需要电调输出三相换相信号,而有刷电机只需要一路普通PWM驱动MOS管即可,所以Betaflight把motor命令的协议改成了有刷PWM输出模式。
在Betaflight里开启有刷模式的典型方法有两种。旧版本是在Configuration页面勾选“Enable brushed motor”选项,新版本则可能需要通过CLI设置motor_pwm_protocol或类似的“brushed”参数。具体到我这台机子,我用的Betaflight 4.4配置,CLI里设置方式如下:
# 开启有刷电机模式 set motor_pwm_rate = 2000 # 确保电调协议设置为无协议/直驱模式 set motor_pwm_protocol = BRUSHED # 保存 save注意,在无刷穿越机上常用的DShot600、Multishot这些协议,在有刷模式下完全用不上,因为它们本质上是给电调通信的数字协议。空心杯系统里,PWM信号直接控制MOS管,根本不存在“电调”这个概念,所以把协议选成BRUSHED之后,每个电机通道输出的就是最原始的PWM占空比。
3.2 刷写与CLI配置详拆
给这块F411飞控刷固件,流程跟普通Betaflight刷写几乎一样。第一步让板子进入DFU模式:按住板上的BOOT按键,同时USB上电,电脑设备管理器里会出现一个STM32的DFU设备。然后打开Betaflight Configurator,在Firmware Flasher页卡里选择对应的目标固件——自制飞控板虽然不像原厂板那样有现成的目标文件,但可以用“F411”通用目标刷入,配置文件就要自己写。
烧录完成后,第一件要干的事是配置端口。我的板子上,接收机接在UART1,所以进Ports页把UART1的RX打勾,设为接收机串口。没有外置黑匣子芯片,我开了基于SD卡的Blackbox功能,通过SPI挂载一张TF卡。
然后就是CLI个性化配置的部分,这里贴一段我当时用的核心配置:
# 加速度计方向,按板子实际安装方向调整 set align_board_roll = 0 set align_board_pitch = 0 set align_board_yaw = 180 # 解锁角度限制,室内调试先用大角度方便观察 set small_angle = 180 # 设置接收机协议 set serialrx_provider = SBUS # 开启电压监测,1S电池低电压保护 set vbat_adc_channel = 1 set vbat_scale = 110 set vbat_warning_cell_voltage = 3.5 set vbat_vmin_cell_voltage = 3.3 # 有刷电机怠速设置,避免解锁后电机停转抖动 set motor_idle_throttle = 5 set motor_pwm_rate = 2000 set motor_pwm_protocol = BRUSHED save关于motor_idle_throttle这个参数,好几个朋友都问过我。无刷电机在解锁后即使油门最低,电调也会维持一个可观的怠速,保证电机随时响应;但空心杯有刷电机如果怠速太高,飞机会在解锁瞬间直接抖起来,如果怠速太低,又可能出现解锁后一侧先转、一侧后转的怪异现象。我试下来5%-6%左右比较合适,既能保证电机及时启动,又不会造成解锁即窜天。
3.3 首次上电和电机转向测试
固件配置保存之后,先别急着装桨。第一次上电,把USB插上,进Betaflight的Motors测试页,在“我已了解风险”勾选之后,逐个推电机滑条。这一步有两个目的:确认四路输出都正常、确认电机转向和Betaflight预期的一致。
Betaflight里的电机输出顺序是1号右前、2号左后、3号左前、4号右后,具体转向规则因PID轴定义而异。最简单的验证办法:在电机测试页推动1号电机,看机架的哪个角转起来,如果转向与软件预期相反,就把那一对电机线对调,或者通过CLI设置motor反向。空心杯电机是两线的,换转向就只能交换两根线,没有软件反转概念。
这里还要提一个非常重要的细节:装桨之前必须确认每一个螺旋桨的正反桨位置。微型四轴通常用两对正反桨,但空心杯电机本身不分正反,安装方向取决于桨座固定方式。如果装错了桨,飞控再聪明也无法通过PID把飞机稳住,因为你相当于给它一个持续的方向扰动。无数人在“第一次解锁直接翻滚”的排查中栽在这里。
4. 调参与试飞:从“勉强离地”到“稳如老狗”
4.1 空心杯的PID特点
调参是空心杯飞控和常规无刷穿越机最不一样的地方。无刷电机功率大、桨效高,PID的宽容度相对高一些;空心杯电机响应快但扭矩小,桨叶小且转速极高,整个控制对象有着很强的非线性和高频振动。
起飞之前,我把PID控制器设为默认的Betaflight PID,然后按经验做了一轮针对性调整。首先是Roll和Pitch的P值。空心杯响应极快,如果P值偏高,飞机会在很小的姿态偏差下输出大幅度修正,结果就是高频抖动——飞控试图纠正一个振动,反而越纠越抖。我最后把Roll和Pitch的P值压在默认值的三分之二左右,保留了足够的“稳”,不至于太“贼”。
I值的作用是消除稳态误差,通俗讲就是让飞机能保持同一个姿态悬停不漂移。空心杯小飞机对重心非常敏感,I值如果太小,飞机会缓缓地朝一个方向偏航或者滚转。但I值也不能太大,否则在风吹草动下会出现振荡,现象是飞机“呼吸式”上下起伏。我自己最后用的I值比默认略高,因为室内小飞机往往有微小的重心偏移和电机拉力差异,需要用积分来校正。
D值方面,我反而建议新手先保持默认甚至关闭。D项的作用是抑制姿态变化速率,但它的代价是放大传感器噪声,而空心杯电机恰恰是噪声制造机。如果D值过高,你会观察到飞机在地面推油门时电机转速就开始波动。所以我先让D值保持较低,等到飞行稳定后再逐步增加,感知“顿挫感”是否减少。
滤波是另一个绕不开的环节。空心杯电机的转速可以轻松超过四万转每分钟,产生的振动频率非常高,IMU读到的角速度信号里夹杂着大量高频噪声。在Betaflight的Filter设置里,我把gyro低通滤波从默认的400Hz调低到250Hz左右,每级滤波都适当加强。滤波加强了会让飞控反应“钝”一点,但换来的是控制信号的平滑,这个交换对空心杯飞机非常划算。
4.2 电压补偿和电池选择
1S电池的痛点就是电压崩溃。一颗满电4.2V的锂电池,在大电流输出下瞬间能被拉到3.7V甚至更低,而随着电量消耗,电压还在持续下降。如果不做补偿,飞控会感受到“油门没变、转速下降”,PID为了维持高度会不断加大输出,最终导致动力下降后飞机突然掉高度。
我开启vbat电压补偿后,手感变化很明显。飞控会实时采样电池电压,把它折算到一个标准电压上,从而将电压下降对转速的影响尽可能抵消。参数上,vbat_scale需要根据分压电阻实际分压比来校准——我板子上用的是10k和1k的分压,理论分压比是11,但因为电阻精度和保护电路内阻损耗,实际量下来需要把scale微调到110左右。校准的办法很简单:用万用表测电池正负极的真实电压,再对比Betaflight里读到的电压值,两者不一致就调整scale,直到它们一致。这一步不要嫌麻烦,电压检测不准,低电压保护和压降补偿全都是空中楼阁。
电池本身也有讲究。300mAh的电池放电能力不足的话,四颗空心杯电机同时全油门,瞬间电流能接近4A,对电池倍率的要求其实是相当高的。我用的是450mAh 1S锂电池,标注75C(实测强悍),放在室内飞四到六分钟很合适。别用大容量低倍率的电池,比如1000mAh 10C,电机大电流输出时电池会剧烈发热,电压直接跌到3.2V以下,飞控会因为低压保护频繁触发而自动降落,体验很差。
4.3 室内试飞和重心校准的碎碎念
第一次试飞,我建议找个无风的环境,比如家里客厅,地面铺一层泡沫垫或者纸板。在解锁之前,先做一次完整的加速度计校准:把飞机放在绝对水平的地面上,在Betaflight的Setup页面点“校准加速度计”,等3秒钟提示已完成。千万别小看这一步,加速度计零点没对齐,飞控的“水平”概念就是歪的,解锁后飞机会自己朝一个方向窜。
室内试飞还有一个容易忽略的点:气流。空心杯小四轴桨叶小、推重比高,在紧贴地面时会产生强烈的“地效应”,飞机会出现机身上浮、来回弹跳的现象。我通常的做法是解锁后快速给油门到40%左右,让飞机迅速爬升到30厘米以上,脱离地效应区域,然后再试着悬停。如果飞机一直在地面附近飘忽不定,不要急于调整PID,先把高度带起来再说。
重心校准方面,一个好的办法是“指尖测试”:把飞机放在食指指尖上,找到机架的重心大概位置;然后看电池是不是位于这个点正下方。如果电池偏了,飞控通过PID也能稳住,但你会发现在偏航动作中飞机有明显的“甩尾感”,这种物理重心问题靠调参很难根治,最好的方案是调整电池魔术带位置或者移动飞控板。
5. 常见问题排查:空心杯飞控的“水土不服”
先把最容易遇到的问题列成速查表,方便对照:
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
| 上电后完全没反应 | 电源线接反、LDO虚焊、电池没电压 | 万用表量板子供电点,检查3.3V输出;确认电池头电压在3.7V以上 |
| 解锁后电机不转 | 油门通道映射错、BRUSHED模式未生效 | 进接收机页看油门通道值是否变化;检查CLI里motor_pwm_protocol |
| 电机转一下就停 | 电压跌落触发低压保护、电池倍率不足 | 看Betaflight电压读数,把vbat_warning调低一点测试;换高倍率电池 |
| 解锁瞬间机身翻滚 | 螺旋桨装错正反桨、电机转向相反 | 拆桨,逐通道测试电机方向;装桨后再次确认对角线电机旋向 |
| 悬停中周期性抖动 | 桨叶变形、电机轴承磨损、PID的P值偏高 | 换新桨叶;检查电机是否发热严重;降低P值,观察是否缓解 |
| 朝一个方向缓慢漂移 | 重心偏移、加速度计未校准、I值不足 | 重新校准加速度计;调整电池位置居中;适当增加I值 |
| 飞控读出IMU数据跳变 | SPI线受干扰、LDO输出纹波大 | 检查IMU下方是否走线;在IMU电源引脚附近加100nF电容 |
| 电调/MOS管烫手甚至冒烟 | 电机堵转、续流二极管缺失、PWM频率过高 | 确认电机能自由转动;补焊续流二极管;降低motor_pwm_rate |
这里面最值得展开的是“电机转一下就停”和“MOS管烧毁”这两类问题,因为它们往往不是单一原因。
“转一下就停”在空心杯机子上太典型了。我最早调试时就遇到过:解锁推油门,四个电机转起来不到两秒就全停,好像有人按了急停。排查半天发现不是飞控逻辑问题,而是电池电压瞬间被拉到3.0V以下,飞控的低压保护直接触发了电机停转。这不是故障,而是保护。解决路径有两条:要么换一颗放电能力更强的电池,要么在CLI里把低压保护阈值调低一点并缩短保护降落延时。当然,如果真的没什么负载电压就被拉垮,那还得怀疑是不是电机堵转或者MOS管有轻微短路。
MOS管烧毁,最常见的原因是电机堵转时电流过大。空心杯电机堵转电流非常可怕,我实测过一组数据,1S电压下堵转电流能到3.5A以上,而AO3400虽然标称能过4A,但那是在有良好散热的前提下。电机堵转半分钟,管子就热到焊锡发软,然后就冒烟了。所以每次上电之前,我都会习惯性地用手转一下每一个螺旋桨,确认没有异物卡住;落地之后如果飞机犁地,立即全锁断电,别让电机在不该转的时候持续输出。这条习惯比任何保护电路都可靠。
空气里的灰尘和细线也是空心杯电机的天敌。室内飞时间久了,电机尾盖缝隙会吸进去棉絮、头发丝,导致转动力矩明显变大,电流也持续走高。我一般飞个二十来个小时就更换一套电机,反正是消耗品,一副空心杯电机也就几块钱,不值得为省这点钱牺牲稳定性。
关于“解锁即翻滚”,我还要补充一个容易被忽略的点:解锁开关的复位逻辑。Betaflight默认需要油门在最低位、并且用一个辅助通道作为解锁开关。有些接收机在连接初期输出的PWM值并不是标准1000-2000区间,甚至可能给出一个残留的旧通道映射,导致飞控以为油门在中位、解锁条件未满足。解决办法是重新做一次遥控器行程校准,在接收机页里确认各通道数值范围为1000到2000,然后再设置解锁开关。
6. 开源发布:如何从“一个项目”变成“一份礼物”
6.1 开源仓库里应该放什么文件才算合格
粉丝转钱之后的第二天,我开始整理仓库。这一步比想象中麻烦。代码可以复制粘贴,但一个“合格”的硬件开源仓库需要包含的东西远比很多人想的多:硬件设计文件(原理图、PCB Layout)、Gerber制造文件、元器件BOM表、固件配置导出(CLI dump)、刷机说明、调参说明、结构件STL图纸、物料购买链接。每一项都得花时间去写,尤其要保证别人拿着这些文件能在嘉立创打样出来、能焊好、能飞起来。
许可证的选择也很讲究。如果你在Gitee或者GitHub上创建仓库,系统会让你选一个开源许可证。对于硬件开源项目,我建议采用“分层授权”的方式:原理图和PCB设计文件采用CERN OHL这类专门针对硬件的开源许可协议,固件和配置代码采用GPLv3,文档和教程采用CC BY-SA。这样做的意义在于,不同文件的使用约束完全不同,硬件设计要防止别人改了板子却不开源,固件要保证修改后的代码继续开放,文档则允许自由转载但要求署名。别随便选一个MIT就把整个仓库一揽子授权了,那相当于你把硬件设计也一并“几乎无限制”地交了出去,与“共享改进成果”的开源初衷相悖。
知识产权的问题,我作为个人项目也没法请律师,但一个最基本的底线是:仓库里放的所有东西必须是你自己独立完成的。Betaflight固件本身是GPL开源的,你用它没有问题,但你没有权利把它改个名字再宣称是自己原创。硬件电路设计里如果参考了别人的参考设计,尊重来源,在README里写明“参考了某某项目,在此致谢”,这是圈内的基本礼貌,也能避免不必要的纠纷。
6.2 个人开源项目的运营与维护
仓库建好只是第一步。真正让这个项目有价值的是后续的问题跟踪和持续更新。我在README里专门写了“从零开始复刻”的分步教程,包括打样参数、焊接顺序、第一次上电检查清单、调参起点,所有这些都配上图片和视频链接。写文档的时候我一直在想:如果我是第一次接触这个项目的陌生人,我能不能只靠这个仓库的README把飞机飞起来?如果哪一步会卡住,我就把那一步的说明再写详细一点。
项目的维护方面,我同时把仓库放到GitHub和Gitee上,主仓在GitHub,方便海外朋友和国际化的协作;Gitee作为镜像,主要是国内下载和访问更快。每次发布新版本固件配置,我都会打一个tag,比如v1.0、v1.1,并附带CHANGELOG,说明这一版改了哪些参数、修了什么问题。个人项目虽然没有庞大的社区,但哪怕只有几个人在issue里提问,认真回复同样很有收获——读者提出的很多调试问题,反过来会促进你对这个设计的进一步理解。
既然说到开源硬件,就不得不提“抄板”这个绕不开的话题。我自己对于这件事的心态经历了三个阶段:一开始担心别人抄,后来觉得抄板是某种意义上的肯定,再后来发现,真正有价值的东西其实是抄不走的。图纸和代码是开源的,别人确实可以照着做,但他拿不到你在反复调试中积累下来的PID参数、滤波设置、结构补强方案。那些经验分散在几十上百次试飞和炸机的记录里,是我在文章中额外花几倍篇幅想传达的。我开这个项目的初衷本来就不是让人照抄,而是让人看懂“为什么这么做”,这比任何一套Gerber文件都重要。
所以那1000元,我最后是这样花的:约一半用于补充采购了几套配件发给愿意测试的网友,剩下的一半,变成了这篇文章和仓库里所有的文档。粉丝买到的不是一个项目的“成品”,而是我把它完整讲清楚的那份承诺。开源硬件这件事情最迷人的地方,从来不是“免费拿到图纸”,而是“有人愿意把踩过的坑、试过的错、调过的参,全部摊开给你看”。空心杯飞控说到底也是一个载体,真正在社区里流动的,是那个“我也能亲手做出来”的信心。