Cảm biến IMU MPU6050 có 6-DOF (6 Degrees Of Freedom) tức là 6 trục độc lập (3 của accel và 3 của gyro)
Cảm biến IMU MPU6050 gồm có 2 cảm biến: cảm biến gia tốc và cảm biến quay. Cảm biến IMU MPU6050 được sử dụng để đo 6 thông số: 3 trục Góc quay (Gyro), 3 trục gia tốc hướng (Accelerometer), là loại cảm biến gia tốc phổ biến nhất trên thị trường hiện nay.
- Accelerometer là một cảm biến đo gia tốc của bản thân module và thường sẽ có 3 trục xyz ứng với 3 chiều không gian. Lưu ý là accel đo cả gia tốc của trọng lực nên giá trị thực khi đo sẽ bao gồm cả trọng lực.
- Gyroscope là một loại cảm biến đo tốc độ quay của nó quanh một trục. Tương tự với accel, gyro cũng thường có 3 trục xyz.
Các bạn có thể tìm hiều thêm về cảm biến gia tốc, cảm biến quay.
Sơ đồ mạch nguyên lý
Thông số kỹ thuật cần lưu ý
- Điện áp sử dụng: 3~5VDC
- Điện áp giao tiếp: 3~5VDC
- Chuẩn giao tiếp: I2C
- Giá trị Gyroscopes trong khoảng: +/- 250 500 1000 2000 degree/sec
- Giá trị Acceleration trong khoảng: +/- 2g, +/- 4g, +/- 8g, +/- 16g
Giao tiếp IMU MPU6050 với Arduino
Cảm biến IMU MPU6050 giao tiếp với Arduino thông qua chuẩn giao tiếp I2C.
Kiểm tra MPU6050 với Arduino
Sơ đồ nối chân với Arduino
MPU 6050 | Arduino |
VCC | 5V |
GND | GND |
SCL | A5 |
SDA | A4 |
INT | D2 |
Sơ đồ kết nối dây với Arduino
Sau khi kết nối dây xong, các bạn upload code xuống kiểm tra hoạt động của MPU. Trước hết chúng ta cần tải thư viện MPU6050 và thư viện I2Cdev.
Các bạn có thể xem bài viết hướng dẫn cách add thư viện Arduino tại đây.
Sau khi hoàn thành add thư viện. Các bạn mở phần mềm IDE lên và thấy “MPU6050” trong File –> Examples. Tiếp đến bạn mở chương trình ở File –> Examples –> MPU6050 –> Examples –> MPU6050_DMP6.
Tiếp đến các bạn upload đoạn code này lên Arduino, mở màn hình Serial và set baud rate ở 115200.
Các bạn đợi khoảng 10 giây để nhận được kết quả chính xác từ MPU, sau đó các giá trị dần ổn đinh.
Mô hình hóa các giá trị nhận được từ MPU 6050 dùng 3D Using Processing
Để biểu diễn 3D các giá trị nhận được từ cảm biến, chúng ta cần cài đặt phần mềm processing.
Sau khi cài processing, chúng ta cần tải thư viện gọi là “Toxi”. Tiếp đến bạn giải nén file “toxiclibs-complete-0020” đến thư mục thư viện của processing.
Hoặc bạn có thể cài thư viện toxiclibs trực truyến trên processing như sau:
Mở phần mềm processing lên, Chọn Sketch –> Import library –> Add library….
Tại tab library, gõ toxiclibs vào ô filter. Bạn chọn kết quả toxiclibs của Karsten Schmidt và nhấn install.
Tiếp theo các bạn cần sửa một số dòng trong chương trình Arduino MPU 6050 (MPU6050_DMP6)
Comment line #define OUTPUT_READABLE_YAWPITCHROLL
Uncomment line #define OUTPUT_TEAPOT
Kế tiếp, chúng ta mở ví dụ processing cho MPU6050. Mở Processing, File –> Open và dẫn đến thư mục thư viện MPU6050 bạn cài cho Arduino. Các bạn có thể tìm file ví dụ processing trong MPU6050 –> Examples –> MPU6050_DMP6 –> Processing –> MPUTeapot.
Trong code này các cần kiểm tra định nghĩa serial port. Bởi vì mặc định nó định nghĩa cho người dùng Linux.
String portName = “/dev/ttyUSB1”;.
Bạn cần thay đổi ttyUSB1 phù hợp với port kết nối Arduino.
Nếu bạn dùng window, bạn cần phải
Comment line String portName = “/dev/ttyUSB1”
Uncomment line String portName = “COM4” và thay thế COM4 thành COM kết nối Arduino
Bây giờ bạn cần upload code MPU cho Arduino lại và nhớ không mở màn hình Serial. Chạy chương trình processing bằng cách nhấn bào biểu tượng play. Đợi khoảng 10 giây để giá trị MPU 6050 ổn định. Sau đó, bạn có thể xem mô hình 3D của MPU 6050, di chuyển theo cảm biến.
Không có nhận xét nào:
Đăng nhận xét