資料介紹
描述
MPU-9250 是目前最先進(jìn)的加速度計(jì)、陀螺儀和羅盤(pán)組合小尺寸傳感器之一。它取代了流行的 MPU-9150,降低了功耗,改善了陀螺儀噪聲和羅盤(pán)滿(mǎn)量程范圍性能。它具有許多高級(jí)功能,包括低通濾波、運(yùn)動(dòng)檢測(cè)甚至可編程專(zhuān)用處理器。
它內(nèi)部包括 MPU-6500,其中包含一個(gè) 3 軸陀螺儀和一個(gè) 3 軸加速度計(jì),以及AK8963 ,市場(chǎng)領(lǐng)先的 3 軸數(shù)字羅盤(pán)。MPU-9250 使用 16 位模數(shù)轉(zhuǎn)換器 (ADC) 對(duì)所有 9 個(gè)軸進(jìn)行數(shù)字化。
MPU-9250 是一款高性能加速度計(jì)、陀螺儀和磁力計(jì)選項(xiàng),適用于手勢(shì)識(shí)別、自平衡機(jī)器人、手機(jī)、健身監(jiān)測(cè)等應(yīng)用,以及需要檢測(cè)運(yùn)動(dòng)方向和幅度以及旋轉(zhuǎn)的類(lèi)似應(yīng)用。在閱讀帶有 Arduino 的 MPU9250 傳感器一文中,我們介紹了該模塊以及如何與其交互。以及,使用互補(bǔ)濾波器來(lái)獲得相對(duì)位置。現(xiàn)在讓我們看看 MPU9250 模塊的全部功能:混合使用陀螺儀、加速度計(jì)和磁力計(jì)來(lái)獲得實(shí)時(shí)準(zhǔn)確位置。
陀螺儀
陀螺儀是一種用于測(cè)量或保持方位和角速度的裝置。角速度以每秒度數(shù)(或弧度)為單位測(cè)量,是單位時(shí)間內(nèi)物體旋轉(zhuǎn)角度的變化。
加速度計(jì)
加速度計(jì)傳感器是測(cè)量加速度的集成電路 (IC),加速度是單位時(shí)間內(nèi)速度的變化。測(cè)量加速度可以獲取物體傾斜和振動(dòng)等信息。
通常,g用作加速度的單位,相對(duì)于標(biāo)準(zhǔn)重力 (1g = 9.80665m/s2)。
磁力計(jì)
磁力計(jì)提供有關(guān)設(shè)備傳感器檢測(cè)到的磁場(chǎng)的信息,理論上可以暴露用戶(hù)的位置。磁力計(jì)傳感器以 μT(微特斯拉)為單位測(cè)量所有三個(gè)物理軸(x、y、z)的磁場(chǎng)。
接線圖
注意:該模塊的工作電壓為 3.3 伏,盡管某些版本具有允許將其連接到 5V 的穩(wěn)壓器。請(qǐng)務(wù)必在使用前檢查您的模塊規(guī)格。
相對(duì)和絕對(duì)方向
相對(duì)方向是一個(gè)對(duì)象相對(duì)于另一個(gè)對(duì)象的位置和方向的恢復(fù)。根據(jù)方向,存在三種類(lèi)型的角速率測(cè)量:
- 偏航:從上方看物體時(shí)在平面上的水平旋轉(zhuǎn)。
- 俯仰:從前面看到的物體的垂直旋轉(zhuǎn)。
- 滾動(dòng):從前面看物體時(shí)的水平旋轉(zhuǎn)。
使用平面的每個(gè)軸的圖形表示:
絕對(duì)方向是磁力計(jì)的常見(jiàn)用例之一,表示相對(duì)于地球平面的固定方向(固定到磁場(chǎng)矢量和重力矢量)。
噪音和錯(cuò)誤
在理想情況下,具有應(yīng)用公式的傳感器數(shù)據(jù)將為我們提供精確和精確的角度。實(shí)際情況有所不同,因?yàn)槟承┮蛩貢?huì)影響傳感器輸出。
通常,當(dāng)您使用加速度計(jì)四處移動(dòng)時(shí),它會(huì)經(jīng)歷運(yùn)動(dòng)加速度。額外的加速度值可能會(huì)影響定向精度。另一個(gè)與加速度計(jì)相關(guān)的問(wèn)題是噪聲:電信號(hào)中不需要的干擾。加速度計(jì)能夠測(cè)量任何角度,但是它的讀數(shù)有噪聲并且即使使用低通濾波器也有一定的誤差范圍。
另一方面,陀螺儀存在偏置不穩(wěn)定性,其中陀螺儀的初始零讀數(shù)會(huì)由于設(shè)備內(nèi)固有缺陷和噪聲的集成而導(dǎo)致隨時(shí)間漂移。
在需要通過(guò)傳感器融合進(jìn)行絕對(duì)定位的應(yīng)用中,磁力計(jì)對(duì)于校正陀螺儀漂移是絕對(duì)必要的。磁力計(jì)問(wèn)題是它們的非理想響應(yīng)面和位置依賴(lài)性。
獲取實(shí)時(shí)位置
有不同的算法來(lái)解決錯(cuò)誤和噪聲問(wèn)題。我們將使用四元數(shù)。四元數(shù)用于純數(shù)學(xué),但在應(yīng)用數(shù)學(xué)中也有實(shí)際用途,特別是涉及三維旋轉(zhuǎn)的計(jì)算。它們可以與其他旋轉(zhuǎn)方法一起使用,例如歐拉角和旋轉(zhuǎn)矩陣,或者作為它們的替代方法,具體取決于應(yīng)用程序。MPU9250 庫(kù)的使用使我們擺脫了對(duì)四元數(shù)所有復(fù)雜性的理解,并且實(shí)現(xiàn)已經(jīng)完成。
磁偏角
應(yīng)根據(jù)您要獲得準(zhǔn)確數(shù)據(jù)的位置來(lái)設(shè)置磁偏角。您可以在此處找到您所在城市的磁偏角。
請(qǐng)注意,此處的偏角目前為 1? 38'。提供的格式需要轉(zhuǎn)換為代碼的十進(jìn)制度數(shù)。每度有60分鐘,其中38分鐘為度的38/60,即0.63。1? 38' 的十進(jìn)制格式的赤緯為 1.63。使用您所在位置的偏角更新代碼MAGNETIC_DECLINATION常量。
磁性校準(zhǔn)
有一種簡(jiǎn)單的方法可以自動(dòng)校準(zhǔn)并糾正磁力計(jì)數(shù)據(jù)的一些錯(cuò)誤。以八字形模式緩慢移動(dòng)傳感器,并跟蹤在六個(gè)主要方向中的每一個(gè)方向上測(cè)量的最小和最大場(chǎng)。可以從后續(xù)數(shù)據(jù)中減去平均值,這相當(dāng)于將響應(yīng)曲面重新置于原點(diǎn)的中心。該庫(kù)具有自動(dòng)為我們執(zhí)行的校準(zhǔn)功能,我們只需要在校準(zhǔn)開(kāi)始時(shí)將傳感器移動(dòng)成 8 字形即可。
為 MPU9250 安裝 Arduino 庫(kù)
要與 MPU9250 模塊交互,我們可以使用原始實(shí)現(xiàn)或利用現(xiàn)有庫(kù)。該庫(kù)提供了一個(gè)與模塊通信的接口,為我們節(jié)省了大量時(shí)間。另一個(gè)優(yōu)勢(shì)是多年來(lái)由社區(qū)測(cè)試和改進(jìn)的健壯代碼庫(kù)。我們建議使用該庫(kù)并避免從頭開(kāi)始實(shí)施所有內(nèi)容。它可以從我們的官方存儲(chǔ)庫(kù)下載。
要導(dǎo)入庫(kù),請(qǐng)打開(kāi) Arduino IDE,轉(zhuǎn)到 Sketch > Include Library > Add.ZIP Library 并選擇從我們的 GitHub 存儲(chǔ)庫(kù)下載的庫(kù)文件。
然后你可以簡(jiǎn)單地使用include語(yǔ)句:
#include "MPU9250.h"
它將包括具有預(yù)定義函數(shù)的庫(kù),以與 MPU9250 交互。
Arduino代碼
下面的代碼很簡(jiǎn)單,因?yàn)槲覀兪褂昧艘粋€(gè)庫(kù),該庫(kù)提供了與 MPU9250 模塊交互的清晰接口。在設(shè)置函數(shù)中,我們配置和校準(zhǔn)模塊并在循環(huán)中每隔INTERVAL_MS_PRINT毫秒打印一次輸出。
#include "MPU9250.h"
#define MPU9250_IMU_ADDRESS 0x68
#define MAGNETIC_DECLINATION 1.63 // To be defined by user
#define INTERVAL_MS_PRINT 1000
MPU9250 mpu;
unsigned long lastPrintMillis = 0;
void setup()
{
Serial.begin(115200);
Wire.begin();
Serial.println("Starting...");
MPU9250Setting setting;
// Sample rate must be at least 2x DLPF rate
setting.accel_fs_sel = ACCEL_FS_SEL::A16G;
setting.gyro_fs_sel = GYRO_FS_SEL::G1000DPS;
setting.mag_output_bits = MAG_OUTPUT_BITS::M16BITS;
setting.fifo_sample_rate = FIFO_SAMPLE_RATE::SMPL_250HZ;
setting.gyro_fchoice = 0x03;
setting.gyro_dlpf_cfg = GYRO_DLPF_CFG::DLPF_20HZ;
setting.accel_fchoice = 0x01;
setting.accel_dlpf_cfg = ACCEL_DLPF_CFG::DLPF_45HZ;
mpu.setup(MPU9250_IMU_ADDRESS, setting);
mpu.setMagneticDeclination(MAGNETIC_DECLINATION);
mpu.selectFilter(QuatFilterSel::MADGWICK);
mpu.setFilterIterations(15);
Serial.println("Calibration will start in 5sec.");
Serial.println("Please leave the device still on the flat plane.");
delay(5000);
Serial.println("Calibrating...");
mpu.calibrateAccelGyro();
Serial.println("Magnetometer calibration will start in 5sec.");
Serial.println("Please Wave device in a figure eight until done.");
delay(5000);
Serial.println("Calibrating...");
mpu.calibrateMag();
Serial.println("Ready!");
}
void loop()
{
unsigned long currentMillis = millis();
if (mpu.update() && currentMillis - lastPrintMillis > INTERVAL_MS_PRINT) {
Serial.print("TEMP:\t");
Serial.print(mpu.getTemperature(), 2);
Serial.print("\xC2\xB0"); //Print degree symbol
Serial.print("C");
Serial.println();
Serial.print("Pitch:\t");
Serial.print(mpu.getPitch());
Serial.print("\xC2\xB0"); //Print degree symbol
Serial.println();
Serial.print("Roll:\t");
Serial.print(mpu.getRoll());
Serial.print("\xC2\xB0"); //Print degree symbol
Serial.println();
Serial.print("Yaw:\t");
Serial.print(mpu.getYaw());
Serial.print("\xC2\xB0"); //Print degree symbol
Serial.println();
Serial.println();
lastPrintMillis = currentMillis;
}
}
測(cè)試
串行監(jiān)視器將每INTERVAL_MS_PRINT毫秒打印一次最后可用的傳感器數(shù)據(jù)(在上面的示例中,每秒一次),它應(yīng)該類(lèi)似于:
通常方向繪制在物理模塊上,因此您可以輕松檢測(cè)俯仰和滾動(dòng)。
?
- 使用Arduino和加速度計(jì)陀螺儀傳感器MPU9250制作指南針
- 用Arduino讀取MPU9250傳感器
- QFN封裝的復(fù)合芯片MPU9250數(shù)據(jù)手冊(cè) 1次下載
- MPU9250資料包分享 39次下載
- stm32驅(qū)動(dòng)mpu6050、mpu6500、mpu9250心得
- 電子產(chǎn)品MPU-9250規(guī)格書(shū)英文版下載 0次下載
- MPU9250九軸9軸姿態(tài)加速度陀螺儀傳感器的資料合集免費(fèi)下載 74次下載
- 使用STM32單片機(jī)實(shí)現(xiàn)MPU9250九軸傳感器實(shí)驗(yàn)的詳細(xì)資料說(shuō)明 37次下載
- MPU9250的中文數(shù)據(jù)手冊(cè)免費(fèi)下載 208次下載
- MPU9250陀螺儀QFN封裝的復(fù)合芯片中文說(shuō)明書(shū)免費(fèi)下載 66次下載
- MPU9250芯片的相關(guān)資料合集免費(fèi)下載 76次下載
- 九軸傳感器MPU9250詳細(xì)資料 160次下載
- MPU-9250-寄存器手冊(cè) 0次下載
- MPU9250數(shù)據(jù)采集和解析 237次下載
- GY9250 MPU9250資料 182次下載
- 瑞薩RZ/T系列MPU的中斷重入實(shí)現(xiàn) 307次閱讀
- 產(chǎn)品簡(jiǎn)介 | RZ/A系列MPU 240次閱讀
- AUTOSAR內(nèi)存分區(qū)和MPU關(guān)系簡(jiǎn)述 933次閱讀
- mpu6500和mpu6000哪個(gè)好 3078次閱讀
- mpu6050和mpu6500哪個(gè)性能好 6359次閱讀
- TC3xx芯片的MPU功能詳解 1792次閱讀
- 配合MAX9217/MAX9218/MAX9247/MAX9248/MAX9250評(píng)估板工作 2113次閱讀
- 基于GPRS模塊單片機(jī)獲取位置信息的方法 2866次閱讀
- MPU是什么Cortex-M內(nèi)核的MPU內(nèi)存保護(hù)單元詳細(xì)講解 1w次閱讀
- mpu6050姿態(tài)解算原理_mpu6050姿態(tài)解算程序 4.3w次閱讀
- mpu6050怎么與單片機(jī)連接 2.6w次閱讀
- 一文看懂mpu9150和mpu6050區(qū)別 4.1w次閱讀
- 一文看懂mpu6500和mpu6050區(qū)別 9.3w次閱讀
- mpu6050和mpu3050有什么不同和相同(基礎(chǔ)介紹和區(qū)別分析) 3.6w次閱讀
- 三軸陀螺儀MPU3050驅(qū)動(dòng)程序分析 7135次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多