基于MPU6050的INS惯性导航和实时姿态检测系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MPU6050的INS惯性导航和实时姿态检测系统

1.项目目标及功能说明

1.1项目目标

学习使用正点原子探索者开发板,并熟悉开发板上的MPU6050六轴传感器的工作原理和各函数的调用过程。同时学习开发板的扩展接口,尝试在开发板上扩展蓝牙模块,并实现开发板与手机等含有蓝牙模块的电子设备通过蓝牙连接并进行数据的传输。在完成上述内容的基础上,实现将MPU6050六轴传感器的加速度计和陀螺仪的数据传送到手机上,在手机上实现陀螺仪的变化效果展示。同时通过串口将MPU6050数据传送到电脑上,通过Matlab编程处理数据,实现惯性导航的简单展示。

1.2系统功能说明

系统最主要的功能有两个:一个是在手机端能够展示开发板上MPU6050陀螺仪的姿态变化,通过一个立方体的转动来表示陀螺仪的转动;另一个是在电脑端能够读取MPU6050的数据,并通过对数据的处理还原数据中存储的MPU6050的姿态变化,简单展现出惯性导航的效果。

在实现系统最主要的两个功能过程中,还需要实现一些基础功能。开发板能够通过蓝牙与手机连接并传输数据;开发板能够通过串口将数据发送出去;在电脑端能够读取开发板上串口输出的数据等。

2.需求分析

●惯性导航系统用于各种运动机具中,包括飞机、潜艇、航天飞机等运输工具及导弹,然而成本及复杂性限制了其可以应用的场合。但是,存在一种情形:

卫星一旦突然因故障、敌方打击或干扰(如太阳风暴)等原因无法提供服务,这对依赖GPS、北斗等卫星导航系统作为唯一PNT(Position、Navigation、Time)信息来源的系统来说可能是致命的灾难。

作为目前为止卫星导航系统最好的备援——惯性导航系统(INS),将于届时发挥出巨大的作用,其精度完全可以媲美GPS等卫星导航系统。并且它不需要外部参考就可确定当前位置、方向及速度,从而使它自然地不受外界的干扰和欺骗。

定位、导航和授时服务对军队而言就像氧气对人类一样不可或缺,因此通过研究新机理、研制新设备、开发新算法,以摆脱人员和系统设备对GPS的依赖,具有极大的战略意义。

●姿态监测系统可广泛应用于关键资产姿态变化的无线实时监控。由于目前移动智能终端设备的数量和质量逐步提升,因此,通过计算机上传统的上位机软件进行姿态监测,逐渐暴露出了自身的缺点——串口传输无法实现无线监测、计算机相比智能终端便携性极差。

因此,使用无线传输(蓝牙、红外、WIFI、GSM等)的技术,开发一款在移动智能终端可以实时显示物体姿态的应用,具有很高的实用价值和广泛的市场应用前景。

3.开发环境

移动终端操作系统:Android 4.4.4 KitKat

计算机操作系统:Windows 8.1 Pro x64

串口开发:MATLAB R2014a

开发板IDE:Keil uVision5

Android IDE:Eclipse Java EE IDE for Web Developers

Android Development Toolkit 23.0. 4.1468518

4.项目进展情况

到目前为止,我组已实现了以下功能:

1.STM32F4开发板上MPU6050六轴传感器的数据获取并显示在LCD屏幕

上。

2.在LCD屏幕上绘出圆形图案,且圆形图案能根据MPU6050六轴传感器的

姿态变化而运动,传感器倾斜角度越大,图案运动速度越快。

3.扩展蓝牙模块,能通过蓝牙模块与手机连接并进行数据通信。

4.根据函数提供的帧格式定义数据帧,并通过USART接口将数据帧传给PC

端。

5.在手机端能根据蓝牙获取的MPU6050六轴传感器的陀螺仪数据绘出立

方体,立方体能在可接受的时间延迟内实时展现MPU6050的姿态变化(转动方向和角度)。

6.在PC端能通过对从USART接口获取的数据帧进行解析获取MPU6050加

速度传感器和陀螺仪的数据,并根据数据帧中设置的校验位进行数据校验。

7.在PC端能根据解析出的加速度传感器和陀螺仪数据,在可接受的误差范

围内还原MPU6050的姿态变化(包括位移、转动方向和角度),实现一个简单的惯性导航系统。

5.系统设计

5.1IIC总线工作原理

5.1.1总线的构成及信号类型

I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。

开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。

应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

这些信号中,开始信号是必须的,结束信号和应答信号都可以不要,IIC总线时序图如图 5.1.1-1所示。

图5.1-1IIC总线时序图

探索者STM32F4开发板板载的EEPROM芯片型号为24C02。该芯片的总容量为256字节,通过IIC总线与外部连接。STM32F4开发板有硬件IIC,但是设计的比较复杂,而且稳定性不好,所以我组使用GPIO软件模拟IIC来对24C02进行读写。同时使用软件更具有移植性,只要有IO口,将软件移植过去就能使用

相关文档
最新文档