四轴飞行器一些资料

针对购买我们套件的同学和没有买到匿名四轴套件但是想移植我们飞控程序的和还没确定用什么程序的同学,我提几个建议,都是个人看法,大家觉得对就看看,觉得不对就当没看。

首先硬件,具体比赛做什么有什么要求,我没参加比赛,了解的不太清楚,但听大家说做四周,轴距小于50,续航10分,有保护套这些

不同人不同团队有不同的硬件解决方法,我就不多讲,购买我们套件的,在程序上就会省很大力气,程序本来就是针对我们套件写的,不用移植,但是我们的飞机太小,连电池一共34G左右,续航不到5分,载重10G以下,很难满足比赛要求,我建议将套件的电极臂剪掉,我们的套件作为飞控,大家再购买一个机架,这样来组合。我们的电机控制也是PWM,可以用来接电调,但是PWM格式不对,需要修改为电调的格式。如果购买华科尔959或者美嘉欣x200这样的机架,pwm部分就不用修改,因为他们用的也是空心杯。大家要做的就是将我们提供的PID参数修改为适应大机架的。
下图为我们的飞机剪去电机臂后安装在伟力959的机架上

重点是软件部分。如果是想移植我的飞控程序,我给大家提几点个人意见。

1:先认真观看两遍我发的飞控源码讲解视频,我写的代码自认为还不太乱,功能划分还可以,希望大家理解起来不难。视频一定认真看,从头到尾讲解了我的飞控工程几乎所有用到的函数,可以通过视频了解我的飞控工程源码的架构,架构一定要理解了,方便大家移植或修改我的工程。
地址:http://www.amobbs.com/thread-5548818-1-1.html

2:然后认真观看两遍我发的上位机使用讲解视频,重点看高级收码的自定义收码怎么使用,此项功能可以将任意数据从飞控发送到上位机,并画出波形,通讯和画图都是实时的,波形图可以直观反映出变量的变化情况,对于观察滤波效果、计算结果、姿态解算等用途十分合适,大大提高调试程序的效率。
地址:http://www.amobbs.com/thread-5545923-1-1.html

3:下面开始讲移植,首先是用到的MCU外设驱动的移植,不管大家用什么开发板,
PWM要有,控制电机的,
timer要有,计时的,
读取传感器的驱动要有,用于读取传感器,对于我们使用的MPU6050是IIC,如果大家使用STM32来移植,建议使用模拟IIC,对你们来说没时间来调试硬件IIC了,如果用的我们的套件,请不要修改IIC部分,我已经为套件写好了硬件IIC驱动。
通信要有,用于输出调试信息,我们套件用的是SPI,无线用NRF24L01,大家情况不同,如果现做的话,建议使用串口透传,简单,省时间
几大功能驱动先做好,保证各个驱动正常了,开始移植后续程序

4:驱动正常后,开始移植读取陀螺仪和加速度传感器的程序,这个是飞控的关键,一定要做好做稳定了,关于不同种类传感器的初始化,建议大家下载MWC的源码看看,在senser里面,有挺多种常见传感器的初始化和读取,可以借鉴下。
此时读取传感器就要想好系统怎么运行了,我是用定时中断触发读取,1ms一次,大家不一定要用这么快,这样系统只要不出错就会运行在一个确定的频率下,读取传感器的时间间隔一直是1ms。

5:滤波,陀螺仪的数据可以不滤波,也可以参照MWC的滤波,本次=(本次*3+上次)/4,都可以。加速度一定要滤波,我是用的平均值滤波,滑动数组,20个数据,求平均,大家也可以使用其他滤波方法。

6:零偏,传感器都有零偏,这个要从传感器的采样值中减去,否则会影响计算,具体计算发放我视频里也降了,注意触发条件,我的程序默认开机是不进行零偏计算的,需要人工触发,切记。

7:姿态计算,这里是重点,因为我设置的控制频率是500hz,也就是2ms,所以是2ms进行一次姿态计算和控制输出,姿态计算使用的是四元数,也是参考网上的代码写的。四元数最终只计算ROLL和PITCH角度,因为没有磁场,YAW漂移,解决办法是YAW通过对陀螺仪积分进行计算。

8:电机控制,这里几乎是到最后了,如果用电调,PWM的输出格式一定要按电调说明书来,否则电调不工作,如果驱动空心杯,那要求不多,PWM就可以了。关于四个电机的融合,很多人不懂怎么确定,我的建议就是实验法,只保留一个姿态角的输出,然后用手倾斜飞机,看电机转速变化是否正确,依次类推,确定三个姿态角的控制量正负,这个在我源码讲解视频里也讲了。

关键的初始化函数我列一下:
Tim3_Init(500);   timer提供一个固定的触发频率
Moto_Init();        电机输出初始化
IIC初始化
MPU6050_Init();  传感器初始化

然后是几个在控制循环里关键的函数:
Prepare_Data();          准备数据
MPU6050_Read();       读取传感器数据
MPU6050_Dataanl();    对传感器数据进行处理
Get_Attitude();           姿态计算
CONTROL(Q_ANGLE.X,Q_ANGLE.Y,Q_ANGLE.Z,RC_Target_ROL,RC_Target_PIT,RC_Target_YAW);      根据姿态,控制电机输出

其实工程就这么简单,关键代买就是这些了,大家用上位机右下角的what new功能就能下载最新源码:KEIL-0811-视频所用源码.zip

衷心希望能帮到大家

时间: 2024-10-25 06:49:19

四轴飞行器一些资料的相关文章

四轴飞行器设计报告

