自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 无人机地面站QT版

下载链接

2019-09-03 16:18:17 4151 8

原创 无人机地面站VS版

界面如图所示,源代码如下

2019-09-03 16:16:35 1898 5

原创 ubuntu如何把调整cpu策略

一、安装cpu频率管理软件sudo apt-get install cpufrequtils二、查看cpu当前状态cpufreq-info其中available cpufreq governors:performance,powersave表示我的cpu目前只支持高性能和省电两个模式所有的策略模式包括powersave, userspace, ondemand, conservati...

2019-08-06 19:47:51 621

原创 px4源码----位置估算(position_estimator_inav_params.h)

#pragma once#include <parameters/param.h>struct position_estimator_inav_params { float w_z_baro; //权重 z轴 气压计位置 0.5 float w_z_gps_p; //权重 z轴 GPS位置 0.005f...

2019-05-31 21:13:35 709

原创 px4源码(inertial_filter.cpp)

#include "px4_defines.h"#include "inertial_filter.h"#include <cmath>//惯性滤波预测void inertial_filter_predict(float dt, float x[2], float acc){ if (PX4_ISFINITE(dt)) { if (!PX4_ISFINITE(acc)...

2019-05-31 19:41:10 380

原创 ubuntu18.04-LTS搭建PX4编译环境

安装python、git、qtsudo apt-get install python-argparse git-core wget zip \ python-empy qtcreator cmake build-essential genromfs -y安装仿真软件和需要的库文件,注意体验下面两句的区别(一句代码后有 -y ,一句没有) 1. sudo apt-get instal...

2019-05-30 10:46:49 4356

原创 VSCODE插件

Bracket Pair Colorizer 括号颜色c/c++ 支持Chinese 中文支持vscode-icons 设置文件图标主题translate to chinese 翻译

2019-05-26 13:39:27 338

原创 px4编译

如果下载速度特别慢,可以使用手机的4G网络位置确定mkdir -p ~/srccd ~/src开始下载指定版本的px4,在这里是v1.7.0版本git clone -b v1.7.0 https://github.com/PX4/Firmware.git 添加子模块:cd Firmwaregit submodule initgit submodule update --ini...

2019-05-20 14:43:20 1987 1

原创 FileZilla以root用户登录Linux

一、首先创建root用户的密码sudo passwd root然后输入要设置的密码,然后再输入一次,成功!二、修改配置文件filezila默认只能登录普通用户,如果想要root用户也能登录,必须修改/etc/ssh/sshd_config,把里面的PermitRootLogin改为yes。然后重启sshvim /etc/ssh/sshd_configsudo se...

2018-08-04 14:55:50 4640

原创 【Tensorflow】tf.placeholder函数

tf.placeholder(dtype, shape=None, name=None) 此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值参数: 1. dtype:数据类型。常用的是tf.float32,tf.float64等数值类型 2. shape:数据形状。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定 3. n...

2018-07-03 20:24:43 251

原创 make menuconfig错误的解决办法

如果使用make menuconfig的方式配置内核,又碰巧系统没有安装ncurses库(ubuntu系统 默认就没有安装此库),就会出现错误,错误信息大体上如下: * Unable to find the ncurses libraries or the * required header files. * ‘make menuconfig’ requires the ncurses l...

2018-04-03 15:30:03 16232 1

原创 linux配置环境变量

安装步骤1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了 2、使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图 通过下图可以看到解压成功了,并且解压后的文件存放了/ho...

2018-03-31 17:48:43 250

原创 win10系统如何通过ssh远程登录另一台电脑的deepin linux系统

1 首先,更新一下软件源,打开”终端窗口”,输入”sudo apt-get update” ##、2、然后,在终端中,输入”sudo apt-get install openssh-server”3、安装完成,验证一下是否安装成功,执行如下命令查看一下sshd的进程 sudo ps -e |grep ssh如下图所示说明ssh服务已经启动。   也可以查看sshd服...

2018-03-28 18:18:17 4489 1

原创 Uboot启动过程 之 硬件初始化

硬件初始化1、设置异常向量 2、CPU进入SVC模式(管理模式) 3、设置控制寄存器地址 4、关闭看门狗 5、屏蔽中断 6、设置MPLLCON、UPLLCON、CLKDIVN 7、关闭MMU、cache 8、初始化RAM控制寄存器 9、复制UBoot第二阶段代码到RAM 10、设置堆栈 11、清除BSS段 12、跳转到第二阶段代码入口...

2018-03-26 21:21:49 1397

原创 Uboot启动过程详解

