您现在的位置是:首页 >技术教程 >基于MiniFly魔改的共轴双旋翼无人机网站首页技术教程

基于MiniFly魔改的共轴双旋翼无人机

火星极客 2024-07-11 08:06:33
简介基于MiniFly魔改的共轴双旋翼无人机

大学期间在实验室做的项目就跟MiniFly息息相关,因此我对MiniFly的基本结构有所了解,加之去年珠海航展的璇玑科技展出了衡系列无人机,勾起了我制作一台共轴双旋翼无人机的想法,当然,这也是我的毕业设计。废话不多说,先看看我的共轴双旋翼无人机。
在这里插入图片描述

共轴双旋翼无人机

共轴双旋翼无人机结构设计

共轴双旋翼无人机的工作原理与飞行动作

共轴双旋翼无人机是一种采用双层对称布局的飞行器,它通过两个同轴反向旋转的旋翼产生升力,在旋转过程中通过两个相互转动的旋翼产生的反作用力和动量平衡,共轴双旋翼无人机能够保持平稳的飞行姿态,使共轴双旋翼无人机不会产生自旋的情况。由于绕X轴的旋转等同于沿Y轴移动,即俯仰;绕Y轴旋转等同于沿X轴移动,即横滚。因此共轴双旋翼无人机总共有横滚(ROLL)、俯仰(PITCH)、偏航(YAW)和垂直(THRUST)四种运动方式
在这里插入图片描述

共轴双旋翼无人机的系统方案

共轴双旋翼无人机动力系统采用无刷电机,相对于传统的有刷电机,无刷电机具有高效率、高功率密度、更长使用寿命、更低的噪音震动等优点。为符合该系统的设计要求,即系统设计升力下限为300g,本文将采用更大的无刷电机,如此才能驱动更大的旋翼,并且提高动力系统的供电电压,使无刷电机能迸发出更高的功率。
在这里插入图片描述
共轴双旋翼无人机采用上下旋翼的结构设计,通过双电机的差动控制无人机的偏航,因此上下旋翼必须反向旋转,此外,为了给共轴双旋翼无人机提高足够的升力。由经验可知,相同转速下,旋翼直径越大升力越大,但为了兼顾便携性,同时也应适配于改共轴双旋翼无人机的动力系统,故采用9寸的桨叶。由于大疆公司生产的无人机处于世界领先地位,且由于大疆的桨叶具有高效率、低桨噪、动平衡优秀、可靠性高等优点,故选用大疆的桨叶进行改造使用。
在这里插入图片描述
共轴双旋翼无人机结构类似于直升机,其结构最重要的组件就是倾斜盘,它可以控制旋翼叶片的倾斜角度,使桨叶在旋转每一周时,就会产生周期性变距,从而改变直升机的飞行姿态和方向。倾斜盘主要由一个上下两层的平面组成,分别称为上盘和下盘。共轴双旋翼无人机的主轴穿过上盘和下盘,上盘通过鱼眼球和主轴连接。由于上盘需要与旋翼一起旋转,下盘需要由飞行控制系统的拉杆控制而不能旋转,因此上盘与下盘之间嵌入了一颗轴承。上盘的倾斜角度可以通过飞行控制系统的拉杆控制下盘来调整。由于市面上没有适用于该共轴双旋翼无人机的倾斜盘,因此我采用SolidWorks-三维设计软件自行设计绘制适配的倾斜盘,并采用3D打印机制造。
在这里插入图片描述
共轴双旋翼无人机的横滚和俯仰运动需要改变倾斜盘的倾斜角度,因此需要两个舵机控制从而实现共轴双旋翼无人机的横滚和俯仰。舵机就是实现共轴双旋翼无人机姿态控制的飞行控制系统。舵机是一种用于控制机械运动方向或位置的电机,通常用于遥控模型、机器人、无人机等机械设备中,用于实现精确的位置控制和方向控制。舵机的优点包括:精度高,通常可以达到几度的控制精度、可靠性高,具有较高的可靠性和稳定性、体积小、控制方便,通常采用标准的PWM信号进行控制等优点。
在这里插入图片描述

