文章目录

  • 一、系统组成模块
    • 1、上位机 (PC)
    • 2、遥控器系统
    • 3、飞行器机体系统
      • 3.1 接收遥控器无线数据, 并发送飞行数据到遥控器
      • 无线通信模块 Nordic NRF24L01
      • 3.2 采集传感器数据并进行姿态解算
        • (1)陀螺仪 (角速度)
        • (2)加速度计 (测量载体与重力加速度的角度)
        • (3)磁力计 (测量载体与地磁场的绝对夹角)
      • 3.3 依据姿态信息解算各个电机的控制量并发送到电机驱动设备
      • 3.4 协调各个功能部件的逻辑运行
  • 二、硬件设备及作用
    • 1、电源
    • 2、传感器
      • 2.1 ICM20602 六轴传感器芯片
      • 2.2 磁力计传感器:HMC5983
      • 2.3 气压计传感器:MS5611
      • 2.4 电源稳压芯片:TPS62162
    • 3、存储器
      • 3.1 W25Q32BV
      • 3.2 TF卡
    • 4、遥控器
      • 1)无线模块接口 - SPI 接口 通信
      • 2)USART 串口通信模块(遥控器 - 上位机通信)
      • 3)遥控器主控器 STM32 F103
      • 4)PWM
      • 5) ADC
    • 5、灯光模块
    • 6、飞控模块
      • 【 APM飞控 】
        • - I2C 接口 (传感器信号)
        • - GPS接口
        • - 数据传入接口 3DR 数据传入
        • - USB数据线接口 USART 串口通信
    • 7、电调
      • PWM 信号驱动 无刷直流电机
      • 电机工作原理
    • 8、主控板MCU STM32 F411
  • 三、系统软件设计
    • 各模块软件设计
      • ucOS-III
        • 1) 系统上电
        • 2) 系统自检
        • 3)任务创建
        • 4)系统运行
      • 遥控器系统
      • 飞行器系统
      • 传感器系统
      • 系统整体软件功能
    • 任务设计
      • 无线通信任务设计
      • 串口通信任务设计
        • 遥控器与上位机通讯
          • 数据帧格式
        • 串口数据接收
        • 串口数据发送
      • 任务
        • 1)传感器读取任务
        • 2)飞行定高任务
        • 3)姿态解算任务
          • 姿态解算融合方法 :四元素
        • 4)数据发报任务
        • 5)飞行自稳控制任务
          • PID 控制 : 对电机转速不断调整,是的飞行姿态逼近期望姿态。
      • 主控移植
  • 四、整体步骤概括
    • 1、 准备材料
    • 2、 传感器驱动程序
    • 3、 芯片驱动程序
    • 4、调试控制算法参数
    • 5、 上位机通讯
  • 五、飞行器原理
    • 飞行布局
        • 1、垂直运动;
        • 2、 俯仰运动;
      • 3 滚转运动;
      • 4 偏航运动;
      • 3、前后运动;
      • 4、 侧向运动;
  • 五、过程考虑因素
    • 气流等外部环境干扰
    • 具有6个自由度 , 只有4个控制输入
    • 累积误差消除

一、系统组成模块

上位机与遥控器通过串口相连,用于实时显示和监测飞行状态。遥控器系统通过采集遥控控制量,并通过无线模块发送给飞行器,同时在 LCD 上进行相关数据显示。

##yy ?

1、上位机 (PC)

上位机与遥控器通过,串口, 相连。

2、遥控器系统

采集遥控控制量,并通过无线模块发送给飞行器,同时在LCD上进行相关数据显示。

3、飞行器机体系统

通过采集无线数据和传感器数据, 并通过主控器解算,进而控制4个电机的转速实现飞行姿态的闭环控制。

3.1 接收遥控器无线数据, 并发送飞行数据到遥控器

无线通信模块 Nordic NRF24L01

通信距离: 1750m

数据传输量: 32Byte 速率: 2Mbps

自动应答, 中断机制 。

SPI 接口 , 数据传输

3.2 采集传感器数据并进行姿态解算

(1)陀螺仪 (角速度)

姿态角测量: 提供旋转角速度信息, 用于计算载体的相对角度信息。

输出 : 角速度

角度: vt , 时间上积分。 获得角度。

