电赛设计报告更改.docx

上传人:b****3 文档编号:26750568 上传时间:2023-06-22 格式:DOCX 页数:24 大小:138.08KB
下载 相关 举报
电赛设计报告更改.docx_第1页
第1页 / 共24页
电赛设计报告更改.docx_第2页
第2页 / 共24页
电赛设计报告更改.docx_第3页
第3页 / 共24页
电赛设计报告更改.docx_第4页
第4页 / 共24页
电赛设计报告更改.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

电赛设计报告更改.docx

《电赛设计报告更改.docx》由会员分享,可在线阅读,更多相关《电赛设计报告更改.docx(24页珍藏版)》请在冰豆网上搜索。

电赛设计报告更改.docx

电赛设计报告更改

2017电赛设计报告(更改)

第一页是空白页

2017年全国大学生电子设计竞赛

四旋翼自主飞行器探测跟踪系统(c题)

【本科组】

2017年8月12日本系统由数据信息采集、数据信号处理、飞行姿态稳定和航向控制部分组成。

系统选用瑞萨RX23TMCU单片机作为主控芯片,以STM32F103VET6为核心的飞控完成飞机自稳,通过超声波传感器来检测飞行高度,再通过瑞萨芯片分析并向飞控传递信号来保持或改变飞行状态。

利用无线信号发射接收装置来建立

小车与飞行器之间的联系,完成配对后会有二极管和扬声器发出配对成功信号,再通过接收方位信号的改变来调整飞行姿态以完成跟随小车的目标。

关键词:

瑞萨R5F523T5ADFM单片机

STM32F103VET6最小系统板

超声波测距

PID算法

无线收发模块

1系统方案

0

1.1控制系统的选择0

1.2飞行姿态控制的论证与选择0

1.3高度测量模块的论证与选择0

1.4电机及调速方案的论证与选择1

1.5无线信号发射与接收模块的论证与选

2系统理论分析与计算

2.1控制方案的设计与分析

飞行器起飞及悬停方案设计

择1

1

1

1

飞行姿态控制设计飞行高度控制

2.1.4小车与飞行器联动设计2

2.2参数的计算2

飞行稳定的PID计算2

高度控制的PID计算

声光联动的参数设定2

3电路与程序设计

3.1电路的设计

控制系统框图

飞控系统框图

4

电源的选用

4

3.2程序的设计

程序功能描述与设计思路

程序流程图4

4测试方案与测试结果5

4.1测试方案5

4.2测试结果及改进6

附录1:

电路原理图7

附录2:

源程序9

四旋翼自主飞行器探测跟踪系统(C题)

【本科组】

1系统方案

本系统主要由总控制模块、飞行控制模块、超

声波测距模块、无线信号发射接收模块、电源模块组成,下面分别论证这几个模块的选择。

1.1控制系统的选择

按照本次赛题要求,控制系统芯片选用瑞萨RX23TMCU板(芯片型号为R5F523T5ADFM)作为主控芯片来采集信号以及控制飞行器飞行姿态与方向。

1.2飞行姿态控制的论证与选择

方案一:

瑞萨芯片将从MPU-6050中读取出来的飞行原始数据进行PID算法运算,得到当前飞行器的四元数,单片机再将数据融合,并对电调发出相应指令,从而达到控制飞行器的飞行姿态的目的。

但四元数法需要进行大量的运算,且运算复杂。

而且比赛时间紧迫,调试程序复杂且困难。

方案二:

采用市面上现有的QQ、KK等商用飞控板进行飞行姿态稳定的控制,再由瑞萨芯片给与干预来达到想要的飞行方案。

但由于这些飞控不开源且干预所需要的波形复杂不可模仿,对设计和调试都是巨大的挑战,且稳定性较差。

方案三:

