自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 betaflight的姿态解算

在betaflight里的文件betaflight\src\main\fc定义了 [TASK_ATTITUDE] = { .taskName = "ATTITUDE", .taskFunc = imuUpdateAttitude, .desiredPeriod = TASK_PERIOD_HZ(100), .staticPri

2018-01-18 21:33:11 7383 1

原创 betaflight的陀螺仪初始化

在init函数里有一个判断 if (!sensorsAutodetect()) { // if gyro was not detected due to whatever reason, notify and don't arm. indicateFailure(FAILURE_MISSING_ACC, 2); setArmingDis

2018-01-18 20:55:47 3182

原创 黑洞飞控代码分析(四)------遥控的接收

对于遥控器的接收,首先想到的是TIM2和TIM3虽然进行了初始化,但是并没有发挥什么作用查看他们的中断函数,两个中断函数在同一文件里,以TIM2为例u8 Rc_Capture_Sta[6] = {0};//6个通道的捕获状态u16 Rc_Channel_Val[6] = {0};//6个通道的捕获值/* * 函数名:TIM2_IRQHandler * 描述 :定时器2输入捕获

2018-01-08 21:50:09 815

原创 黑洞飞控代码分析(三)------姿态解算和控制

在收集需要的数据后,进行处理,解算姿态在进入之前先看一看系统时钟的中断函数/* * 函数名:SysTick_Handler * 描述 :滴答中断函数 * 输入 :无 * 输出 :无 */ void SysTick_Handler(void){ static u16 cnt = 0; static u8 ms = 0; cnt++; Prepare_

2018-01-08 16:03:40 1632 3

转载 黑洞飞控代码分析(二)------数据采集

接上篇看看飞控的姿态结算在第一篇中飞控初始化了systicks时钟后,并没有做任何处理这里不仅仅是计时,也作为姿态解算的时间标志,在它的中断函数里有:/* * 函数名:SysTick_Handler * 描述 :滴答中断函数 * 输入 :无 * 输出 :无 */ void SysTick_Handler(void){ static u16 cnt = 0;

2018-01-08 15:24:27 869

原创 黑洞飞控代码分析(一)

下面分析一下黑洞飞控的源代码代码版本1.0(具体我也不知道)IDE keil5飞控主MCU是stm32,先mainint main(void){ System_Init(); //ϵͳ³õʼ»¯ while(1) //¿ÕÑ­»· { } }套路就是先系统初始化,在while(1)死循

2018-01-02 21:58:28 1034

原创 无名飞控的自抗扰控制

无名飞控的自抗扰控制自控制的算法可以见韩京清先生的书点击打开链接为了自抗扰控制买了无名飞控,现在看看它的自抗扰代码首先初始化:从代码上大致可以看出只对俯仰、横滚方向姿态内环角速度控制器采用ADRC自抗扰控制器,只是对这两个的控制器的初始化ADRC_Init(&ADRC_Pitch_Controller,&ADRC_Roll_Controller);//自抗扰控制器初始化

2017-12-29 22:49:42 10283 18

原创 无名飞控的姿态解算和控制(四)

上面几篇帖子已经写完控制流程还剩一点没说 if(PPM_Isr_Cnt==100)//PPM接收正常才进行传感器标定检测 { Accel_Calibration_Check();//加速度标定检测 Mag_Calibration_Check();//磁力计标定检测 } Bling_Working(Bling_Mode);//状态指示灯

2017-12-29 15:52:07 2014

原创 无名飞控的时钟和延时

首先是飞控里面调用了SystemInit();//时钟初始化这个里面void SystemInit (void){ /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00

2017-12-27 13:43:14 654

原创 无名飞控初始化剩下的

先看串口2,3初始化USART2_Init(19200);//串口2、备用USART3_Init(115200);//串口3、解析GPS串口2初始化定义void USART2_Init(unsigned long bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;

2017-12-26 16:16:21 587

转载 无名飞控的FLASH

在看无名的Flash之前先看一下如何操作FlashSTM32 FLASH操作步骤1. FLASH解锁在对 FLASH 进行写操作前必须先解锁,固件库函数实现很简单:FLASH_Unlock();//解锁2. 清除相关的标志位FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLA

2017-12-26 15:05:28 692

原创 无名飞控框架梳理

打开飞控的main.c文件首先是HardWave_Init();//飞控板内部资源、相关外设初始化打开#include "Headfile.h"Sensor_Okay_Flag Sensor_Init_Flag;void HardWave_Init(void){ SystemInit();//时钟初始化 cycleCounterInit();//系统滴答时钟初始化,程

2017-12-20 16:51:29 5437

原创 无名飞控姿态解算和控制(三)

继续码代码上一篇主要写了自稳模式下的代码流程,这次主要是飞控的定高和定点控制流程首先是定高控制模式在Main_Leading_Control里选择定高模式代码:else if(Controler_Mode==2)//定高模式 {/**************************定高模式,水平姿态期望角来源于遥控器****************************

2017-12-18 15:09:32 2276 1

原创 无名飞控姿态解算和控制

无名飞控TIME.c剩下的东西

2017-12-17 21:36:20 1055

原创 无名飞控的姿态解算和控制(二)

接上篇继续码函数Total_Control();//总控制器 查找定义:void Total_Control(void){ static uint16_t Mode_Check_Cnt=0; /*************控制器模式选着******************/ Mode_Check_Cnt++; if(Mode_Check_Cnt>=5)//每

2017-12-17 10:02:51 3427

原创 无名飞控姿态解算和控制(一)

无名飞控的姿态解算和控制

2017-12-14 15:03:47 8518 5

原创 无名飞控

无名飞控姿态数据的获得

2017-12-13 23:23:13 5270

原创 打印_battery_status.scale

在px4的姿态控制中,publish控制量时代码乘以了一个_battery_status.scale, /* scale effort by battery status */ if (_params.bat_scale_en && _battery_status.scale > 0.0f) { f

2017-12-05 21:19:00 514

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除