全国大学生电子设计大赛作品报告

发布时间:   来源:文档文库   
字号:
2015年全国大学生电子设计竞赛
多旋翼自主飞行器(c题)
2015815
摘要
旋多翼自主飞行器由RL78/G13MCU£(芯片型号R5F100LEA,STM32单片机模
SDCMOS摄像头,A2212/13T新西达电机。STM32单片机输入信号到
RL78/G13MCU板,启动飞行器和CMOS摄像模块,RL78/G13MCU飞控模块矫正飞行器空中的姿态,实现悬停前进后退等功能,CMOS莫块将拍摄的视频内容存储在STM32块内置的SD卡里。当飞行到目的地时各模块自动停止工作。
飞行器能一键式启动,并开始航拍,从A点起飞,飞向B区,在B区降落,但不是中心,当飞行结束后,拔掉SD卡,能顺利的通过P0机回放,在飞行过程中,始终在电子示高线H1H2的区间内。
目录
目录
1.方案论证与比较.........................
1.1四旋翼算法方案.......................1.2STM32控制方案.....................1.3CMOS视频模块方案....................1.4四旋翼飞行器结构与原理理论.................2理论分析与计算..........................
2.1四旋翼飞控算法误析....................2.2PID算法误差分析.......................3.测试方案............................
3.1测试仪器..........................3.2测试环境..........................

4.测试结果...........................

4.1.基本要求测试数据.....................42综合性能分析结论.......................4.3心得体会:.........................参考文献............................附录一、总体电路原理图.....................附录二、主要软件程序......................
1.方案论证与比较
1.1四旋翼算法方案
方案一:采用欧拉角法欧拉角法静止状态,或者总加速度只是稍微大于算出的值比较准确。
使用欧拉角表示姿态,令和①代表ZYX欧拉角,分别称为偏航角、俯仰角和横滚载体坐标系下的力卩速度(axB,ayB,azB和参考坐标系下的加速度(axN,ayN,azN之间的关系可表示为(1。其中cs分别代表cossinaxB,ayB,azB就是mpu读出来的三个值。
这个矩阵就是三个旋转矩阵相乘得到的,因为矩阵的乘法可以表示旋转。
g时,由加计
axBayB

cccsss
ssccsc
ccsc
csssscss
ssccc
axN

ayNazN
(1
azB
飞行器处于静止状态,此时参考系下的加速度等于重力加速度,即
aaa
xNyNzN
0
0g

(2代入(1可以解
arctg(-pj
■.ayBazB
arctg
ayBazB

即为初始俯仰角和横滚角,通过加速度计得到载体坐标系下的加速度即可将其解出,偏航角可以通过电子罗盘求出。
方案二:四元数法(通过处理单位采样时间内的角增量mpu的陀螺仪得到的就是角增,为了避免噪声的微分放大,应该直接用角增量——抄的书)
本项目采用的是方案一。
1.2STM32控制方案
方案一:直接激活飞控模块(RL78/G13MCU,可以很好的与飞控进行协调,实现飞控模块的启动与停止。
方案二:使用STM32直接控制飞行器飞行。在植入的程序里包含对四旋翼的控制算法和自启动和自停止,还有视频模块的处理,但太过复杂。
本项目组结合本题相关要求。对模块之间的协调和信号的传输进行处理,决定采用项目一。
1.3CMOS视频模块方案
通过图像传感器对实时图像的采集,得到道路的信息,对当前采集到的图像信息做出判断,从而得到道路的情况,之后通过进一步控制实现循迹功能。
本例程利用OV7620CMOS摄像头模块成像1米外路径图像(白底一条黑线),将一帧数据转换成“0”“镜像到MCURL78/G13RAM中。如图1.1图像二值化存储示例。
1.1
1.3总体方案描述:如图1.3

1.3
1.4四旋翼飞行器结构与原理理论
1.4.1飞行器结构
旋翼对称分布在机体的前后、左右四个方向,四个旋翼处于同一高度平面,且四个旋翼的结构和半径都相同,四个电机对称的安装在飞行器的支架端,支架中间空间安放飞行控制计算机和外部设备。结构形式如图1.1所示。
1.4.2.工作原理

四旋翼飞行器通过调节四个电机转速来改变旋翼转速,实现升力的变化,从而控制飞行器的姿态和位置。四旋翼飞行器是一种六自由度的垂直升降机,但只有四个输入力,同时却有六个状态输出,所以它又是一种欠驱动系统。
1.4飞行器的结构形式
2理论分析与计算
2.1四旋翼飞控算法误析
vx=2*(q1q3-q0q2;//四元素中xyzvy=2*(q0q1+q2q3;vz=q0q0-q1q1-q2q2+q3q3;
//errorissumofcrossproductbetweenreferencedirectionoffieldsanddirectionmeasuredbysensors
ex=(ay*vz-az*vy;//向量外积在相减得到差分就是误差ey=(az*vx-ax*vz;ez=(ax*vy-ay*vx;
exInt=exInt+ex*Ki;//对误差进行积分eyInt=eyInt+ey*Ki;ezInt=ezInt+ez*Ki;
//adjustedgyroscopemeasurementsgx=gx+Kp*ex+exInt;
//将误差PI后补偿到陀螺仪,即补偿零点漂移gy=gy+Kp*ey+eyInt;gz=gz+Kp*ez+ezInt;
//这里的gz由于没有观测者进行矫正会产生漂移,表现出来的就是积分自增或自减
2.2PID算法误差分析
直接使用陀螺仪测量得到的角速度作为微分项。由于角度的微分即角速度,因此
直接使用陀螺仪测得的角速度值最为直观简便,且由于没有引入期望值进行微分,因此,在期望值进行切换时不会对系统产生较大的干扰。然而,陀螺仪的零点飘移却是一个不可忽视的问题。随着时间,系统运动状态的改变,陀螺仪的零点可能随之改变,因而从理论上讲,应当对陀螺仪的零点进行动态修正,以保证微分项的准确性。
(1使用本次角度偏差与上一时刻的角度偏差的差值作为微分项。由于对期望值进行了微
分,因此在期望值进行切换时,存在较大扰动,若使用该方法,可对微分项进行一阶惯性滤波,使微分项较为平滑。
(2使用微分先行PID算法,将角度期望进行分离,直接针对当前时刻姿态解算得到的姿态

角进行微分,与上一种方法相比,在期望值进行切换时,不会对系统产生较大的扰动。与第一种方法相比,由于在姿态解算时,通过加速度计与陀螺仪进行融合得到较为准确的姿态角,因此,将其用于微分项在理论上较为合理。
然而,经过大量的实验经验发现,第一种方法的控制效果最好。仔细推敲之后不难发现,由于第三种方法所使用的姿态解算得到的姿态角并非时刻接近真实值,在动态过程中,该现象尤为明显。当真实值进行切换时,估计值从上一时刻逼近这一时刻的真实值需要一定的过渡时间,因此,可以认为第三种方法得到的微分项是滞后的,微分项的作用体现在对未来的预测,而使用一“过去”的控制量对“未来”进行预测控制,这显然是不合理的。在实验中则体现为系统抵抗外力的反作用力较小。因此,使用第三种方法的前提为,具备响应极快的姿态解算算法且控制频率较高。
3.测试方案
3.1测试仪器
电子示高装置,产生示高线h1,h2,位于同一垂直水平线,飞行器触碰h1,h2线时该装置可产生声光报警。
PC机一台,将拍摄的视频文件借助PC机播放,以验证视频模块能否正常工作。
两个直径不同的同心圆,内圆为黑色外圆为白色,直径分别为25CM75CM秒表一个,要求在规定的时间内完成规定的动作。
3.2测试环境
在空旷的实验室中,确保实验室的长度,高度,宽度均符合条件要求,,并能保证实验人员的安全要求。
基本要求一:测量飞行器起始的位置与目的地之间的线性距离,使它们之间的距离超过题目要求的最小距离,使其从A点出发至B点结束,测试系统工作情况。
基本要求二:测试飞行器从A点出发以飞行高度不低于30CM的要求按逆时针做矩形运动。
基本要求三:要求测试环境有电子示高装置,并可在现场产生激光示高线,其高度可调,调整范围为30CM120CM
发挥部分要求一:使用的小铁板M1的重量不得低于规定重量的95%,并为单独实物。

4.测试结果
4.1.基本要求测试数据
飞行器能一键式启动,并开始航拍,从A点起飞,飞向B区,在B区降落,但不是中心,当飞行结束后,拔掉SD卡,能顺利的通过P0机回放,在飞行过程中,始终在电子示高线
H1H2的区间内。
4.2.综合性能分析结论
飞行器在A区能一键式启动,飞行器起飞,沿矩阵CDEF逆时针飞行一圈,并在A区着陆并停机;飞行高度不低于30CM;飞行时间不大于45S..但是各个部件的协调做的不是太好,具体:有的时候不能正常启动,还有对CMOS摄像模块的控制以及录得文件的存储,并不能更好的工作,希望以后可以继续改进。
4.3心得体会:
通过单片机来控制飞控模块的确是个难题,在代码的设计上出现了很大难题,我和我的团队更是在单片机与飞控的通信问题上费了好大功夫。
飞控始终是一个大难题,我们团队采用的是欧拉角方法,我们的姿态扭正算法是在万方数据库里的论文找的,千辛万苦始到金。
另一个难题是摄像模块的处理,摄像模块如何与单片机的通信以及如何把所拍摄文件传输到

SD卡里并能通过PC机回放,我们在单片机的代码里也考虑到这个问题,最终还是得到好的结
果。
炎炎夏日,在如此紧张的时间内完成如此大的工程,的确对我们的耐力和知识提出了挑战,有团队的合作,有老师的支持是我们参与此次大赛的初始勇气。希望下次我们能做到更好。
参考文献
[1]黄智伟.全国大学生电子设计竞赛系统设计(第二版).北京:北京航空航天大学出版社2011
2
[3]程程,洪龙.一种实用的红外通信装置设计及实现.电力自动化设备.29卷第920099P26~29
[4]Paulscherz发明者电子设计宝典.蔡声镇,林佑达,吴允平等译.福建:福建科学出版社.20041
[5]陈永真,陈之勃.全国大学生电子设计竞赛硬件电路设计精讲.北京:电子工业出版.20115
附录一、总体电路原理图附录二、主要软件程序
#include"stc12c5a60s2.h"sbitpPMO;〃副翼sbitp2=P1A1;〃升降sbitp3=P1A2;〃油门sbitp4=P1A3;//方向
unsignedcharflag=O;//intinit_kk=4000;〃激活标志4000周期为2//intpwm=O;voiddelay({

inti,j;
for(i=0;i<1850;i++for(j=0;j<1000;j++;
}

intmian({
EA=1;
TMOD=0x01;AUXR=0;ET0=1;
TH0=185/256;//0.1msTL0=185%256;
TR0=1;while(init_kk{
if(flag==200
flag=0;
if(20>flag方向2ms{
p4=1;}else{
p4=0;}
if(10>flag油门1ms{
p3=1;}else{
p3=0;


}
delay(;while(1
if(flag==200
flag=0;if(15>=flag//方向{
p1=0;p2=0;p4=1;
}else{
p1=0;p2=0;p4=0;
}
if(13>=flag//油门{
//////////////
p3=1;
if(pwm==6000{pwm=0;i++;if(i==20i=0;}}elsep3=0;
voidtm(interrupt1{TH0=185/256;//0.1msTL0=185%256;init_kk--;flag++;//pwm++;TR0=1;

本文来源:https://www.2haoxitong.net/k/doc/e2d33319acf8941ea76e58fafab069dc512247e4.html

《全国大学生电子设计大赛作品报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式