四轴飞行器、无人机(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;

}

相关推荐
焦糖码奇朵、3 分钟前
课设:基于Arduino的无线LED开关控制系统
嵌入式硬件·物联网·arduino·信息与通信·信号处理
宵时待雨24 分钟前
数据结构(初阶)笔记归纳1:复杂度讲解
c语言·数据结构·笔记
z203483152039 分钟前
定时器练习报告
单片机·嵌入式硬件
zk0040 分钟前
内容分类目录
单片机·嵌入式硬件
安生生申1 小时前
STM32 ESP8266连接ONENET
c语言·stm32·单片机·嵌入式硬件·esp8266
广药门徒1 小时前
电子器件烧毁的底层逻辑与避坑指南
单片机·嵌入式硬件
范纹杉想快点毕业3 小时前
嵌入式通信核心架构:从状态机、环形队列到多协议融合
linux·运维·c语言·算法·设计模式
网安_秋刀鱼3 小时前
【java安全】反序列化 - CC1链
java·c语言·安全
Ljubim.te4 小时前
inline介绍,宏定义的注意事项以及nullptr
c语言·开发语言·c++
苦藤新鸡4 小时前
6.三数之和
c语言·c++·算法·力扣