Mô-đun MPU6050 là khối hệ thống cơ điện vi tế bào (MEMS) bao gồm Gia tốc kế 3 trục và nhỏ quay hồi gửi 3 trục phía bên trong nó. Điều này giúp chúng ta đo gia tốc, vận tốc, định hướng, độ di chuyển và nhiều thông số liên quan đến hoạt động khác của một hệ thống hoặc vật thể.

Bạn đang xem: Cảm biến gia tốc mpu6050

*

Cấu hình sơ đồ vật chân MPU6050

*

Pin NumberPin NameDescription
1VccCung cấp cho nguồn cho module, hoàn toàn có thể là + 3V cho + 5V. Thường thì + 5V được sử dụng
2GroundKết nối với mặt khu đất của hệ thống
3Đồng hồ nối liền (SCL)Được áp dụng để truyền dữ liệu thông qua giao tiếp I2C
4Dữ liệu nối liền (SDA)Có thể được áp dụng để giao tiếp các mô-đun I2C khác với MPU6050. Nó là tùy chọn
5Dữ liệu thông liền phụ trợ (XDA)Có thể được áp dụng để giao tiếp các mô-đun I2C khác với MPU6050. Nó là tùy chọn
6Đồng hồ tiếp liền phụ (XCL)Có thể được áp dụng để tiếp xúc các mô-đun I2C không giống với MPU6050. Nó là tùy chọn
7AD0Nếu nhiều hơn thế một MPU6050 được sử dụng một MCU, thì chân này rất có thể được áp dụng để biến đổi địa chỉ
8Ngắt (INT)Chân ngắt để chỉ ra rằng dữ liệu có sẵn mang đến MCU để đọc.

Các chức năng của MPU6050

Giá trị gia tốc kế 3-aix của MEMS và nhỏ quay hồi gửi 3 trục được kết hợp
Nguồn cung cấp: 3-5VGiao tiếp: Giao thức I2CADC 16-bit tích hợp cung cấp độ đúng đắn cao
DMP tích hợp cung ứng sức mạnh giám sát cao
Có thể được sử dụng để giao tiếp với những thiết bị IIC khác ví như từ kếĐịa chỉ IIC rất có thể định cấu hình
Cảm biến nhiệt độ tích hợp

Các nhân tài và thông số kỹ thuật kỹ thuật khác được tìm kiếm thấy vào biểu dữ liệu MPU6050 đi cùng ở cuối bài viết.

Thay vắt cho MPU6050 :

ADXL335 (gia tốc kế 3 trục), ADXL345 (gia tốc kế 3 trục), MPU9250 (IMU 9 trục)

Nơi thực hiện MPU6050

MPU6050 là hệ thống cơ điện tử vi phong thủy mô (MEMS) bao gồm Gia tốc kế 3 trục và bé quay hồi gửi 3 trục phía bên trong nó. Điều này giúp họ đo gia tốc, vận tốc, định hướng, độ dịch rời và nhiều thông số liên quan lại đến chuyển động khác của một hệ thống hoặc trang bị thể. Mô-đun này cũng có Bộ xử lý vận động kỹ thuật số (DMP) phía bên trong nó đủ táo tợn để thực hiện các phép tính phức hợp và vì vậy giải phóng công việc cho Vi điều khiển.

Mô-đun cũng có hai chân phụ hoàn toàn có thể được thực hiện để tiếp xúc với những mô-đun IIC phía bên ngoài như một từ kế, tuy nhiên nó là tùy chọn. Vì địa chỉ IIC của mô-đun hoàn toàn có thể định cấu hình nên nhiều cảm biến MPU6050 rất có thể được giao tiếp với bộ vi điều khiển bằng chân AD0. Mô-đun này cũng đều có sẵn những thư viện được tư liệu hóa với sửa đổi tốt, cho nên nó rất giản đơn sử dụng với các nền tảng nổi tiếng như Arduino. Do vậy, nếu như khách hàng đang tra cứu kiếm một cảm biến để điều khiển vận động cho xe cộ RC, Máy bay không người lái, Robot tự cân nặng bằng, Hình người, Biped hoặc đông đảo thứ tựa như thì cảm ứng này hoàn toàn có thể là lựa chọn phù hợp cho bạn.

Cách sử dụng cảm biến MPU6050

*

Phần cứng của mô-đun rất 1-1 giản, nó thực sự bao hàm MPU6050 như các thành phần chủ yếu như được hiển thị làm việc trên. Vì mô-đun hoạt động trên 3.3V, một bộ kiểm soát và điều chỉnh điện áp cũng được sử dụng.

