首先,了解一下ardupilot固件支持哪些飞控版,以固定翼固件为例,可以打开 https://firmware.ardupilot.org/Plane/stable/ 查看具体飞控板,多旋翼机型查看对应飞控板的方法类似,从 https://firmware.ardupilot.org 进入便可查看支持的飞控板。(不得不说,当初找飞控遇到的大神网友点醒了我,其实可以根据这个支持的飞控板清单直接去选取适合自己的飞控,例如我就找了这款高性价比的omnibus f4v3飞控,事实上最近也想换f4 pro,不过芯片原因升价了,而且也懒拆机了,暂且先不换)
按住飞控上的DFU按钮,然后插USB,进入刷机模式,蜂鸣器长鸣响(如果接上),查看电脑设备管理器会发现STM32 BOOTLOADER(如果这里出现问题需要使用zadig更换驱动),当时安装也出现很奇怪的问题,譬如偶然性成功,也尝试过安装STM驱动等各种方法都不奏效。
第一次刷ardupilot时可以选择DfuSe_Demo,网上也有教程,我就偷懒了,不想研究这些东西,直接用Betaflight Configurator刷固件,选择带bl(bootloader)的hex文件(刷完以后以后更新固件就直接在missionplanner更新,选择apj格式的固件),刷完固件就可以连接missionplanner地面站,其他操作跟普通apm2.8飞控版一样操作了。
下面需要按照ardupilot官方的指引进行一些设置:
PPM solder pad/resistor should be soldered and “S-BUS” resistor/solder pad removed Otherwise, UART1 or UART6 or RCIN will not work.
默认短接PPM焊点,断开S-BUS焊点,默认S-BUS的信号脚同UART6 TX脚。
Default UART order
SERIAL0 = console = USB
SERIAL1 = Telemetry1 = USART1
SERIAL2 = not assigned (Telemetry2 = USART3 if BRD_ALT_CONFIG =1)
SERIAL3 = GPS1 = USART6
SERIAL4 = GPS2 = UART4 (if BRD_ALT_CONFIG = 2 or 3)
SERIAL5 = not assigned
SERIAL6 = not assigned
当然,这是官方默认的配置,鉴于不想重新焊接的原因,选了USART1作为GPS,即在参数列表中将SERIAL1的参数设置为波特率38400,协议为 GPS;
又因为SERIAL2(即USART3)为I2C和USART3共用的,选用为I2C接口接罗盘,所以 BRD_ALT_CONFIG = 2 or 3。
The RSSI pad can be re-purposed to be the TX output of UART4 instead of analog RSSI input, if the BRD_ALT_CONFIG param is set to 2 or 3. And if BRD_ALT_CONFIG param is set to 3, then PWM output pin 5 becomes instead, the RX pin of UART4 to provide a full addition UART. Also, if BRD_ALT_CONFIG param is set to 4, then both UART3 and UART4 are active and available.
因为需要使用思翼 FM30作数传,所以需要将RSSI、PWM5两个引脚作为USRT4的TX、RX使用,波特率设置为57600,协议Mavlink。(这里BRD_ALT_CONFIG设为3,不设为4,因为USRT6的TX作为S-BUS信号脚)
其实讲到引脚使用,还可以重新编译,将RSSI引脚作为PWM脚使用,F4 V3就有7个PWM脚了,不需要买f4-wing都可以搞VTOL了,这个操作后面有时间会写一篇博文讲一下,不过对于这个内容也是一知半解,只不过确实通过参考有限的资料还是做到了,而且测试成功的。
另外,根据官方的建议,采用外置BEC 5V供电,这里的二极管应该去掉的,貌似我没有去照样用,不知道会不会真的很容易烧板子,希望大家赐教。
感觉写的有点跳跃了,希望以后看会还能看得懂,搞ardupilot还是挺有意思,后面有时间也分享一下仿真的东西。
评论
自媒体运营
回复博客很棒 欢迎回访我哦
自媒体运营
回复不错,必须顶一下!