自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁先生的博客

自律/细心/钻研

  • 博客(33)
  • 收藏
  • 关注

原创 Ardupilot Yaw Imbalance报错

偏航不平衡警告是衡量车辆偏航工作力度的指标,警告将在偏航输出饱和之前触发。如果偏航输出饱和,则车辆的 保持偏航的能力将受到影响。而且,在最坏的情况下,这将导致车辆快速旋转。警告消息给出最大偏航输出的百分比。在100%时,它是饱和的。这应该在硬件中修复。最常见的原因是电机在圆形臂上不垂直。如果不平衡仍然存在 电机可以稍微倾斜,使推力角有助于偏航的旋转方向。一些车辆可能对电机推力矢量非常敏感。然而,可能也值得重新审视偏航曲调。如果警告仅在激进偏航操作中出现,则可以通过提高。

2024-03-18 11:33:35 194

原创 Ardupilot 双天线GPS偏航配置

目前使用Ardupilot版本是4.3.7,仅支持ublox gps f9p 模块,经测试验证双GPS提供航向功能尚不稳定。

2024-03-18 11:30:19 274

原创 Ardupilot 直升机定速-自动油门

直升机主旋翼一般使用油门曲线或自动油门控制,本文主要分析自动油门控制。自动油门即控制主旋翼维持一定的转数,由于直升机带负载时会导致转数下掉,会造成飞机姿态控制不稳定的情况,飞控可以选择自动油门模式,即根据给定转数去调整油门输出,维持转数稳定。

2024-03-18 11:12:18 262

原创 嵌入式开发常用工具汇总

代码版本控制gitsvntortoiseGitgithubgiteegitlab代码阅读工具vscodesource insightunderstandnotepad++图形化工具vofa+: 数据图形化代码比较工具beyond compare数据捕获工具bus houndwireshark系统虚拟机Vmware串口助手sscom闪电侠串口网络调试助手 myth截图贴图snipaste录屏工具oCam芯片编程st

2024-03-18 10:29:52 221 1

原创 优秀嵌入式开源项目收集

【日志存储】EasylogEasyflash【智能电池】SmartBMSDiebieMS【行驶轨迹】traccarx-track【电调控制】vesc【飞控开源】ArdupilotPx4Crazyfile【云台控制】SimpleBGCStorm32BGCEvvGC

2024-03-18 10:21:56 169

原创 VSCODE 常用配置与技巧

VSCODE 常用配置

2024-02-20 17:20:52 169

原创 无人机PID调参模拟

在线PID模拟

2023-09-02 10:49:36 198 2

原创 APM常用参数配置

APM 常用参数配置

2023-05-15 11:40:23 2772 2

原创 Ardupilot-链接汇总

Ardupilot固件与工具下载Ardupilot全部参数飞行模式故障检测故障保护机制简单和超级简单模式的介绍PID调参PID控制器初始设置Ardupilot 调参流程电机顺序图电调ESC校准自动调参AutoTune测量振动硬件机构减振推力损失和偏航不平衡警告-Thrust Loss and Yaw Imbalance Warnings室内飞行指南Ardupilot论坛直升机常见问题单轴跟共轴碰撞检查降落伞独立看门狗故障保护EKF故障保护GCS故障保护无线电故障电池故障转测测量-RPM地面效应补偿通知设备配

2023-03-15 11:27:32 509

原创 Ardupilot-SITL仿真模拟调试

【代码】Ardupilot-SITL仿真模拟调试。

2023-03-15 10:57:09 624 1

原创 Ardupillot-添加新模块(Libraries)

1.创建新模块文件夹路径: ardupilot\libraries创建 AP_XXX文件夹2.添加宏使能开关// 文件 config.h#ifndef AP_XXX_ENABLED#define AP_XXX_ENABLED ENABLED#endif3.添加新模块文件夹编译路径//ardupilot\ArduCopter\wscriptap_libraries=bld.ap_common_vehicle_libraries() + [ ... 'AP_XXX',],4

2023-03-15 10:36:21 153

原创 Ardupilot添加自定义参数Param

以AP_GROUPEND结束。

2023-03-15 10:31:38 305

原创 Ardupilot移植自制硬件

文件内容参考此文件夹其他硬件写法,修改出适配自己硬件的硬件描述文件。

2023-03-15 10:15:39 567

原创 Ardupilot 编译问题汇总