陀螺仪最终测量结果会随着积分时间的增加, 而不断偏离真实值。

(2)加速度计 (测量载体与重力加速度的角度)

三轴加速度测量 物体的重力加速度 与载体坐标系的关系, 得到载体的倾斜角。

测量载体与重力加速度的绝对夹角, 对陀螺仪计算误差进行融合矫正;

(3)磁力计 (测量载体与地磁场的绝对夹角)

对陀螺仪误差矫正

将测量信息,转换为数字信号输出。

体积小、重量轻、 可微型化

进行地磁方向的导航

3.3 依据姿态信息解算各个电机的控制量并发送到电机驱动设备

3.4 协调各个功能部件的逻辑运行

二、硬件设备及作用

1、电源

1、MCU:TPS62162
2、ms5611:ME6219C30M5G
3、HMC5983
MCU采用2M开关频率的TPS62162保证了MCU的电源的稳定性,ICM20602,HMC5983采用3.3VLDO供电,MS5611根据数据手册采用3VLDO稳压芯片进行供电保证芯片数据的低噪声。TJA1050采用5V供电。

2、传感器

2.1 ICM20602 六轴传感器芯片

ICM20602六轴传感器芯片通过数据滤波处理把三轴陀螺仪数据和三轴加速度数据以及HMC5983三轴磁力计数据,MS5611气压计数据引入EKF进行IMU姿态解算。

2.2 磁力计传感器:HMC5983

2.3 气压计传感器:MS5611

2.4 电源稳压芯片:TPS62162

3、存储器

WQ25Q32BV用来存储传感器矫正数据。TF卡用来存储飞机飞行记录数据。

3.1 W25Q32BV

3.2 TF卡

4、遥控器

采用传统的DBUS遥控器反向电路

向飞控发出信号;四轴飞行器的遥控器至少需要 4 个通道,分别用于:油门、旋转、前后飞、左右飞;

1)无线模块接口 - SPI 接口 通信

2)USART 串口通信模块(遥控器 - 上位机通信)

PL2302 USART 转 USB接口

全双工异步串行通信。

PL2303 内置 带有全部调制解调器控制信号的USART

3)遥控器主控器 STM32 F103

4)PWM

5) ADC

5、灯光模块

采用3个SOT23-3封装的MOS管进行开关控制,与MCU隔离电源。

6、飞控模块

是飞行器的大脑,保持自身稳定飞行;接收遥控器信号,并将信号传输给电调告诉它如何飞行;

飞行控制系统(Flight control system)简称飞控,可以看作飞行器的大脑。多轴飞行器的飞行、悬停,姿态变化等等都是由多种传感器将飞行器本身的姿态数据传回飞控,再由飞控通过运算和判断下达指令,由执行机构完成动作和飞行姿态调整。

发送各种指令,并且处理各部件传回的数据。类似于人体的大脑,对身体各个部位发送指令,并且接收各部件传回的信息,运算后发出新的指令。

【 APM飞控 】

- I2C 接口 (传感器信号)

- GPS接口

- 数据传入接口 3DR 数据传入

- USB数据线接口 USART 串口通信

7、电调

将飞控的控制信号,转变为电流的大小,以控制电机的转速;

PWM 信号驱动 无刷直流电机

直流脉冲序列占空比

如何控制飞机转速?

电机工作原理

8、主控板MCU STM32 F411

三、系统软件设计

各模块软件设计

ucOS-III

抢占式 , 多任务, 嵌入式操作系统

可剪裁, 可移植,实时性

可以植入ROM

微处理器MCU

c语言 + 汇编(CPU)

大小: 2KB

1) 系统上电

首先对主控制器各寄存器和外设功能进行初始化配置;
然后

2) 系统自检

3)任务创建

4)系统运行

  • 任务优先级划分 *
  • 任务堆栈设置 *
  • 任务控制块 *
  • 信号量建立 *
  • uCOS 操作系统运行 *
  • 任务调度 ”

遥控器系统

任务优先级从高到低:

  • 无线通信任务
  • 串口通信任务
  • AD信号采集任务
  • 蜂鸣器任务
  • GUI显示任务

飞行器系统

任务优先级从高到低:

  • 无线通信任务
  • 传感器串口通信任务
  • 姿态控制量解算任务
  • 电池电压监测任务
  • LED闪烁任务