Các con đường IIC được đẩy lên cao bằng cách sử dụng một điện trở 4,7k với chân ngắt được kéo xuống bằng cách sử dụng một điện trở 4,7k khác.

Mô-đun MPU6050 có thể chấp nhận được chúng tôi đọc tài liệu từ nó thông qua bus IIC. Ngẫu nhiên sự thay đổi nào trong vận động sẽ được phản ánh trên khối hệ thống cơ học, hệ thống này sẽ biến đổi điện áp.

Sau đó, vi mạch có một cỗ ADC 16-bit mà lại nó sử dụng để đọc đúng đắn những thay đổi này về năng lượng điện áp và tàng trữ nó trong cỗ đệm FIFO và làm cho chân INT (ngắt) ở mức cao. Điều này tức là dữ liệu đã sẵn sàng chuẩn bị để đọc, do vậy shop chúng tôi sử dụng MCU để đọc dữ liệu từ bộ đệm FIFO này thông qua tiếp xúc IIC.

Nghe thì bao gồm vẻ thuận lợi nhưng bạn có thể gặp phải một số vấn đề trong những lúc thực sự cố gắng hiểu dữ liệu. Tuy nhiên, có không ít nền tảng như Arduino đang áp dụng mà chúng ta cũng có thể bắt đầu sử dụng mô-đun này ngay lập tức lập tức bằng cách sử dụng các thư viện sẵn gồm được giải thích bên dưới.

Giao diện MPU6050 cùng với Arduino

Rất thuận tiện giao tiếp MPU6050 cùng với Arudino, phụ thuộc vào thư viện vị Jeff Rowberg phát triển. Chúng ta cũng có thể tải xuống thư viện từ liên kết bên dưới

Thư viện Jeff Rowberg MPU6050 giành riêng cho Arudino

Khi chúng ta đã thêm tủ sách này vào Arduino IDE, hãy làm theo các sơ đồ sau đây để thiết lập cấu hình kết nối IIC giữa Arduino và MPU6050 của bạn.

*

Thư viện cung ứng hai lịch trình ví dụ, có thể tìm thấy trên Tệp -> ví dụ như -> MPU6050. Trong nhị ví dụ này, một sẽ cung ứng các quý giá thô trong lúc ví dụ kia sẽ hỗ trợ các giá trị được về tối ưu hóa bằng cách sử dụng DMP. Các giá trị tài liệu sau hoàn toàn có thể được lấy bằng cách sử dụng công tác ví dụ này.

Các nguyên tố Quaternion Góc Euler
Yaw, Pitch, Roll
Tăng tốc trong quả đât thực
Gia tốc khung cố kỉnh giới
Teapot invent sense Values

Trong số tất cả các tài liệu này, chúng tôi thường thực hiện Yaw, Pitch, Roll. Mặc dù nhiên, thư viện có khả năng thực hiện tại nhiều hơn thế và rất có thể được sử dụng cho các mục đích không giống nhau. Sau thời điểm chương trình được cài lên, hãy mở screen nối tiếp và đặt nó thành tốc độ truyền 115200 và bạn sẽ thấy dữ liệu được in ở màn hình.

Các ứng dụng

Được sử dụng để đo IMUMáy bay không người lái xe / Chương bốn
Robot tự cân nặng bằng
Điều khiển cánh tay robot
Robot hình người
Cảm đổi mới độ nghiêng
Máy dò định hướng / xoay

Mô hình 2d của MPU6050

*

Cảm biến gia tốc MPU6050 là trong những module thông dụng được thực hiện để đo gia tốc trong những ứng dụng. Với kỹ năng đo chính xác và tích vừa lòng các cảm biến gia tốc và nhỏ quay hồi chuyển trong và một chip, MPU6050 Arduino đã trở thành một lựa chọn hàng đầu cho các dự án liên quan đến điều khiển chuyển động, robot học tập tập, hệ thống định vị và nhiều ứng dụng khác.

Trong nội dung bài viết này, mình đang hướng dẫn phương pháp sử dụng cảm biến gia tốc MPU6050 cùng với Arduino. Cùng sẽ có tác dụng quen cùng với việc kết nối module MPU6050 với Arduino thông qua giao tiếp I2C, đọc những giá trị vận tốc và con quay từ cảm biến, cùng hiển thị bên trên Serial Monitor.


Để sinh sản động lực mang đến Team Arduino KIT ra nhiều bài viết chất lượng hơn, các bạn có thể ủng hộ mình bằng cáchDonatequa Mo
Mo, Ngân hàng, Paypal…Nhấn vào link dưới nhé.


Các linh kiện quan trọng cho dự án