录的市面上现有的飞控中的传感器集成部分与比较熟悉的STM32单片机最小系统相结合,利用飞控传感器模块的多面性和STM32强大的抗干扰性与兼容性自制飞控模块,再利用瑞萨芯片对STM32进行干预来实现比较稳定简便的飞行控制。

综合以上三种方案,选择方案三。

13高度测量模块的论证与选择

方案一:

采瓜bmp085气压传感器测量大气压并转换为海拔高度,把当前的海拔测量值减去起飞时的海拔值即得飞机的离地高度。

但此次竞赛飞行髙度相对比较低,芯片价格较贵,误差较大,调试较为困难。

方案二:

采用HGSR04超声波传感器测量飞行器当前的飞行高度。

这种传感器在较近距离测距误差较小,算法较易且价格便宜。

综合以上两种方案,选择方案二。

1.4电机及调速方案的论证与选择

要确定调速方案首先要确定电机型号的选择。

方案一:

采用有刷电机。

有刷电机采用机械转向,寿命短,噪声大,产生电火花,效率低。

它长期使用碳刷磨损严重,较易损坏,同时磨损产生了大量的碳粉尘,这些粉尘落轴承中,使轴承油加速干涸,电机噪声进一步增大。

有刷电机连续使用一定时间就需更换电机内碳刷。

方案二:

采用无刷电机。

无刷电机以电子转向取代机械转向。

无机械摩擦,无摩擦,无电火花,免维护且能做到更加密封等特点所以技术上要优于有刷电机。

综合以上两种方案,选择使用方案二无刷电机。

考虑到经济型实用性等方面,我们选用新西达A2212无刷电机。

而且由于本四旋翼飞行器选用的是无刷电机,所以电调只能选用无刷电机的电调,对于新手来说自己做电调需要的时间长,而且可能不稳定,危险性较大,所以直接用的是成品电调,我们选用电机配套的新西达A2212电调。

由此确定调速方案。

1.5无线信号发射与接收模块的论证与选择

方案一:

采用蓝牙模块来进行无线配对通信,将两个配对完成的蓝牙模块分别接在小车与飞行器的单片机上进行数据配对传输,但是蓝牙模块抗干扰性较差,传输速度略慢,传输信息量大,编辑代码较为复杂,调试麻烦。

方案二:

采沟超外差RF无线编码模块TXU8SA来进行无线信号发射,利用RX480E通用解码芯片进行信号接收,这两个传感器不仅价格低廉,且在近距离信号传输时抗干扰性较强,对码等调试较为简易。

综合两种方案我们选用第二种进行小车与飞行器之间的配对与信号传输。

2系统理论分析与计算

2.1控制方案的设计与分析

飞行器起飞及悬停方案设计

飞行姿态控制设计

飞行器在悬停的时,MPU6050会不断将现有姿态角数据传输给STM32飞控中,飞控会自动代入PID调试公式来确定现有的飞行姿态并给予调整来尽量保证飞机姿态的稳定。

飞行高度控制

飞行高度的采集采用超声波模块来实现,通过超声波发出时开始计时,收到返回信号时停止计时,瑞萨单片机利用声音在空气中的传播速度(粗记为340m/s)与时间的数学关系来计算出飞行器距地面的时间,从而控制飞行器的飞行髙度达到我们所需的高度。

2.1.4小车与飞行器联动设计

小车与飞行器之间采用TX118SA无线信号发射接收传感器来进行通讯连接,位于飞行器上的接收端可以接收到来自小车上发射端的信号来进行平面定位操作,再由瑞萨芯片发出指令来控制飞行器和小车控制在一定距离从而达到跟随。

2.2参数的计算

飞行稳定的PID计算

STM32最小系统板从飞控传感器模块中的MPU-6050芯片获取的数据是飞行器的三轴角速度和三轴角加速度,MCU对数据进行PID算法处理可以得到飞行器当前的飞行姿态。

PID是比例、积分、微分的缩写。

比例调节是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。

比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

积分调节是使系统消除稳态误差,提高无差度。

因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。

