這章節我們用的IMU感傳器型號是GY-88。
這個型號的感傳器內其實包含了三種感測器,分別是
MPU-6050 :三軸加速計 + 三軸陀螺儀 + 溫度計
HMC5883L:三軸電子羅盤
BMP085:氣壓 + 溫度計
本章主要以MPU-6050 (三軸加速計 + 三軸陀螺儀 + 溫度計)的應用為主
GY-88 感測器
本章節只需用到MPU-6050 (三軸加速計 + 三軸陀螺儀 + 溫度計)的功能,所以只需要連接GY-88的其中4隻腳,以I2C的方式傳遞資料、如下圖:
由於Arduino UNO及Leonardo板的I2C腳有別、如果用UNO底板請用GND、Vcc、A4(SDA)和A5(SCL)、用Leonardo底板請用GND、Vcc、2(SDA)和3(SCL)
今次需要用到額外的library MPU6050_light,可以在Tools-> Manage Libraries中找到
如果成功安裝了library的話可以在File->Examples找到MPU6050_light相關的例子,打開GetAllData這個範例,上傳到Arduino板就可以了。因為是以I2C方式連接,所以也不存在更改腳位的問題
結果畫面:
可以參考下圖調整IMU的角度或方向,看看上方Serial Monitor內的數值是否有變化
如果需要知道物件偏向哪個角度的話,也可以用同一個library的另一個例子,打開File->Example->MPU6050_light->GetAngle這個範例,上傳到Arduino板
下方為結果畫面:
在lv2a的結果中,當其中一個角度超出360° 後會變成什麼?
我們可以發現,當角度超出360° 後數值還是會繼續增加到361° ,362°...、而少於0°也會出現-1°,-2°......
在這裏我們稍作調整,把角度調整成-180°~180°之間的範圍吧。
最簡單的方法是新設3個變數Pitch, Roll, Yaw暫存原本的XYZ角度、然後當角度θ大於180°時變成 θ-360°、當角度θ少於-180°時變成 θ+360°
提示指令: