FPV经验分享之飞控

July 30, 2021 Categories:FPV No Comments yet

这是经验分享的第一篇,接下来会聊其它装备。当然只是从我个人的角度出发,主观是必然的,纰漏和错误也是在所难免了。

如果你翻过我之前的帖子会发现从2014年左右开始到现在我大概接触过这些飞控:

KK,MWC,NAZA V2,XAircraft的MINIX, CC3D,SPARKY。F4F7系列飞控搭载BF和EMU固件, KISSv2, FETTEC

前两者如果我理解没错的话它们都是8位运算单元,其中MWC是目前的CLEANFLIGHT和BF固件的早期版本。
KK一代是我没有能成功起飞的飞控,挫败感很强~它只有3个独立的硕大的陀螺仪,没有加速计所以没有自稳功能。PID的调整非常困难,特别是当时大家的配置全都参差不齐,如果不幸选择了设计不好的机架那大概率就是和我一样的结果。后来的高级版KK就没有尝试过了。
MWC的适时出现让我总算飞了起来,其实我还用ARDUINO的板子自己组装过飞控。这个飞控系统在设计初期是玩家用任天堂WII的控制手柄里的传感器搭配ARDUINO做出来的,所以它对硬件的兼容性非常好,把开源的魅力体现得淋漓尽致(项目主页现在还在:点我)。如果用2560芯片做为主控,还可以刷入海盗固件,它基本移植了APM固件的所有功能,正因如此,我没能正式玩上APM飞控-另外一个多才多艺的8位开源飞控系统,是目前PIX系列飞控的前身。相比MWC闹着玩的GPS定点性能实用了不少。

NAZA系列飞控,我购买过一套NAZA V2,装在自制的合金机架上,毫无悬念的稳,我不知道我能用这么稳的飞机干嘛,就卖了。后来XAircraft出了个MINIX,我用它装在KIM400上,没能很好的飞过。我觉得XA的没落应该是个必然。至于零度智控也是只听说过没用过,应该比XA强不少。

CC3D,网址openpilot.org该项目多年前已经终止,是我当年用来FPV的第一代飞控,它不能像MWC那样随便搭建硬件,你必须使用特定的硬件才行。它是我接触的第一个32位飞控,使用F1芯片,代码也非常有特色,相比MWC就感觉它高大上了很多,飞行手感极佳,即便是默参也总是能让你的飞机飞得很好。后期主导开发的人单飞又开发了taulab飞控系统,硬件上我选择了SPARKY,使用F3芯片,还有自动调参功能,遗憾的是这两者都没有实现稳定的GPS定点功能。CC3D的GPS更是只能给你提供信息而已。后来的CC3D EVOLUTION还没有正式铺货项目就关闭了。

大概也是没有存在的必要了吧,CLEANFLIGHT搭配当时的F3开始大行其道,特别是支持新开发的高速电调模式oneshot到后来的DSHOT MULTISHOT等等一发不可收拾,成为了FPV的不二之选,而CC3D并不能灵活地支持这些新特性,定点功能一直都是软肋,就这样退出了历史的舞台。当然你现在也依然可以使用它们作为车船等不注重性能而只需要功能的飞控系统。

终于来到了F4,F7时代。在我购入第一块OMNIBUS F4的时候,我已经休模很长时间了。是个不小的遗憾。其实如果你真的喜欢做一件事,就不应该让任何东西阻拦你。我看过最过分的一个事儿是一个老外的孩子由于新陈代谢问题离他而去了,正是由于当时接触到了FPV而缓解了他的丧子之痛。。 如果说到钱,其实有很多模友尤其包括我并不富裕,而贫穷其实也是有很强生产力的。比如LINUX的作者Linus就是因为当时用不起Unix而开始自己写系统,后来什么样你都知道。(哎?谁打我?)
跑题了。我买F4时BETAFLIGHT已经存在很久了,它基本上比CLEANFLIGHT更激进,是一个针对高速竞速四轴的固件,所有的功能开发都围绕着高性能。而CLEANFLIGHT依然保持着高兼容性和代码维护性。后来存在的BUTTERFLIGHT什么我是没接触过就终止了,当然继承者EMU正当红,大概是想用开源的软硬件实现能和KISS匹敌的手感。

