穿越机的进阶练习要点

Categories:随便写写 September 23, 2022

作为一项准体育运动,穿越机的进阶练习,装备的一致性非常重要。
给射击运动员一把不一样的枪,我相信他能比业余选手打得更准,但和他自己训练的装备相比仍会有较大差距。
穿越机装备的选择是一个让人头疼的事儿,因为用不了多长时间,更好的设备就会出来。
对于影响体验的配件例如摄像头,眼镜,图传,动力等等,每次更换大脑都要新的适应。这对精准操控影响较大,特别是对新人进阶来说。保持设备不变,直到有较大的进步为止,我认为是很关键的一点。

更不要说rate值的差异。

一起进步吧。

Ardupilot Copter 4.1.5 Firmware for BetaFPVF405

Categories:FPV August 30, 2022

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

============================
Just made it, for Toothpick F405 2-4S AIO Brushless Flight Controller 20A (BLHELI_32) V4.

The FC link

It is for MPU6000 version. TX3 RX3 for I2C. Serial1=Usart1, Serial3=TX4 RX4, Serial4=TX6

Sbus port has been abandoned since it's shared with TX3RX3 and it is I2C port for now.

LED and BUZZ is PWM6(GPIO55) and PWM5(GPIO54)

FW: betafpvf405.zip I use iNav 4.1 configurator to flash it, it is simple.

Ardupilot Copter 4.1.5 firmware for BetaflightF4 controller

Categories:FPV August 8, 2022

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会遇到的坑

Categories:FPV August 5, 2022

使用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

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

如何用OMNIBUS F4飞控玩ardupilot固件

Categories:FPV July 31, 2022

一直在飞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 而如果你还没有或打算买新的飞控,则可以选择更高规格的飞控。或者你不想要太多额外功能,也可以用最新版本固件(待核实)。注意,你的飞控最好在固件下载列表里。

在飞碟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的配置使能,这时没有意外GPS就被识别了;GPS带的罗盘连接板子上的Uart3(I2C默认使能),罗盘也工作了。如果你是CRSF接收机可以连接到uart1,对应的AP固件配置也刚好是Serial1,配置使能参数,就应该工作了。按文档BRD_ALT_CONFIG还可以进行其它特殊端口配置,开启额外的uart4等等.

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

电压电流计参数:BATT_VOLT_PIN 12

BATT_CURR_PIN 11

BATT_VOLT_MULT 11.0

BATT_AMP_PERVLT 38.0

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

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

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

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

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