Hướng dẫn sử dụng module cảm biến gia tốc góc – MPU9255
Xin chào những bạn, thời điểm ngày hôm nay tất cả chúng ta cùng đến với module cảm biến tần suất ( IMU ) MPU 9255. Bạn có khi nào tự hỏi tại sao chiếc fly cam hoàn toàn có thể giữ cân bằng hay chiếc smartphone của mình hoàn toàn có thể tự động hóa xoay màn hình hiển thị khi nghiêng đi không ? Đó là nhờ chiếc cảm biến tần suất nhỏ bé này đây. Hy vọng qua bài viết này sẽ giúp những bạn tự làm cho mình những dự án Bất Động Sản thật đỉnh nhé. Enjoy it 🙂
Qua bài viết này bạn biết được những gì?
Bạn đang đọc: Hướng dẫn sử dụng module cảm biến gia tốc góc – MPU9255
+ Giới thiều về IMU 10 DOF MPU9255 : Đặc điểm, ứng dụng, thông số kỹ thuật kỹ thuật, liên kết phần cứng .
+ Thư viện tương hỗ MPU9255 và BMP180, chương trình mẫu .
10 DOF IMU SENSOR, Intertial Measurement Unit, Lower Power Consumption .
+ Tổng quan: 10 DOF IMU là cảm biến rất tốt để giám sát chuyển động, cũng như xác định vị trí, độ cao, nhiệt độ. Nó được ứng dụng vào việc chế tạo thiết bị fly cam, robot cân bằng hay các thiết bị điều khiển.
+ Đặc trưng sản phẩm:
MPU9255 : 3 trục tần suất, 3 trục tần suất góc, 3 trục từ kế .
§ Công cụ giải quyết và xử lý hoạt động kỹ thuật số nội bộ ( DMP ™ ), giảm tải phức tạp, đồng điệu hóa cảm biến, nhận dạng cử chỉ, v.v …
§ So với MPU6050 thì MPU9255 tiêu thụ ít điện năng hơn và thuận tiện liên kết với những thiết bị khác .
BMP180 : cảm biến áp suất khí quyển .
§ Cảm biến nhiệt độ được nhúng vào để đo nhiệt độ .
Bạn hoàn toàn có thể lấy tài liệu trải qua tiếp xúc I2C .
+ Thông số kỹ thuật:
Điện áp : 3.3 V ~ 5.5 V
Gia tốc kế :
§ Độ phân giả : 16 bit .
§ Thang đo ( hoàn toàn có thể thông số kỹ thuật ) : ± 2, ± 4, ± 8, ± 16 g
§ Dòng hoạt động giải trí : 450 uA .
Con quay chuyển hồi :
§ Độ phân giả : 16 bit .
§ Thang đo ( hoàn toàn có thể thông số kỹ thuật ) : ± 250, ± 500, ± 1000, ± 2000 ° / sec .
§ Dòng hoạt động giải trí : 3.2 A .
Từ kế :
§ Độ phân giả : 14 hoặc 16 bit .
§ Thang đo : ± 4800 µT .
§ Dòng hoạt động giải trí : 280 uA .
Áp kế :
§ Độ phân giả : 16 ~ 19 bit .
§ Thang đo : 300 ~ 1100 hPa ( Độ cao : – 500 m ~ 9000 m ) .
§ Độ đúng mực : 0.02 hPa ( 0.17 m )+ Giao tiếp i2c
PIN NO . Ký hiệu Mô tả 1 Vcc 3.3 ~ 5.5 V 2 GND Ground 3 SDA I2C Date pin 4 SCL I2C Clock pin 5 INT MPU9255 digital interrupt output 6 FSYNC MPU9255 vertical sync signal Link loại sản phẩm : http://mlab.vn/1157776-module-cam-bien-gia-toc-goc-mpu9255-10-dof-imu-sensor.html
+ Lập trình:
Link thư viện :
MPU9255 : https://github.com/Galch/MPU9255
BMP180 : https://github.com/Seeed-Studio/Grove_Barometer_Sensor
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 # include " Barometer. h "#include
# define SerialPort Serial MPU9250_DMP imu; float temperature; float pressure; float atm; float altitude; Barometer myBarometer; void setup() { SerialPort.begin(115200); myBarometer.init(); / / Gọi hàm imu.begin ( ) để kiểm tra tiếp xúc và / / liên kết với MPU-9250 . if (imu.begin() ! = INV_SUCCESS) { while (1) { SerialPort.println(" Unable to communicate with MPU-9250 "); SerialPort.println(" Check connections, and try again. "); SerialPort.println(); delay(5000); } } / / Sử dung hàm setSensor để mở / tắt những cảm biến . / / Tất cả những biến dưới đây đều hoàn toàn có thể phối hợp : / / INV_XYZ_GYRO, INV_XYZ_ACCEL, INV_XYZ_COMPASS , / / INV_X_GYRO, INV_Y_GYRO, INV_Z_GYRO / / Mở tổng thể những cảm biến : imu.setSensors(INV_XYZ_GYRO | INV_XYZ_ACCEL | INV_XYZ_COMPASS); / / Sử dụng setGyroFSR ( ) và setAccelFSR ( ) để thông số kỹ thuật / / thang đo tần suất và tần suất góc . / / Các thang đo của tần suất góc là : + / - 250, 500, 1000, or 2000 dps ( degree per second ) độ / giây ; imu.setGyroFSR(2000); / / đặt giá trị : 2000 dps / / Các thang đo của tần suất là : + / - 2, 4, 8, or 16 g ( 1 g = 9.8 m / s2 ) imu.setAccelFSR(2); / / Đặt giá trị là + / - 2 g / / Lưu ý : Mpu9250 mặc định thang đo của từ kế là / / + / - 4912 uT ( micro-tesla ' s ) / / setLPF ( ) hoàn toàn có thể được dử dụng để đặt giá trị số low / pass của bộ lọc / / của tần suất và tần suất góc . / / Các giá trị hoàn toàn có thể là : 188, 98, 42, 20, 10, 5 / / ( Đơn vị Hz ) . imu.setLPF(5
); / / Số lần lấy mẫu trong 1 s của accel / gyro ccó thể thiết lập sử dụng / / setSampleRate. Các giá trị được gật đầu : từ 4H z đến 1 kHz imu.setSampleRate(10); / / Chọn giá trị 10H z / / Cũng như vậy, số lần lấy mẫu của từ kế hoàn toàn có thể / / thiết lập nhờ hàm setCompassSampleRate ( ) . / / Giá trị được cho phép : 1-100 Hz imu.setCompassSampleRate(10); / / Đặt giá trị : 10H z } void loop() { / / dataReady ( ) kiểm tra có giá trị accel / gyro mới không / / Nó sẽ trả lại giá tị true or false / / ( Giá trị mới của từ kế không hề kiểm tra, as the library / / bởi thư viện chạy cảm biến này ở chính sách quy đổi đơn ( Single-conversion mode ). ) if ( imu.dataReady() ) { / / Gọi hàm update ( ) để update tài liệu cảm biến . / / Bạn hoàn toàn có thể chỉ rõ cảm biến nào được update : / / UPDATE_ACCEL, UPDATE_GYRO, UPDATE_COMPASS , / / UPDATE_TEMPERATURE . imu.update(UPDATE_ACCEL | UPDATE_GYRO | UPDATE_COMPASS); printIMUData(); } } / / Chương trình con hiển thị giá trị void printIMUData(void) { / / Sử dụng hàm calcAccel, calcGyro, và calcMag để / / để quy đổi tài liệu thô đọc từ cảm biến ( Giá trị 16 - bit ) / / thành những đơn vị chức năng riêng tương ứng với nó . float accelX = imu.calcAccel(imu.ax); float accelY = imu.calcAccel(imu.ay); float accelZ = imu.calcAccel(imu.az); float gyroX = imu.calcGyro(imu.gx); float gyroY = imu.calcGyro(imu.gy); float gyroZ = imu.calcGyro(imu.gz); float magX = imu.calcMag(imu.mx); float magY = imu.calcMag(imu.my); float magZ = imu.calcMag(imu.mz); temperature = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); / / Đọc nhiệt độ từ Bmp180 pressure = myBarometer.bmp085GetPressure(myBarometer.bmp085ReadUP());/ / Đọc áp suất từ Bmp180 atm = pressure / 101325; / / Aps suất theo atmosphere altitude = myBarometer.calcAltitude(pressure); / / Tính độ cao theo " met " / / Hiển thị tài liệu qua Serial monitor SerialPort.println(" Accel : " + String(accelX) + ", " + String(accelY) + ", " + String(accelZ) + " g "); SerialPort.println(" Gyro : " + String(gyroX) + ", " + String(gyroY) + ", " + String(gyroZ) + " dps "); SerialPort.println(" Mag : " + String(magX) + ", " + String(magY) + ", " + String(magZ) + " uT "); SerialPort.println(" Time : " + String(imu.time) + " ms "); SerialPort.println(" Temperature : " + String(temperature) + " deg C "); SerialPort.println(" Pressure : " + String(pressure) + " Pa "); SerialPort.println(" Ralated Atmosphere : " + String(atm) + " atm "); SerialPort.println(" Altitude : " + String(altitude) + " m "); SerialPort.println(); }Video demo sản phẩm:
Nếu có bất kỳ thắc mắc hãy để lại ở phần bình luận phía dưới, chúng tôi sẽ giải đáp cho các bạn. Chúc các bạn một ngày tốt đẹp và hoàn thành được dự án của riêng mình.
Xem thêm: Bảng giá
Tác giả : Thích ăn mỳ
Bài viết liên quan
Source: https://dichvubachkhoa.vn
Category : Linh Kiện Và Vật Tư