姿态传感器数据采集

  姿态传感器可以说是整个无人机飞控系统的核心部件,我们在使用姿态传感器的时候mpu6050时通过I2C对模块的相对寄存器进行初始化和读取,根据精度设置对读取出来的各个轴电压值进行单位转换便可以得到各个轴的角速度和加速度。

I2C通讯总线

Mpu6050是一种运动传感器,他集成了加速度计和陀螺仪,MCU通过I2C协议和模块通信进行数据采集,I2C协议是一种双线、半双工的串行通信总线。
I2C有两根信号线:数据线SDA和时钟线SCL,根据SDA和SCL的状态组合进行信号的实现。包括起始、停止、发送数据、接收数据信号、等待应答、发送应答等信号。这些信号根据通信协议时序进行组合实现了I2C主从设备的通信。开始信号是时钟线SCL为高电平状态时数据线SDA由高变低,结束信号则是时钟线SCL为高电平状态时数据线由低变高。应答信号为主从机在正确接收一字节数据后下一个周期时钟线SCL为低时要将数据线SDA拉低表示信息收到的确认,等待应答便是等待数据线的拉低,等待一段时间没有应答便视作非应答,非应答便是一个周期内数据线SDA保持高电平状态。数据的接收和发送则是分为三部分:关于是读还是写的命令、目标寄存器地址、数据数据大小则是每个周期信号线SCL为低电平时SDA的高低电平状态反应出的二进制8bit数据。
I2C是一主多从的总线,想要确定写入对象就必须根据设备的地址,I2C从机地址为7bit,一般最后一位可以根据引脚状态进行控制为1或者0,那么就表示每一个从机可以选择两个地址,这就意味着同样的模块在同一个端口可以挂载两个。


I2C应用操作的核心便是通信时序,MCU作为主机操作和作为从机的传感器模块进行通讯:写操作为发送起始位、发送7bit设备地址加1bit的写操作位0、发送寄存器地址、发送写入数据,每次都要等待应答,发送停止位。发送寄存器和数据的操作可以进行多次,依次向传感器写入数据。
而主机读数据的流程则是主机发送7bit设备地址加1bit的写操作位0(后等待应答)、发送寄存器地址(后等待应答)、发送起始位、发送7bit设备地址加1bit的读操作位1(后等待应答)、读取数据、未完毕发送应答,完毕非应答,发送停止信号。由于公认STM32的硬件I2C有一些问题,所以I2C的信号、基本时序函数和读写操作都由软件IO口的模拟完成。

MPU6050配置及数据读取

操作MPU6050我们必须先了解它的设备地址和各个寄存器地址的作用。设备地址WHO I AM为7bit的0X68或者0X69(由引脚可改变地址),但是在实际操作中是左移一位0XD0并加上读写位。作为8bit数据的写入。MPU6050采用16位的ADC进行陀螺仪和加速度计的模数转换。
MPU6050的初始化主要包括启动时钟PWR_MGMT_1(解除休眠),SMPLRT_DIV设置陀螺仪采样率,CONFIG设置低通滤波频率、FS_SEL陀螺仪自检和测量范围、AFS_SEL加速度计自检和测量范围位FS_SEL和AFS_SEL 。传感器的数据是16位ADC值,而寄存器地址只有8位,所以有高位寄存器和低位寄存器,从两个寄存器中读取两个8位字节后使用高位强制转化16位后右移8位并和低8位数据与运算,合成16位完整数据。
此数据为ADC值,要将其转化为物理量必须根据之前设置的测量范围FS_SEL和AFS_SEL进行单位转换,陀螺仪单位为度/秒,0对应±250度/秒,1对应±500度/秒,2对应±1000度/秒,3对应±2000度/秒。我选择FS_SEL=3,则意味着读出的16进制数字(有符号)的最大值32767对应着的物理元素为2000度/秒,所以灵敏度是32767/2000=16.40,也就是一度反应出的数字是16.4,读出的数字除以灵敏度便是度/秒为单位的角速度数值。同理加速度计AFS_SEL的0,1,2,3对应着±2,±4,±8,±16,我使用±2G,32767/2=16384,便是灵敏度,数据/16384得出加速度数值,单位为重力加速度g,即9.8m/s²(赤道位置,不同位置重力加速度不同),所以此值要乘以当地的重力加速度就可以表示加速度了。

校准则是水平校准和加速度计校准,水平校准是默认校准时的状态是水平,即roll pitch值为0,将校准时的角度进行记录赋值给offset,然后存入FLASH,后面确定的姿态值是读取的角度数据都减掉offset后的值。加速度校准可简单地将六个面的最大值和最小值取出标定,或者使用椭圆模型法标定。