传感器系统

任务优先级从高到低:

  • IIC 通信任务
  • 超声波串口通信任务
  • GPS串口通信任务
  • 姿态解算任务
  • 与飞行器系统串口通信任务

系统整体软件功能

遥控器接收上位机控制指令/采集控制量, 通过无线模块发送给飞行器 ,同时接收飞行器发送的飞行数据发送给上位机。

飞行器接收传感器姿态信息并借壳遥控器的控制信息, 进行控制量解算,并控制电调进行电机速度控制;

传感器采集模块, 采集陀螺仪、 加速度计、磁力计、气压计、 GPS等传感器原始数据, 并进行滤波、姿态解算等操作, 并将处理结果发送到飞行器主控模块。

任务设计

无线通信任务设计

遥控器将数据发送到 飞行器 , 并从飞行器接收飞行数据。

硬件器件NRF24L01 , 与主控芯片STM32 , 通过SPI 接口连接。

首先配置STM32 的SPI 外设功能, 并将其映射到相应的硬件IO 。

无线模块 NRF24L01 之间的通信, 为单工通讯 , 即模块在某一时间自能处于接收, 或者发送的状态, 不能同时进行收发。

需要: 实时性: 分时复用

分时复用
- 在接收到数据后马上转换为发送状态进行发送, 发送完成后 转换为接收状态进行接收。

由于没有同步信号, 收发双方时序不匹配, 导致通讯中断。

NRF24L01 , 提供了 : 发送完成、 接收完成、 发送失败、 三个中断模式 和一个中断接口。

运用 uCOS 超时等待功能, 可以有效解决此问题。


当操作系统任务就续表中 , 最高优先级任务 为 : 无线通信任务时, 无线通信任务即获得执行权。

当任务第一次运行时, 首先将无线模块配置为输出模式; 人后通过SPI 发送32字节数据到无线模块;

由于无线模块发送数据需要一定时间, 因此可以挂起本任务, 并设置超时等待50ms , 任务唤醒条件为无线模块的硬件终端信号IRQ 。

任务被唤醒后 检测唤醒原因是等待时间超时, 还是发送了硬件中断, 弱势等待超时被唤醒, 则将 标记1 进行加一操作, 并判断该值是否达到了阈值1 , 从而判断无线模块NRF24101 是否已损坏, 并在LCD液晶显示相应信息;

若是因硬件中断被唤醒, 则读取无线模块内部寄存器并判断中断原因, 是发送完成中断, 还是达到最大重发次数中断, 达到最大重发次数则将标记2+1, 进而判断是否无线通信连接失败, 发送成功则将无线模块配置为接收模式。

发送过程结束后, 无线模块将在接收状态下等待接收数据, 同时将本任务挂起, 设置等待时间为50ms , 唤醒条件是无线模块接收中断信号。

任务被唤醒后 检测唤醒原因是等待超时, 还是无线信号接收完成硬件中断: 若是等待超时, 则将标记3+1 , 并进行LCD显示, 最后回到初始状态进行下一次循环。

若是接收到中断信号, 则从无线模块寄存器中一次读取32字节接收数据, 然后回到初始状态进行下一次循环。

通过对该任务的工作流程分析可以发现, 任务在挂起状态都是通过无线模块硬件中断, 或者挂起等待超时两种方式唤醒。

在实际编程中, 通常用状态机编程方式进行实现。

经过实际调试, 在系统不发生硬件故障或者通信正常的情况下, 本任务可以实现无线模块NRF24L01 稳定的半双工贴心, 通信频率606HZ 。

通讯中断后可以迅速恢复对四轴飞行器的安全操作很有必要。。

串口通信任务设计

遥控器 + 上位机 PC通信

传感器模块 + 飞行器模块通信

通信任务功能 与通信数据格式 相似。

遥控器与上位机通讯

遥控器发送上位机: 飞行器姿态数据、 传感器数据、 接受到的控制命令数据、 GPS数据、 电池电压数据、 PID参数数据。

上位机发送遥控器: 控制命令数据, PID参数设置数据等。

数据帧格式

帧头 + 功能字 + 数据长度 + 数据值 + 校验值

串口数据接收