玩到这个时候如果再不试一下大名鼎鼎的KISS是实在不像话,就入了KISS v2,同时来了一块新出的FETTEC 35A电调,孔距不对,做转接,效果不好,又入了FETTEC飞控,这时感觉来了。它不需要你理解像BF飞控那样各个参数的功能和调整方法,你只需要在简洁的界面上点几下就好。当然期间还是遇到了几个坑,比如说我的接收机开始有jitter的问题,就是断断续续,在BF里是有信号平滑功能的所以感觉不出来,当然BF为了迁就各种配置默认参数下的整体延迟高导致洗桨问题相对严重。还遇到过最低油门过低导致的电机失步等。当你解决好这些问题之后,它比一个完美调整过的BF固件还要顺滑那么1%,而这1%我觉得我用BF无论如何是调不出来的。

至于RF飞控, 我下载了他们的地面站,我不想吐槽太多,毕竟感觉他们也很努力,特别是售后维修比kiss好了太多。更由于我是玩FREE STYLE的,RF可能更侧重竞速。目前没有太想用的念头。

总结一下,BF固件有最多的使用者,对多数人而言它既可以用来花飞也可以用来竞速,有数不清的硬件供你选择,微小型机上搭载的也都是它。开发者也都非常活跃,估计很多人不会觉得那1%是真实存在的。EMU固件,如我之前写的一样,它很有特点,值得玩花飞的飞手一试,当然那些独特的滤波我是不懂的。KISS,花飞老大Steele使用的飞控,不管你同意与否,他的受欢迎程度都是最高的。相应地,如果你不试试这个飞控的话,花飞就白玩了。

Emuflight

November 18, 2019 Categories:FPV No Comments yet

I just figured out that emu flight is a fantastic flight controller firmware. Although you can get a good experience with betaflight4.1, especially you have a very decent rig, I would say that Emuflight is more appropriate for those who can not adjust their rigs with the low quality motors or slightly damaged motors. Now all of my three quads have Emuflight on it.

It's not about style or something, I mean my flight style is basically a beginners' one. Emu just handle it well.

Moreover, Emu still released the FW for some older FC boards like Sparky.

Just give it a try if you are still hesitating.

BetaFlight 固件功能定制

October 20, 2019 Categories:FPV No Comments yet

警告
某些功能组合起来可能会导致编译失败。禁用某些功能可能会导致飞行不稳定或使您的穿越机根本无法解锁。在启用/禁用某些功能之前,请确保您知道自己在做什么。
“我有一些F3飞控板,他们没坏,还挺好用的,我还想接着用。”没问题,通过自行编译固件,现在你可以接着用你的F3来享受高级功能所带来的性能提升了,只需要使固件体积小于F3飞控板载闪存大小即可。
为了确保你知道启用/禁用的功能的意义,在下方列出功能详细信息:(基于BF4.0)