四旋翼无人机飞控系统设计(姿态传感器MPU6050)相关推荐

  1. 四旋翼无人机飞控系统设计(姿态解算)

    姿态解算   姿态传感器读出加速度和角速度,而对一个系统的自动控制往往需要更加上层和贴近应用的的一个属性:角度.所以需要通过加速度和角速度进行数据融合转化得到姿态角度.   以MPU6050为例,姿态 ...

  2. 四旋翼无人机飞控系统设计(控制信号获取及转化)

    无人机遥控器控制信号获取   控制无人机首先要考虑的是给无人机下指令,其次是让其从当前状态达到我们的指令状态.遥控器和飞控的沟通是首先要构建的一环.需要把遥控器的脉冲宽度转化成无人机的状态角度.    ...

  3. 四旋翼无人机飞控系统设计(PID控制算法)

    PID控制算法   PID控制器是一个结构简单并且成熟稳定的控制器,在工业上应用广泛.包括比例(Proportion).积分(Integral).微分(Differential)三个控制元素,三者是对 ...

  4. ESP-Drone四旋翼无人机控制板上的MPU6050陀螺仪芯片I2C总线测试

    1.摘要 一款新的控制板卡在第一次使用时,都需要进行硬件功能的测试,以确保所有的硬件都能够正常工作后,才可以进入后续的软件编程阶段,ESP-Drone四旋翼无人机的控制板使用了mpu6050陀螺仪芯片 ...

  5. 基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)

    前言:本文为手把手教学飞控核心知识点之一的姿态解算--MPU6050 姿态解算(飞控专栏第2篇).项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与 ...

  6. 四旋翼无人机硬件,飞控,基站,NX

    四旋翼无人机硬件 一 总览 四旋翼无人机的硬件组成:无刷电机(4个):电子调速器(简称电调,4个,常见有好盈.中特威.新西达等品牌):螺旋桨(4个,需要2个正浆,2个反浆):飞控:电池(11.1v航模 ...

  7. 【控制】四旋翼无人机姿态角分析

    搞起来,从建模到控制,再到仿真 Link: [控制]<多无人机协同控制技术>周伟老师-第3章-面向协同控制的无人机单机控制 文章目录 1. 坐标系 2. 角度介绍 航向角 yaw ange ...

  8. matlab simulink四旋翼无人机模糊PID控制姿态

    1.内容简介 略 532-可以交流.咨询.答疑 2.内容说明 四旋翼无人机控制灵活.安全性能较高,能够实现空中悬停.翻滚.任意角度横 向飞行,常常替代人们从事高空危险作业,给我们的生活与工作带来了很多 ...

  9. 基于STM32F407四旋翼无人机 --- 姿态解算讲解(四元数)(叉积法融合陀螺仪数据和加速度数据)(五)

    基于STM32F407四旋翼无人机 --- 姿态解算讲解(五) 姿态解算 姿态解算定义 欧拉角 四元数 四元数性质 方向余弦矩阵 四元数方向余弦矩阵 叉积法融合陀螺仪数据和加速度数据 叉积运算 一阶龙 ...

  10. 四旋翼无人机仿真之hector_quadrotor无人机(ROS + Gazebo)(三)传感器数据读取与复现(IMU、GPS)

    系列文章目录 文章1:四旋翼无人机仿真之hector_quadrotor无人机(ROS + Gazebo) 文章2:四旋翼无人机仿真之hector_quadrotor(二)键盘teleop_twist ...

最新文章

  1. 皮一皮:这口罩不错,再来一打...
  2. Docker最全教程——Redis容器化以及排行榜实战(十三)
  3. 通过MapReduce统计每个单子在每个文件中出现的次数(FileSplit的使用),单词作为key,所在文本和次数作为value进行统计
  4. antlr 教程_ANTLR教程– Hello Word
  5. C++ 11 深度学习(十)多线程
  6. [html] 用一个div模拟textarea的实现
  7. 常用adb shell命令大全
  8. SQL Server中的查询优化技术:提示和技巧
  9. Tabs Outliner(标签系统)
  10. 计算机毕业设计JAVA房屋租赁系统mybatis
  11. 【考试总结贴】工程测量学
  12. 邮箱如何设置smtp服务器端口,如何改变你的SMTP端口来允许发送电子邮件
  13. 谁说门户已死?从世界杯看新浪的四大优势
  14. java自行车s码适合身高_公路自行车尺寸与身高的选择
  15. 《使用Python进行自然语言处理》学习笔记四
  16. 石狮子吃了四十四个涩柿子
  17. superoj738 诸葛亮
  18. 百度DMA+小度App的蓝牙语音解决方案入局
  19. STM32F103C8T6————GPIO工作模式及其部分函数
  20. 超图软件的下载及授权配置

热门文章

  1. QQ斗地主记牌器(只支持角色版)
  2. Mapabc——地图标注
  3. 笔记(八)Jetson Nano 跑通 jetson-inference
  4. Epub与Kindle
  5. Atitit 木马病毒自动启动-------------win7计划任务的管理
  6. php开发自学经典.pdf_PHP从入门到精通(第4版) 明日科技 中文完整pdf扫描版[42MB]
  7. 如何使用工时表软件跟踪时间和成本?
  8. 重庆江北鲁能旁边孩子学计算机,家长们注意!重庆多个区县中小学划片公布!这些学校民转公...
  9. Java练习题2-基础(含解析)
  10. SSH框架(spring+struts2+hibernate)+Mysql实现的会议管理系统(功能包含会议室管理、会议管理、用户管理、部门管理、设备管理、个人资料编辑等)