四轴飞行器报告(中级篇)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 灯灭。
姿态传感器