共轴双旋翼无人机的总体设计

共轴双旋翼无人机的将使用SolidWorks-三维设计软件设计,针对不同的模块进行三维设计后将各个模块进行虚拟装配。在装配的过程中也可以对各个模块进行干涉验证,发现问题并及时调整尺寸、材料类型等。共轴双旋翼无人机的总体设计模块包括十字盘模块、上下电机座、底部旋翼座、桨夹模块、旋翼头模块、主板座、中罩和底座等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

共轴双旋翼无人机飞控设计

共轴双旋翼无人机的飞行无疑需要飞控系统,为更好的适配共轴双旋翼无人机,我使用了大学期间在认知物联实验室做的项目——MiniFly。本章主要针对共轴双旋翼无人机飞控的硬件与软件进行论述

共轴双旋翼无人机飞控硬件设计

共轴双旋翼无人机飞控系统主要包括主控系统、通信系统。共轴双旋翼无人机的系统框架如图所示:
在这里插入图片描述

可以看到,共轴双旋翼无人机飞控系统采用双 MCU 控制,Cortex-M0 内核 MCU NRF51822 主要负责无线通信和电源管理,Cortex-M4 内核 MCU 主要负责传感器读取,数据融合,PID 控制和电机控制等。而这 2 个 MCU 之间的通信方式为 UART。

飞控系统

共轴双旋翼无人机飞控系统以STM32F411为主控,该 32-bit Cortex-M4 内核芯片比较强大,集成 FPU 和 DSP 指令,并具有 128KB SRAM、512KB FLASH、3 个 16 位定时器、2 个 32 位定时器、 2 个 DMA 控制器、5 个 SPI(全双工 I2S)、3 个 IIC、2 个串口、1 个 USB(支持 HOST/SLAVE)、 16 通道 12 位 ADC、1 个 RTC(带日历功能)、1 个 SDIO 接口、以及 36 个通用 IO 口等。主控 MCU 为共轴双旋翼无人机的大脑,对其稳定飞行起着至关重要的作用。它同时承担着多种责任,包括:传感器数据读取、数据融合、PID 控制、电机控制、舵机控制、无线通信和 USB 通信等。
在这里插入图片描述
共轴双旋翼无人机飞控系统使用了MPU9250-9轴运动追踪传感器,该芯片内部集成了 3 轴加速度传感器、3 轴陀螺仪传感器和 3 轴磁力计。并且自带 DMP(Digital Motion Processor),支持 MPL。此传感器用于测量共轴双旋翼无人机的姿态数据。共轴双旋翼无人机飞控系统还使用了气压传感器 BMP280,该传感器是 BOSCH 公司旗下的一颗高精度低功耗数字气压传感器,同时支持温度和气压测量,温度分辨率高达 0.01℃,气压相对精度为±0.12 hPa,传感 器功耗低至 2.7μA,是一款相当卓越的传感器。
MPU9250 和 BMP280 同时支持 SPI 和 IIC 通信。为方便开发,这 2 颗传感器都使用 IIC 通信,MPU9250 挂接在 MCU 的硬件 IIC1 接口(IMU_SCL:PB8, IMU_SDA:PB9)上,而且使用模拟 IIC 的通信方式,因为模拟 IIC 的通信方式已经能满足我们要求。而 BMP280 则挂接在 MPU9250 的辅助 IIC 接口(AUX_DA, AUX_CL)上。而且可以看到 MPU9250 的 IIC 地址为 0xD2,BMP280 的 IIC 地址为 0xEC。在这里插入图片描述
共轴双旋翼无人机板载的电源接口部分使用了双路低压差线性稳压器(LDO)XC6204B302,其输入电压高达 10.0V,输出 3.0V。因为是线性稳压器,所以输出纹波很小,同时低压差的功能就可以保证输入电压在很低的条件下输出电压也非常稳定。可以看到,共轴双旋翼无人机使用了 2 颗 LDO,一路为 NRF51822 和 PA 供电,另一路则为主控 MCU 和传感器供电,同时这一路供电是受 NRF51822(VED_D 引脚)控制的,这样就可以保证共轴双旋翼无人机关机状态下只有非常低的功耗。在这里插入图片描述