TÊN LINH KIỆNSỐ LƯỢNGNƠI BÁN
Arduino Uno R31Shopee|Cytron
Cảm biến gia tốc MPU60501Shopee|Cytron
Breadboard1Shopee|Cytron
Dây cắm (Đực – Đực)10 – 20Shopee|Cytron

Tổng quan tiền về Module cảm biến gia tốc GY-521 6DOF IMU MPU6050

Cảm biến gia tốc MPU6050 là 1 trong những module cảm biến tích hợp, kết hợp cảm biến gia tốc kế và con quay hồi đưa (gyroscope). Nó được sử dụng để đo cùng theo dõi chuyển động, gia tốc và góc con quay của một đối tượng.

MPU6050 có sáu bậc thoải mái (DOF), bao gồm ba bậc tự do thoải mái cho gia tốc kế và ba bậc tự do thoải mái cho con quay hồi chuyển. Điều này chất nhận được nó đo đúng mực các thông số vận động trên tía trục không gian: trục X, trục Y cùng trục Z.


*

Thông qua tiếp xúc I2C, MPU6050 hoàn toàn có thể truyền tài liệu số mang lại vi giải pháp xử lý hoặc vi điều khiển và tinh chỉnh chính của hệ thống. Nó hỗ trợ các cực hiếm đo như gia tốc, góc quay, ánh sáng và các thông số kỹ thuật liên quan tiền khác.


MPU6050 cũng cung ứng các chính sách lấy chủng loại và thông số kỹ thuật tùy chỉnh, cho phép điều chỉnh độ nhạy với tần số lấy mẫu phù hợp với yêu cầu ứng dụng.

Với kích thước nhỏ gọn, tiêu thụ tích điện thấp với tích thích hợp sẵn các tác dụng đo vận động quan trọng, MPU6050 Arduino là 1 trong những lựa chọn thịnh hành trong nhiều ứng dụng như robot, thiết bị định vị và điều khiển và tinh chỉnh chuyển động, trò đùa điện tử, thiết bị treo tay thông minh cùng nhiều ứng dụng khác liên quan đến đo đạc và theo dõi đưa động.

Xem thêm: Lễ cúng mụ đầy tháng nghi thức, đặt mâm cúng đầy tháng bé trai, bé gái

Đo cực hiếm gia tốc

Gia tốc được đo bằng đơn vị chức năng m/s^2 và thay mặt đại diện cho tốc độ đổi khác của gia tốc trong một đơn vị thời gian.


*

Cảm biến tốc độ MPU6050 có tác dụng đo các giá trị gia tốc trên 3 trục (x, y với z) với trả về kết quả dưới dạng quý giá số thực. Qua việc đọc giá chỉ trị gia tốc từ cảm biến, ta hoàn toàn có thể biết được mức độ tăng tốc, giảm tốc hoặc giữ tốc độ của đối tượng mà cảm biến đang theo dõi.


Đo góc quay

Cảm biến gia tốc MPU6050 có công dụng đo góc xoay hoặc tốc độ góc trên các trục tảo (quay xung quanh các trục X, Y cùng Z). Thông qua bộ cảm biến gia tốc tích hợp trên chip, MPU6050 hoàn toàn có thể đo và cung cấp thông tin về gia tốc góc của thiết bị trong số đơn vị đo tương xứng như radian/giây hoặc độ/giây.


*

Dữ liệu về góc con quay hoặc vận tốc góc được hỗ trợ bởi cảm trở nên MPU6050 trải qua các đầu ra số hoặc thông qua giao tiếp số như I2C hoặc SPI. Bằng phương pháp đọc cùng xử lý những giá trị từ những trục gia tốc, ta có thể tính toán được góc xoay hoặc tốc độ góc của đồ vật trong không gian 3D. Điều này được cho phép ứng dụng sử dụng MPU6050 có công dụng theo dõi cùng đo lường đúng chuẩn các vận động quay của sản phẩm trong thời hạn thực.

Đo nhiệt độ độ

GY-521 MPU6050 tất cả phạm vi đo nhiệt độ từ -40°C mang đến +85°C, với độ đúng mực đo ánh nắng mặt trời là ±1°C. Độ phân giải của cảm biến nhiệt độ MPU6050 là 16 bit, chất nhận được phân biệt giữa 2^16 = 65536 nút đo không giống nhau.

Dữ liệu ánh sáng được biểu lộ bằng cực hiếm số với được biến đổi thành đơn vị chức năng đo nhiệt độ độ, thường là độ Celsius (°C) hoặc độ Fahrenheit (°F).


Giao tiếp I2C

