四轴飞行器报告(中级篇)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四轴飞行器报告(中级篇)

姓名: 阿力木江艾合买提江高瞻

完成日期: 2014年11月10日星期一

报告内容

1.软件架构及其思想

2.模块选用及配型

软件架构及其思想

定时器4里面的任务,是整个飞机的核心,定时器3主要是配合上位机,用于调试测量

任何一个处理器要正常运行后面的代码,首先必须得有一大段设备初始化的代码先运行,这些代码用于初始化处理器的内部时钟、中断优先级、I/O 口的输入输出方向等等,也就是为后续代码正常运行,做了一个环境配置准备。

飞行器的主控是Crotex-M3内核(STM32),其实就是ARM架构发展到一定阶段的产物。Crotex-M3还是ARM架构。于是,对ARM的初始化,首先必须要做的就是系统时钟初始化,中断向量表初始化,中断优先级初始化,I/O方向初始化,如下:

STM32内部模拟E E P ROM初始化→LE D初始化→延时函数初始化→蓝牙电源使能初始化→电机P WM输出初始化→电池电压AD初始化→IIC总线初始化→传感器初始化→P ID参数初始化→无线收发模块初始化为接受模式→开蓝牙→开定时器3→开定时器4。

.接下来,程序运行到while(1),程序会一直停在这里,等待数据中断的到来。

在初始化代码段,我们说到初始化了两个定时器,一个定时器3,一个定时器4,这两个定时器都可以打断死循环

w hile(1)。定时器3用于广播机身姿态信息,定时器4用于更新遥控数据+机身姿态融合+P ID计算输出+P WM输出。可以看到,定时器4里面任务的优先级明显要比定时器3实时性要求更高,所以。中断优先级的顺序是:定时器4 > 串口中断 > 定时器3。姿态更新频率为1000Hz,广播信息更新频率为1Hz。

可以看到定时器4的中断服务函数TIM4_IRQHandler()中,有个一Controler()。

而Controler()内部,DMP姿态输出→接收遥控器数据→接收串口数据→P ID计算+P WM输出,这些任务构成了Controler()函数。

飞行器在飞行过程中,会向上位机发送姿态数据。于是,我们用了一个定时器来处理串口发送数据的问题。

ISP下载是通过UART1来实现的,有线串口打印用的UART1,2.1蓝牙透传也是接的UART1。所以,为了避免蓝牙透传和有线串口之间的数据冲突,将蓝牙的供电设计成了软件使能方式启动蓝牙电源。这样一来,就可以程控切换数据通道,保证数据正常。

从定时器3的中断服务子程序可以看到,每进一次中断,向串口打印一次logo以及相关的姿态信息数据。用串口助手可以看到如图所示的姿态信息反馈。

由于姿态数据对实时性要求是最高的,所以,处理姿态的代码应该是优先执行的,所以,定时器4的优先级要高于串口打印的优先级,即定时器4 > 串口中断 > 定时器3。

模块选用及配型

核心模块:主控MCU模块,2.4G[NRF无线模块,蓝牙透传模块],姿态解算传递模块,电源管理模块,电机驱动模块

硬件原理讲解

原件选型

∙主控:STM32f103T8U6

∙姿态传感器:MP U6050(3加速度+3角速度)

∙电子罗盘:HMC5883L

∙无线通信协议:NRF24L01+ 与蓝牙2.1/蓝牙4.0透传共存

∙有线通信协议:CP2102(USB转串口)

∙电机驱动:SI2302场效应管

∙外部接口:标准mircoUSB接口

∙电机:Coreless高速电机3W转/分钟

∙桨叶:46mm黑色正反桨

∙电池:350mAh 25c航模动力电池

原理图简介

最小系统

单片机在任何一个系统里面,无论他扮演什么角色。它要正常工作,都必须要有一个最小系统。

STM32的最小系统一般包括:复位电路,外部时钟电路,启动模式选择电路,电源退偶电路等

外部时钟

,外部时钟我们采用的是8M无源晶振。单片机内部做倍频,系统时钟最高可达到72M

启动模式

STM32的启动模式分为三种,可以下面的表格给出:

由于为了方便调试和二次开发,所以飞行器采用了SWD在线程序调试接口和ISP程序下载两种方式。SWD调试接口可以使用编译调试器在线对程序进行仿真、调试、下载,这对开发人员来说是很方便的,缺点就是需要P C端有一个这样的软件来支撑。串口ISP下载方式,只需要STM32的UART1的两个数据线,就能将编译生成的*.HE X文件烧写进单片机,需要仿真程序就通过SWD用UC/Probe或者MDK连带调试.。

电源退偶

不仅是主控最小系统需要对电源退偶,所有的数字电路和模拟电路共存的系统,都需要对电源退偶。电源退偶,说直接一点就是将电源上的噪声电压引入到地平面,让电源电压保持在一个稳定的值,这样系统才可能稳定工作。怎么做呢?用一个大电容并联一个小电容。

电容对频率越高的信号,呈现低阻特性,对直流呈现高阻特性。那么电源上的噪声对地平面而言,就是一个交流信号,交流信号就能通过电容到达地平面,而电源是一个直流,电容对他呈现出无限大的阻力,无法通过。这样,我们用示波器就可以看到,加了退偶电容的电源会比没加退偶电容的电源,波形要稳定得多。

系统电源

飞行器采用了一节动力电池,电池电压是3.7V,而系统所有芯片都要求是3.3v供电。3.7V到3.3V只有0.4v的压差,打算采用低压差的LDO稳压芯片输出,但是四个空心杯电机转起来以后,瞬间电流能达到3A,此时电池电压会被拉低到一个LDO无法正常工作的值,于是我们后来在中间采用一个过渡的电路:一个DC-DC的升压电路,首先将电池电源升到5V左右,再接入LDO芯片(MIC5205-3.3)如图

锂电池充电管理

锂电池充电这一块,采用的是 LTC4054,外部电路简单,一个电阻R7作为充电限流电阻,充电电流最大可达600mA,充电电流计算公式:IBAT =(VPROG /RPROG)*1000。

R6作为充电指示灯的限流电阻,选择几百欧姆就行了。当充电进行中,引脚STR常低,充电结束时,STR拉高。对应的状态就是:充电时,CHG灯常亮,充电完成,CHG 灯灭。

姿态传感器

相关文档
最新文档