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

}

相关推荐
钰珠AIOT3 小时前
通过显微镜发现电池座子两端连锡短路,是直接拆掉重新换一个新的座子还是如何处理连锡?是通过热风枪还是烙铁更好?
单片机·嵌入式硬件·机器人
z20348315204 小时前
如何通过状态机解决按键识别问题(二)
c语言·单片机·嵌入式硬件
芜狄4 小时前
用寄存器点亮灯
单片机·嵌入式硬件
代码改善世界4 小时前
从零开始写贪吃蛇游戏(C语言控制台版)
c语言·游戏
Eternity∞4 小时前
Linux系统下,C语言基础
linux·c语言·开发语言
Hello_Embed7 小时前
Modbus 传感器开发:STM32F030 libmodbus 移植
笔记·stm32·学习·freertos·modbus
余生皆假期-10 小时前
硬件基础知识补全【四】通用、整流和肖特基二极管
单片机·嵌入式硬件
爱编码的小八嘎10 小时前
第3章 Windows运行机理-3.1 内核分析(1)
c语言
czhaii11 小时前
双直流电机BTS7960模块正反转程序
单片机·嵌入式硬件
A6666666666789011 小时前
程序人生-Hello’s P2P
c语言·程序人生·microsoft