串口数据包接收 和解包, 校验: 中断服务函数进行。
接收传感器数据包为例 , 其处理流程如下图所示:

系统初始化的时候, 串口配置为: 中断接收方式, 主控器每接收到1直接串口数据, 将产生接收中断信号, 程序跳转到中断服务程序入口处, 开始进行数据接收的处理。

执行中断服务程序: 解析 判别, 更新状态, 结束。

串口数据发送


系统初始化, 串口发送数据缓存, 内存起始地址告知DMA 。
每次需要 发送串口数据时, 只需要将数据写入全局数组中, 激活DMA发送后 , 即可自动完成数组内容的传输。

发送完成后, DMA 会给出一个中断信号, 用于指示发送完成, 主控器可以在中断服务函数中进行其他操作 。

任务第一次执行时, 先挂起DMA发送完成信号量(在中断服务函数中发送)

再次执行5ms , 结束后再次开始执行。

直接进行下一次DMA发送, 然后再次挂起本任务。

串口发送的频率实际上是由任务挂起等待的时间决定的。

当挂起等待时间为5ms 时, 发送频率200Hz 。

任务

1)传感器读取任务

2)飞行定高任务

3)姿态解算任务

电机震动干扰 , 影响了陀螺仪信息的输入。

数字滤波器 设计: 算法平均 、 加权平均、 滑动平均

姿态解算任务 : 解算后的俯仰角、 滚转角、偏航角, 三个姿态角的过程。

加速度测量的是重力分量, 有绝对的参照物: 重力轴。

无外力的加速情况下, 能够准确输出俯仰角, 滚转角。

并且角度不会有累计误差。

在长时间内都是准确的。

虽然经过低通滤波器除了大部分由于电机振动引入的噪声信号。

姿态解算融合方法 :四元素

互补滤波、

卡尔曼滤波、

四元数法、

陀螺仪的积分误差: 加速度计测量的重力加速度分量 - 陀螺仪积分后得到的重力向量。

利用说的的误差, 修正陀螺仪的测量值。

利用修正后的陀螺仪的值, 更新四元数。

得到更新后的四元数规范化。

得到新的四元数之后, 就完成了一次四元数姿态融合的运算。

四元数可以转化成三个欧拉角。

MPU6050 内部 DMP 姿态解算

4)数据发报任务

5)飞行自稳控制任务


PID 控制 : 对电机转速不断调整,是的飞行姿态逼近期望姿态。

比例, 积分, 微分控制器 。

工业控制器。

PID 控制器 由 比例单元、 积分单元、 微分单元。 输入是期望值r(t) 和输出测量值y(t)
PID 控制中比例调节的作用可理解为:通过采集信号的负反馈,求得系统输出与期望值的偏差,经过比例换算得出系统输出控制量从而消除系统输出偏差。比例系数 Kp 决定了减少偏差的速度, Kp 越大偏差减少的越快,但容易引起系统超调,使系统产生震荡;而若减小 Kp 值,调节的速度也相应的变慢。 积分控制是对累积的偏差进行的调节,其目的是使累积偏差为零。积分控制的效果与偏差的大小和偏差持续的时间相关。 微分控制即控制误差的变化率,控制误差的变化趋势,起到提前修正误差的作用,同时提高输出响应的快速性,减小系统超调量[52]。

控制值 = 姿态解算后的俯仰角度 , 期望值 = 遥控器输入的俯仰角度 - 传感器模块解算的俯仰角度。


.

主控移植

四、整体步骤概括

1、 准备材料

2、 传感器驱动程序

3、 芯片驱动程序

4、调试控制算法参数

5、 上位机通讯

五、飞行器原理

飞行布局

1、 X 型布局

电机 1- 2 逆时针旋转同时 , 电机3,4 顺时针旋转

当飞行器平衡飞行时, 陀螺效应和空气动力扭矩效应被抵消。

##yy? 空气动力图

##yy? 扭矩? 反扭矩?

2、 基本运动状态

1、垂直运动;

有两对电机转向相反,可以平衡其对机身的反扭矩,当同时增加四个电机的输出功率,旋翼转速增加使得总的拉力增大,当总拉力足以克服整机的重量时,四旋翼飞行器便离地垂直上升;

反之,同时减小四个电机的输出功率,四旋翼飞行器则垂直下降,直至平衡落地,实现了沿 z 轴的垂直运动;

