四轴飞行器、无人机(STM32、NRF24L01)

一、简介

此电路由STM32为主控芯片,NRF24L01、MPU6050为辅,当接受到信号时,处理对应的指令。

二、实物图

三、部分代码

void FlightPidControl(float dt)

{

volatile static uint8_t status=WAITING_1;

switch(status)

{

case WAITING_1: //等待解锁

if(ALL_flag.unlock) {

status = READY_11;

}

break;

case READY_11: //准备进入控制

pidRest(pPidObject,6); //批量复位 PID 数据,防止上次遗留的数据影响本次控制

Angle.yaw = pidYaw.desired = pidYaw.measured = 0; //锁定偏航角

status = PROCESS_31;

break;

case PROCESS_31: //正式进入控制

//倾斜检测,大角度判定为意外情况,则紧急上锁

if(Angle.pitch<-50||Angle.pitch>50||Angle.roll<-50||Angle.roll>50)

if(Remote.thr>1200)//当油门的很低时不做倾斜检测

ALL_flag.unlock = EMERGENT;//打入紧急情况

pidRateX.measured = MPU6050.gyroX * Gyro_G; //内环测量值 角度/秒

pidRateY.measured = MPU6050.gyroY * Gyro_G;

pidRateZ.measured = MPU6050.gyroZ * Gyro_G;

//俯仰控制

pidPitch.measured = Angle.pitch;

}

相关推荐
俊俊谢几秒前
HC32F460如何配置GPIO中断
单片机·嵌入式硬件·hc32f460
三佛科技-187366133971 分钟前
SLD50N06T美浦森60V,50A N沟道MOS场效应管解析
单片机·嵌入式硬件
wangjialelele2 分钟前
二刷C语言后,一万字整理细碎知识点
c语言·开发语言·数据结构·c++·算法·cpp
草丛中的蝈蝈8 分钟前
单片机烧写新程序后,ST-LINK无法发现设备
单片机·嵌入式硬件
StandbyTime10 分钟前
C语言学习-菜鸟教程C经典100例-练习40
c语言
不做无法实现的梦~24 分钟前
PX4怎么使用使用PlotJuggler分析PX4日志
linux·嵌入式硬件·机器人·自动驾驶
ae_zr30 分钟前
STM32H743+DMA+串口空闲中断接收不定长数据,并使用DMA发送数据
stm32·单片机·嵌入式硬件·dma
芯岭技术32 分钟前
全新一代2.4GHz 单片无线收发芯片 XL2400T,性能更强,距离更远
单片机·嵌入式硬件
云深麋鹿38 分钟前
二.顺序表和链表
c语言·开发语言·数据结构·链表
C++ 老炮儿的技术栈44 分钟前
Qt中自定义 QmyBattery 电池组件开发
c语言·开发语言·c++·windows·qt·idea·visual studio