InvenSense提供的这一信息被认为是准确和可靠的。然而,InvenSense公司不对其使用或因其使用而造成的对第三方专利或其他权利的任何侵犯承担任何责任。规格如有更改,恕不另行通知。InvenSense保留对本产品进行更改的权利,包括其电路和软件,以改进其设计和/或性能,无需事先通知。InvenSense不对本文件所载信息和规格作出任何保证,无论是明示的还是默示的。InvenSense不对因本文件所载信息或因使用本文件所述产品和服务而引起的任何索赔或损害承担任何责任。这包括但不限于基于侵犯专利、版权、面具作品和/或其他知识产权的索赔或损害赔偿。
2.用途
运动驱动程序是一种传感器驱动层,它可以方便地配置和利用InvenSense的运动跟踪设备的车载数字运动处理器(DMP)功能。运动驱动程序是嵌入式MotionApps软件的一个子集,可以更容易地移植到多个MCU架构。本文档说明了运动驱动程序库的实际使用。包含的教程是为了与TI公司的MSP 430嵌入式微控制器兼容而编写的,因此,本文推荐了MSP 430体系结构的一些知识。MSP 430仅用作示例平台。运动驱动可以很容易地移植到任何单片机。
4.运动驱动程序简介
运动驱动程序由一组用ANSI兼容C编写的API组成,用于使用和配置InvenSense运动跟踪设备的不同功能,包括DMP操作。本教程提供了一个示例项目,它将从加速度计和陀螺仪(6轴四元数)的融合四元数据发送到PC的串口,由用python编写的客户端处理,以便在屏幕上显示和旋转一个三维立方体。此驱动程序支持6轴和9轴InvenSense设备。
在本运动驱动程序教程中讨论了以下内容:
-如何加载、配置和利用DMP函数。
-MSP 430的I2C驱动程序示例。
-陀螺仪和加速度计自测试功能调用的I2C驱动示例基于硬件自测试文档。(请参阅产品寄存器映像文件以获得完整的自我测试描述)。
-硬件寄存器内的加速度计校准和更新参数。
-陀螺仪校准
-配置低功率加速度计运动中断的能力
-改变陀螺仪和加速度计的传感器输出数据速率(ODR)的能力。
-选择在FIFO中填充哪些数据的能力。
5. 在CodeComposerStudio中打开运动驱动程序项目
1.在“文件”菜单下选择“导入”。
2.选择现有的CCS Eclipse项目。
3.单击“浏览”按钮选择“运动驱动程序”文件夹
图为打开运动驱动程序项目的步骤1至3。
4.单击Finish打开运动驱动程序项目
显示步骤4和带有运动驱动程序的最终IDE的图
5.在SIMPLE_APPS文件夹下打开文件motiondrivertest.c。该文件将被称为“主要”文件贯穿本教程。主文件包括关于如何配置Motion驱动程序的示例,并包含源代码中的文档,以帮助用户阅读每一行代码。
6.更详细地解释运动驱动程序和功能规范
6.1 DMP
DMP每次芯片供电时都会利用这一功能。运动驱动程序DMP图像支持的功能包括:
6.2 I2C驱动程序与InvenSense IC接口
1.本文为MSP430F5528平台实现了I2C驱动程序,并给出了相应的源程序,使其可以方便地移植到任何MCU平台上,msp 430_i2c_写和msp430_i2c_c_read函数为MSP430F5528提供了读写数据的主要功能,而msp 430_i2c_Enable和msp 430_i2c_禁用是为MSP430F5528提供的启用和禁用I2C通信的功能。这些函数要求读取和写入从地址、寄存器地址、长度和数据。有关实现的更多细节,请查看文件mps430_i2c.c。
6.3陀螺仪和加速度计自检功能调用
MPU的陀螺仪和加速度计自检功能允许用户测试陀螺仪和加速度计的机械和电气部分。当自我测试启动时,车载电子设备将启动相应的传感器.这种驱动将陀螺仪的验证质量移动到相当于预定义的科里奥利力的距离上,模拟加速度计上的外力。这将导致传感器输出的变化,这反映在输出信号中。输出信号与自测试寄存器相结合,用于观察自测试响应.自测试响应(STR)定义如下:
此自测试响应用于通过从自测试响应的工厂剪裁中查找更改来确定该部件是否通过了自我测试:
INTMPU_RUN_SEL_TEST(Long*gyro,Long*Accel)API由运动驱动程序提供,用于对陀螺仪和加速度计进行自我测试。如果成功执行自测试,则返回0。从MPU_RUN_Self_test获得的陀螺仪值应缩放到当前的陀螺仪灵敏度设置。通过调用mpu_get_gyro_sens(Float*sens),可以获得陀螺的灵敏度参数。缩小陀螺仪和加速度计的Q16格式化值,以存储新获得的陀螺偏置值。
执行加速度计自测试是为了确保加速度计正常工作,并与函数MPU_run_Self_test()一起完成,该函数依次调用另一个函数Accel_Self_test(Accel,Accel_st)。Accel_st参数是指通过调用get_st_biases从MPU寄存器获得的标准加速度计偏置值。
有关更多详细信息,请参阅Motion_Driver_test.c中的Run_Self_test函数作为示例。有关更多信息,请参阅下列函数:
·mpu_run_Self_test
·get_st_biases
·Accel_S
6.4加速度计校准
如果必要的话,加速度计校准可以更新偏置值,并且可以通过在平面上放置板来比较零运动期间的当前加速度值来完成。加速度计校准采用Accel_Self_test函数(Accel,Accel_st),它包含在inv_mpu.c中。此函数从MPU寄存器中检索加速度计的标准偏差(函数调用get_st_biases返回标准偏差) 和电流加速度计读数,然后计算两者的位移方差。2将其与分配给实例的最大值和最小g值进行比较。test_s结构,即在inv_mpu.c中
若要更新存储在MPU硬件寄存器中的加速度计偏置值,请调用MPU_SET_Accel_偏差。注意,陀螺仪偏差在DMP存储器中被更新,而加速度计偏差被存储在硬件寄存器中。有关更多详细信息,请参阅实现MPU_SET_Accel_偏差。
6.5陀螺仪校准
DMP提供了一种基于设备的无运动状态来校准陀螺仪偏置的方法。可以通过在DMP特性中选择DMP_FeatureGyro_CAL来启用此特性。一旦启用了这一功能,如果板在8秒内没有移动,陀螺仪将被自动校准。
6.6低功率加速度计运动中断
这一段解释了驱动程序中帮助实现低功耗(LP)加速度计中断模式的部分,该模式可用于在没有运动的情况下睡眠主机处理器,直到检测到运动为止。函数INT MPU_LP_MORY_INTERCT(无符号短阈值、无符号字符时间、无符号字符lpa_freq)使用三个参数(在嵌入式运动驱动程序API规范文档中进一步描述)配置LP加速度计中断模式,包括阈值、时间和LPA频率。
6.7改变陀螺仪和加速度计传感器ODR的能力
InvenSense MPU为陀螺仪和加速度计提供了可编程的输出数据速率范围。它可以通过向SMPLRT_DIV写入一个值来配置,陀螺仪输出数据速率可以给出如下:
运动驱动程序提供了一种使用MPU_SET_SAMPLE_Rate函数配置陀螺仪ODR的简单方法。但是,当DMP被打开时,陀螺仪被预设为200 Hz的采样率,并且不应该使用MPU_SET_SAMPLE_Rate。当关闭DMP时,最大值可以配置为8khz,这取决于MPU设备规范。当DLPF被禁用时(DLPF_CFG=0或7),则最大陀螺输出速率为8 kHz,当启用DLPF时为1 kHz。最大加速度计输出速率为1 kHz。对于大于1 kHz的采样率,相同的加速度计采样可以输出到FIFO、DMP和传感器寄存器超过一次。
8
如果使用带有集成罗盘的InvenSense MPU-9150或连接到二级I2C总线的辅助罗盘的6轴MPU,则运动驱动器具有从指南针中提取原始数据的能力。通过使用INV_XYZ_COMPASS传感器掩码,运动驱动函数MPU_SET_Sensors()也用于配置指南针。配置完后,函数MPU_SET_COMPAST_SAMATE_Rate()将以最大为100 Hz.mpu_get_罗经_reg()函数设置罗盘采样率,以允许在芯片帧中获取罗盘数据。
9.罗盘集成与校准
本节提供关于如何集成和校准指南针以实现9轴传感器融合的一般指南和参考。运动驱动源不涵盖或支持任何指南针校准或9轴传感器融合参考指出在本节。本节主要介绍指南针的校准和集成,并指出TI和MEMSense的参考文献,其中提供了应用说明和来源。
磁强计的测量受地球磁场的存在和局部铁磁材料的影响。考虑到理想情况,沿三轴磁强计的磁场分量应形成一个原点为(0,0,0)的球体。但是,由于外部影响的存在,情况并非如此。如果这些外部效应来自固定的磁场,或“硬铁”,那么它将引起(∆x,∆y,∆z)对球体原点的偏移,并且可以很容易地根据类似偏置偏移校正的地球场数据进行校准。“软铁”效应是材料弯曲和扭曲局部磁场的结果,从而导致角度精度误差。软铁效果也应该消除,以获得正确的指南针值。
下面的链接解释并给出了进行指南针校准和指南针集成的源代码。应用程序说明将更详细地解释如何使用硬件。
10.SPI驱动程序实现
根据产品规格,InvenSense MPU通过I2C和/或SPI接口与MCU平台通信。本教程的参考MCU MSP430F5528包含一个USCI系统,它提供了与SPI一起使用的四个模块。默认情况下,MotionFit板没有连接到MSP 430的SPI行,因此使用一个单独的项目来测试SPI接口,如果需要,用户需要一个开发板来测试SPI驱动程序。
开发板使用UCSIB1模块作为SPI接口,因此目前SPI驱动程序被配置为与该UCSIB1模块一起使用。SPI驱动程序实现不是运动驱动程序最终发布的一部分,而是作为一个单独的模块来提供,以说明MPU和MSP 430之间的SPI通信接口。有关更多细节,请参阅msp430sp.c和msp430_sp.h。
总之,SPI驱动程序实现中有四个主要的功能,即
11.附录
11.1附录A
移动驱动程序客户端控制台应用程序作为移动驱动程序的客户端提供。此应用程序作为Python源代码提供。它具有以下功能:
提供一个简单的多维数据集演示,用于可视化传感器融合输出。2.由于运动驱动程序客户端是作为Python源代码提供的,因此用户需要安装以下组件才能运行Python环境:
下载Python2.x Windows安装程序(pyserial-2.5.win32.exe)
以下网站下载Windows/Python2.5版本(pygame-1.9.1 Relase.win32-py2.5.exe)
您必须先安装Python,然后才能安装pySeries和pyGames库。安装python之后,使用命令提示符来安装pySeries。在命令提示符中输入“python installpyerial.py”。
为了方便起见,您可能需要将Python添加到您的路径中。在Windows中,右键单击“我的计算机”,选择“属性”,然后在“高级”选项卡中选择“环境变量”。在用户变量(顶部部分)中,选择PATH,单击Edit,然后将目录C:\Python 25添加到列表的末尾。
一旦有了工作的Python环境,就可以使用命令从命令行运行MotionDriverClient应用程序。要接受数据,必须给python定位python多维数据集的位置。运动驱动程序-client.py<comport>其中<comport>在安装USB驱动程序时检测到COM#。
11.2附录B
按󰃡+R键打开Run对话框。键入devmgmt.msc并按Enter键打开设备管理器。
设备管理器对话框将被打开。通过单击箭头展开端口部分,并查找嵌入式运动应用程序(CDC),端口标题旁边应该有一个com号。这是移动驱动程序客户端应该使用的端口号i.e.
12.参考文献
完整的Word格式文档51黑下载地址:
mpu6050翻译成中文资料.docx
(395.85 KB, 下载次数: 8)
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |