stm32飞行器的设计与实现
目录
前言 1
一、总体方案设计 2
(一)系统硬件电路设计方案 2
(二) 系统软件设计方案 3
二、系统硬件设计 4
(一) 主芯片STM32F103C8T6 4
(二)总体电路设计 5
(三)PCB设计 7
(四)PCB设计步骤 8
三、系统软件设计 9
(一)Keil MDK5.12简介 9
(二)软件调试仿真 10
(三)软件设计框图 10
(四)飞控软件设计 11
四、实物安装与调试 14
(一)飞控校准 14
(二)遥控器的设置 15
致 谢 17
参考文献 18
附录一 原理图 19
附录二 pcb图 21
附录三 元件清单 22
附录四 自制飞行器图片 23
附录五 遥控器源代码 24
附录六 飞行器源代码 29
前言
由于微机电系统(MEMS)的研究成熟、单片机的飞速发展以及控制算法的出现使得四轴飞行器的成本越来越低也越来越普及,又因其所需飞行空间小,可垂直升降,不易发生危险,可远程操控所以四轴飞行器广泛应用于军方、工业以及民事。例如在丛林,黑暗的环境中可以进行快速进行侦查,在民事上可以进行通信,气象监测,灾害预测等用途,这些都是使得四轴飞行器成为各个国家争相研究对象的原因。
目前世界上生产飞行器的龙头公司就是中国的大疆创新科技有限公司(简称DJI),之前美国3D Robotics公司也是规模较大的飞行器设计与制作公司,后来因为错误的绝策导致此公司不敌中国的大疆创新科技有限公司。
本次的设计主要涉及到遥控和飞控两部分的设计。 遥控器是用来控制飞机的组件。 在此次的设计过程中,我选用STM32F103C8T6作为飞控的中央处理器。 程序存储器容量为64 KB,所需电压为2V至3.6V,工作温度为40°C 85°C 该机采用配备3轴陀螺仪和3轴加速度传感器的MPU 6050惯性测量单元用来检测飞行器的飞行姿态,实现悬停、旋转、移动等操作功 *好棒文|www.hbsrm.com +Q: ¥351916072¥
能。
该系统所用的控制方式是无线发射信号。其工作形势是遥控主控芯片收集关于遥控器其给出的使飞行器姿态发生变化的信号数据通过NRF24L01无线模块发射由被安装在飞行器上同样是NRF24L01无线模块所接受并传输给主芯片,飞行器上的主芯片收集并分析其接受内容。在此同时飞行器上的主芯片除了要接受外来的信号而且还要接受自己身上MPU6050收集并发给主芯片分析的数据,然后其主芯片用常用的2钟算法四元数过滤和PID控制来分析数据并且得到飞行器角度值。 最后飞行器的四个电机的PWM。控制I / O端口会收到来自主芯片处理过自身能识别的信号来控四个电机,使飞机在稳定飞行的情况下可以同时被遥控器控制来实现飞行、悬停、移动等功能。
引言
(一)系统硬件电路设计方案
此次实物设计中的遥控和飞控都采用的是STM32F103C8T6作为主控芯片,STM32F103C8T6的内核是32位的CortexM3,其工作频率可以稳定在72MHz。STM32F103C8T6的程序存储容量可以达到64k字节完全满足此次设计的程序容量需求,它的SRAM可以达到20K字节,它拥有达到8个输入通道的12位模数转换器2个并且它DMA控制器多达7个通道,拥有快速I/O端口多至80个,其串行单线调试和JTAG接口调试模式很是方便,7个定时器更是为一些功能提供了便利,2个I2C接口、3个USART接口、2个SPI接口完全符合本次设计的需要再加上CAN接口,USB2.0接口与电脑连接快速传输数据。系统硬件总体框图如图11所示。
图11 系统硬件总体框图
主芯片
STM32F103C8T6是飞控和遥控的核心,其主要功能就是采集和分析数据并把分析好的数据发送到各个运行单元。整个设计都围绕其主芯片的功能设置和飞行器的设计需要来设计的,其拥有的USB2.0接口可以快速传输遥控板数据连接至电脑并用相关软件分析数据。
2.电源模块
电源飞行器和遥控器的动力保证,为了使飞行器和遥控器能稳定工作,所以此次设计采用2块3.7V的电池为飞行器和遥控器供能。又因主芯片的工作电压为3.3V所以本次电源用的是ME6206A33M3G_662K作为3.7V转3.3V稳压芯片为主芯片供能;ME6206A33M3G_662K所表现出来的功能特性对于此次的设计十分符合设计需要。
3.通信模块
通信模块的作用就是连接飞行器和遥控器,即遥控器发出的数据信号可以使飞行器接收,飞行器发出的数据信号可以使遥控器接收并显示。因为NRF24L01功耗低、所需要的工作电压低、体积迷你、使用所需成本较低、拥有串口多样性再加上其2.4G的收发频率全球开放固此次设计使用NRF24L01无线模块作为数据传输用途。
惯性测量单元
惯性测量单元的作用就是实时检测飞行器的飞行状态并通过通信模块将飞行器的姿态数据发送给遥控器。因为MPU6050集合了三轴陀螺仪和三轴加速度器,又因为此姿态传感器的通信协议简单,所以此姿态传感器的第二个I2C端口也可以连接其他不同生产商的磁力传感器、或其他传感器的数位运动处理硬件加速引擎再加上MPU6050运动数据处理速度很快,成本较低,综合以上原因此次设计的姿态传感器采用的是MPU6050。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/1326.html