U-Boot 启动内核的过程可以分为两个阶段,两个阶段的功能如下:(1)第一阶段的功能 硬件设备初始化 加载 U-Boot 第二阶段代码到 RAM 空间 设置好栈 跳转到第二阶段代码入口 (2)第二阶段的功能 初始化本阶段使用的硬件设备 ...

2018-03-26 20:26:52 226

原创 QT 上位机(串口通信)

timer类#ifndef MYTIMER_H#define MYTIMER_H#include &lt;QTimer&gt;#include &lt;qdatetime.h&gt;class MyTimer : public QTimer{public: MyTimer(); QString gettimer(); QString timetoStr...

2018-03-25 20:09:55 3964

原创 QT 上位机(网络通信)

Client类////////////////////////////////////////////////////////////////////#ifndef CLIENT_H#define CLIENT_H#include &lt;QDialog&gt;#include &lt;QAbstractSocket&gt;#include "mythread.h"class ...

2018-03-23 17:16:20 5433

原创 STM32学习笔记——SystemInit()函数

时钟频率 在stm32固件库3.0中对时钟频率的选择进行了大大的简化,原先的一大堆操作都在后台进行。系统给出的函数为SystemInit()。但在调用前还需要进行一些宏定义的设置,具体的设置在system_stm32f10x.c文件中。 文件开头就有一个这样的定义: //#define SYSCLK_FREQ_HSE HSE_Value //#define SYSCLK_FREQ

2017-11-27 14:47:42 1583

原创 四轴思路(持续更新)

遥控器:发送数据 MPU6050:加速度做一维卡尔曼滤波,角速度做一介低通滤波。 然后四元数姿态解算。 接着串级PID控制平衡,外环角度环,内环角速度环。 高度控制:高度和速度进行互补滤波(气压计得到的是高度,速度通过Z轴加速度积分获得,而加速度通过陀螺仪的Z轴得到。) 最后电机输出。四元数姿态解算公式: 第一行为载体坐标下X方向单位化向量,第一列为x向量,第二列为y向量,第三列为z

2017-10-12 02:54:32 605

原创 MPU6050的数据获取、分析与处理

一、基本思路 1、初始化I2C 2、将数据写入MPU6050 3、读出数据 二、 MPU6050的数据格式 我们感兴趣的数据位于0x3B到0x48这14个字节的寄存器中。这些数据会被动态更新,更新频率最高可达1000HZ。下面列出相关寄存器的地址,数据的名称。注意,每个数据都是2个字节。0x3B,加速度计的X轴分量ACC_X 0x3D,加速度计的Y轴分量ACC_Y 0x3F,加速度计的

2017-09-26 02:48:35 3575

原创 I2C初始化

一、管脚初始化 由于STM32的硬件初始化比较复杂,这里我们采用软件初始化,选用端口PB6,PB7,以匿名的I2C初始化程序为例/***************I2C GPIO定义******************/#define ANO_GPIO_I2C GPIOB#define I2C_Pin_SCL GPIO_Pin_6#define I2C_Pin_SDA G

2017-09-26 00:30:17 6589

原创 低通滤波(一阶)

1. 一阶滤波算法的原理 一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。 一阶低通滤波的算法公式为: Y(n)=(1-α) * Y(n-1) + αX(n) 式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。 一阶低通滤波法采用本次采样

2017-09-14 16:59:24 3978 2

原创 卡尔曼滤波代码整理(一维)

