MPU 6050 內含陀螺儀,加速度感測器,主要用來感測物體的運動狀態,又稱IMU慣性測量單元,從古早航海技術用的大型陀螺儀,到現今電子科技把陀螺儀,加速度感測器封裝到微小的晶片中,加上便宜的價格,人人都可以入手。可以運用的科技,從簡單的玩具,機器人,無人機,到複雜的飛彈,自動駕駛汽車,航太科技,這些資料在現代科技扮演重要的角色。
本篇簡單介紹mpu6050 加速度數值。
VCC ->+5 VDC
GND ->Ground
SCL ->I2C Clock
SDA ->I2C Data
XDA ->Ext(external) I2C DATA connecting something like magnetometer
XCL ->Ext(external) I2C Clock
AD0 ->I2C Address Bit
INT ->Interrupt out
連接方式到Arduino方式
VCC -> 5V
GND->GND
SCL->A5 (Arduino SCL位置)
SDA->A4 (Arduino SDA 位置)
連接4條線就可以讀取感測器資料
下載Github上 code旁箭頭 DownloadZIP
在 Arduino 草稿碼 加入.ZIP程式庫 選擇下載zip檔就可以匯入Library。
/*
Get raw output of MPU6050
*/
#include <basicMPU6050.h>
// Create instance
basicMPU6050<> imu;
void setup() {
// Set registers - Always required
imu.setup();
// Start console
Serial.begin(38400);
}
void loop() {
//-- Raw output:
// Accel
Serial.print("x軸加速度:");
Serial.print( imu.rawAx() );
Serial.print( " " );
Serial.print("y軸加速度:");
Serial.print( imu.rawAy() );
Serial.print( " " );
Serial.print("z軸加速度:");
Serial.println( imu.rawAz() );
delay(100);
}
取得加速度資料程式碼
靜止不動時,加速度原始資料。
得到的是LSB/g 的資料。
LSB 是數位輸出數據的最低位元,在 16 位元數據中,範圍是 -32768 到 32767。
在這個程式碼,感測器可以測量的最大加速度範圍是從 -2g 到 +2g。這意味著加速度計可以檢測到的最大加速度是 2 倍的重力加速度 (9.81 m/s²),即約 19.62 m/s²。
在 ±2g 量程範圍內,數位輸出範圍為 65536(32767 - (-32768) + 1)。
65536/4g=16384LSB/g 因此16384 LSB代表著 1g 也就是9.81 m/s² 加速度
x軸加速度值大約為 240/16384=0.0146g
y軸加速度值大約為 370/16384=0.02258g
z軸加速度值大約為 16040/16384=0.979g
在靜止不動的狀態下,理想的加速度應該是:
X 軸:0
Y 軸:0
Z 軸:16384
因此就有了誤差需要校正。
另外再介紹感測器的數值圖形。
在工具 序列繪圖家中 可以讀取感測器的數值。
當mpu6050 上下移動時可以看到 Z軸加速度改變,綠色的線上下波動。
左右移動時,x軸加速度改變,藍色的線上下波動。
前後移動時,y軸加速度改變,紅色的線上下波動。
這些大概就是mpu6050 加速度感測的簡單介紹。