Cảm biến tốc độ MPU6050 hỗ trợ add I2C là 0x68. Đây là địa chỉ mặc định và có thể được áp dụng cho việc truyền và nhận dữ liệu trải qua giao tiếp I2C.


*

Tuy nhiên, rất có thể thay đổi địa chỉ cửa hàng I2C của GY-521 MPU6050 bằng phương pháp kết nối chân AD0 của MPU6050 Arduino với mức logic phù hợp (GND hoặc VCC). Lúc chân AD0 được liên kết với GND, địa chỉ I2C của MPU6050 sẽ biến hóa 0x68. Nếu chân AD0 được kết nối với VCC, add I2C sẽ là 0x69. Bài toán thay đổi showroom I2C có thể chấp nhận được kết nối nhiều cảm biến MPU6050 trên và một dây I2C.

Giao tiếp các cảm biến bên ngoài

Bạn tất cả thể nâng cấp độ đúng đắn của module cảm biến MPU6050 bằng cách kết nối các cảm biến phía bên ngoài với nó. Liên kết này được triển khai thông sang 1 bus I2C thiết bị hai, trả toàn độc lập với bus I2C bao gồm của MPU6050 (XDA với XCL).


*

Thông thường, các chúng ta có thể kết nối một cảm biến từ nhằm đo trường đoản cú trường cùng hướng chạm màn hình từ trường. Kết hợp cảm biến từ với MPU6050 Arduino giúp tạo nên hệ thống cảm ứng 9 DOF (Degree of Freedom) đến đo đạc đúng đắn hơn về hướng và chuyển động.


Thông số kỹ thuật

Operating Voltage5V (typical)
Accelerometer Range±2g, ±4g, ±8g, ±16g
Gyroscope Range±250°/s, ±500°/s, ±1000°/s, ±2000°/s
Temperature Range-40 lớn +85°C
Absolute Maximum AccelerationUp to lớn 10,000g

VCC: Nguồn cung cấp (3.3V hoặc 5V)SDA: Chân dữ liệu (Data) trong giao tiếp I2CSCL: Chân xung Clock trong giao tiếp I2CAD0: Chân địa chỉ định danh I2C (nếu được sử dụng)INT: Chân ngắt (Interrupt) đến MPU6050GND: Chân khu đất (Ground)XDA: Chân dữ liệu (Data) mang lại bus tiếp xúc I2C máy haiXCL: Chân xung Clock cho tiếp xúc I2C đồ vật hai

Sơ trang bị đấu nối cảm biến gia tốc MPU6050 với Arduino

SCLSDA
Arduino UnoA5A4
Arduino NanoA5A4
Arduino Mega2120
Leonardo/Micro32

Cài đặt thư viện

Để ban đầu lập trình và sử dụng những câu lệnh của cảm biến gia tốc MPU6050, với biên dịch bị lỗi chúng ta cần thêm thư viện ‘mpu6050’. Truy vấn theo đường liên kết bên dưới: Sketch > Include Library > Manage Libraries…


Tiếp theo, tại cửa sổ Library Manager các bạn, gõ vào ô tìm kiếm kiếm từ khóa ‘mpu6050’, lựa chọn giúp bản thân thư viện của Adafruit MPU6050. Sau đó chọn phiên phiên bản mới tuyệt nhất và tiến hành cài đặt.


Cuối cùng tải tiếp cho chính mình 2 thư viện sau: Adafruit Unified Sensor Driver và
Adafruit Bus IO Library


Code ví dụ