当外界扰动量为零时,在旋翼产生的升力等于飞行器的自重时,飞行器便保持悬停状态;

保证四个旋翼转速同步增加或减小是垂直运动的关键;

2、 俯仰运动;


在图 b 中,电机1的转速上升,电机3的转速下降,电机2、电机4的转速保持不变;

为了不因为旋翼转速的改变引起四旋翼飞行器整体扭矩及总拉力改变,旋翼1 与 旋翼3 转速该变量的大小应相等;

由于 旋翼1 的升力上升,旋翼3 的升力下降,产生的不平衡力矩使机身绕 y 轴旋转(方向如图所示),同理,当 电机1 的转速下降,电机3 的转速上升,机身便绕 y 轴向另一个方向旋转,实现飞行器的俯仰运动;

3 滚转运动;


与图 b 的原理相同,在图 c 中,改变 电机2 和 电机4 的转速,保持 电机1 和 电机3 的转速不变,则可使机身绕 x 轴旋转(正向和反向),实现飞行器的滚转运动;

4 偏航运动;

旋翼转动过程中由于空气阻力作用会形成与转动方向相反的反扭矩,为了克服反扭矩影响,可使四个旋翼中的两个正转,两个反转,且对角线上的来年各个旋翼转动方向相同;

反扭矩的大小与旋翼转速有关,当四个电机转速相同时,四个旋翼产生的反扭矩相互平衡,四旋翼飞行器不发生转动;

当四个电机转速不完全相同时,不平衡的反扭矩会引起四旋翼飞行器转动;

3、前后运动;

要想实现飞行器在水平面内前后、左右的运动,必须在水平面内对飞行器施加一定的力;

在图 e 中,增加 电机3 转速,使拉力增大,相应减小 电机1 转速,使拉力减小,同时保持其它两个电机转速不变,反扭矩仍然要保持平衡;

按图 b 的理论,飞行器首先发生一定程度的倾斜,从而使旋翼拉力产生水平分量,因此可以实现飞行器的前飞运动,向后飞行与向前飞行正好相反;

当然在图 b 图 c 中,飞行器在产生俯仰、翻滚运动的同时也会产生沿 x、y 轴的水平运动;

4、 侧向运动;

在图 f 中,由于结构对称,所以侧向飞行的工作原理与前后运动完全一样;

五、过程考虑因素

气流等外部环境干扰

具有6个自由度 , 只有4个控制输入

多变量、非线性、强耦合和干扰敏感

累积误差消除

