วิธีอ่าน gyro / accelerometer


10

ฉันเพิ่งซื้อนี้ MPU6050 GY-521 คณะกรรมการฝ่าวงล้อม ฉันพยายามกับฉันArduino เมกะใช้นี้ Arduino ร่างให้โดยทางการarduino.cc
( MPU-6050 แผ่นข้อมูลหน้าInvenSence (ผู้ผลิต) )

ผู้ชายมันให้ผลลัพธ์ที่แปลกประหลาดนี้ !!!

InvenSense MPU-6050
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: 1944, 368, 15608
temperature: 30.576 degrees Celsius
gyro x,y,z : -34, -204, -247, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1952, 364, 15304
temperature: 30.435 degrees Celsius
gyro x,y,z : -38, -216, -274, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1864, 388, 15356
temperature: 30.482 degrees Celsius
gyro x,y,z : -34, -233, -278, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1888, 324, 15260
temperature: 30.576 degrees Celsius
gyro x,y,z : -14, -220, -261, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1904, 392, 15316
temperature: 30.624 degrees Celsius
gyro x,y,z : -34, -241, -238, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1856, 308, 15604
temperature: 30.435 degrees Celsius
gyro x,y,z : -33, -252, -235, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1892, 444, 15528
temperature: 30.624 degrees Celsius
gyro x,y,z : 20, -236, -251, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1924, 356, 15520
temperature: 30.576 degrees Celsius
gyro x,y,z : -19, -224, -251, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1844, 280, 15732
temperature: 30.529 degrees Celsius
gyro x,y,z : -1, -240, -249, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 2004, 372, 15396
temperature: 30.671 degrees Celsius
gyro x,y,z : -20, -252, -255, 

(นี่เป็นเพียงส่วนหนึ่งเท่านั้นมันให้ราชาแห่งผลผลิตอย่างต่อเนื่องนี้) ฉันรู้แน่นอนว่าการอ่านอุณหภูมิมีความหมาย แต่ค่าเหล่านั้นมีไว้สำหรับการเร่งความเร็วและการอ่านค่าไจโร ??

ตกลงมันบอกว่ามันเป็นค่าดิบ ถ้าเป็นเช่นนั้นฉันจะแปลงเป็นค่าที่มีความหมายได้อย่างไร หวังว่ามันจะเป็นประโยชน์ (แนะนำเท่าที่ฉันต้องการ) ฉันก็อยากจะรู้วิธีใช้Jeff Rowbergห้องสมุดที่เรียกว่า

หวังว่าจะมีบางคนที่มีประสบการณ์กับโมดูล MPU-6050 เพียงแค่ให้ฉันจุดเริ่มต้น ฉันไม่มีเงื่อนงำในการใช้โมดูล ... :(

ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ขอบคุณมาก!


1
ฉันมีปัญหาที่คล้ายกันซึ่งได้รับการแก้ไขในคำถามนี้ electronics.stackexchange.com/questions/39024/ …
JDD

ว้าว - นั่นคือ IMU ตัวน้อยที่ดี!
Scott Seidman

คำตอบ:


6

การอ่านมาตรความเร่งดูเหมือนจะสมเหตุสมผลแล้ว แผ่นข้อมูล , หน้า 13 บ่งชี้ 4 ความเปราะบางแตกต่างกัน:

2 g  
4 g  
8 g  
16 g  

ด้วยความเคารพ ปัจจัยระดับความไว:

16 384 counts/g  
8 192 counts/g  
4 096 counts/g  
2 048 counts/g  

จากการอ่าน Z ฉันคิดว่าคุณได้เลือกขนาด 2 กรัมแล้ว 15 608 คือ 0.95 กรัมซึ่งเป็นสิ่งที่คุณคาดหวังจากการอ่านแกน Z เมื่อคุณถือเซ็นเซอร์ในแนวนอนไม่มากก็น้อย การอ่านค่า X และ Y อาจเป็นเพราะความโน้มถ่วงเมื่อคุณไม่ได้ถือส่วนแนวนอนอย่างสมบูรณ์ และคุณจะมีข้อผิดพลาดในการอ่านด้วย



ที่คล้ายกันสำหรับไจโร ที่ระดับการนับ 131 ต่อการศึกษาระดับปริญญาคุณอาจมีการอ่านชนิดนี้หากคุณถือส่วนที่อยู่ในมือของคุณ


ขอบคุณ! สมมติฐานทั้งหมดของคุณถูกต้อง ถ้าอย่างนั้นคุณแนะนำให้ฉันเพิ่มจำนวนเอาท์พุทดิบด้วย1g/16384(เมื่อใช้สเกล 2g) เพื่อให้ได้การอ่านค่าความเร่งที่แท้จริง (สำหรับแกนขวานทั้งหมด) หรือไม่? จากนั้นจะจัดการกับการอ่านค่าไจโรได้อย่างไร
สุสาน

และความหมายของLSBในหน่วยLSB/gคืออะไร?
สุสาน

ไจโรดูเหมือนจะไวมากดังนั้นการถือไว้ในมือของคุณอาจทำให้เกิดการหมุนเมื่อมือของคุณสั่นเล็กน้อย (กาแฟมากเกินไป? :-)) LSB = บิตสำคัญน้อยที่สุดซึ่งฉันแปลว่า "นับ" มันบ่งบอกถึงการเปลี่ยนแปลงขั้นต่ำ
stevenvh