USE_ACC //启用加速度计,关闭则无法使用自稳半自稳模式
USE_ACRO_TRAINER //启用新手训练模式,对于经验老道的飞手来说可以关闭
USE_ABSOLUTE_CONTROL //启用绝对控制,启用后会略微影响手感,不建议开启
USE_BARO //启用气压计
USE_BLACKBOX //启用黑盒子,如果飞控板没有黑盒子而你又不想用的话建议禁用
USE_CAMERA_CONTROL //启用摄像头控制功能,如果摄像头不支持则建议禁用
USE_GPS //启用GPS,如果你不用GPS则建议禁用
USE_GPS_NMEA //启用GPS NMEA协议
USE_GPS_UBLOX //启用GPS UBLOX协议
USE_GPS_RESCUE //启用GPS救援功能
USE_HOTT_TEXTMODE //启用HOTT文字模式
USE_I2C //启用此,则可使用I2C外置传感器
USE_MULTI_GYRO //用于配置多陀螺仪,如果是单陀螺仪飞控,建议关闭
USE_LAUNCH_CONTROL //启用起飞控制模式
USE_LED_STRIP //启用LED灯带模式
USE_LED_STRIP_STATUS_MODE //LED灯带状态灯模式,若无特殊需要建议关闭
USE_PINIO //启用PINIO功能,用于配置True PitMode
USE_PINIOBOX //启用PINIOBOX功能,依赖上一条
USE_RCDEVICE //使用RunCam设备,若无则建议禁用
USE_RUNAWAY_TAKEOFF //启用起飞防暴走功能,若无特殊需求建议开启
USE_RX_LINK_QUALITY_INFO //用于计算RSSI和LQ,若不需要可禁用
USE_SERVOS //启用舵机功能,若无特殊需要建议禁用
USE_SMART_FEEDFORWARD //启用智能前馈功能,建议禁用
USE_UNCOMMON_MIXERS //启用则可使用不常见的混控模式,例如三轴、Y4和六轴等USE_VARIO //适用于有多的传感器GPS
USE_BRUSHED_ESC_AUTODETECT //启用有刷电机自动检测模式,常见用于有刷空心杯
USE_CLI //启用CLI命令行模式,最好开启
USE_SERIAL_PASSTHROUGH //允许通过串口向其他设备刷写固件,禁用则无法通过飞控更改
USE_TASK_STATISTICS //启用系统负载统计功能,建议开启
USE_GYRO_REGISTER_DUMP //陀螺仪上拉电阻,保持默认即可
USE_IMU_CALC //IMU传感器计算,如果需要飞自稳或启用其他调用IMU状态信息的则建议开启USE_PPM //允许使用PPM接收机
USE_GYRO_OVERFLOW_CHECK //使用陀螺仪溢出检测功能,ICM陀螺仪必开
USE_YAW_SPIN_RECOVERY //使用反自旋功能,建议开启
USE_DSHOT_DMAR //使用DMAR来驱动Dshot
USE_SERIALRX_CRSF //使用CRSF遥控信号输入
USE_SERIALRX_IBUS //使用IBUS遥控信号输入
USE_SERIALRX_SBUS //使用SBUS遥控信号输入
USE_SERIALRX_SPEKTRUM //使用SPEKTRUM遥控信号输入,SPEKTRUM的最新协议
USE_SERIALRX_SUMD //使用SUMD遥控信号输入,SPEKTRUM的协议
USE_SERIALRX_SUMH //使用SUMH遥控信号输入,SPEKTRUM的协议
USE_SERIALRX_XBUS //使用XBUS遥控信号输入,JR的遥控协议
USE_SERIALRX_FPORT //使用Fport信号输入,Frsky的最新协议
USE_SERIALRX_JETIEXBUS //使用JETIEXBUS信号输入,Jeti的协议
USE_TELEMETRY //开启回传功能
USE_TELEMETRY_FRSKY_HUB //FPORT协议的回传
USE_TELEMETRY_SMARTPORT //FRSKY的X模式的回传
USE_TELEMETRY_CRSF //黑羊Crossfire的回传
USE_TELEMETRY_SRXL //SPEKTRUM的回传
USE_TELEMETRY_HOTT //HOTT的回传
USE_TELEMETRY_LTM //由iNav开发的轻量级回传
USE_TELEMETRY_IBUS //IBUS的回传
USE_TELEMETRY_IBUS_EXTENDED //IBUS扩展回传
USE_TELEMETRY_JETIEXBUS //JETIEXBUS的回传
USE_TELEMETRY_MAVLINK //MAVLINK的回传USE_CMS //启用OSD CMS菜单
USE_EXTENDED_CMS_MENUS //启用OSD CMS扩展菜单
USE_MSP_DISPLAYPORT //启用MSP显示功能,常见于外接OLED屏幕,可以关闭
USE_MSP_OVER_TELEMETRY //启用MSP回传功能,可以关闭
USE_VIRTUAL_CURRENT_METER //启用虚拟电流计,常见于需要在Configurator内自行配置电流计参数的电流传感器
USE_VTX_COMMON //启用图传常用功能,如果图传不受飞控控制则建议关闭,下同
USE_VTX_CONTROL //启用图传控制功能
USE_VTX_SMARTAUDIO //配置SMARTAUDIO协议
USE_VTX_TRAMP //配置TRAMP协议
USE_ESC_SENSOR //启用ESC传感器功能,如电调没有此功能则建议关闭
USE_ESC_SENSOR_INFO //启用ESC传感器配置功能,同上
USE_ESC_SENSOR_TELEMETRY //启用ESC回传功能,同上
USE_SERIAL_4WAY_BLHELI_BOOTLOADER //启用四路BLheli电调烧录功能,建议开启
USE_GYRO_LPF2 //启用第二级陀螺仪低通滤波,建议开启
USE_DYN_LPF //启用动态低通滤波,建议开启
USE_D_CUT //启用D_Cut功能,在后续版本中更新为D_MIN,建议开启
USE_THROTTLE_BOOST //启用油门增压功能,建议开启
USE_INTEGRATED_YAW_CONTROL //启用现代化偏航控制功能,建议开启
USE_ITERM_RELAX //启用Iterm释放功能,建议开启
USE_RC_SMOOTHING_FILTER //启用遥控信号平滑功能,建议开启
USE_THRUST_LINEARIZATION //启用油门线性化功能,建议开启
USE_TPA_MODE //启用多TPA模式,允许衰减PD或单独衰减D,建议开启
USE_PWM //允许使用PWM信号输入和输入
USE_HUFFMAN //启用霍夫曼编码功能,保持默认即可
USE_BOARD_INFO //启用飞控板详细信息写入功能,可以关闭
USE_RTC_TIME //在控制回路中使用真实时间,保持默认即可
USE_RX_MSP //使用MSP作为RX信号输入,可视情况决定启用/禁用
USE_CRSF_CMS_TELEMETRY //允许通过遥控器调用CRSF脚本来调用CMS菜单
USE_DASHBOARD //启用飞行统计功能,即飞行结束后上锁所显示的统计页面,若有OSD则建议开启
USE_GYRO_DLPF_EXPERIMENTAL //启用实验性的陀螺仪Dterm低通滤波功能,如无特殊需求建议关闭
USE_OSD //启用OSD功能,若无OSD芯片则建议关闭
USE_OSD_OVER_MSP_DISPLAYPORT //允许OSD通过MSP显示到外接OLED上,可以禁用
USE_OSD_ADJUSTMENTS //启用OSD飞行中实时调试功能
USE_OSD_PROFILES //启用OSD多页面功能
USE_OSD_STICK_OVERLAY //在OSD内显示摇杆位置
USE_SENSOR_NAMES //使用自定义传感器名称
USE_SIGNATURE //使用电子签名,可以关闭
USE_ESCSERIAL_SIMONK //允许通过串口为SIMONK电调进行刷写操作
USE_CMS_FAILSAFE_MENU //当Failsafe触发时显示FAILSAFE菜单,可以开启
USE_TELEMETRY_SENSORS_DISABLED_DETAILS //允许在飞行统计数据上显示回传传感器信息,保持默认即可

Delete a NVROM entry[reference]

June 28, 2019 Categories:Linux No Comments yet

The EFI version 2 shell provides a command called bcfg that can do the job. You'd need to do bcfg boot dump -b to see the entries, then bcfg boot rm # to delete entry number # -- # must be the number associated with whatever entry you want to remove.

In Linux, efibootmgr can do the job: Type efibootmgr or efibootmgr -v to see the entries, then do efibootmgr -b # -B to delete entry #. (You must type these commands as root or using sudo.)

In Windows, the EasyUEFI tool should be able to handle the job, although I've only toyed with it briefly, so I can't give detailed instructions.

cannot open serial ttyACM0 on ubuntu

May 21, 2019 Categories:FPV No Comments yet

sudo usermod -a -G dialout <username>

firmware:

create a file : 45-stdfu-permissions.rules
and fill with:

# DFU (Internal bootloader for STM32 MCUs)
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="plugdev"

then:

sudo cp 45-stdfu-permissions.rules /etc/udev/rules.d

sudo usermod -a -G plugdev <username>