软件结构很重要!嵌入式C语言修炼之道

软件结构很重要!嵌入式C语言修炼之道_第1张图片

目前发现国内正儿八经机器人、无人机并且还能活跃地上网关注行业前沿动向、热爱写科普文章的研究人员原来越少。因此所有的研究回答里都没有人真正说明白无人机到底是什么,而理解无人机到底是什么才是回答这个问题的先决条件。


什么是无人机


首先,无人机就是不载人的飞行器,而说到飞行器,通常我们又可以把飞行器分为三类。


1、固定翼(fixed wing)。平时坐的波音747空客A380,还有F-16歼-15之类的都是固定翼飞机。顾名思义就是翅膀形状固定,靠流过机翼的风提供升力。动力系统包括桨和助推发动机。固定翼根据机翼尺寸的不同还有很多小的分类,在此不细说。固定翼飞行器的优点是在三类飞行器里续航时间最长、飞行效率最高、载荷最大,缺点是起飞的时候必须要助跑,降落的时候必须要滑行。


2、直升机(helicopter)。特点是靠一个或者两个主旋翼提供升力。如果只有一个主旋翼的话,还必须要有一个小的尾翼抵消主旋翼产生的自旋力。为了能往前后左右飞,主旋翼有极其复杂的机械结构,通过控制旋翼桨面的变化来调整升力的方向。动力系统包括发动机、整套复杂的桨调节系统、桨。直升机的优点是可以垂直起降,续航时间比较中庸,载荷也比较中庸。缺点是极其复杂的机械结构导致了比较高的维护成本。


3、多旋翼(multi-rotor)。四个或者更多个旋翼的直升机,也能垂直起降,但是通常只有直升机叫直升机,多旋翼就叫多旋翼,而不叫多旋翼直升机。四旋翼特别叫做quadrotor。多旋翼机械结构非常简单,动力系统只需要电机直接连桨就行。下图是直升机的动力系统结构,再下图是多旋翼的动力系统结构。不懂机械的人也能看出多旋翼简单得多。多旋翼的优点是机械简单,能垂直起降,缺点是续航时间最短,载荷也最小。


给大家介绍下四旋翼无人机,看看啥是真正的技术,吼吼吼......

软件结构很重要!嵌入式C语言修炼之道_第2张图片

1.i2c通信方式

因为我不是学电类专业,最开始对i2c这些是没有一点概念,最后通过Google了解了一些原理,然后发现STM32的开发库是带有i2c通信的相关函数的,但是我最后还是没有用这些函数。

我通过GPIO模拟i2c,这样也能获得mpu6050的数据,虽然代码多了一些,但是比较好的理解i2c的原理。

STM32库实现的模拟i2c代码(注释好像因为编码问题跪了):

软件结构很重要!嵌入式C语言修炼之道_第3张图片
软件结构很重要!嵌入式C语言修炼之道_第4张图片
软件结构很重要!嵌入式C语言修炼之道_第5张图片
软件结构很重要!嵌入式C语言修炼之道_第6张图片
软件结构很重要!嵌入式C语言修炼之道_第7张图片
软件结构很重要!嵌入式C语言修炼之道_第8张图片
软件结构很重要!嵌入式C语言修炼之道_第9张图片
软件结构很重要!嵌入式C语言修炼之道_第10张图片


2.PID控制算法

由于简单的线性控制不可能满足四轴飞行器这个灵敏的系统,引入PID控制器来更好的纠正系统。

简介:PID实指“比例proportional”、“积分integral”、“微分derivative”,这三项构成PID基本要素。每一项完成不同任务,对系统功能产生不同的影响。

软件结构很重要!嵌入式C语言修炼之道_第11张图片

以Pitch为例:

软件结构很重要!嵌入式C语言修炼之道_第12张图片

error为期望角减去实时角度得到的误差;

iState为积分i参数对应累积过去时间里的误差总和;

if语句限定iState范围,繁殖修正过度;

微分d参数为当前姿态减去上次姿态,估算当前速度(瞬间速度);

总调整量为p,i,d三者之和;

这样,P代表控制系统的响应速度,越大,响应越快。

I:用来累积过去时间内的误差,修正P无法达到的期望姿态值(静差);

D:加强对机体变化的快速响应,对P有抑制作用。

PID各参数的整定需要综合考虑控制系统的各个方面,才能达到最佳效果。

3.输出PWM信号

PID计算完成之后,便可以通过STM32自带的定时资源很容易的调制出四路pwm信号,采用的电调pwm格式为50Hz,高电平持续时间0.5ms-2.5ms;

我以1.0ms-2.0ms为每个电机的油门行程,这样,1ms的宽度均匀的对应电调的从最低到最高转速。

至此,一个用STM32和mpu6050搭建的飞控系统就算实现了。

640?

1.芯片人才紧缺致今年微电子专业火爆,哪所大学适合你?

2.AI芯片已然存在,与既往的嵌入式处理器不可混淆!

3.树莓派+nodejs打造物联网图传控制履带车

4.成熟的嵌入式技术和新兴的智能科学,未来不是交替而是融合!

5.STM32进阶之串口环形缓冲区实现

6.Linux各模块框架整理

软件结构很重要!嵌入式C语言修炼之道_第13张图片

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。



你可能感兴趣的:(软件结构很重要!嵌入式C语言修炼之道)