无线遥控的四轴电机驱动模块的设计.docx
《无线遥控的四轴电机驱动模块的设计.docx》由会员分享,可在线阅读,更多相关《无线遥控的四轴电机驱动模块的设计.docx(55页珍藏版)》请在冰豆网上搜索。
无线遥控的四轴电机驱动模块的设计
广西科技大学
普通本科毕业设计(论文)说明书
课题名称无线遥控的四轴电机驱动模块的设计
学院电气与信息工程学院
专业测控技术与仪器
班级测控121
学号201200304002
姓名黄诚文
指导教师陈政强
2016年5月17日
摘要
四轴飞行器是成本比较低的遥控控制飞行对象。
和其他的形式的飞行机器对比,四旋翼飞行器软件复杂(尤其是算法),而硬件层面简单精细。
本文介绍一个通过无线遥控方式,控制被控端的四轴电机完成正反转及调速(被控端具有初步的自身姿态调整功能)控制方案的设计。
文中重点介绍了硬件系统的工作原理和软件算法原理,主要包括遥控模块、飞控控制硬件模块组成和飞行姿态解算几个内容。
遥控模块采用2.4GHz无线通信技术,飞控模块采用嵌入式系统结合陀螺仪及加速度传感器构成,完成姿态解算和飞行控制功能。
姿态解算采用基于四元数的姿态解算互补滤波算法,通过读取传感器的数据,把这些数据解算成飞行器的姿态,并用四元数和欧拉角分别表示出来。
最后通过飞行器PID参数调试让飞控达到理想的状态。
关键词:
遥控;无线通信;四轴飞行器;控制;姿态
ThedesignofQuadcoptermotordrivemodulebywirelessremotecontrol
Cheng-wenHuang
Abstract
Quadcopterisalowcostoftheremotecontrolflightobjectsrelatively.Comparewithotherformsofflightmachine,quadcopteriscomplex(especiallyalgorithm)onsoftware,andthehardwarelevelissimpleandexquisite.Thisthesisintroducesadesignofquadcoptermotorwhichiscontrolledbyawirelessremotecontrolsystem,thesystemcanchangequadcoptermotorspeedandreverse.Thisthesisfocusesonthesystemhardwareworkingprincipleandthesoftwarealgorithm,includingremotecontrolmodule,flightcontrolhardwaremodulesandtheflightattitudecontrolsolution.Remotecontrolmoduleuses2.4GHzwirelesscommunicationtechnology,andflightcontrolmoduleusesembeddedsystemcombinesgyroscopesandaccelerometers,accomplishtheattitudecalculationandtheflightcontrolfunctions.Attitudesolutionusestheattitudeestimationbasedonquaternioncomplementaryfilterforthequadcopter,readingthesensordataandchangeintotheattitudeofquadcopter,expressitbythequaternionandtheEuleranglesrespectively.Finally,throughthedebuggingofPIDparametersforquadcoptertoachievetheidealstate.
Keywords:
remotecontrol;Wirelesscommunication;quad-rotor;control;attitude
第一章绪论
第一节课题背景
1.1.1遥控的发展概况
这些年来,无线通信技术与人们的生活中息息相关,遥控是无线通信技术中最主要的产品之一。
目前遥控器主要分为红外遥控器和无线电遥控器两种,两者各有不同的优势,应用的领域也有所区别。
红外遥控器的电路调试简单,编码容易,成本较低,不受周边环境影响,不干扰其他电器设备,但是控制范围较短(一般在10米以内),而且是有方向性的,不能穿透障碍物。
所以一般用于家用电器(电视、空调遥控器等等)。
无线电遥控器的控制范围较高,没有特定的方向,穿透力较强,但是发射功率大耗电大,容易受到电磁的干扰,通常用于汽车遥控、智能家居等等。
1.1.2四轴飞行器的发展概况
四轴飞行器又称四旋翼、四转子,是一种多轴飞行器,有四个旋翼来悬停、维持姿态及平飞。
和固定翼飞机不同,它通过旋翼提供的推力使飞机升空。
它的四个旋翼大小相同,分布位置接近对称。
对于简单的设计来说,仅仅通过调整不同旋翼之间的相对速度来调节不同位置的推力,并克服每个旋翼之间的反扭力矩,就可以控制飞机维持姿态和完成各种机动飞行。
这一点和直升机不同,常见的直升机就有两个旋翼,尾桨只起到抵消主旋翼产生的扭矩和控制飞机偏航运动的作用。
随着科技不断发展进步,尤其是MEMS技术的发展和电机技术的使用,还有数学算法和建模的成熟,创造出了小巧、稳定、结构简单的四轴飞行器。
其中微型四轴飞行器的成本十分低廉(可以做到百元内)。
四轴飞行器的应用非常广泛,可以用于军事、科学研究和民用。
在民用领域,四轴飞行器可以用于影视航拍、农业植保、渔业监管、个人玩具等等。
国内比较知名的无人机公司有深圳市大疆创新科技有限公司等等。
第二章工作原理
第1节飞行原理
2.1.1坐标系统
飞行器的坐标系统是二维空间指教坐标系统,分别是地理坐标系和机体坐标系。
地理坐标系是固定的,连接在地面上的坐标系。
机体坐标系也是固定的,连接在飞行器上的坐标系。
由于四旋翼飞行器的运动范围比较小,所以可以不考虑地面曲率。
人们习惯性上将地面假设为惯性系。
坐标地理使用Y轴上北下、X轴南左西右东、Z轴上天下地,坐标零点位于机架中心板中心。
如图2-1所示为坐标示意图。
图2-1坐标示意图
X、Y、Z轴与各个选择轴之间符合右手螺旋定则。
各个旋转方向命名为PIT(俯仰)、ROL(横滚)、YAW(偏航)。
由于四轴的运动基本是由于倾斜后的分力在起作用,因此后面主要的解算和分析都是围绕着这几个旋转量。
2.1.2力学原理
四轴飞行器通常有两种模式,十字模式与X字模式。
本次设计采用的是X字模式。
四轴飞行器通过改变自身四个旋翼的转速,可以比较灵活地进行各种飞行动作。
主要依据的运动原理是力的合成与分解,以及空气转动扭矩的反向性。
为了描述方便,将四个电机编号为1-4号。
如下图2-2所示X字模式的电机旋转方向和编号。
图2-2X字模式的电机旋转方向和编号
四个电机相邻的两个旋翼的转动方向相反,而在对角线上的两个电机转动方向相同。
1、4两个电机都是顺时针转动,而2、3电机是逆时针转动。
这样一来,为了保证它们产生的升力都是向上的,1、4电机需要使用的螺旋桨是正桨,一般指顺时针转动时能产生向上升力的桨;而2、3电机使用的螺旋桨是反桨,即逆时针时产生向上升力的桨。
四个旋翼都是向下吹风的,以便都提供向上的拉力。
顺时针转动的桨在转动时,空气会产生是的四轴逆时针转动的反向扭矩。
而当1、4同方向,2、3同方向的时候,这两个扭矩就恰好抵消掉了,使得四轴在偏航方向能保持平衡,不至于出现自旋转。
四轴飞行器一共有八种比较典型的运动情况,可以概括为:
上升、下降、左旋、右旋、左飞、右飞、前飞、后飞。
2.1.3姿态解算的意义
姿态解算即指控制器读取自身传感器数据,实时进行计算四轴飞行器的姿态角,比如翻滚角roll,俯仰角pitch,偏航角yaw,控制器根据这些信息即可计算4个电机的输出量,使飞行器保持平衡稳定或者保持一定倾斜角度使飞行器朝着某设定方向飞行。
姿态解算是飞行器飞行的关键技术之一,解算速度和精度直接关系到飞行器飞行中的稳定性和可靠性。
姿态解算的方法有很多,比较典型的方法有扩展型卡尔曼滤波算法EKF、互补滤波算法等。
扩展型卡尔曼滤波算法具有高精度的特点,但其计算量大,并要求建立精确的动力学模型,因此并不是实现微型四轴飞行器的最佳选择。
而互补滤波算法对传感器的精度要求相对较低,计算量也不大,在微小四轴飞行器的姿态解算中应用最广。
2.1.4姿态的表示方法
四轴飞行器的姿态表示有很多种方法,最常用的为欧拉角表示方法,即为翻滚角、俯仰角和偏航角。
另外还有旋转矩阵表示法和四元数表示法。
一、旋转矩阵和欧拉角、转轴-转角表示法
旋转矩阵用于表示一个坐标系在另外一个坐标系的姿态。
若飞行器姿态用旋转矩阵R表示,则R具有以下性质:
1、两个向量的点积在他们都被同一个旋转矩阵操作(相当于旋转)之后的点积相等,例如a·b=Ra·Rb,其中a和b为两个任意3x1的向量;
2、旋转矩阵的逆即为其转置,即R的负一次方等于R的T次方。
欧拉角可以直接从旋转矩阵中直接读出飞行器的姿态,故被广泛接受。
从一个坐标系(比如静置的全局坐标系Fw)转到另一个坐标系(比如运动的飞行器自身坐标系Fb)可以有不同的迅速。
常用的旋转顺序有Z-X-Y或者Z-Y-X,航空航天上也称之为Tait-Bryan角。
以下以Z-Y-X欧拉角举例详细说明。
假设全局坐标系Fw固定于地面保持静止,而随飞行器转边的坐标系Fb初始姿态与Fw是重合为F,然后F按以下顺序旋转至最终的姿态Fb:
①Fb0绕着Fw0的Z轴按右手坐标系规则转动α角,α角即为偏航角yaw,并假设Fb0转动后的新姿态为Fb0;
②Fb1绕着Fb1的Y轴按右手坐标系规则转动β角,β角即为俯仰角pit,并假设Fb1转动后的新姿态为Fb1;
③Fb2绕着Fb2的X轴按右手坐标系规则转动θ角,θ角即为翻滚角roll,并假设Fb2转动后的最终坐标系Fb2;
需要注意的是,以上三次转动分别都绕自身坐标系的某一个轴,而不是绕固定于地面的全局坐标系的坐标轴。
以上三次转动分别对应一个基本旋转矩阵:
R(Z,ψ)=
R(Y,θ)=
R(X,Φ)=
以上三次转动的合成矩阵:
二、四元数表示法
单位四元数与欧拉角、旋转矩阵是等价的,但又不同于欧拉角表示,四元数表示法没有奇异点的问题,正是因为这个优点,单位四元数在姿态估算的核心算法中非常常见。
比起三维旋转矩阵,四元数表示法更能方便地给出旋转的转轴和旋转角。
四元数一般表示为q=q0+q1i+q2j+q3k。
由此可见,四元数的基的乘法是不可交换的。
四元数也可以简单表示为q=(q0,q1,q2,q3)。
泳衣表示旋转矩阵的四元数必须是单位四元数,即q应满足q02+q12+q22+q32=1。
给定两个四元数P=p0,p1,p2,p3,q=q0,q1,q2,q3,它们的乘积演算得出p*q≠q*p(此处*特指四元数乘法),即四元数乘法是不可交换的。
可得到使用四元数表示的旋转矩阵:
R=
第三章方案设计
第1节遥控器的构成
3.1.1硬件构成
无线遥控主要由MCU--STM32F103C8模块、摇杆模块和nRF24L012.4GHz无线模块构成。
无线遥控硬件结构图如下图3-1所示。
图3-1无线遥控硬件结构图
无线遥控硬件整体实物连接图于附录所示。
一、STM32F103C8T6
本文遥控设计使用的STM32F103C8T6是ST公司设计研发的STM32F10xx系列中的一款,中等容量增强型,32位基于ARM核心的带64或128K字节闪存的微控制器。
STM32F103C8T6芯片如图3-2所示。
图3-2STM32F103C8T6芯片
STM32F103C8T6是基于ARMCortex-M3内核的处理器,专为人们的要求--高性能、低成本、低功耗的嵌入式应用来设计的,在市场上比较流行,资料多,容易上手,RAM大,时钟频率高,适合用于飞行控制的大量运算。
本文设计的遥控需要对摇杆的模拟信号进行AD模数转换,4个方向的模拟信号需要4个模数转换器。
STM32F103C8T6拥有12位ADC,是一种逐次逼近型模拟/数字转换器。
它有18个通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。
而且STM32的ADC可以使用DMA(datamemoryaccess)方式操作,方便高效。
采用的2.4G无线模块的通信接口为SPI接口,可以用硬件SPI,也可以用I/O口模拟SPI,模拟SPI需要用到中断,会占用CPU资源,而硬件SPI不需要CPU参与。
STM32F103C8T6有两个硬件SPI接口。
被控端四轴飞行器的传感器的通信接口是I2C接口,硬件I2C和模拟I2C的情况类似SPI。
STM32F103C8T6有硬件I2C接口。
综合考虑以上因素,最终选择STM32F103C8T6。
本次设计的STM32F103C8T6接口电路及最小系统如图3-3所示。
图3-3STM32F103C8T6接口电路及最小系统
2、2.4GHzNRF24L01无线通信模块
本次使用的无线模块为以NRF24L01为核心的2.4GHZ的无线模块。
如图3-4所示NRF24L01模块。
图3-4NRF24L01模块
NRF24L01是由NORDIC生产的工作在2.4~2.5GHz的ISM频段的单片无线收发器芯片。
无线收发器包括:
频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器、调制器和解调器。
输出功率频道选择和协议的设置可以通过SPI接口进行设置。
当工作在发射模式下发射功率为0dBm时的电流消耗为11.3mA,在接收模式下为12.3mA,在掉电模式和待机模式下的电流消耗更低。
下图3-5是NRF24L01模块的IO口接口电路。
图3-5NRF24L04模块IO口接口电路
NRF24L01模块的引脚及功能如下表3-1。
表3-1NRF24L01模块的引脚及功能
引脚
名称
引脚功能
描述
3
CE
数字输入
发射或接收模式选择
4
CSN
SPI片选信号
SPI片选信号
5
SCK
数字输入
SPI时钟
6
MOSI
数字输入
主机输出从机输入数据脚
7
MISO
数字输出
主机输入从机输出数据脚
8
IRQ
数字输出
可屏蔽中断脚
STM32F103C8T6与NRF24L01的连接引脚如下图3-6所示。
图3-6STM32F103C8T6与NRF24L01的连接引脚
STM32F103C8T6的SPI_CR寄存器的CPOL和CPHA位,可以组成四种时序关系。
当CPHA=0时,时序图如图3-7所示。
图3-7CPHA=0时序图
这时候数据在第一个边沿进行数据位的采样,CPOL=0时为上升沿采样,CPOL=1时为下降沿采样。
当CPHA=1时,时序图如图3-8所示。
图3-8CPHA=1时序图
这时候数据在第二个边沿进行数据位的采样,CPOL=1时为上升沿采样,CPOL=0时为下降沿采样。
外设从机的极性一般有严格要求,本次的NRF24L01要求空闲状态SCK=0,CPHA=0;数据在时钟第一个时间边沿采集CPOL=0,如图3-9所示NRF24L01的SPI时序。
图3-9NRF24L01的SPI时序
图3-9中Cn为SPI命令位,Sn为STATUS寄存器位,Dn为数据位(MSB,多字节输出时,低字节在前)。
NRF24L01的工作模式,由CE和CONFIG寄存器的PWR_UO和PRIM_RX位共同控制。
如表3-2所示。
表3-2NRF24L01的工作模式
NRF24L01所处模式
PWR_UP位状态
PRIM_RX 位状态
CE引脚电平
FIFO 寄存器状态
接收模式
1
1
1
-
发送模式
1
0
1
数据在TX FIFO 寄存器中
发送模式
1
0
1→0
停留在发送模式,直至发送完
待机模式II
1
0
1
TX FIFO 为空
待机模式I
1
-
0
无数据传输
掉电模式
0
-
-
-
其中,收发模式又有:
EnhancedShockBurstTM收发模式和ShockBurstTM收发模式,只有EnhancedShockBurstTM收发模式支持自动ACK和自动重发。
开启自动ACK,则默认选择Enhanced模式。
EnhancedShockBurstTM发送模式初始化:
(1)写Tx节点的地址TX_ADDR
(2)写Rx节点的地址(主要是为了使能AutoAck)RX_ADDR_P0
(3)使能AUTOACKEN_AA
(4)使能PIPE0EN_RXADDR
(5)配置自动重发次数SETUP_RETR
(6)选择通信频率RF_CH
(7)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP
(8)配置24L01的基本参数以及切换工作模式CONFIG。
EnhancedShockBurstTM发送流程:
(1)把地址和要发送的数据按时序送入NRF24L01;
(2)配置CONFIG寄存器,使之进入发送模式;
(3)微控制器把CE置高(至少10us),激发EnhancedShockBurstTM发射;
(4)EnhancedShockBurstTM发射:
①给射频前端供电;②射频数据打包(加字头、CRC校验码);③高速发射数据包;④发射完成,NRF24L01进入空闲状态
EnhancedShockBurstTM接收流程:
(1)配置接收地址和要接收的数据包大小;
(2)配置CONFIG寄存器,使之进入接收模式,把CE置高。
(3)130us后,NRF24L01进入监视状态,等待数据包的到来;
(4)当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去;
(5)NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器;
(6)微控制器把数据从FIFO读出(0X61指令);
(7)所有数据读取完毕后,可以清除STATUS寄存器。
NRF2401可以进入四种主要的模式之一。
3、摇杆模块
本次遥控设计采用的是两轴XY摇杆模块,而没有使用按键进行操作控制。
因为按键只是单一的0和1两个变量,而摇杆使用的电位器设计拥有灵敏的-125至125的行程变量,有较好的操作方便性、可控性和精度。
可以输出X、Y两路模拟信号和一路中键确认数字信号。
摇杆模块如图3-10所示。
图3-10摇杆模块
摇杆模块连接电源为3.3V或5V,电源电压不宜太高,否则会导致模块烧毁。
X轴、Y轴引脚连接单片机的AD端口。
当移动摇杆时,X、Y轴的电压值发生改变,将变量通过AD转换给STM32。
当接入3.3V时电压变化范围为0~3.3V。
四轴飞行器的遥控油门的位置在左边的是美国手,在右边的是日本手,本次设计使用的是美国手。
左右两个摇杆的各个方向功能作用如图3-11所示。
图3-11摇杆的各个方向功能作用
3.1.2软件实现
第一步:
对各个模块进行初始化
系统时钟初始化和时钟源内部HSI初始化,开启系统tick定时器并初始化其中断,串口初始化,中断初始化,内部flash解锁,加载系统参数配置表,IO初始化,摇杆AD初始化,NRF24L01初始化,设无线模块为接收模式,遥控摇杆校准,定时器初始化。
第二步:
等待摇杆移动
摇杆移动,将变量值AD转换给STM32。
第三步:
发送数据
STM32将数据传给NRF24L01,NRF24L01将数据发送出去。
遥控软件流程图如图3-12所示。
图3-12遥控软件流程图
具体的程序见附录所示。
第2节被控端的构成
3.2.1硬件构成
被控端四轴飞行器的硬件主要由STM32F103C8T6、NRF24L01无线通信模块和MPU6050六轴传感器模块构成,加上适当的稳压、稳流电路。
四轴的硬件系统框图如图3-13所示。
图3-13四轴的硬件系统框图
STM32F103系列单片机和NRF24L01无线通信模块在上一节已经有所介绍,本节不在赘述。
一、六轴传感器MPU6050
MPU6050为全球首例集成六轴传感器的运动处理组件,它内置一个三轴MEMS陀螺仪、一个三周MEMS加速度计、一个数字运动处理引擎(DMP)以及用于第三方数字传感器接口的辅助I2C端口(常用于拓展磁力计)。
当辅助I2C连接到一个三轴磁力计,MPU6050能提供一个完整的九轴融合输出到其主I2C端口。
MPU6050拥有16为模/数转换器ADC,将三轴陀螺仪及三轴加速度计的数据转化为数字量输出。
为了精确跟踪快速和慢速运动,MPU6050支持用户可编程的陀螺仪满量程范围有:
±250、±500、±1000与±2000(单位为°/S或dps),支持用户可编程的加速度计满量程范围有:
±2G、±4G、±8G与±16G。
MPU6050同时内置了一个可编程的低通滤波器,可用于传感器数据的滤波。
MPU6050数据传输可通过最高至400KHz的I2C总线完成,它的封装尺寸为QFN,在业界是革命性的尺寸。
其他的特征包括内置的温度传感器以及高达10000GHz的碰撞容忍度的振荡器。
MPU6050的供电范围为2.375~3.46V,三轴陀螺仪的正常工作电流为3.6mA,待机电流为5uA,三轴加速度计正常工作电流为500uA,待机电流为10uA。
通过片上的数字运动处理引擎DMP可减少复杂的融合运算负荷,同时使用六轴传感器以及DMP仅需3.9mA的工作电流。
如下图3-14所示为MPU6050芯片。
图3-14MPU6050芯片
MPU6050的引脚接线如图3-15所示。
图3-15MPU6050的引脚接线
SDA和SCL分别接到STM32F103C8T6的PA11和PA12。
I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。
此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
起始信号是当SCL为高期间,SDA由高到低的跳变。
停止信号是当SCL为高期间,SDA由低到高的跳变。
如图3-16所示起始和停止信号时序图。
图3-16起始和停止信号时序图
发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。
应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。
如图3-17所示I2C的响应时序图。
图3-17I2C的响应时序图
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数