积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。

反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。

积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

几者结合从而保持飞行姿态稳定。

高度控制的PID计算

超声波测距传感器能测量出发出声波到接收到声波之间的时间长度,设这个值为X,则X/340/2即为所测量距离的长度,将这个经计算所得的值与所需要的高度进行对比,在对STM32进行反馈从而实现调速定高,来达到控制飞行高度的目的。

声光联动的参数设定

TX118SA发射器和接收器之间信号传输时间为声波在两者之间传递时间,与声速相除可测出之间距离,在距离到达所要求0・5m〜1.5m之间时,二极管所在端口输出高电平达到让二极管发光,同时扬声器所在端口输出高频PWM波以达到让扬声器发出尖锐声音的效果从而达到声光联动。

3电路与程序设计

3.1电路的设计

系统总体框图设计

系统总体框图如图1所示,

招声波

 

瑞萨

IFTT

图1系统总体框图

控制系统框图-

控制系统框图

 

二极管

扬声器

图2控制系统框图

 

飞控系统框图

飞控系统框图

图3飞控系统框图

电源的选用

电源由变压部分、滤波部分、稳压部分组成。

为整个系统提供±5V或者土12V电压,确保电路的正常稳定工作。

这部分电路比较简单,都采用三端稳压管实现,故不作详述。

3・2程序的设计

程序功能描述与设计思路

1、程序功能描述

首先一键启动飞行器,起飞后悬停,5S后降落;其次手持飞机靠近小车飞机和小车发出声光互响;再次一键启动飞机向前寻找小车,寻到后降落;然后启动飞机沿直线追寻小车;最后飞机沿不同方向追寻小车。

2、程序设计思路

先设计出每种功能中相同的程序部分方便在各个步骤中调用,再设计出各个步骤中特有的部分加上之前的公共部分进而完成整个步骤。

程序流程图

图4程序流程图

4测试方案与测试结果

4.1测试方案

对程序进行分块测试,先公共部分后独立部分,测试均无误后针对要求的需要进行测试。

分模块测试完毕后,在实验室自主搭建安全网空间进行整体测试,包括一键起飞、悬停定高、声光指示、定向飞行、追踪等,在队员安全与符合国家相关飞行器政策要求前提下完成所有测试。

4.2测试结果及改进

经过测试,将不稳定区间过大的部分进行了多次优化,使其能高效稳定地完成每步的运作。

尤其对PWM信号控制电机转速这一方面做了较大改进,在不断的调试中,使飞行器飞行更加稳定、准确,减小了许多外界因素造成的干扰。

综上所述,本设计达到要求。

附录1:

电路原理图

P120

1

ni^n/AXHlQ

DMa/WTPIITfKTVTPA

64

PHO

P43

2

r1XLvAiN!

It

P43P42/T104/T004P41E07P4Q/TOOLO"iJuvLrr

1lHU/rVLDUiGlWIlNIrOniziirprMim171^IVTP7

63P141

P42

3

r!

*•I/IX.LDU461/IIN1r/poorrioo

POlfTOOOP02/AN117/SO10/TXD1mmami1ln/t?

ymijqrain

62

POO

P4I

4

61

P01

TOOLO

5

60

P02

RESET

6

59

P03

P124/XT2

7

IxEwTTb