四轴飞行器的设计与开发过程相关推荐

  1. 第1讲、Cadence Allergo绘制小马哥DragonFly四轴飞行器PCB四层板教程简介

    初学者在学习单片机的时候大多都没有很明确的学习目的,所以往往学了很多课程之后,还是不能独立开发一个比较简单的项目,甚至不能完成一个简单项目的单独软件或者硬件部分的开发.这是因为大多数人是被动的.没有目 ...

  2. 基于Arduino Pro Mini的四轴飞行器

    一.四轴飞行器的结构 四轴飞行器属于一种多旋翼飞行装置,有四个轮子来保持悬浮和推进飞行,简称四轴或四旋翼.四轴飞行器的四个旋翼具有相同的大小,位置分布对称,成十字形交叉状.四轴飞行器搭载的飞行控制装置 ...

  3. 单片机毕业设计 stm32四轴飞行器设计与实现

    文章目录 1 简介 2 重点内容 2.1 i2c通信 2.2 mpu6050; 2.3 互补滤波: 2.4 获取期望姿态: 2.5 PID控制算法: 2.6 输出PWM信号 3 最后 1 简介 Hi, ...

  4. 深入解读四轴飞行器的硬件设计

     转载自:http://www.openedv.com/posts/list/20892.htm 传感器之一:角速度传感器应用科里奥利力原理:科里奥利力来自于物体运动所具有的惯性,在旋转体系中进行 ...

  5. 微型四轴飞行器(4)通讯设计

    通讯方式选择 如今的四轴飞行器上使用的无线通信模块有5种大类,WIFI.蓝牙.2.4G模块.433M模块.868M模块.Wifi和2.4G其实都是一个频段,但是wifi是经过了协议封装的结果,而后者模 ...

  6. Udacity机器人软件工程师课程笔记(二十五) - 使用PID控制四轴飞行器 - 四轴飞行器(四旋翼)模拟器

    1.四轴飞行器运动学和动力学模型 在讨论四轴飞行器时,明确定义两个参考坐标系会很有帮助:一个固定的世界坐标系W{W}W和一个牢固地附着到四轴飞行器的质心(CoM)的运动坐标系B{B}B. 假设运动坐标 ...

  7. 《DIY四轴飞行器》读书笔记1

    内容整理于黄和悦的<DIY四轴飞行器>. 一.四轴飞行器概述 1.四轴飞行器的现状 (1)研究内容 多级协作,自主飞行倾斜: 最优控制理论,飞行器自主飞行和避障: 主要是飞控部分. (2) ...

  8. 3D打印Arduino 四轴飞行器

    3D打印Arduino 四轴飞行器 查看原文 简介:3D打印Arduino Quadricopter 概述: 在网上搜索了构建四轴飞行器的廉价方法并且没有找到可行的解决方案之后,我们决定最好自己制造一 ...

  9. 六旋翼无人机(飞行器)设计(lunwen+任务书+开题+文综+翻译及原文+cad图纸)

    目 录 1 概论 1 1.2 国内外研究现状 1 1.3 主要研究内容 1 2六旋翼无人飞行器的结构分析与选择 3 2.1结构形式 3 2.2工作原理 3 2.3机架及桨叶的选择 4 2.3.1 单个 ...

  10. 20210728用树莓派 DIY 四轴飞行器(硬件、故障保护、遥控、飞行模式)

    https://mbb.eet-china.com/forum/topic/92385_1_1.html 20210728用树莓派 DIY 四轴飞行器(硬件.故障保护.遥控.飞行模式) 2021-7- ...

最新文章

  1. 北大研究人员这次发现了AI「躺平」原因,都是数据集的错!
  2. MySQL: Connection Refused,调整 mysql.ini中的 max_connections
  3. 【渝粤题库】国家开放大学2021春2322物流信息技术题目
  4. java反射机制及使用案例
  5. (转)RabbitMQ学习之路由(java)
  6. 英语总结系列(六):激情燃烧的岁月
  7. 【转载】H264编码原理以及I帧、B帧、P帧
  8. 【转】vc++MCF/C++/C中怎样让应用程序获得或以管理员权限运行 ,ShellExecuteEX编程 --- 获取管理员权限...
  9. Axure share如何自适应手机屏幕
  10. android 过滤蓝光软件下载,蓝光过滤器app下载-蓝光过滤器(熬夜护眼必备)下载v1.4.7安卓版-西西软件下载...
  11. 好刊邀稿:【MDPI 出版社】2区SCI,领域广,2-3个月左右录用
  12. 聊聊几个阿里 P8、P9 程序员的故事
  13. 再见了,我的黄色文件夹(内置福利)
  14. 梯度下降学习率的设定策略
  15. Python练习题10:斐波那契数列计算
  16. 高校计算机专业要求选科的科目,新高考省份,想学人工智能专业,该怎么选科?哪种组合最好?(北京、江苏为例)...
  17. CVS投中app数据采集
  18. 计算机操作员试题2018,计算机操作员初级试题及答案(精选).doc
  19. AWS攻略——Peering连接VPC
  20. 奇点临近:互联网经济的供给侧革命和全球货币政策的新格林斯潘之谜

热门文章

  1. 机器学习笔记——14 矩阵谱分解与奇异值分解及其背后的线性算子理论 (实战项目:利用SVD进行图像压缩)
  2. 图像处理之常见二值化方法汇总
  3. java劳务派遣信息管理系统servlet员工社保工资信息jsp源码mysql
  4. 电磁兼容入门篇之基础知识(二)
  5. 怎么把java程序打包?java源代码打包方法
  6. MCS-51单片机的硬件结构
  7. 她力量系列八丨陈丹琦:我希望女生能够得到更多的机会,男生和女生之间的gap会逐渐不存在的
  8. 5s管理推进的三个阶段及三大实施原则
  9. 实现简单的中英互译的安卓App
  10. amos里CFA可行性辨别结果怎么看_AMOS 中验证性因素分析(CFA)