ArduPilot开源代码之Aocoda-RC F405V2 Mark4 7“ PNP适配

ArduPilot开源代码之Aocoda-RC F405V2 Mark4 10"适配

  • 1. 源由
  • 2. 安装
    • 2.1 Installing Ground Station (GCS) software
    • 2.2 Autopilot System Assembly Instructions
    • 2.3 Loading Firmware
    • 2.4 Connect Mission Planner to AutoPilot
  • 3. 配置
    • 3.1 Basic System Overview
    • 3.2 Frame Class and Type Configuration
    • 3.3 Motor Numbering and Direction
    • 3.4 Radio Control Calibration
    • 3.5 Accelerometer Calibration
    • 3.6 Compass Calibration
    • 3.7 Installing GPS+Compass Module
    • 3.8 PID配置
  • 4. 总结

1. 源由

有幸得到一台测试用Aocoda-RC F405V2 Mark4 7" PNP四轴(含Betaflight固件)。

由于inav出现过一次救援失败,之后绝大部分时间都在飞Ardupilot。

虽然从BUG #9184的链接情况看,貌似已于Oct 27, 2023加到7.0版本的milestone中,但版本修复还有待确认。

好,那我们拿到这种PNP的飞机,就直接准备上Ardupilot固件了。

注:简单测试了下自带的BF固件,飞了下,基本没什么大问题,证明动力&飞控都是好的,详见:Betaflight + AocodaRC F405V2 + UAV Tech 6/7" + Mark4 7" Long Range First Fly

在这里插入图片描述

2. 安装

Ardupilot的安装,详见:First Time Setup。

大体上,可以分为以下步骤:

2.1 Installing Ground Station (GCS) software

Installing Ground Station (GCS) software

目前使用下来比较方便和常用的地面站是Mission Planner

  • 参数调整方便
  • 使用功能完善

2.2 Autopilot System Assembly Instructions

