一种基于STM32的加速度检测系统及方法与流程

文档序号:17631882发布日期:2019-05-11 00:10阅读:1031来源:国知局
一种基于STM32的加速度检测系统及方法与流程

本发明涉及振动检测参数测量技术领域,具体涉及一种基于stm32的加速度检测系统及方法。



背景技术:

振动检测技术广泛应用于航空、航天发动机的振动状态检测等领域,在产品研究、设计、生产的各个过程中振动检测与分析技术得到了广泛的应用,在振动检测技术研究中,加速度为振动相关量中极为重要的参数,现有检测加速度的三轴加速度传感器,不能建立绝对或相对的航向,当安装在一个固定的设备中时,三轴加速度传感器可以测量单个加速度轴上的加速度,当处于固定状态时,可以根据垂直重力加速度矢量计算出滚动和倾斜角度,然而,航向是围绕z轴得到的,无法从重力矢量计算出航向,因此,现有三轴加速度传感器不能提供航向值,达不到振动检测对于加速度值的要求。



技术实现要素:

为解决现有技术中存在的不足,本发明提供一种基于stm32的加速度检测系统及方法,可随时检测航向,达到振动检测对于加速度值的要求,并在超过预定加速度时进行报警。

本发明为解决其技术问题所采用的技术方案是:一种基于stm32的加速度检测系统,包括stm32控制器模块、加速度检测模块、gps模块、无线通信模块、报警模块、显示器和电源模块,所述加速度检测模块、gps模块、无线通信模块、报警模块、显示器和电源模块分别与stm32控制器模块连接;所述stm32控制器模块采用stm32f4开发板,所述加速度检测模块采用mpu6050六轴加速度传感器,所述gps模块采用s1216f8-bd模组,所述无线通信模块采用nrf24l01芯片,所述显示器采用tftlcd模块,所述电源模块采用ams117-3.3型进行供电,所述报警模块采用蜂鸣器进行报警。

进一步的,所述mpu6050六轴加速度传感器的sda引脚、scl引脚、int引脚分别连接于stm32f4开发板的三个i/o口,mpu6050六轴加速度传感器的中断输出连接于stm32f4开发板的pc0引脚,mpu6050六轴加速度传感器的ad0引脚接地;所述mpu6050六轴加速度传感器的器件地址为0x68;所述mpu6050六轴加速度传感器内部包括3轴陀螺仪、3轴加速度传感器、一个用于连接外部磁力传感器第二iic接口和数字运动处理器dmp。

进一步的,所述s1216f8-bd模组与stm32f4开发板的三个i/o口连接,s1216f8-bd模组的usart3_rx引脚、gbc_tx引脚、usart3_tx引脚、gbc_rx引脚均由跳线帽短接,s1216f8-bd模组的txd引脚与stm32f4开发板的pb11引脚相连,s1216f8-bd模组的rxd引脚与stm32f4开发板的pb10引脚相连。

进一步的,加速度检测方法包括如下步骤:先初始化mpu6050六轴加速度传感器、s1216f8-bd模组、nrf24l01芯片、tftlcd模块、电源模块和报警模块,然后利用子程序mpu6050.c中的数字运动处理器dmp库,初始化mpu6050六轴加速度传感器及使能dmp,在死循环里面不停读取mpu6050六轴加速度传感中温度传感器、加速度传感器、陀螺仪、dmp姿态解算后的欧拉角数据,同时,在tftlcd模块上面显示温度和欧拉角,由s1216f8-bd模组得到当前地点的经纬度、高度、速度、定位模式、用于定位卫星数、可见卫星数和utc日期时间;

主程序对欧拉角、加速度传感器的原始数据和陀螺仪的数据进行定义,初始化完成后进行显示设置,进入主循环部分,设定预期加速度值,然后进行逻辑分析,并进行报警和错误分析,而后进行数据运算,并将合适且正确的数据显示在tftlcd模块上,然后显示gps模块定位信息;当加速度值超过设定值,stm32控制器模块触发蜂鸣器进行警报;stm32f4开发板上的led灯指示程序正在运行。