【代码】Ardupilot 编译问题汇总。

2023-03-15 10:06:39 641

原创 Ardupilot 编译Bootloader

编译生成的BootLoader文件为“ardupilot\build\YourBoard\bin\AP_Bootloader.bin”YourBoad是对应你的硬件,例如:CUAVv5。

2023-03-15 10:00:32 303

原创 Ardupilot添加自定义日志(AP_LOG)

日志数据格式类型参考如下(在libraries/AP_Logger/README.MD)至此添加自定义日志项已完成,调用自定义的日志记录接口即可记录日志。

2023-03-15 09:50:46 337

原创 APM新添加UAVCAN设备

UAVCAN是一种轻量级协议,旨在通过CAN总线在航空航天和机器人应用中实现可靠通信。要实现通信,最基本需要data_type_ id, signature、数据结构、设备程序初始化。

2023-03-10 09:57:58 1068 1

原创 模块AT响应数据常用解析方法

数据解析

2020-06-07 16:30:08 2613

原创 关于FreeRTOS 任务运行中卡死在临界区vPortExitCritical()

FreeRTOS创建任务正常运行,偶尔出现任务卡死状态,通过在线调试,程序卡在vPortExitCritical()函数中,在IAR Call Stack中观察到各任务都可能回调该接口。void vPortExitCritical( void ){ configASSERT( uxCriticalNesting ); uxCriticalNesting--; if( uxCritical...

2020-03-24 23:25:53 7054 2

原创 简易嵌入式设备系统日志记录方法

这里写自定义目录标题系统日志思路分析功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入系统日志在嵌入式设备应用场景中,...

2019-10-28 14:34:01 4774 4

原创 NBIOT PSM低功耗模式 M5310A模组

PSM模式PSM 状态是指用户终端进入功率节省状态,处于 PSM 状态终端关闭收发信号机,不监听无线侧寻呼,与网络没有任何消息交互,处于最省电状态。NBIOT 工作状态connected(连接状态):模块注册入网后处于该状态,可以发送和接收数据,无数据交互超过一段时间后会进入Idle 模式,时间由基站侧的“不活动计时器”配置,是全国统一规划,默认为 20s。(客户不能配置)idle(空闲状...

2019-04-21 09:39:58 7854 1

原创 NBIOT 移动M5310A模块 AT+MIPLCREATE注册码自动生成

模组注册码移动M5310A模块固件中封装的SDK会自动获取模组当前的IMEI和IMSI用于ONENET平台登录,在ONENET平台需要使用当前设备的 IMEI 和 IMSI 进行设备注册。模组设备实体创建需要的配置数据,称为设备注册码。虽然有专门的软件生成注册码,但是不同平台接入或者接入方式有更改时,则需要重新生产注册码并更新程序,本文将生成注册码移植到程序中,只提供相应的接口修改。注意:本流...

2019-04-21 08:48:31 4146 1

原创 #、##、__VA_ARGS__、##__VA_ARGS

1.#用来把参数转换成字符串2.## 用于宏函数的替换部分,这个运算符把两个语言符号组合成单个语言符号,为宏扩展提供了一种连接实际变元的手段。3.__VA_ARGS__ 是一个可变参数的宏,实现思想就是宏定义中参数列表的最后一个参数为省略号#define pri(...) printf(__VA_ARGS__)4.##__VA_ARGS__宏前面加上##的作用在于,当可变参数的个数...

2019-03-22 10:47:23 124

原创 关于CPU进入休眠喂狗的问题

在大多数项目中都会使用到看门狗以维护系统稳定性,但对于低功耗产品需要定时进入休眠以降低功耗。实际应用中可以在CPU休眠之前设置RTC定时唤醒,唤醒后立即喂狗然后继续进入到休眠模式,比如系统设置了看门狗复位时间间隔为15s,那么在进入休眠模式之前配置RTC闹钟中断时间为13s,这样每隔13s唤醒一次喂狗。...

2019-03-06 20:45:33 1150

原创 __no_init

__no_init 是给编译器linker使用,为禁止系统启动时初始化,是定义在不初始化的区域。可用于硬件复位或看门狗异常复位标记状态,但是在系统上电复位时为不定值。__no_init unsigned int ram_val1;__no_init unsigned int ram_val2 @0x20000400;int main(void){ printf("ram_val1:%d,...

2019-03-06 17:36:45 4793 1

原创 AT命令简易解析

AT命令的应用场合很多,也是应用最为通用的命令。而AT命令并不像通信协议特定的数据帧格式,解析AT命令需要匹配每个字符。AT命令一般有三种状态:查询、执行、设置,根据这三种状态,本文将使用一种简易的方法解析AT命令。宏定义AT命令的三种状态:#define QUERY_CMD 0x01 /* 查询命令 */#define EXECUTE_CMD 0x02 /* 执行命令 */#def...

2019-02-02 16:56:39 11433 7

原创 FLASH存储参数

在嵌入式项目中,经常使用FLASH来存储关键的参数。这些参数影响整个设备系统的运行,保证参数存储的正确性是至关重要,常用的方法是通过校验参数存储以及参数备份的方式去降低出错的风险,本文将讲述具体的实现方法。在FLASH上开放两个扇区,用于备份数据,可有效降低丢失数据风险。#define SPI_FLASH_PARAM_SIZE 0x1000#define SPI_FLASH_PARAM_BA...

2019-01-26 16:21:02 2843

原创 STM32 简易按键KEY处理

一般的按键功能都需要做防抖处理,中间就涉及到了阻塞延迟,但是在实际项目开发中应当尽量避免不必的阻塞。可以使用计时功能去处理按键防抖,在系统滴答时钟中断中实现按键功能检测,按键功能处理是在main里实现。#define KEY_NR 2/* 短按 */#define KV_KEY1 0x01#define KV_KEY2 0x02/* 长按 */#define LKV_KE...

2019-01-13 01:05:06 4157

原创 竭尽所能提高FATFS SD性能

最近开发log存储器,移植FATFS文件系统,四路串口通道接收数据后存储在SD卡内。在调试中设置串口波特率为256000bps,每10ms发送250个字节,四路通道同时工作,MCU主频为120MHz,使用一张CLASS4 8G卡和一张CLASS10 16G卡进行测试。在测试中使用8G卡速度上不来导致数据丢失,为了提高SD卡兼容性与稳定性,竭力挖掘SD性能,提高写入速度。开发环境主控MCU : ...

2019-01-11 14:38:51 4115 1

原创 简单LED灯管理

LED灯的设置较为简单,现在整合起来管理,让应用更加方便。#define LEDn 2#define LED_TIMEBASE 10 #define LED_MODE_OFF 0x00#define LED_MODE_ON 0x01#define LED_MODE_FLASH 0x02#define LED_IDLE 0x00#define LED_BUSY 0x01typ...

2019-01-08 23:01:37 388 1

原创 STM32F205 HAL库 RTC软件复位后不准

在RTC初始化配置时,没考虑到软件复位的情况,当频繁实现软件系统复位时,发现RTC时间有偏差。原因在于每一次软件复位后都会再次重新初始化RTC,中间便会产生时间差,频繁复位偏差更明显。解决方法:通过RTC备份寄存器的判断以重新初始化RTC,只有当系统断电时备份寄存器才会清空,如系统选择软件复位则不需重新初始化RTC。RTC_HandleTypeDef RtcHandle;#define RT...

2019-01-08 19:16:22 2943

原创 简单实用软件定时器

在嵌入式开发中,定时器是及其常见的,但考虑到芯片外设资源有限,可以自己写一个软件定时器,应用于对计时不是太严格的场合,比如LED的闪烁,定时处理某一任务等等。该软件定时器的原理是基于滴答系统时钟中断,在中断中获得时间基,该时间基可由用户自由设置。另外有两种方式可以实现软件定时处理功能,后面会讲到。首先说明一下该软件定时器的结构体元素:#define STIMER_EMPTY 0 #defi...

2019-01-06 11:28:22 3484 1

原创 STM32 HAL库 UART

HAL库HAL库的使用节省了开发时间,省去了繁琐的芯片初始化流程,并且每个文件都有详细的功能说明,整合了不少代码。HAL库使用虽然简便,但实际上让开发没能得心应手,了解库函数的使用,只是能让程序能用,但并不一定好用,真正的开发还得需要去了解每一个库函数的代码。提供给用户最多的就是回调函数,可能还要去了解什么情况下才会回调。HAL库 UART本文HAL库基于芯片STM32L0中使用,在库中提供...

2019-01-05 14:51:50 1468

空空如也

空空如也

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

TA关注的人

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