Autopilot System Assembly Instructions

  • 飞控安装,详见: Mounting the Autopilot。
  1. 飞控安装位置一般安装在重心位置,或者非常接近重心位置
  2. 机型尺寸比较小(< 10"),传感器距离重心位置可忽略;若大尺寸机架或者高精度要求,可以适当修正传感器位置,详见:Sensor Position Offset Compensation
  3. 飞控减震球较好的处理了IMU减震,若需进一步减震,详见:Vibration Damping
  4. 若安装需要调整角度,可修改AHRS_ORIENTATION参数进行方向对齐
  • 配件安装,详见:Autopilot Wiring。
  1. GPS/Compass: BN880
  2. RC input: ELRS915
  3. Motor/Servo Connections: Aocoda-RC 3060S
  4. VTX: JHEMCU 5.8G 40H 1.6W VTX
  5. Camera: JIN JIEAN 1200TVL 19x19mm

接线图

2.3 Loading Firmware

  • Loading Firmware to boards with existing ArduPilot firmware
  • Loading Firmware to boards without existing ArduPilot firmware

目前官方尚不支持F405V2,不过笔者这里已经有适配好的固件下载链接。

注:笔者常用的固件大家可到我的主页链接看看有没有需要的,如由于“墙”无法下载,请评论联系!

2.4 Connect Mission Planner to AutoPilot

Connect Mission Planner to AutoPilot
组装完成后,最重要的几个步骤,请切记:

  1. 检查各部件安装的电源供电,千万不要接错,如果接错可能会烧板子的;
  2. 检查通信线路接线正确:比如:FC_SDA – GPS_SDA、FC_Tx – Receiver_Rx
  3. 上电检查,请分步操作:一个一个模块单独上电,将损失减小到最低;
  4. 上电完成后,最重要的就是MP软件连上,并看到几个基本硬件工作正常;
  • 连接地面站成功
    在这里插入图片描述
  • 陀螺仪、气压计、磁力计成功发现
    在这里插入图片描述

3. 配置

Ardupilot的配置,详见:Mandatory Hardware Configuration。

大体上,可以分为以下步骤:

3.1 Basic System Overview

Basic System Overview

关于飞控配置整体上可以分为三点:

  1. Inputs: 遥控器、地面站
  2. Outputs: 动力、控制
  3. Sensors:陀螺仪、气压计、磁力计、GPS等等

3.2 Frame Class and Type Configuration

Frame Class and Type Configuration

FRAME_CLASS = 1 //Quad
FRAME_TYPE = 12 //BetaFlightX

3.3 Motor Numbering and Direction

Motor Numbering and Direction
现在,航模上比较流行的固件是inav和betaflight,这里就看一下两种常用四轴构型。

在这里插入图片描述

  • 配置DShot600(地面站连接页面也提示DShot1-4)

注:DShot不需要做ESC校准,如果使用其他协议,请参考:ESC Calibration。

在这里插入图片描述

  • 配置电机输出M1/M2/M3/M4
    在这里插入图片描述

  • 电机测试(依次ABCD转动)
    在这里插入图片描述注:若电机方向转动错误,请调整ESC固件参数。

  • 本次配置的BetaFlightX构型

如果上述配置过程遇到问题,请在参数表中确认以下参数是否正确。

MOT_PWM_TYPE = 6 // Dshot600
SERVO_BLH_AUTO = 1
SERVO_BLH_POLES = 14 //磁极对数量和电机相关
SERVO_BLH_OTYPE = 6 //dshot600
SERVO_DSHOT_ESC = 2 //BLHeli_S
SERVO_DSHOT_RATE = 0 //default 1khz
SERVO_BLH_TRATE = 10 //default 10Hz

因为本次固件不支持bdshot,所以在参数表中无法找到BDMASK。

SERVO_BLH_BDMASK = 0 //default

3.4 Radio Control Calibration

Radio Control Calibration

  • 摇杆校准
    在这里插入图片描述
  • 遥控配置

注1:笔者采用TX12配置A+C,进行6个模式选择。各种遥控器的关于通道多个PWM值的配置方式可能有差异,请参考:RC Transmitter Mode Setup。
注2:关于飞行模式的详细解释,请参考:Flight Modes。
在这里插入图片描述

在这里插入图片描述

  • 配置参数

SERIAL2_PROTOCOL = 23
SERIAL2_OPTION = 0
SERIAL2_BAUD = 115
RC_PROTOCOLS = 1
RSSI_TYPE = 3

FLTMODE_CH = 6
RC_OPTIONS = 544 //RC_OPTIONS turn on Bit 9th which is “Suppress CRSF mode/rate message for ELRS systems”.
RC7_OPTION = 94 //VTX power
RC8_OPTION = 154 //armdisarm
RC9_OPTION = 4 //RTL

注:关于救援的问题比较复杂,不再这里展开,请参考:Failsafe Mechanisms。

3.5 Accelerometer Calibration

Accelerometer Calibration
因为F405V2只有一颗IMU6000,因此需要修改默认配置

EK3_IMU_MASK = 1 //default 3
INS_ENABLE_MASK = 2 //MPU65000(1), MPU6000(2)

在这里插入图片描述在这里插入图片描述

3.6 Compass Calibration

Compass Calibration
注:磁力计经常受到周边环境的干扰,请多次尝试,或者换干扰相对少的环境进行校准,详细可以参考:Magnetic Interference。
在这里插入图片描述

3.7 Installing GPS+Compass Module

[Installing GPS+Compass Module](https://ardupilot.org/copter/docs/common-installing-3dr-ublox-gps-compass-module.html

SERIAL1_PROTOCOL = 5
SERIAL1_OPTION = 0 //default
SERIAL1_BAUD = 115 //115200

gps_status = 1表示GPS串口已经连上。
在这里插入图片描述

3.8 PID配置

使用InitialParamsCalculator对7"机架进行PID初始化,详见:ArduPilot之H743+BMI270x2+First Normal Takeoff

在这里插入图片描述

4. 总结

适配后,整体显示正常,可以尝试起飞!!!

注:有兴趣的朋友,请继续关注后续视频和blog记录。

在这里插入图片描述

2023/11/12 11:52:08 : u-blox 1 HW: 00080000 SW: EXT CORE 3.01 (d189ff)
2023/11/12 11:52:06 : GPS 1: u-blox saving config
2023/11/12 11:51:52 : GPS 1: detected as u-blox at 230400 baud
2023/11/12 11:51:50 : EKF3 IMU0 MAG0 initial yaw alignment complete
2023/11/12 11:51:50 : EKF3 IMU0 tilt alignment complete
2023/11/12 11:51:48 : AHRS: EKF3 active
2023/11/12 11:51:48 : EKF3 IMU0 initialised
2023/11/12 11:51:46 : RCOut: DS600:1-4 PWM:5-9
2023/11/12 11:51:46 : AHRS: DCM active
2023/11/12 11:51:46 : ArduPilot Ready
2023/11/12 11:51:46 : Initialising ArduPilot
2023/11/12 11:51:46 : ELRS: RSSI now displays normally
2023/11/12 11:51:46 : ELRS: running on non-DMA serial port
2023/11/12 11:51:46 : Barometer 1 calibration complete
2023/11/12 11:51:46 : RCInput: decoding CRSF(3)
2023/11/12 11:51:46 : Frame: QUAD/BF_X
2023/11/12 11:51:46 : RCOut: Initialising
2023/11/12 11:51:46 : Aocoda-RC-F405V2 003E002B 32324713 32333535
2023/11/12 11:51:46 : ChibiOS: 17a50e3a
2023/11/12 11:51:46 : ArduCopter V4.4.2 (fe7a19e9)
2023/11/12 11:51:46 : CRSFv2: requesting RX device info
2023/11/12 11:51:44 : Frame: QUAD/BF_X
2023/11/12 11:51:44 : RCOut: Initialising
2023/11/12 11:51:44 : Aocoda-RC-F405V2 003E002B 32324713 32333535
2023/11/12 11:51:44 : ChibiOS: 17a50e3a
2023/11/12 11:51:44 : ArduCopter V4.4.2 (fe7a19e9)
2023/11/12 11:51:44 : Frame: QUAD/BF_X
2023/11/12 11:51:44 : RCOut: Initialising
2023/11/12 11:51:44 : Aocoda-RC-F405V2 003E002B 32324713 32333535
2023/11/12 11:51:44 : ChibiOS: 17a50e3a
2023/11/12 11:51:44 : ArduCopter V4.4.2 (fe7a19e9)
2023/11/12 11:51:44 : Calibrating barometer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135201.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web前端开发第4次Dreamweave课堂练习/html练习代码《出版界推出一批纪念抗美援朝胜利70周年主题图书》

目标图片&#xff1a; 文字素材&#xff1a; 出版界推出一批纪念抗美援朝胜利70周年主题图书 2023-08-01来源&#xff1a;新华社 为纪念抗美援朝战争胜利70周年&#xff0c;出版界集中推出了“抗美援朝亲历记丛书”《新中国立国之战——抗美援朝战争的回顾与思考》《毛泽东与…

华为防火墙2种局域网内远程监控其它端口的方法

防火墙必须要工作在三层&#xff0c;接口上有地址 第一种用ip-link 这种方法是如果监测的接口故障后&#xff0c;自身优先级降低2 FW3 ip-link check enable ip-link 1 destination 1.1.1.1 interface g0/0/0 mode icmp hrp track ip-link 1 active FW4 ip-link check …

hive和spark-sql中 日期和时间相关函数 测试对比

测试版本&#xff1a; hive 2.3.4 spark 3.1.1 hadoop 2.7.7 1、增加月份 add_months(timestamp date, int months)add_months(timestamp date, bigint months)Return type: timestampusage:add_months(now(),1) 2、增加日期 adddate(timestamp startdate, int days)…

单链表指定结点的后插 前插操作

指定结点的后插操作 #define NULL 0typedef struct LNode {int data;struct LNode* next; }LNode, * LinkList;//后插操作&#xff1a;在p结点后插入元素e bool InsertNextNode(LNode* p, int e) {if (p NULL)return false;LNode* s (LNode*)malloc(sizeof(LNode));if (s N…

【MySQL】列属性

文章目录 CHAR和VARCHAR插入单行 INSERT INTO插入多行插入分层行 LAST_INSERT_IN()创建表复制 CREAT TABLE AS更新单行 UPDATE...SET更新多行在UPDATES中使用子查询【需着重复习】删除行 DELETE恢复数据库到原始状态 CHAR和VARCHAR CHAR(50)&#xff1a;存储文本占5个字符&…

Windows10 安装 Ubuntu(WSL2)

Windows10 安装 Ubuntu(WSL2)&#xff1a;因为 Ubuntu(WSL1) 不具备调试功能&#xff0c;所以尽可能安装 Ubuntu(WSL2)。 具体流程如下&#xff1a; 1. 什么是WSL Windows Subsystem for Linux&#xff08;简称WSL&#xff09;&#xff0c;Windows下的 Linux 子系统&#xff…

面试10000次依然会问的【ThreadLocal】,你还不会?

ThreadLocal简介与基本概念 ThreadLocal&#xff0c;即线程局部变量&#xff0c;是Java语言中用于实现线程数据隔离的一个重要类。这种机制允许在多线程环境中&#xff0c;每个线程都有自己的变量副本&#xff0c;从而使得每个线程都可以独立地改变自己的副本&#xff0c;而不…

【龙芯固件】ACPI——简介

一、 什么是ACPI ACPI是Hewlett-Packard, Intel, Microsoft, Phoenix, 和Toshiba共同制定的一个开放的行业规范。 ACPI由很多表组成&#xff0c;包括&#xff1a;RSDP&#xff0c;SDTH&#xff0c;RSDT&#xff0c;FADT&#xff0c;FACS&#xff0c;DSDT&#xff0c;SSDT&…

【操作系统面试题(32道)与面试Linux命令大全】

文章目录 操作系统面试题引论1.什么是操作系统&#xff1f;2.操作系统主要有哪些功能&#xff1f; 操作系统结构3.什么是内核&#xff1f;4.什么是用户态和内核态&#xff1f;5.用户态和内核态是如何切换的&#xff1f; 进程和线程6.并行和并发有什么区别&#xff1f;7.什么是进…

(2023|CVPR,扩散,主体标识符,先验保存损失)DreamBooth:微调文本到图像的扩散模型以实现主题驱动的生成

DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 3.…

Java 面试题之 Logback 打印日志是如何获取当前方法名称的?

在 Java 中&#xff0c;有四种方法可以获取当前正在执行方法体的方法名称&#xff0c;分别是&#xff1a; 使用 Thread.currentThread().getStackTrace() 方法 使用异常对象的 getStackTrace() 方法 使用匿名内部类的 getClass().getEnclosingMethod() 方法 Java 9 的 Stack…

Clickhouse学习笔记(10)—— 查询优化

单表查询 Prewhere 替代 where prewhere与where相比&#xff0c;在过滤数据的时候会首先读取指定的列数据&#xff0c;来判断数据过滤&#xff0c;等待数据过滤之后再读取 select 声明的列字段来补全其余属性 简单来说就是先过滤再查询&#xff0c;而where过滤是先查询出对应…

[LeetCode周赛复盘] 第 371 场周赛20231112

[LeetCode周赛复盘] 第 371 场周赛20231112 一、本周周赛总结100120. 找出强数对的最大异或值 I1. 题目描述2. 思路分析3. 代码实现 100128. 高访问员工1. 题目描述2. 思路分析3. 代码实现 100117. 最大化数组末位元素的最少操作次数1. 题目描述2. 思路分析3. 代码实现 100124…

Linux tail命令:显示文件结尾的内容

tail 命令和 head 命令正好相反&#xff0c;它用来查看文件末尾的数据&#xff0c;其基本格式如下&#xff1a; [rootlocalhost ~]# tail [选项] 文件名 此命令常用的选项及含义 【例 1】查看 /etc/passwd 文件最后 3 行的数据内容。 [rootlocalhost ~]# tail -n 3 /etc/passwd…

全域旅游“一机游”智慧旅游平台解决方案:PPT全文48页,附下载

关键词&#xff1a;智慧文旅解决方案&#xff0c;智慧旅游解决方案&#xff0c;智慧旅游平台建设方案&#xff0c;智慧文旅综合运营平台&#xff0c;智慧文旅建设方案 一、智慧文旅一机游定义 智慧文旅一机游是一种新型的旅游方式&#xff0c;它通过智能化的设备和系统&#…

(一)正点原子I.MX6ULL kernel6.1移植

一、概述 学完了正点原子的I.MX6ULL移植&#xff0c;正点原子的教程是基于Ubuntu18&#xff0c;使用的是4.1.15的内核&#xff0c;很多年前的了。NXP官方也发布了新的6.1的内核&#xff0c;以及2022.04的uboot。 本文分享一下基于Ubuntu22.04&#xff08;6.2.0-36-generic&…

发送失败的RocktMQ消息,你遇到过吗?

背景 需要通过flink同时向测试和线上的RocketMQ中写入数据 现象 在程序中分别创建了两个MqProducer&#xff0c;设置了不同的nameServerAddr&#xff0c;分别调用不同的producer向不同环境发消息&#xff0c;返回发送成功&#xff0c;但是在线上MQ中却查不到数据&#xff0…

分布式理论基础:CAP定理

什么是CAP CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c;Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;这三个基本需求&#xff0c;最多只能同时…

【学习辅助】Axure手机时间管理APP原型,告别手机控高保真模板

作品概况 页面数量&#xff1a;共 30 页 兼容软件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;时间管理、系统工具 作品申明&#xff1a;页面内容仅用于功能演示&#xff0c;无实际功能 作品特色 本品为「手机时间管理」APP原型&#xff0c;…

RK3568平台 在alsa框架中添加音频功放芯片

一.alsa框架概述 ALSA&#xff0c;全称是Advanced Linux Sound Architecture&#xff0c;是Linux中提供声音设备驱动的内核组件&#xff0c;应用可以通过ALSA接口实现音频播放、录音、设备通路控制、音量控制、通话等功能。 在 Linux 内核设备驱动层&#xff0c;ALSA 提供了 …