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://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |