**儒毅軒創客與翻轉教育平台 小小實習生開發日記 / 筆名-Leo** # 疑難雜症-九軸感測器計算距離 最近接了實驗室的小工作,目標想使用九軸感測器(MPU9250)來計算距離,由於小弟我本身沒有接觸過硬體,所以對於我來說這是一個去接觸硬體的好機會,同時也可以去慢慢了解硬體的相關知識。 首先介紹一下MPU9250這塊感測器,它之所以會被稱作為九軸感測器是因為它分別有加速度計、陀螺儀以及磁力計,這三種不同的計算方式,而每一種又有X軸、Y軸以及Z軸去做變化。這塊板子通常被運用在模擬飛機的飛行狀況。因為飛機會有仰角以及旋轉的動作,以及加速度的重力這時候使用這塊板子的陀螺儀以及加速度計就可以去觀察飛機的旋轉角度仰角角度以及加速度所使用的重力。 回歸正題,目前我想測試是否可透過MPU9250裡面的加速度計來去計算這塊板子的移動距離。為了計算MPU9250的移動距離,我打算使用Arduino來先去查看這塊板子水平移動加速度所發生的變化。下面為水平移動的指令範例。 ``` #include “MPU9250.h” MPU9250 IMU(Wire,0x86); int status; void setup() { Serial.begin(115200); While(Serial) {} Status = IMU.begin(); If (status <0) { Serial.println(“IMU連線失敗”); Serial.print(“Status:”); Serial.println(status); While(1){} } } void loop() { IMU.readSensor(); Serial.println(IMU.getAccely_mss()); Delay(500); } ``` ![](https://i.imgur.com/HI9rVaW.jpg) 圖1:Arduino監控畫面 我使用了Arduino的監控畫面來去觀察MPU9250這塊板子的變化,由圖1可以看到這塊板子即使在沒有移動的情況下會維持在一個穩定的區間(如紅色方塊所示),但是只要我移動了這塊板子它則會根據我當下移動的力度而產生變化(如藍色方塊所示)。當下我想說可以使用數學公式來計算它的距離,但是後來我發現數學公式所需要的是等速移動,而這塊板子的加速度貌似是重力加速度的G所以好像不能套用數學公式來計算距離。所以這是我最近苦惱想要找出一個關係式解決這問題。不知道版上大大們能否給一個超讚的建議跪求。