Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/var/Widget/Archive.php on line 1057

Ardupilot Copter 4.1.5 firmware for BetaflightF4 controller

August 8, 2022 分类:FPV

Visit here for the latest: https://github.com/hulandy/hulandy.github.io/releases

=============

Updated on 2022.08.13

Today I've compiled another 4.1.5 copter firmware for this board. It contains 6 PWM output, PA0 pin (CAM or TM pin depends on varieties) is for the PWM5, LED pin is the PWM6, thus adding a super low cost sonar on it to incorporate with optic flow is possible now. The other functionality maintains the same. If you attach a MS5611 module on it, then you don't need to do anything in order to make it working. In theory, you can use a different barometer like BMP280 then you set it as an external module (In this case, set BARO_PROBE_EXT to 2, after reboot you'll be able to check the "press_abs" and "press_temp" in Status).

My setup : MS5611 module, GL9306 optic flow, GY-US42v2 Sonar works in PWM mode, 5883L compass. It works great~ Test flight footage and the firmware below :
Testflight

Firmware

=====================================================================================
I just compiled two firmware for the old target betaflightf4 controller (Initially created by BorisB and FpvModel), I believe that iFlight SucceX-E and LDARC-KKT30D are both using the same target. There has no Baro on the board.

One of the firmware is for external Baro -BMP280 bff428_with_bl.zip and another is for MS56XX bff456_with_bl.zip.

There is also a slightly different between these two firmware, that is MS56XX one has PA0 pin (TM or Cam control) for PWM 5 but hopefully it will work.

Common function: The default USART3 is I2C, you can set BRD_ALT_CONFIG=1 to use it as a normal USART (most unlikely, somehow if you don’t attach a baro on it, “speed” goes crazy, I’m an AP noob, tell me if you know what is going on in this case). By default, B08 is the RCin, on LDARC KK30D is PPM pin.

I haven't flight it yet, but it supposed to be fine. Just for test purposes only.

Use iNav configurator to flash it, newer Betaflight configurator doesn't work.
Since STM32 use rom for bootloader so you won't brick it.

编译Ardupilot会遇到的坑

August 5, 2022 分类:FPV

使用WINDOWS11,WSL2 - ubuntu22.04进行编译。

需要安装Virtual Machine Platform和Windows Subsystem for Linux两个模块。当然还要打开bios的cpu虚拟化。

编译需要在非root下执行,所以建立新的用户 adduser 然后再赋予sudo组: usermod -a -G 可能我的ubuntu安装步骤不完整,理论上应该提示创建不需要手动。

使用git克隆项目。

编译环境按手册搭建好之后默认在master分支下,趁机编译bootloader(其它的版本比如Copter4.1.5编译会出错)如果你已经切换至其它tag那么需要回来编译bootloader: git branch, git checkout master

更新submodule: git submodule update --init --recursive --force
有时候需要git submodule update --remote --merge
开始编译:
./waf distclean
./waf configure --board yourboard --bootloader
./waf clean
./waf bootloader

使用自动配置环境有时下载C编译器会失败,配置waf时提示没有编译器,重新执行自动配置并不能识别这个错误,需手动重新下载。

复制并改名Ap_bootloader.bin至Tools/bootloader 为 yourboard_bl.bin
切换至目标tag, 如:

git checkout tags/Copter-4.1.5

git submodule update --init --recursive

./waf distclean
./waf configure --board yourboard
./waf copter

如遇错误可能是网络的问题,需要确认你的文件完整,更新也没有报错。

如何用F4飞控玩ardupilot固件

July 31, 2022 分类:FPV

一直在飞5寸穿越机,也较浅层面地体验了固定翼,在一套5块钱的7寸桨的驱动下(滑稽),终于决定组个所谓的“长航时”7寸机。最初目的非常简单,就是能自动回家,用来测试我的接收机的性能。

omnibus F4不是专门的Ardupilot硬件,但代码是原汁原味的。相信很多人都已经体验过了。记录一下折腾的过程,算是方便自己和他人~ 由于只是粗略接触,细节会缓慢补充。大多设置和解释都以官方文档为参考。如果你不想看我的山寨文,可以直接参考官方文档或CUAV的中文文档:https://doc.cuav.net/tutorial/copter/

做了简单的研究,加上之前的一点印象,了解如下,可能有错误和偏见(本文涉及内容全部基于多旋翼Copter系列,因为Ardupilot是多才多艺的控制系统还可用来控制其它载具如固定翼、车、船等):
Ardupilot和PX4项目的选择和区别:前者似乎有着更好的飞行性能,操作系统为高效的实时系统(RTOS)--ChibiOS,算法从简易惯性导航inav到目前最新的扩展卡尔曼滤波3代的过度,有着非常成熟的飞行性能,每一版稳定版的发布都经历了飞行性能验证。PX4,前者的孪生兄弟,基于BSD创作协议,企业完全可以利用其代码开发自己的产品且不需要向公众开源。故其主要面向开发者和学习者。据说,其代码会在短短几天内更新发布版本,在Ardupilot用户看来,可能没有时间经历过足够多的飞行验证。简单说就是,你要是用来飞的就选Ardupilot,你要是用来学习和创作,就选PX4。

地面站的选择,选全功能的MissionPlanner(以下简称MP),而Apm Planner更像是一个轻量化的多平台版本。

然后来到Ardupilot的copter固件版本选择,最新版是4.2.2,固件下载网址:firmware.ardupilot.org 而由于我用的飞控是飞蝶F4,STM32 F405系列由于只有1M的ROM(最低要求),功能受限,建议的固件是4.1的最后一个版本,我个人测试4.2版本似乎去掉了对光流的支持,所以就让我们暂时留在4.1.5,Copter4.1的最后一个版本,固定翼是4.1.6。 而如果你还没有或打算买新的飞控,则可以选择更高规格的飞控。或者你不想要太多额外功能,也可以用最新版本固件(待核实)。注意,你的飞控最好在固件下载列表里。(更新:最新版固件目前也没有发现什么问题,而且加入了msp_display)

在飞碟F4上刷固件很顺利,因为它的目标明确-OMNIBUS F4相同固件(如果你的飞控不在这个固件下载列表里就只能自己编译了),设置和参考都按它(Omnibus F4)来就行。需要特别设置的也就是电流电压计的参数,串口的搭配参数(是否保留I2C端口或改为普通UART端口)。我见过论坛上的教程是用STM32的专用程序来刷,官方也有相应介绍。但是太麻烦了,懒人还是用最方便可靠的办法。首先下载xx_BL格式的固件(固件排序并没有严格按字母顺序,按ctrl+F查找下),(apj是MP地面站可以识别的格式,第一次刷AP固件需要带有BOOTLOADER的inav地面站可惜识别的hex格式)打开inav地面站的固件更新(BF地面站不行,大概修改了验证逻辑~)和刷BF本地固件一样,加载arducopter_with_bl.hex 开刷就好了。最后断开连接重插一次,这次就可以用MP地面站连接了。
第一件事儿你想做的应该是熟悉下MP的界面,它的菜单栏有六个项目,DATA,PLAN,SETUP,CONFIG,SIMULATION,HELP。我们要做设置的地方全部在SETUP和CONFIG这两项。接下来建议首先打开BLHELI PASSTHROUGH,这样才能连接电调的调参软件。点CONFIG菜单,再点开完整参数树FullParameterTree,飞控的所有参数应该都在这里了。最右侧菜单有刷新和保存参数等按钮,在搜索栏输入“ SERVO_BLH_AUTO” ,在出现的窗口把数值改成1,然后右侧写入参数。如果让它立刻生效需要重新连接一下飞控。这里的参数最好养成定时备份的习惯。

现在配置一下各个外设的端口及其参数,让它们先被识别,比如遥控接收机、GPS和罗盘,如果你有其它传感器也一并设置完成,就可以进行进一步的设置了。官方文档有针对OMNIBUSF4的端口说明https://ardupilot.org/copter/docs/common-omnibusf4pro.html,我使用SBUS接收机,先焊接到PPM-(原版标注的rcin)针脚上,飞碟f4无需短接跳线实际上我也没看见有,原版上需要短接ppm端。原先的sbus端和板子上uart6是直接连通的,在固件的原始参数里UART6(AP对应Serial3)已经被配置为反相器关闭,所以你可以用它连接GPS信号,然后修改Serial3的协议为5(比如GPS,protocol 改成5),这时没有意外GPS就被识别了;GPS带的罗盘连接板子上的Uart3(默认配置为I2C),罗盘也工作了。如果你是CRSF接收机可以连接到uart1,对应的AP固件配置也刚好是Serial1,配置协议protocol 23,就应该工作了。按文档BRD_ALT_CONFIG还可以进行其它特殊端口配置,开启额外的uart4等等.

外设全部工作后,点击SETUP选择机架类型,四旋翼,X4。然后进行传感器的校准,包括陀螺6面校准和简易找平校准。再依次向下走电调校准(我没有使用ESC_CALIBRATION参数),接收机通道校准。

电压电流计参数:BATT_VOLT_PIN 12

BATT_CURR_PIN 11

BATT_VOLT_MULT 11.0

BATT_AMP_PERVLT 38.0

设置飞行模式,如果常规遥控器的两位三位拨杆不够用,还可以用参数树进行其它通道的飞行模式增加。在对应的RC通道数内设置功能。

然后是Failsafe验证,按官方文档关控,油门值没有变化。但DATA页面的OSD已经显示触发了接收机失控保护。设置油门失控检测PWM值比你的遥控器油门值少10左右。

确定参数树里配置飞行器为X型四轴模式(Frame项目,class和type参数1)。一旦设置好上面的参数,Initial Parameter Setup就会出现,这是一个向导。接电池进行电机序号和方向校准,如果有反转可以连接BLHELI地面站进行更改。顺便检查发现电压电流检测正常。这时就可以走向导,进行第一次试飞前的最后自动参数配置。

现在可以修改OSD的显示内容和位置。

可以在起飞检查里去掉不需要的约束,比如不用等gps锁定解锁,方法是反向的,也就是需要去掉all,只开启几个你需要的硬件和参数检查。

参考DATA屏幕最后验证各个开关的功能,没有问题的话,开始第一次试飞吧。

如果是穿越机,pid一般过高,需要拉到低一半的位置。接下来的进阶调试就需要一点耐心了。改天再写。

FPV入门之摄像头

May 2, 2022 分类:FPV

Categories:随便写写 May 2, 2022

今天和一个F友聊摄像头,他说他买了新暴龙,后来发现是Foxeer的Falkor 3,而我的是T-Rex,然后都感叹摄像头种类之多。之余想到吐槽下FPV摄像头。

【哦,最近还有个大消息是Carl Zhou把HDZERO开源了。】

其实无论是传统的模拟图传摄像头还是大疆的数字图传摄像头,还是HDzero,他们使用的摄像头都是某种方案组合,也就是说传感器都不是自己开发的。这些摄像头从传感器类型上分两大类,早期的CCD和目前主流的CMOS,这些传感器的参数各不相同,尺寸也不一样,法兰距不一样,需要搭配的镜头也就不一样。所以造成了一个比较混乱的状况,几乎各个型号之间的摄像头图像都不是完全一致的。除去画面表现之外,镜头的畸变表现,视场角全TM不一样。

就拿我相对了解的Foxeer来说,早期的Arrow pro mini有两种镜头,一个2.5mm一个1.8mm,前者搭配SONY SUPER CCD的视场角是140°,后者是185°。Arrow pro micro版本的镜头一个是2.1mm一个1.8mm,前者视场角135°,后者160°。此次聊天的F友新买的暴龙3 micro版本 只有一个镜头是1.7mm,视场角是172°。据我所知另外一个比较受欢迎的摄像头caddx ratel 2的视场角是165°。而我这个号称全能镜头的T-rex的镜头是1.7mm视场角150°。大疆air unit摄像头的镜头是2.1mm 视场角160°。

what d heck man

当然,现在我感觉在各个不同的摄像头之间切换没有太大的问题。但就是有点不爽。唯一的保持相同体验的办法是尽可能固定使用一个型号的摄像头。特别是如果你刚刚入门的话。

一些错误更新

October 23, 2021 分类:FPV

之前信誓旦旦地说F4电调很牛逼,但尴尬的是目前HOLYBRO的F4有些小BUG,我没有深入了解,因为目前不想用BL电调,但信息应该无误。所以已经入手的同学可能大概也许会遇到一些小问题。表示歉意。 希望开发者能尽快通过更新固件解决。另外从我之前收集到的一些信息看,比如某些厂商会要求在固件选项上锁定电调的响应频率,最低就只能选择48KHZ,而有的用户通过github请求开发者提供更低的24Khz响应频率的固件,不仅得到了满足,而且反馈结果很不错。一味地追求高频率并不总是能得到好的结果,有时会遇到和电机的兼容性问题,比如电机的磁力过大KV值同时不够高时。

还有关于睿思凯RACE MODE的问题。我说到如果你使用睿思凯自家的支持RACE MODE的接收机,你甚至不需要使用最新的ELRS或者TRACER或GHOST的低延迟模式。我自己在多次验证后发现,延迟是没有问题的,但是遭遇了一次近距离失控(O_O)。当时我和飞机的距离大约在80米之内,中间有低矮的植物和几棵树,飞机距离地面低于1米的距离,失控。接收机是ARCHER RS,RACE MODE开启。天线固定方式是模仿Steele的固定方式。 我还没有搞清楚怎么回事,望知悉~

再说说图传的问题。模拟图传我觉得很长时间不玩就会很想,没办法彻底放弃。而大疆数字图传的延迟它确实就在那儿,你没有办法完全无视它,你可以尽情地FPV,特别是用我5寸机改的4寸WHOOP,用大疆数字飞行也是一种享受。唯一的问题是,有很多时候飞行受到明显限制,不能完全像模拟图传那样操作,尽管你能用它做到绝大多数的操作。而说到我之前不建议新手接触的肥鲨高清,也就是现在主要称呼的HD-ZERO,我现在真的很有兴趣尝试它,话说目前接收价格很不错。只是还想等下肥鲨的专用OLED高清版眼镜。从很多手动更换玻璃镜头的DVR看,效果还是非常不错的,目前的问题是无线链路可能还有进步空间。我不知道如果HDZERO换用更高帧速的摄像头会不会进一步降低延迟。它在设计之初就是无缓存的超低延迟设计。对于常常只在近处飞行的我,应该不成问题。装在小型机和微型机上也会明显比大疆数字更轻。从第三者的角度看,大疆数字系统更像是一个完善的商业产品。

还有最近的FCFC ULTRA飞控,本来Alex甩了链接后我就去拍了一个,等了一天后卖家终于出现,但居然要临时起价,想想Alex当初的做法,真实天壤之别(首发时网页错误导致超卖了库存,没有货发给已经付款的顾客,然后退款,并待有货后免费赠送)~ 退了,不是特别急于尝试它。Fettec的G4看起来也不错,以及新出的35A AIO飞控,总算看起来就比之前那个设计蹩脚的15A好得多。