Arduino MPU6050 DMP 數據獲取,處理

一、連接圖

二、DMP使用介紹

         官方並沒有任何使用的介紹,只提供了源碼。這裏先給出我通過源碼分析出來的和dmp有關的寄存器。

         1. USER_CTRL

Bit7是DMP_EN(1:打開DMP),Bit3是DMP_RESRT(1:重置DMP)

         2. INT_ENABLE

Bit1是DMP_RDY_EN(1:打開DMP中斷,當DMP數據準備好後,觸發該中斷)

         3. INT_STATUS

Bit1是DMP_RDY_INT(DMP data ready interrupt狀態)

         4. FIFO_EN

如果所有位都設爲0的話,則將dmp的值傳給FIFO。

 

三、源碼

         1.Arduino 源碼 https://github.com/DTQX/Arduino-sample/tree/master/MPU6050_DMP6

         下載下來可直接使用,readme中有使用說明。

 

         2.MPU6050官方提供的代碼

https://github.com/DTQX/Other-stuff/tree/master/6050_DMP。

我加了有關DMP的註釋,供閱讀。

 

四、DMP數據大概讀取流程

         初始化mpu--初始化傳感器--開啓傳感器--設置FIFO的來源爲dmp--初始化dmp--加載dmp程序--重置FIFO,開啓dmp--讀取dmp數據。

         產生dmp數據已準備中斷--檢驗FIFO的數據字節大小是否>=一個dmp packet的字節數大小--讀取dmp數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章