通信系统

共轴双旋翼无人机板载一颗无线通信芯片 NRF51822 和一颗功率放大芯片 RFX2401C。NRF51822 是 NORDIC 公司旗下的一颗功能强大、高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超低功耗无线应用。该芯片是一颗 Cortex-M0 内核 IC,集 成高达 256KB 的 FLASH 和 16KB 的 RAM;支持常用的外设,包括 SPI,2-WIRE,ADC, UART,TIMER 等。 RFX2401C 是集成电路 RF 单片机(射频前端集成电路),包含所有内部 IEEE 802.15.4/ZIGBEE,提供服务所需的射频功能无线传感器网络,和其他无线系统在 2.4Ghz 的 ISM 波段。RFX2401C 架构集 PA、LNA、收发开关电路,相关的匹配网络,在 CMOS 单片机和谐波滤波器装置。该芯片在上面电路中的主要作用是增大无线信号的功率,增大通信距离。 共轴双旋翼无人机目前只使用 NRF51822 的 2.4G 通信方式。它和主控 MCU 的通信是通过 UART2(NRF_RX:PA2, NRF_TX:PA3, NRF_FLOW_CTRL:PA0)。NRF51822 的天线接了一颗巴伦芯片 2450BM15A0002,该芯片是一个平衡滤波器,可以提升无线通信的性能。巴伦芯片出来的信号接到功率放大芯片 RFX2401C 上,无线信号放大后再发射出去,这样就可以大大增加通信距离,可以保证在空旷环境下,共轴双旋翼无人机和遥控器的通信距离大于 100 米。
在这里插入图片描述

共轴双旋翼无人机飞控PCB设计

由于需要配合共轴双旋翼无人机的结构设计,使之能更精准的获取无人机的姿态,我们需要对其做专门的设计,因此本文使用了立创EDA软件进行设计,
在这里插入图片描述
图 3.8 PCB适配共轴双旋翼无人机结构图

共轴双旋翼无人机飞控软件设计

NRF51822程序框架

NRF51822主要是负责无线通信和电源管理,esb.c是无线通信驱动代码,systick.c是系统滴答定时器驱动代码,uart.c是串口驱动代码,button.c是按键驱动代码,pm.c是电源管理驱动代码。遥控器发送过来的数据包通过radiolink.c传送至main.c,main.c解析数据包,如果不是发给NRF51822的则通过uartlink.c转发给STM32F411;当STM32F411接收到一条数据包后会立即通过uartlink.c返回一条数据包到main.c,main.c再通过radiolink.c转发给遥控器。就这样NRF51822起到了通信桥梁的作用。共轴双旋翼无人机在关机状态时,NRF51822运行在待机模式,STM32F411属于断电状态,功耗极低。当按键按下时,NRF51822从待机模式被唤醒,唤醒后程序先判断当前按下时间,如果是短按或没有按下则启动STM32F411到固件模式,如果是长按则启动STM32F411到固件升级模式。启动方式:NRF51822拉高UART_RTS_PIN引脚,使能电源芯片给STM32F411供电,STM32F411上电后先运行bootloader程序,程序中判断UART_RTS_PIN引脚为高电平的话则留在bootloader程序等待固件升级,如果不是高电平则跳转至固件。NRF51822程序运行后,main.c中以100ms周期时间获取pm.c采集四轴电池的电压值并转发给STM32F411。就这样NRF51822起到了电源管理的作用。
在这里插入图片描述

STM32F411程序框架