โดยทั่วไปการอ่าน "ดิบ" จากอุปกรณ์ประเภทนี้จะรวมถึงข้อผิดพลาดออฟเซ็ต (อคติ) และปัจจัยระดับ ในที่สุดคุณจะต้องการปรับเทียบข้อผิดพลาดเหล่านี้ด้วยการลบค่าออฟเซ็ตและคูณด้วยค่าการปรับค่าสเกลแฟคเตอร์สำหรับแต่ละแกน
Dave Tweed

ลิงก์ไปยังแผ่นข้อมูลใช้งานไม่ได้ คุณรู้ตำแหน่งใหม่ของเอกสารนั้นหรือไม่
ขาขวา

11

Gyroscope ให้ค่าของความเร็วเชิงมุม (องศา / วินาที) ในสามแกนนั้น (Yaw, Pitch และ Roll ตามลำดับ)

แต่สิ่งที่เป็นค่าดิบใดก็ตามที่ได้รับครั้งแรกจากเซ็นเซอร์เหล่านี้ควรถูกแปลงเป็นความเร่งที่สมเหตุสมผลหรือค่าความเร็วเชิงมุมโดยการปรับสเกล

แผ่นข้อมูล InvenSense ของ MPU-6050 บอกว่าเราต้องใช้ตัวคูณสเกลที่แตกต่างกันสำหรับช่วงค่าไจโรที่แตกต่างกัน ฉันจะอธิบายวิธีการใช้ปัจจัยการปรับขนาดเหล่านี้ในที่สุด

Angular Velocity Limit  |   Sensitivity
----------------------------------------
250º/s                  |    131
500º/s                  |    65.5 
1000º/s                 |    32.8 
2000º/s                 |    16.4

9.81ms2

ปัจจัยที่ปรับขนาดสำหรับค่า accelerometer:

Acceleration Limit  |   Sensitivity
----------------------------------------
2g                  |    16,384
4g                  |    8,192  
8g                  |    4,096 
16g                 |    2,048 

การแปลงข้อมูลดิบ:

required_value=raw_valueproper_sensitivity

ตัวอย่างเช่นในข้อมูลแรกคุณจะได้รับ

accel x,y,z: 1944, 368, 15608
gyro x,y,z : -34, -204, -247

การเร่งความเร็วดูเหมือนจะอยู่ในขีด จำกัด ของ 2g ดังนั้นอัตราส่วนการปรับ = 16384

ax=194416384g

250ºs

gyro_value=34131degreessec

หวังว่าจะช่วย :)


1
ฉันรู้สึกว่าคำตอบนี้ให้คำอธิบายที่ดีกว่าเมื่อเปรียบเทียบกับคำตอบที่ยอมรับได้
chutsu

@ajmal ฉันเข้าใจค่าของเซ็นเซอร์ถึงจุดที่คุณอธิบาย ฉันยังเข้าใจว่าไจโรโดยค่าเริ่มต้นมีการดริฟท์เล็กน้อย แต่ฉันไม่เข้าใจวิธีการแสดงภาพข้อมูลในการวางตำแหน่งโลกแห่งความจริง ฉันอ่านมากเกี่ยวกับมุมออยเลอร์ quarternions แต่ฉันไม่เข้าใจการแลกเปลี่ยนระหว่างการเป็นตัวแทนและคณิตศาสตร์ที่อยู่เบื้องหลัง ข้อเสนอแนะใด ๆ ที่จะเริ่ม
seetharaman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.