#include #include #include Adafruit_MPU6050 mpu;void setup(void) Serial.begin(115200);// Try to initialize!if (!mpu.begin()) Serial.println("Failed khổng lồ find MPU6050 chip");while (1) delay(10);Serial.println("MPU6050 Found!");// set accelerometer range to lớn +-8Gmpu.set
Accelerometer
Range(MPU6050_RANGE_8_G);// phối gyro range to lớn +- 500 deg/smpu.set
Gyro
Range(MPU6050_RANGE_500_DEG);// phối filter bandwidth lớn 21 Hzmpu.set
Filter
Bandwidth(MPU6050_BAND_21_HZ);delay(100);void loop() /* Get new sensor events with the readings */sensors_event_t a, g, temp;mpu.get
Event(&a, &g, &temp);/* Print out the values */Serial.print("Acceleration X: ");Serial.print(a.acceleration.x);Serial.print(", Y: ");Serial.print(a.acceleration.y);Serial.print(", Z: ");Serial.print(a.acceleration.z);Serial.println(" m/s^2");Serial.print("Rotation X: ");Serial.print(g.gyro.x);Serial.print(", Y: ");Serial.print(g.gyro.y);Serial.print(", Z: ");Serial.print(g.gyro.z);Serial.println(" rad/s");Serial.print("Temperature: ");Serial.print(temp.temperature);Serial.println(" deg
C");Serial.println("");delay(500);Sau khi nạp code các bạn cũng có thể xem các thông số của cảm biến gia tốc MPU6050 Arduino qua Serial Monitor.


Giải đam mê Code

#include #include #include Khai báo những thư viện quan trọng để sử dụng cảm biến MPU6050 và giao tiếp qua I2C.

Adafruit_MPU6050 mpu;Khởi chế tác một đối tượng người dùng Adafruit_MPU6050 mang tên là mpu để liên quan với cảm biến. Điều này sẽ cho phép sử dụng các phương thức và chức năng có sẵn trong thư viện.

Serial.begin(115200);// Try lớn initialize!if (!mpu.begin()) Serial.println("Failed lớn find MPU6050 chip");while (1) delay(10);Serial.begin(115200);khởi tạo tiếp xúc Serial với tốc độ truyền tài liệu (baud rate) là 115200 bit/giây. Câu lệnh này sẽ tùy chỉnh thiết lập giao tiếp thông qua cổng Serial để bạn có thể gửi với nhận dữ liệu từ Arduino đến laptop qua Serial Monitor.

if (!mpu.begin()) … kiểm soát xem cảm biến MPU6050 có sẵn hay không. Thủ tục begin() của đối tượng người dùng mpu được gọi để tạo cảm biến. Nếu cảm biến không được tìm kiếm thấy, điều kiện !mpu.begin() vẫn trả về quý giá true, tức là không thành công. Vào trường hợp này, chúng ta in ra thông báo “Failed lớn find MPU6050 chip” và liên tục trong vòng lặp vô hạn.


mpu.set
Accelerometer
Range(MPU6050_RANGE_8_G);mpu.set
Gyro
Range(MPU6050_RANGE_500_DEG);mpu.set
Filter
Bandwidth(MPU6050_BAND_21_HZ);mpu.set
Accelerometer
Range(MPU6050_RANGE_8_G);
Đây là câu lệnh để thiết đặt phạm vi đo tốc độ của cảm biến. Trong trường hợp này, phạm vi đo là ±8G, tức là cảm biến có thể đo tốc độ từ -8G cho +8G.

mpu.set
Gyro
Range(MPU6050_RANGE_500_DEG);
Đây là câu lệnh để setup phạm vi đo con quay của cảm biến. Vào trường phù hợp này, phạm vi đo là ±500°/s, tức là cảm biến có thể đo con quay từ -500°/s đến +500°/s.

mpu.set
Filter
Bandwidth(MPU6050_BAND_21_HZ);
Đây là câu lệnh để thiết lập băng thông bộ lọc của cảm biến. Trong trường thích hợp này, họ đặt băng thông là 21 Hz, tức là bộ thanh lọc của cảm biến sẽ thải trừ các tần số cao hơn nữa 21 Hz để giảm nhiễu và nâng cao độ bao gồm xác.

void loop() /* Get new sensor events with the readings */sensors_event_t a, g, temp;mpu.get
Event(&a, &g, &temp);/* Print out the values */Serial.print("Acceleration X: ");Serial.print(a.acceleration.x);Serial.print(", Y: ");Serial.print(a.acceleration.y);Serial.print(", Z: ");Serial.print(a.acceleration.z);Serial.println(" m/s^2");Serial.print("Rotation X: ");Serial.print(g.gyro.x);Serial.print(", Y: ");Serial.print(g.gyro.y);Serial.print(", Z: ");Serial.print(g.gyro.z);Serial.println(" rad/s");Serial.print("Temperature: ");Serial.print(temp.temperature);Serial.println(" deg
C");Serial.println("");delay(500);Trong hàm loop() sau khi hàm setup() đang hoàn thành. Hàm này sẽ áp dụng phương thức get
Event() của đối tượng mpu để đọc những giá trị gia tốc, vận tốc quay và ánh nắng mặt trời từ cảm biến. Những giá trị này được lưu trong số biến a, g, temp đẳng cấp sensors_event_t. Sau đó, chúng ta in ra những giá trị này qua Serial Monitor bằng cách sử dụng những câu lệnh Serial.print() cùng Serial.println().


Để tránh vấn đề đọc dữ liệu quá nhanh, chúng ta sử dụng câu lệnh delay(500) để đợi 500 milliseconds (0.5 giây) trước khi lặp lại quy trình đọc dữ liệu.