STM32F411主要负责传感器读取,数据融合,PID控制,电机控制和舵机控制等。 radiolinkTask:无线通信任务。该任务主要负责接收从NRF51822发送(串口方式)过来的数据,然后对数据进行打包和校验,打包成ATKP格式并校验无误后发送到atkpRxAnlTask的接收队列里,同时回传一帧数据给NRF51822。
usblinkRxTask:USB通信接收任务。该任务主要负责接收上位机发下来(USB虚拟串口方式)的数据,然后对数据进行打包和校验,打包成ATKP格式并校验无误后发送到atkpRxAnlTask的接收队列里。
atkpRxAnlTask:ATKP数据包接收处理任务。该任务主要是处理遥控器和上位机发下来的数据包,解析到的控制指令则发送到stabilizerTask中去。
stabilizerTask:共轴双旋翼无人机平衡控制任务。该任务运行的内容比较多,也是比较关键的内容。包括传感器数据读取,数据融合,获取控制数据,空翻检测,异常检测,PID控制,PWM输出控制等。
wifilinkTask:手机控制任务。该任务主要是接收WiFi摄像头模块的串口数据,然后按照WiFi摄像头模块通讯协议解析成对应的控制指令,并将控制指令发送到stabilizerTask。
atkpTxTask:ATKP数据包发送任务。该任务主要是获取stabilizerTask中的传感器数据、姿态数据、电机PWM输出数据等数据以定周期发送给radiolinkTask和usblinkTxTask,由这两个任务分别发送给遥控器和上位机。
usblinkRxTask:USB通信发送任务。该任务主要负责发送atkpTxTask发送过来的数据包,这些数据包主要是传感器数据、姿态数据等。在这里插入图片描述

姿态解算和PID算法流程

关于姿态解算,共轴双旋翼无人机采用互补滤波算法进行姿态解算,更新周期500Hz。MCU通过IIC(模拟IIC)读取加速计和陀螺仪数据寄存器,然后对加速计数据IIR低通滤波,对陀螺仪数据加偏置调整,然后对加计数据和陀螺数据进行融合,输出姿态数据(roll/pitch/yaw)。角度环PID控制器,更新周期500Hz。期望角度来自遥控器,测量角度来自数据融合,期望角度减去测量角度得到偏差角度,这个偏差值作为角度环的输入,经过角度环PID后输出期望角速度。角速度环PID控制器,更新周期500Hz。测量角速度来自陀螺数据,期望角速度减去测量角速度得到一组偏差值,这组偏差值作为角速度环的输入,经过角速度环PID后输出的姿态控制量,用作控制电机。Z轴高度PID控制器,更新周期250Hz。共轴双旋翼无人机支持2种控制模式,定高模式和手动模式。手动模式下,实际油门值等于设定油门值;我们重点说定高模式,定高模式下,油门控制切换为Z轴速度模式;共轴双旋翼无人机板载一颗高精度气压计BMP280,能够Z轴自主悬停(水平方向暂时未实现自主悬停功能),将该气压传感器的数据和Z轴速度数据融合,融合的数据作为高度测量值,高度期望值则来自Z轴设定值的积分,期望值减去测量值得到偏差值,偏差值用作Z轴高度PID控制器的输入,输出则是油门控制变化量,这个值加上油门基准值就得到了实际油门值。得到实际油门值和姿态控制量数据,我们就可以把油门值和姿态控制量数据整合,整合周期1000Hz,然后通过控制PWM控制电机,从而控制共轴双旋翼无人机。共轴双旋翼无人机的姿态解算和PID算法流程如图 所示:
在这里插入图片描述

代码修改

大概简述
在这里插入图片描述
电机与舵机的控制
在这里插入图片描述
修改PWM输出频率
在这里插入图片描述
输出范围控制
在这里插入图片描述
PID调整也是一个重要的步骤,需要自己慢慢调整。
上述就是我MiniFly魔改为共轴双旋翼无人机的历程!!!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。