单片机应用技术实训设计报告(四轴飞行器) 所属系部: 电气信息工程系 班 级: (2014)通信技术1班 姓 名: 彭世秋 指导老师: 施 芸 摘 要 为了满足四轴飞行器的设计要求,设计了以微控制器为核心的控制系统和算法.首先进行了各单元电路方案的比较论证,确定了硬件设计方案.四轴飞行器采用了固连在刚性十字架交叉结构上的4个无刷电机驱动的一种飞行器,以ARM公司的Context-M3 CPU內核为基础,围绕新的Context-M3 CPU內核演化而来的意法半导体公司的STM32F103高容量单片

四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法

 原创文章,欢迎转载,转载请注明出处      最近时间花在最多的地方就是STM32的I2C上了.之前就知道STM32的I2C并不好用,因为之前用过模拟的I2C,也写过AVR的I2C也就是TWI的硬件驱动,所以想试试写STM32的硬件I2C...为了避免库带来的麻烦,之前和特意将STM32F4的标准库升级到了1.3.0,但是貌似问题依旧.于是在网上找到了ST转为I2C写的CPAL的库,拿着它的英文手册和例子看了下,觉得很不错,功能相当的齐全,按照手册配置用起来应该不错,于是开始加载到自己的项目中

四轴飞行器1.4 姿态解算和Matlab实时姿态显示

原创文章,欢迎转载,转载请注明出处 MPU6050数据读取出来后,经过一个星期的努力,姿态解算和在matlab上的实时显示姿态终于完成了. 1:完成matlab的串口,并且实时通过波形显示数据 2:添加RTT查看CPU使用率的扩展功能,MPU6050读取数据的优化 3:四元素表示的坐标变化,四元素与欧拉角的关系和Madgwick的IMUupdate算法 4:飞控数据采集线程和数据处理线程的安排,类似于生产者与消费者的关系. 先放个效果视频... 如果看不了视频,请打开视屏网址:http://v.

DIY crazyflie四轴飞行器

看到国外开源的 crazyflie四轴飞行器 觉得不错,很想DIY一个. 搜集了一些资料 官方网站:http://www.bitcraze.se/category/crazyflie/ 固件程序 .原理图 .PCB下载 :https://github.com/bitcraze DIY crazyflie四轴飞行器,码迷,mamicode.com

四轴飞行器1.2.3 STM32F407时钟配置和升级标准库文件

原创文章,欢迎转载,转载请注明出处 这个星期进度比较慢哈,只有周末和晚上下班回来才能做,事件不连续,琐碎的事情又比较多,挺烦的,有多琐碎呢?           1.本人有点小强迫症哈,虽然RTT将文件夹已经分类的很好了,但是在一个项目跟目录下这样放着看起来还是很不舒服的哈,于是强迫症范了,要整理下它.按照以前做项目的习惯,将程序分为四个层次,硬件层,驱动层,系统层和应用层,我们就整理下,对三个文件夹,其中硬件层和驱动层放在BSP文件夹里面,BSP文件里面再分硬件和驱动的文件夹,同时添加一个库文

四轴飞行器1.1 Matlab 姿态显示

四轴飞行器1.1 Matlab 姿态显示 开始做四轴了,一步一步来,东西实在很多,比较杂.先做matlab上位机,主要用来做数据分析,等板子到了可以写飞控的程序了,从底层一层一层开始写..希望能好好的完成它...关于matlab上位机,首先做个姿态显示,然后等板子来了,把板子底层程序写好后,加上matlab的串口接收部分,基本的环境就算搭建好了.... 这个代码写了一天,写到最后出现戏剧性的一幕,实在是太恶心了哈..开始自己的想法就是通过输入pitch roll yaw三个欧拉角,然后在空间中现

四轴飞行器1.2.1 RT-Thread 环境搭建

买的飞控板到了,开始写下位机的程序了,本来打算用UCOS的,因为以前用过,比较熟悉,可以很快上手,不过板子的卖家推荐了RT-Thread,以前虽然有接触过,但是没用过,于是去官网看了下,感觉还不错.其一这是咱们国人写的,其二USOS有的基本任务调度功能它都有了,其三它的GUI貌似原生支持中文(不确定),其四他有很多的附加组件,虽然这些组建大部分在以前做项目的时候都自己完成过,并且我并不怎么喜欢集成度太高的RTOS,但是这次可以尝试看看.还有它有些好的环形buffer,可以用来做串口的缓冲,哈,这

四轴飞行器飞行原理与双闭环PID控制

四轴轴飞行器是微型飞行器的其中一种,相对于固定翼飞行器,它的方向控制灵活.抗干扰能力强.飞行稳定,能够携带一定的负载和有悬停功能,因此能够很好地进行空中拍摄.监视.侦查等功能,在军事和民用上具备广泛的运用前景. 四轴飞行器关键技术在于控制策略.由于智能控制算法在运行复杂的浮点型运算以及矩阵运算时,微处理器计算能力受限,难以达到飞行控制实时性的要求:而PID控制简单,易于实现,且技术成熟,因此目前主流的控制策略主要是围绕传统的PID控制展开. 1 四轴飞行器的结构与基本飞行原理 四轴飞行器结构主要

超酷MWC四轴飞行器DIY全套教程

本帖最后由 hitor 于 2013-8-17 22:06 编辑一.自己玩四轴的经历介绍.      各位模友大家好,我是哈工大航院的一名学生.我接触四轴的时间较早,由于我室友大二做科创就是做四轴的,那时候我们俩一人负责一个项目,他做四轴我做电动独轮车,我不太喜欢我的项目,烧了好多钱,最后也只能草草了事.我对四轴倒是很感兴趣,所以他一焊电路.写程序或是调试PID参数,我都像跟班似的死死的盯着他做的东西,有不懂的就向他请教,时间长了我也掌握了四轴的一些基本知识.几个月前我突发了做四轴的想法,但我不