进一步的,所述mpu6050六轴加速度传感器与stm32控制器模块之间的通信方法如下:首先在工程中stm32控制器模块硬件分组下添加iic支持的底层驱动文件myiic.c和源文件myiic.h,同时增加用来编写mpu6050六轴加速度传感器相关的底层驱动mpu6050.c源文件和对应的头文件mpu6050,最后添加dmp驱动库代码,所述dmp驱动库代码包含inv_mpu.c和inv_mpu_dmp_motion_driver.c两个源文件以及若干个头文件,所述inv_mpu.c源文件包含传感器变量的定义,所述inv_mpu_dmp_motion_driver.c源文件包含对dmp姿态解算后的俯仰角、横滚角和航向角、四元数转欧拉角公式。

进一步的,所述gps模块与stm32控制器模块之间的通信方法如下:在工程中stm32控制器模块硬件分组下添加gps.c程序,分析可视卫星状态输出语句信息,包括如下步骤:读出可视卫星状态输出语句的条数,读出可见卫星总数,读出卫星编号,读出卫星仰角,读出卫星方位角,读出卫星信噪比,切换到下一个可视卫星状态输出语句信息,读出经纬度,之后配置gps模块的波特率,配置脉冲宽度,设置更新速率,之后进行显示设置。

进一步的,在初始化mpu6050六轴加速度传感器部分,包括初始化iic总线,将mpu6050六轴加速度传感器复位,然后进行唤醒传感器,并设置采样率,关闭中断,关闭fifo,设置为x轴参考;还包括温度部分的子函数,陀螺仪的子函数,加速度值的子函数;通过mpu_get_temperature获取mpu6050六轴加速度传感器自带温度传感器的温度值后,mpu_get_gyroscope和mpu_get_accelerometer分别读取陀螺仪和加速度传感器的原始数据;初始化mpu6050六轴加速度传感器部分还包括iic接口的读和写的程序,用于进行与stm32控制器模块的通信和数据交换。

进一步的,由s1216f8-bd模组得到当前地点的经纬度、高度、速度、定位模式、用于定位卫星数、可见卫星数和utc日期时间的具体步骤为:首先通过天线接收到从卫星发出的16进制数,随后转换成十进制数,并且得到整数和小数的长度,去掉负号后,分别得到整数部分数据和小数部分数据,然后分析gpgsv的信息,包括gpgsv的条数、可见卫星总数、卫星编号、卫星仰角、卫星方位角、卫星信噪比;然后分析gps固定数据语句输出信息,包括gps状态、用于定位的卫星数、海拔高度、卫星编号、位置精度强弱度因子、水平精度强弱度因子、垂直精度强弱度因子,然后对gpgsv和gngga进行解析,即可得到当前地点的经纬度、高度、速度、定位模式、用于定位卫星数、可见卫星数和utc日期时间信息。

本发明的有益效果是:采用mpu6050六轴加速度传感器,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间,其自带的数字运动处理器,实现了姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度;本发明除了可以进行加速度检测,也可以实时显示被测物姿态角度具体数值;增加了gps模块,还可以发送或者显示位置信息,比起现有加速度检测装置,增加了功能,减小了体积,提升了实用性。

附图说明

图1为本发明的整体结构框图;

图2为本发明的mpu6050六轴加速度传感器引脚图;

图3为本发明的mpu6050六轴加速度传感器与stm32f4开发板连接示意图;

图4为本发明的s1216f8-bd模组与stm32f4开发板连接示意图;

图5为本发明的tftlcd模块引脚图;

图6为本发明的nrf24l01芯片与stm32f4开发板连接示意图;

图7为本发明的电源模块引脚图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

实施例1

一种基于stm32的加速度检测系统,包括stm32控制器模块、加速度检测模块、gps模块、无线通信模块、报警模块、显示器和电源模块,所述加速度检测模块、gps模块、无线通信模块、报警模块、显示器和电源模块分别与stm32控制器模块连接;所述stm32控制器模块采用stm32f4开发板,所述加速度检测模块采用mpu6050六轴加速度传感器,所述gps模块采用s1216f8-bd模组,所述无线通信模块采用nrf24l01芯片,所述显示器采用tftlcd模块,所述电源模块采用ams117-3.3型进行供电,所述报警模块采用蜂鸣器进行报警。

所述mpu6050六轴加速度传感器的sda引脚、scl引脚、int引脚分别连接于stm32f4开发板的三个i/o口,mpu6050六轴加速度传感器的中断输出连接于stm32f4开发板的pc0引脚,mpu6050六轴加速度传感器的ad0引脚接地;所述mpu6050六轴加速度传感器的器件地址为0x68;所述mpu6050六轴加速度传感器内部包括3轴陀螺仪、3轴加速度传感器、一个用于连接外部磁力传感器第二iic接口和数字运动处理器dmp。

