2024-05-29|閱讀時間 ‧ 約 24 分鐘

mpu6050 感測器 加速度數值

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條線就可以讀取感測器資料

用的是<basicMPU6050.h> 資料庫


下載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 加速度感測的簡單介紹。


分享至
成為作者繼續創作的動力吧!
小妹愛玩空拍機,也在練習寫程式,把寫過的程式放上來。
© 2024 vocus All rights reserved.