mpu6050寄存器地址
最近開(kāi)始使用了6軸姿態(tài)傳感器MPU6050,準(zhǔn)備學(xué)習(xí)一下姿態(tài)融合,于是打算寫(xiě)下了這篇博客。使用MPU6050之前,建議先閱讀一遍他的寄存器手冊(cè),這樣初學(xué)者能夠更進(jìn)一步了解MPU6050的地址,能夠更快速理解配置代碼。廢話不多說(shuō),先看MPU6050的寄存器。這個(gè)寄存器是指定陀螺儀輸出速率的除法器,用于生成MPU-6050的采樣速率。這個(gè)寄存器的地址是0x19
采樣率公式:Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV)
Sample Rate :采樣頻率 Gyroscope Output Rate:陀螺儀輸出頻率
SMPLRT_DIV:8位無(wú)符號(hào)值。 采樣速率由陀螺儀輸出速率除以該值確定。
對(duì)于陀螺儀輸出頻率需要主要一點(diǎn):當(dāng)DLPF低通濾波器禁用時(shí)(即DLPF_CF為0或7)陀螺儀輸出頻率為8KHz,當(dāng)其使能使,陀螺儀輸出頻率為1KHz。
這個(gè)寄存器是用于配置陀螺儀和加速度計(jì)的外部幀同步(FSYNC)引腳采樣和數(shù)字低通濾波器(DLPF)設(shè)置。0x1A是這個(gè)寄存器的地址,EXT_SYNC_SET是3位無(wú)符號(hào)值。 配置FSYNC引腳采樣,一般情況下是給000(即禁止輸入),DLPF_CF是設(shè)置低通濾波器的頻率。這個(gè)頻率一般情況下是帶寬的 1/2 即可。(具體詳細(xì)內(nèi)容可以見(jiàn)寄存器手冊(cè))
MPU-60X0是全球首例9軸運(yùn)動(dòng)處理傳感器。它集成了3軸MEMS陀螺儀,3軸MEMS加速度計(jì),以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP(DigitalMotionProcessor),可用I2C接口連接一個(gè)第三方的數(shù)字傳感器,比如磁力計(jì)。擴(kuò)展之后就可以通過(guò)其I2C或SPI接口輸出一個(gè)9軸的信號(hào)(SPI接口僅在MPU-6000可用)。MPU-60X0也可以通過(guò)其I2C接口連接非慣性的數(shù)字傳感器,比如壓力傳感器。
MPU-60X0對(duì)陀螺儀和加速度計(jì)分別用了三個(gè)16位的ADC(0~65535),將其測(cè)量的模擬量轉(zhuǎn)化為可輸出的數(shù)字量。為了精確跟蹤快速和慢速的運(yùn)動(dòng),傳感器的測(cè)量范圍都是用戶可控的,陀螺儀可測(cè)范圍為±250,±500,±1000,±2000°/秒(dps),加速度計(jì)可測(cè)范圍為±2,±4,±8,±16g。
芯片尺寸4×4×0.9mm,采用QFN封裝(無(wú)引線方形封裝),可承受最大10000g的沖擊,并有可編程的低通濾波器。
MPU6050的內(nèi)部框圖如下圖所示:其中,需要了解的引腳有:SCL和SDA是連接MCU的IIC接口,MCU通過(guò)這個(gè)IIC接口來(lái)控制MPU6050,另外還有一個(gè)IIC接口:AUX_CL和AUX_DA,這個(gè)接口可用來(lái)連外部從設(shè)備比如磁力計(jì),這樣就可以組成一個(gè)九軸傳感器。VLOGIC是IO口電壓,該引腳最低可以到1.8V電壓,我們一般直接連VDD即可。AD0是從IIC接口(接MCU)的地址控制引腳,該引腳控制的是IIC地址的最低位。如果接GND,則MPU6050的IIC地址是:0X68,如果接VDD,則是0X69。需要注意的是:這里的地址0x68和0x69是不包含用于數(shù)據(jù)傳輸?shù)淖畹臀坏?,因此并不是八位?shù)據(jù),如0x68表示的是1101000,0x69表示的則是1101001,通常最低位用于表示IIC主機(jī)的讀取數(shù)據(jù)/寫(xiě)數(shù)據(jù)模式。selftest為自檢,自檢的作用是可用來(lái)測(cè)試傳感器的機(jī)械和電氣結(jié)構(gòu)。也就是說(shuō)通過(guò)自檢來(lái)測(cè)試芯片是否損壞。自檢啟動(dòng)后,電路會(huì)使傳感器工作并且產(chǎn)生輸出信號(hào)。關(guān)于自檢的具體說(shuō)明,官方芯片手冊(cè)里有詳細(xì)描述。
MPU6050官方的寄存器手冊(cè)上共介紹了40個(gè)寄存器的內(nèi)容和功能,在此我只選取一些常用的和重要的寄存器作為了解。
說(shuō)明:該寄存器指定陀螺儀輸出速率的分頻器,用于為MPU-60X0生成采樣速率。
傳感器寄存器輸出,F(xiàn)IFO輸出,DMP采樣,運(yùn)動(dòng)檢測(cè),靜止檢測(cè)和自由落體檢測(cè)都基于這個(gè)采樣頻率。
采樣頻率=陀螺儀輸出頻率/(1+SMPLRT_DIV)
當(dāng)DLPF(數(shù)字低通濾波器,見(jiàn)寄存器Configuration)禁用時(shí)(DLPF_CFG=0or7),陀螺輸出頻率=8kHz;當(dāng)DLPF使能,陀螺儀輸出頻率=1KHz。注意:加速度計(jì)輸出頻率為1KHz。這意味著,當(dāng)采樣頻率大于1KHZ時(shí),同個(gè)加速度計(jì)采樣得到的數(shù)據(jù),可能不止一次輸出到FIFO、DMP、傳感器寄存器。
說(shuō)明:該寄存器為陀螺儀和加速度計(jì)配置外部幀同步(FSYNC)管腳的采樣和數(shù)字低通濾波(DLPF)設(shè)置。
其中,數(shù)字低通濾波器DLPF由DLPF_CFG配置。根據(jù)下表所示的DLPF_CFG值對(duì)加速度計(jì)和陀螺儀進(jìn)行濾波。其中,F(xiàn)S為陀螺儀輸出頻率。SMPLRT_DIV由預(yù)設(shè)定的采樣頻率根據(jù)上述的公式計(jì)算得出。一般情況下,DPLF濾波頻率為采樣頻率的一半,如設(shè)定采樣頻率為50Hz,由表可知當(dāng)FS為1kHz,SMPLRT_DIV的值為1000/50-1=19。
說(shuō)明:該寄存器是用來(lái)觸發(fā)陀螺儀自檢和配置陀螺儀的滿量程范圍。
其中,XG_ST、YG_ST、ZG_ST分別用來(lái)設(shè)置陀螺儀X軸、Y軸、Z軸自檢,置0則不觸發(fā)自檢。FS_SEL[1:0]用于設(shè)置陀螺儀的滿量程,如下表:我們一般設(shè)置為3,即滿量程為±2000°/s,由于采用16位ADC即0-65536,則靈敏度G=65536/4000=16.4LSB/(°/s),LSB表示最低有效位,即1°/s對(duì)應(yīng)的數(shù)字量為16.4。最終即可將陀螺儀輸出的數(shù)字量數(shù)據(jù)轉(zhuǎn)化為角速度。
說(shuō)明:該寄存器是用來(lái)觸發(fā)加速度計(jì)自檢和配置加速度計(jì)的滿量程范圍。同時(shí)這個(gè)寄存器也可以用于配置數(shù)字高通濾波器(DHPF)。
其中,XA_ST、YA_ST、ZA_ST分別用來(lái)設(shè)置加速度計(jì)X軸、Y軸、Z軸自檢,置0則不觸發(fā)自檢。AFS_SEL[1:0]用于選擇加速度計(jì)的滿量程范圍,如下表:我們一般設(shè)置為0,即滿量程為±2g,由于采用16位ADC即0-65536,則靈敏度G=65536/4=16384LSB/(g),LSB表示最低有效位,即1g對(duì)應(yīng)的數(shù)字量為16384。最終即可將加速度計(jì)輸出的數(shù)字量數(shù)據(jù)轉(zhuǎn)化為加速度。
說(shuō)明:該寄存器存儲(chǔ)最近加速度計(jì)的測(cè)量值。加速度計(jì)根據(jù)采樣頻率(由采樣分頻寄存器寄存器設(shè)定)寫(xiě)入到這些寄存器。即采樣頻率為50Hz,寫(xiě)入數(shù)據(jù)的時(shí)間間隔為0.02s。加速度計(jì)測(cè)量值寄存器和溫度測(cè)量值寄存器,陀螺儀測(cè)量值寄存器,外部傳感器數(shù)據(jù)寄存器都是由兩組寄存器構(gòu)成:一個(gè)內(nèi)部寄存器集和一個(gè)用于用戶讀取的寄存器集。
加速度計(jì)傳感器的內(nèi)部寄存器集合里的數(shù)據(jù)根據(jù)采樣頻率更新。以此同時(shí),每當(dāng)串行接口處于閑置狀態(tài),面向用戶的讀取寄存器集合會(huì)復(fù)制內(nèi)部寄存器集合的數(shù)據(jù)值。這保證了突發(fā)讀取時(shí)傳感器寄存器可以讀到相同的采樣時(shí)刻的測(cè)量值。需要注意的是,如果沒(méi)有突發(fā)讀取,則用戶負(fù)責(zé)通過(guò)檢查數(shù)據(jù)就緒中斷(DataReadyinterrupt)來(lái)確保瞬時(shí)的一組單字節(jié)讀取對(duì)應(yīng)于單字節(jié)的采樣數(shù)據(jù)。MPU6050是一個(gè)6軸姿態(tài)傳感器,可以測(cè)量芯片自身X、Y、Z軸的加速度、角速度參數(shù),通過(guò)數(shù)據(jù)融合,可進(jìn)一步得到姿態(tài)角,常應(yīng)用于平衡車(chē)、飛行器等需要檢測(cè)自身姿態(tài)的場(chǎng)景
3軸加速度計(jì)(Accelerometer):測(cè)量X、Y、Z軸的加速度(加速度計(jì)具有靜態(tài)穩(wěn)定),不具有動(dòng)態(tài)穩(wěn)定性。)如一個(gè)車(chē)在斜坡上,椅子和靠背都受到了力的作用,但是車(chē)是水平向前的,因此當(dāng)物體運(yùn)動(dòng),使用加速度計(jì)來(lái)測(cè)量,測(cè)出來(lái)的角度就會(huì)不準(zhǔn)確。
3 軸陀螺儀傳感器(Gyroscope):測(cè)量X、Y、Z軸的角速度 :具有動(dòng)態(tài)穩(wěn)定性,不具有靜態(tài)穩(wěn)定性。
舉個(gè)例子:游樂(lè)園的旋轉(zhuǎn)飛椅,中間的旋轉(zhuǎn)軸轉(zhuǎn)的越快,掛在上面的椅子就會(huì)飛的越遠(yuǎn),直接測(cè)量?jī)蓚€(gè)對(duì)向椅子之間的距離就可以得到,旋轉(zhuǎn)軸的角速度。
如果想得到角度,只需要對(duì)角速度積分即可。 當(dāng)物體靜止時(shí),角速度值會(huì)因?yàn)樵肼?,無(wú)法完全歸0,經(jīng)過(guò)積分的不斷累積,就會(huì)導(dǎo)致產(chǎn)生的角速度有緩慢的飄逸。
(因?yàn)榧铀俣扔?jì)和陀螺儀是互補(bǔ)的,因此采用互補(bǔ)濾波,就可進(jìn)行姿態(tài)解算(簡(jiǎn)單))。
3軸磁場(chǎng)傳感器 9軸 飛機(jī)機(jī)頭的上仰和下傾 稱(chēng)為俯仰
氣壓傳感器 10軸 飛機(jī)機(jī)身左翻滾和右翻滾稱(chēng)為ROLL
通過(guò)數(shù)據(jù)融合可以得到歐拉角(飛控算法) :互補(bǔ)濾波,卡爾曼濾波
歐拉角: 飛機(jī)機(jī)身保持水平,機(jī)頭向左右轉(zhuǎn)向,稱(chēng)為偏航