所述s1216f8-bd模组与stm32f4开发板的三个i/o口连接,s1216f8-bd模组的usart3_rx引脚、gbc_tx引脚、usart3_tx引脚、gbc_rx引脚均由跳线帽短接,s1216f8-bd模组的txd引脚与stm32f4开发板的pb11引脚相连,s1216f8-bd模组的rxd引脚与stm32f4开发板的pb10引脚相连。

加速度检测方法包括如下步骤:先初始化mpu6050六轴加速度传感器、s1216f8-bd模组、nrf24l01芯片、tftlcd模块、电源模块和报警模块,然后利用子程序mpu6050.c中的数字运动处理器dmp库,初始化mpu6050六轴加速度传感器及使能dmp,在死循环里面不停读取mpu6050六轴加速度传感中温度传感器、加速度传感器、陀螺仪、dmp姿态解算后的欧拉角数据,同时,在tftlcd模块上面显示温度和欧拉角,由s1216f8-bd模组得到当前地点的经纬度、高度、速度、定位模式、用于定位卫星数、可见卫星数和utc日期时间;

主程序对欧拉角、加速度传感器的原始数据和陀螺仪的数据进行定义,初始化完成后进行显示设置,进入主循环部分,设定预期加速度值,然后进行逻辑分析,并进行报警和错误分析,而后进行数据运算,并将合适且正确的数据显示在tftlcd模块上,然后显示gps模块定位信息;当加速度值超过设定值,stm32控制器模块触发蜂鸣器进行警报;stm32f4开发板上的led灯指示程序正在运行。

所述mpu6050六轴加速度传感器与stm32控制器模块之间的通信方法如下:首先在工程中stm32控制器模块硬件分组下添加iic支持的底层驱动文件myiic.c和源文件myiic.h,同时增加用来编写mpu6050六轴加速度传感器相关的底层驱动mpu6050.c源文件和对应的头文件mpu6050,最后添加dmp驱动库代码,所述dmp驱动库代码包含inv_mpu.c和inv_mpu_dmp_motion_driver.c两个源文件以及若干个头文件,所述inv_mpu.c源文件包含传感器变量的定义,所述inv_mpu_dmp_motion_driver.c源文件包含对dmp姿态解算后的俯仰角、横滚角和航向角、四元数转欧拉角公式。

所述gps模块与stm32控制器模块之间的通信方法如下:在工程中stm32控制器模块硬件分组下添加gps.c程序,分析可视卫星状态输出语句信息,包括如下步骤:读出可视卫星状态输出语句的条数,读出可见卫星总数,读出卫星编号,读出卫星仰角,读出卫星方位角,读出卫星信噪比,切换到下一个可视卫星状态输出语句信息,读出经纬度,之后配置gps模块的波特率,配置脉冲宽度,设置更新速率,之后进行显示设置。

在初始化mpu6050六轴加速度传感器部分,包括初始化iic总线,将mpu6050六轴加速度传感器复位,然后进行唤醒传感器,并设置采样率,关闭中断,关闭fifo,设置为x轴参考;还包括温度部分的子函数,陀螺仪的子函数,加速度值的子函数;通过mpu_get_temperature获取mpu6050六轴加速度传感器自带温度传感器的温度值后,mpu_get_gyroscope和mpu_get_accelerometer分别读取陀螺仪和加速度传感器的原始数据;初始化mpu6050六轴加速度传感器部分还包括iic接口的读和写的程序,用于进行与stm32控制器模块的通信和数据交换。

由s1216f8-bd模组得到当前地点的经纬度、高度、速度、定位模式、用于定位卫星数、可见卫星数和utc日期时间的具体步骤为:首先通过天线接收到从卫星发出的16进制数,随后转换成十进制数,并且得到整数和小数的长度,去掉负号后,分别得到整数部分数据和小数部分数据,然后分析gpgsv的信息,包括gpgsv的条数、可见卫星总数、卫星编号、卫星仰角、卫星方位角、卫星信噪比;然后分析gps固定数据语句输出信息,包括gps状态、用于定位的卫星数、海拔高度、卫星编号、位置精度强弱度因子、水平精度强弱度因子、垂直精度强弱度因子,然后对gpgsv和gngga进行解析,即可得到当前地点的经纬度、高度、速度、定位模式、用于定位卫星数、可见卫星数和utc日期时间信息。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1