struct _1_ekf_filter{ float LastP; float Now_P; float out; float Kg; float Q; float R; };void kalman_1(struct _1_ekf_filter *ekf,float input) { ekf->Now_P = ekf->La

2017-09-14 16:32:09 2532

原创 互补滤波

最近在研究小四轴的飞行,姿态检测主要用到的传感器是MPU6050。从MPU6050读出来的加速度和角速度数据最后要转成姿态,可以转换成欧拉角(偏航角、俯仰角和滚转角)或四元数表示,为了减少计算量(欧拉角涉及正弦运算,运算量相对较大),方便在STM32主控上实现,可以转换成四元数表示。那么问题来了,四元数姿态融合算法哪家强?这里介绍圆点博士小四轴飞控开源代码关于四元数姿态融合的算法以及代码实现,不能...

2017-09-14 16:16:33 1449

原创 动态链表实例

// file9.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "stdlib.h"#define NULL 0#define TYPE struct stu#define LEN sizeof (struct stu)struct stu{ int num; int age; struct stu *nex

2017-01-18 19:27:34 453

原创 动态链表

struct stu{ int num; int age; struct stu *next;};struct stu *creat(int n)//返回指针的指针函数{ struct stu *head, *p_last, *p_new; int i; for (i = 0; i<n; i++) { p_new = (

2017-01-18 18:39:47 379

原创 指针函数

//输入星期几,返回星期几#include "stdio.h"#include "stdlib.h"char *day_name(int day);void main(){ int a; printf("Input Day No :"); scanf("%d",&a);//输入星期几 if(a<0)exit(0);//exit(1)发生错误后退出exit(0

2017-01-17 10:33:34 246

原创 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来

void func(int n);void main(){ printf("please input 5 numbers:"); func(5);}void func(int n){ if(n <= 1) { char next = getchar(); putchar(next); } else {

2017-01-17 02:39:39 15390

原创 利用递归方法求5!。

void main(){ int x = func(5); printf("5! = %d\n",x);}int func(int x){ if(x == 0) return 1; else { return x * func(x - 1); }}

2017-01-17 02:22:49 645 1

原创 could not get lock /var/lib/dpkg/lock -open等

用ubuntu安装eclipse时,用apt-get命令安装软件包时,总报错:E:could not get lock /var/lib/dpkg/lock -open等出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。解决方法:输入以下命令sudo rm /var/cache/apt/archives/locks

2017-01-15 23:17:44 299

转载 c语言中的字符数组与字符串(转载)

1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 ‘\

2017-01-15 22:20:41 269

原创 找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍 例如:将142857的首位数字1移动到末位之后得到的数是428571,而428571=3*1

找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍 例如:将142857的首位数字1移动到末位之后得到的数是428571,而428571=3*142857,因此142857是Troitsky数 编程要求: (1) 编写函数int Troitsky(long a[]),其功能是求出10000以内的所有Troitsky

2017-01-15 21:48:08 434

原创 (排序法之快速法)对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序////main.c#include "stdafx.h"#include "head.h"int main(){ /**********定义数组并原样输出*************/ char a[4][7] = { 'g','f','e','d','c','b','a',

2017-01-15 00:06:45 944

原创 字符串数组的冒泡排序,从小到大(冒泡法前几篇有例子)

字符串数组的冒泡排序,从小到大//main.c//author//连续输入是个字符,以回车结束#include "stdafx.h"//输入10个数字#define N 10char min(char a, char b);char max(char a, char b);int main(){ //int a[N] = { 10,9,8,7,6,5,4,3,2,1 };

2017-01-14 02:37:23 2770

原创 将整数转换为相应的一个字符数组。 分析:从个位提取数字,组合字符 符号位的处理 12345=>"12345"

将整数转换为相应的一个字符数组。 分析:从个位提取数字,组合字符 符号位的处理 12345=>”12345”// author:yangyang//main.c#include "stdafx.h"#include "math.h"char string[20];//存放字符char *pstring = string;//指向字符的指针void tostring(lo

2017-01-14 02:32:30 659

原创 从一个字符数组中读出相应的整数、实数(有点问题,待调试,求大神帮忙)

从一个字符数组中读出相应的整数、实数// author:yangyang。//main.c#include "stdafx.h"void shishupanduan(int flag);char s[11];char *p = s;void main(){ gets_s(s); char zhengshu[10]; int i = 0; int dian

2017-01-14 02:28:37 470

原创 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。

查找介于n1与n2(0到32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。// author:yangyang//main.c#include "stdafx.h"#include "math.h"#define A 0//定义左边界,可以修改#define B 500//定义右边界char string[20];//存放

2017-01-14 02:23:44 994

原创 对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。

对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。//main.c//auther:yangyang#include "stdafx.h"#include "math.h"void jishu(int a);int sum = 0;//求和int start = 1;int main(){ while (1)

2017-01-14 02:11:34 1021

原创 整数数组的冒泡排序(从小到大)

整数数组的冒泡排序(从小到大)//auther:yangyang// main.c//说明,输入十个数,每输入一个空格顿开,回车结束#include "stdafx.h"#define N 10//输入10个数字int min(int a, int b);int max(int a, int b);int main(){ //int a[N] = { 10,9,8,7,6,5

2017-01-14 02:06:21 1672

原创 打印字符串、复制字符串、连接字符串

打印字符串、复制字符串、连接字符串//author:yangyang//main.c#include "stdafx.h"#include "string.h"int main(){ char str1[15], str2[15],str3[15]; printf("请输入第一个字符串:"); gets_s(str1); printf("请输入第二个字符串:

2017-01-14 01:51:51 736

QT 网络通信

QT实现网络通信,可以通过网络助手进行调试 QT实现网络通信,可以通过网络助手进行调试

2018-03-23

空空如也

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

TA关注的人

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