STM32F4四轴飞行器总结

(菜鸡一枚,记录一些学习的体会,并记录了学习时提出的问题,便于自己再次查阅,若有错误之处,希望大佬们指正,谢谢。)

四旋翼简介:

嵌入式芯片(STM32 f407)作为主控芯片,PC端编写上位机,实现对四旋翼的平稳飞行。但是最后以失败告终(炸鸡),写下踩过的坑,便于二次查看。

1、硬件: 

主控:STM32f407 (这款芯片用于四旋翼的控制足够了)。 

姿态传感器:MPU6050(6轴的姿态 + 磁力计),内置有DMP,可以调用DMP实现四元数的输出,而且内置有滤波器,输出以后不用再进行卡尔曼滤波

电源:3300MAh  3S 35C锂电池(30C指的是可以30倍率放电,即:25*3300mA=82.5A;  S指电压,3S= 3*3.7V=11.1V,充满电为12.6V)

电机、电调、螺旋桨:这三者与飞机的质量之间需要相互搭配。

电机参数:朗宇 2212 980KV KV表示:每增加1V电压,电机每分钟增加的转速,例如KV980,每增加1V的电压,空转转速增加980转每分钟。10V的电压下是9800转每分钟的空转转速。且KV与电机的扭力成反比。2212:电机定子的直径和高度mm。电机的推力要配合整机重量,要留有余量,比如选择APC9047的螺旋桨,在3C电池、10A的情况下产生的推力为650g,则4个电机产生的中推力为650*4=2600g,搭配的整机质量最好在最大推力的一半左右,因为需要留有一定的推力来产生其余动作,如巡线等。

.STM32F4四轴飞行器总结_第1张图片

螺旋桨搭配:

一般由4位数字表示,前两位数表示直径,后两位表示螺距。以1060浆为例,10表示桨的直径是10英寸,60表示浆角(螺距,6.0英寸,也就是152.4mm)。

机架搭配:使用的猛禽太纤维机架,某宝有卖。

  • 机架轴距 = (桨的英寸*25.4/0.8/根号2)*2。

  • 桨的尺寸(英寸) = (机架轴距/2)*根号2*0.8/25.4。

     (网上数据) 下面是一些桨和轴距的搭配建议:

      10寸桨搭配轴距450MM机架

      11寸桨搭配轴距500MM机架

      12寸桨搭配轴距550MM机架

      13寸桨搭配轴距600MM机架

      14寸桨搭配轴距650MM机架

      15寸桨搭配轴距680MM机架

      16寸桨搭配轴距720MM机架

      17寸桨搭配轴距780MM机架

      18寸桨搭配轴距820MM机架

      19寸桨搭配轴距860MM机架

      20寸桨搭配轴距900MM机架

2、软件:

上位机:开始时使用用labview编写的上位机,但labview的需要安装相应的软件才能使用,后来选择QT编写的上位机运行,最后阶段使用的是匿名四轴的上位机程序,编写相应的下位机程序,匿名四轴上位机的功能完整,适合调试使用。使用无线通信,加入心跳包保证飞行的安全性。(心跳包:上位机固定时间给飞机发送一个小的口令,如飞机每隔1S会接收到上位机的“心跳”,若超过2S没接收到,则飞机判定为与PC失联,则启动降落程序。类似于“看门狗”的工作原理)

平衡控制:得到的DMP输出的四元数,转化为欧拉角做PID控制,使用三个串级PID组控制。

高度控制:用超声波模块测量得到高度信息,用于实时的高度控制(此处应该加卡尔曼滤波来做)。

控制策略:固定油门(牵引力为整机的重量左右),姿态与高度控制在固定油门的基础上叠加。

STM32F4四轴飞行器总结_第2张图片

图像采集:使用另一块F4的芯片作为协处理器,主要完成图像采集与图像处理的任务,将轨道信息传给主控芯片,

Q:

1、四元数的理解:

四元数是三维复数的四维延伸,其性质有利于表达三维旋转的信息,相比于三维,有事在于:1)适合插值,2)万向节锁死问题,3)所用资源减少。

2、卡尔曼滤波:

当系统含有高斯白噪声时,观测值不准确,可采用卡尔曼滤波,基本思想是将预测结果和测量结果综合考虑,得到更加准确的信息(融合多种信息,是结果给为精确)。eg:假设小车的实时位置测量误差为5m,但是想要得到更加精确的位置,可以用上次测量的速度来推测现在大概的位置,再结合本次的位置测量值来联合估计本次位置。

3、问题与改进:

1、策略改进:油门叠加式;2、超声波定位加入卡尔曼滤波;

 

 

 

 

你可能感兴趣的:(备忘,嵌入式,控制器)