rUJ/AnllO/olIU/KALzI/oL/A1vR)4/SCKI(MSCLI0P130P20/ANI0/AVREFPP21/ANI1/AVREFM

58

P(M

P123/XTI

8

r11Z/tAVLKo

P123/XT1P137/INTP0P122/X2/EXCLK

I>1?

1/Y1

57

Pl30

P137

9

56

P20

P122/X2

10

rss-

P21

P121/X1

11

54

P22

REGC

12

I1/1/1

REGC

VSS

EVSS

VDDEVDDIWSCLAOP61/SDAA0

1ZZ7A1NIZ

P23/ANI3

P24/ANU

P25/ANI5

P26/ANI6

P27/AN17

P147/AN11RP146

PI(VSCK0CVSCL00/(T107)/(TO07)

PIbSI00/RXIMVTOOLRXD/SDA00/(T!

06y(TO06)

Pi2/SO(XVrXIXyrO€)LTXiy(1NTP5WT105y(T005)

P13HXD2/S020ASDAAO)/(T!

04)/(T004)P14/RXD2/SI2Q

P15/SCK20/SCL20;(TI02y(TO02)P1&noIfTOO1/INTP5Z(S100wRXDO)pi7frio2nr)o2/(so()orrxDO)

P55/(PCLBIJZI^SCKOO)P54

P53/(INTPU)

P52/(1NTP1O|

P51/1NTP2/SOI1

P50/INTP1ZSI11ZSDA1】

53

P23

DGND

13

52

P24

DGND

14

rsT"

P25

VCC

15

50

P26

VCC

16

49

P27

P60

17

4S

P147

P61

18

47

P146

P62

19

46

P10

P63

20

P63

P31ZTI03/1003/1NIP4/(PCLBI:

ZO)

I»77/KR7/IMP11/(TXD2)

P76/KR6/INTPI0/(RXD2)

P75/KR5/1NTP9/SCK01/SCL01

P74/KR4/1NTP8/SI01/SDA01

P73/KR3/SO01

45

PH

PSI

21

44

P12

P77

22

43

Pl3

P76

23

42

P14

P75

24

41

P15

P74

25

40

P16

P73

26

39

P17

P72

27

38

P55

P7)

28

r/Z/KKZ/owx1

P71/KRbS⑵/SDA21P7ftzKR0?

SCK21/SCL21P06/T106/T006K)5fII05/T005

UlA/lV1jy1111

37

P54

P70

29

36

P53

P06

30

35

P52

P05

31

34

P51

P30

32

33

P50

rJWIIN1rJ/l\1VlMZxoVKlIfoVLI1tT•

 

3V3

IHj

T3

mow,I54zn4»i«ioisutrannw

(fillIURT3火IMP

riFlit©

•ifQkci

U13

甌CD—kkurtjs

1-^L

a-

COAX

y

CMOfi

ITT

T

mHFI.RST旳D—

VDtlA

LK®

VDUSM

VDD3P3HXUfirTOUTC1IIPLHN

SMI>:

S10CLC

S»J>:

«»_(*s»_cu

WJM

mjw

3V3

 

ix»ni»ot-r»fSi

J:

6

9

CI】

0.0:

ADOnio

=i

I0

GND

enby

4

C:

.

SDA

J2C0N2

INT

JICON

XDAxcTA^-

C13—

0luF

DI

XDA

xcF

:

」INT12

CLKIN

SDA

AUX_DA

SCL

AUX~CL

CLKOLT

\1OGIC

RESV

ADO

CPOIT?

REGOUT

RESV

FSYNC

GND

INT.JSl

—\QD

24

SDA

23

SCL

21

20

n

C102

Oluf

20OpF

~TL

XCC33V

 

附录2:

源程序

#include"r_cg__macrodriver.h"

^include"regcgc.h"

ttinclude"r_cg_cac・h"

ttinclude"r_cg」ort・h"

ttinclude"r_cg_mtu3・h"

ttinclude"r_cg_cmt・h"

/*Startusercodeforinclude・Donoteditcommentgeneratedhere*/

/*Endusercode.Donoteditcommentgeneratedhere*/

ttincludeMr_cg_userdefine•hM

/****拿********拿****拿***************************拿****拿*拿***********************拿*拿車**************************************

Globalvariablesandfunctions

拿******拿***********************拿***************************拿***********拿*************拿*拿***

/*Startusercodeforglobal.Donoteditcommentgeneratedhere♦/voiddelay_m(uint32_tm)

{

for(;m>0;m--);

}

/*Endusercode.Donoteditcommentgeneratedhere♦/voidRMAINJJserlnit(void);

/******拿*********拿*拿***********拿*************拿車拿*********拿*拿*************拿*************拿***拿******拿****拿*拿**拿***********

♦FunctionName:

main

♦Description:

Thisfunctionimplementsmainfunction.

*Arguments:

None

♦ReturnValue:

None

拿****拿*拿*********拿****************水*我*******4(拿*拿***********拿****拿********拿****拿*******4(拿***

 

voidmain(void)

R_MAIN_UserInit();

/♦Startusercode.Donoteditcommentgeneratedhere♦/delayjn(0x5ffffff);

PORT1.POOR.BYTE=—Pm0_OUTPUT_l|_e2_Pml_OUTPUTJL;

PORT1.DSCR.BYTE|=_Ol_Pm0_HIDRV_ON|_00_Pml_HIDRV_OFF;

PORT1.PDR.BYTE=_01_Pm0_MODE_OUTPUT|_02_Pml_MODE_OUTPUT;

R_MTU3_C0_Start();

R_MTU3_C2_Start();

R』TU3_C3_Start();

while(1U)

/*Endusercode.Donoteditcommentgeneratedhere*/

staticvoidADVANCE_TIM_GPIO_Config(void)

{

GPIO_InitTjpeDefGPIO_InitStructure;

〃输出比较通道GPIO初始化

RCC_APB2PeriphClockCmd(ADVANCE^TIM^CHl_GPIO^CLK,ENABLE);GPIO_InitStructure.GPIO_Pin=ADVANCE_TIM_CH1_PIN;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP:

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_5()MHz;

GPIO_Init(ADVANCE_TI\LCHLPORT,&GPIO_InifStrudure);

//输出比较通道互补通道GPIO初始化

RCC_APB2PeriphClockCmd(ADVANCE_TIM_CHlN_GPIO_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin=ADVANCE_TIM_CH1N_PIN;

GPIO_InitStructure.GPIO_Mode=GPIOJVIode_AF_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(ADVANCE_TIM_CHlN_PORT,&GPIO

//输出比较通道刹车通道GPIO初始化

RCC_APB2PeriphClockCind(ADVANCE_TIM_BKIN_GPIO^CLK,ENABLE);GPIO_InitStructure.GPIO_Pin=ADVANCE_TIM_BKIN_PIN;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO^Speed=GPIO_Speed_50MHz;GPIO_Init(ADVANCE_TIM_BKIN_PORT,&GPIO_InitStnictum);

nbkin引脚默认先输出低电平

GPIO_ResetBits(ADVANCE_TIM_BKIN_PORT,ADVANCE_TIM_BKIN_PIN);

}

staticvoidADVANCE_TIM_Mode_Config(void)

{

//开启定时器时钟、即内部时钟CKJNT=72MADVANCE_TIM_APBxClock_FUN(ADVANCE_TIM_CLK,ENABLE);

/*时基结构体初始化*/

TIM__TimeBaseInitTjpeDefTIM_TimeBaseStructure:

//自动塑装载寄存器的值,累计TIM_Period+l个频率后产生一个更新或者中断TIMTimeBaseStructure.TIMPeriod=ADVANCETIMPERIOD;

//驱动CNT计数器的时钟=FckJnt/(psc+l)

TIM_TimeBaseStructure.TIM_Prescaler=ADVANCE_TIM_PSC;

//时钟分频因子,配置死区时间时需要用到TIM_TiineBaseStructure.TIM_Cl(KkDivision=TIM_CKD_DIVl;

//计数器计数模式,设置为向上计数

TIM_TiineBaseStructure.TIM_CounterMode=TIM_CounterMode_Up:

〃重复计数器的值,没用到不用管

TIM_TiineBaseStructure.TIM_RepetitionCounter=0:

//初始化定时器TIM_TimeBaseInit(ADVANCE_TIM,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1