2012-09-06 44 views
5

Tôi đã thử sử dụng this sketch do arduino.cc cung cấp. (Tôi đã là MPU6050 GY-521 breakout board.)Sử dụng con quay hồi chuyển/gia tốc với Arduino

Tôi nghĩ nó hoạt động tốt. Nó mang đến một tập hợp số lạ mà tôi không thể hiểu được. Nó nói rằng đó là những giá trị thô.

Làm cách nào để chuyển đổi chúng thành các giá trị có ý nghĩa?

Kết quả như sau. Ngay cả khi toàn bộ điều được giữ cố định, nó cho phép thay đổi giá trị! Điều này có ý nghĩa không? Vậy làm sao nó được hiểu?

(Những gì tôi chỉ biết là giá trị nhiệt độ có ý nghĩa: D)

June 2012 
WHO_AM_I : 68, error = 0 
PWR_MGMT_2 : 0, error = 0 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 260, 120, 15572 
temperature: 31.047 degrees Celsius 
gyro x,y,z : -24, -234, -240, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 304, 12, 15608 
temperature: 31.000 degrees Celsius 
gyro x,y,z : -7, -234, -232, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 160, 100, 15716 
temperature: 31.000 degrees Celsius 
gyro x,y,z : -8, -241, -248, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 192, 56, 15712 
temperature: 31.000 degrees Celsius 
gyro x,y,z : -36, -212, -222, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 212, 100, 15440 
temperature: 30.906 degrees Celsius 
gyro x,y,z : -32, -253, -240, 
+1

Chúng đã có ý nghĩa. Họ có thể cung cấp cho bạn khả năng tăng tốc tương đối so với lực hấp dẫn (khoảng 9,8 m/s^2) theo hướng X, Y và Z. –

+0

@ H2CO3 Tôi đã chỉnh sửa bài đăng (vì những gì bạn đã nói). Vui lòng xem bài đăng đã chỉnh sửa. Bất kỳ ý tưởng?? – Anubis

+2

Gia tốc @Anibis giống như thế này - ngay cả khi được giữ đều đặn, có những tín hiệu sai lệch nhỏ. Và giá trị Z lớn là do lực hấp dẫn (theo chiều dọc, tức là song song với trục Z). –

Trả lời

11

Bạn cần phải nhìn vào các datasheet để dịch các giá trị nguyên cho những người có ý nghĩa. Hãy tìm bảng như thế này cho các con quay hồi chuyển:

gyro table

Nếu bạn sử dụng các giá trị mặc định, FS_SEL sẽ 0. Đó là cài đặt độ nhạy. Vì vậy, để dịch các giá trị con quay hồi chuyển thô của bạn thành độ mỗi giây, bạn chia chúng cho 131. Bạn có thể thấy các con số của bạn xuất hiện dưới 2 độ mỗi giây hoặc lâu hơn, đó là một sai số hợp lý của lỗi.

Đối với độ nhạy gia tốc mặc định, bạn chia cho 16,384 để nhận giá trị trong g (lực tác động bởi trái đất). Bạn đang nhận được trên thứ tự 0,01g cho trục x và y và 0,95g cho trục z, mà là trong một biên độ hợp lý của lỗi cho chip vẫn còn với trục z chỉ về phía trái đất.

+3

Rất cám ơn Karl! Tôi đã mua mô-đun này vì tôi thấy những mô-đun này có ích khi xây dựng quad-copters (tôi sẽ xây dựng một cái). Nhưng ngoài ra, tôi không biết gì về việc sử dụng chúng. Tôi đã thử nghiệm bằng cách sử dụng mã mẫu nhất định chỉ (mã đó là rất lớn, không thể hiểu một điều :() .Tôi biết có [thư viện này] (https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050), nhiều người nói nó rất hữu ích.Nếu bạn có thể giúp tôi bằng cách viết một phác thảo đơn giản (dễ hiểu), tôi sẽ biết ơn. _ (Tôi tìm thấy [trang này] (http://www.instructables.com/ id/Accelerometer-Gyro-Tutorial /) hữu ích.) _ – Anubis

0
mpu.setFullScaleGyroRange(0); //0 = +/- 250 degrees/sec | 1 = +/- 500 degrees/sec | 2 = +/- 1000 degrees/sec | 3 = +/- 2000 degrees/sec 
    mpu.setFullScaleAccelRange(0); //0 = +/- 2g | 1 = +/- 4g | 2 = +/- 8g | 3 = +/- 16g 
+2

Vui lòng thêm giải thích cho câu trả lời của bạn để giúp người dùng trong tương lai –

+0

Trong khi mã này có thể trả lời câu hỏi, cung cấp ngữ cảnh bổ sung về lý do và/hoặc cách mã này trả lời câu hỏi giá trị dài hạn. Các câu trả lời chỉ có mã không được khuyến khích. – Ajean