Cảm biến từ trường gia tốc 9DOF MPU9250 có khả năng đo 9 thông số: 3 trục Góc quay (Gyro), 3 trục gia tốc hướng (Accelerometer) và 3 trục từ trường (Magnetometer) chỉ bằng một cảm biến duy nhất là MPU9250 (phiên bản nâng cấp của MPU6050) đang rất phổ biến hiện nay.
Cảm biến từ trường gia tốc 9DOF MPU9250 được ứng vào nhiều dự án khác nhau: con lắc động, xe tự cân bằng, máy bay không người lái,…
THÔNG SỐ KỸ THUẬT:
- Điện áp sử dụng: 3~5VDC
- Điện áp giao tiếp: 3~5VDC
- Chuẩn giao tiếp: I2C / SPI
- Giá trị Gyroscope trong khoảng: ± 250 ± 500, ± 1000, và ± 2.000 ° / giây (DPS)
- Gia tốc trong khoảng: ± 2g, 4g ± ± 8g, và ± 16g.
- Kích thước: 15 x 25mm, khoảng cách chân 2.54mm
Ứng dụng:
- Xe tự cân bằng
- Máy bay không người lái
- Điều khiển các thiết bị Robot dựa trên chuyển động
- Bộ cảm biến đo lường sức khỏe, thể dục, thể thao,...
Schematic MPU9250:
Hướng dẫn sử dụng MPU 9250 với Arduino:
Kết nối:
MPU9250 UNO R3 MEGA
VIN 5V 5V
GND GND GND
SCL A5 SCL
SDA A4 SDA
Download thư viện MPU9250.h
Code cho MPU9250:
#include "MPU9250.h"
// an MPU9250 object with the MPU-9250 sensor on I2C bus 0 with address 0x68
MPU9250 IMU(Wire,0x68);
int status;
void setup() {
// serial to display data
Serial.begin(115200);
while(!Serial) {}
// start communication with IMU
status = IMU.begin();
if (status < 0) {
Serial.println("IMU initialization unsuccessful");
Serial.println("Check IMU wiring or try cycling power");
Serial.print("Status: ");
Serial.println(status);
while(1) {}
}
}
void loop() {
// read the sensor
IMU.readSensor();
// display the data
Serial.print(IMU.getAccelX_mss(),6);
Serial.print("t");
Serial.print(IMU.getAccelY_mss(),6);
Serial.print("t");
Serial.print(IMU.getAccelZ_mss(),6);
Serial.print("t");
Serial.print(IMU.getGyroX_rads(),6);
Serial.print("t");
Serial.print(IMU.getGyroY_rads(),6);
Serial.print("t");
Serial.print(IMU.getGyroZ_rads(),6);
Serial.print("t");
Serial.print(IMU.getMagX_uT(),6);
Serial.print("t");
Serial.print(IMU.getMagY_uT(),6);
Serial.print("t");
Serial.print(IMU.getMagZ_uT(),6);
Serial.print("t");
Serial.println(IMU.getTemperature_C(),6);
delay(100);
}