2012-09-06 15 views
5

के साथ एक जीरो/एक्सेलेरोमीटर का उपयोग करें मैंने arduino.cc द्वारा प्रदान किए गए this sketch को आजमाया है। (मेरे पास MPU6050 GY-521 breakout board है।)Arduino

मुझे लगता है कि यह ठीक काम करता है। यह संख्याओं का अजीब सेट देता है, मुझे कोई अर्थ नहीं मिल सकता है। यह कहता है कि वे कच्चे मूल्य हैं।

मैं उन्हें सार्थक मूल्यों में कैसे परिवर्तित कर सकता हूं?

आउटपुट निम्नानुसार है। यहां तक ​​कि जब पूरी चीज स्थिर रखी जाती है, तो यह बदलती मूल्य देता है! क्या यह सार्थक है? तो यह कैसे समझा जा सकता है?

(क्या मैं सिर्फ पता है कि तापमान मूल्य सार्थक है: डी)

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

वे पहले से ही सार्थक हैं। वे शायद एक्स, वाई और जेड दिशाओं में गुरुत्वाकर्षण (लगभग 9.8 मीटर/एस^2) के सापेक्ष त्वरण देते हैं। –

+0

@ एच 2CO3 मैंने पोस्ट संपादित किया है (आपने जो कहा है उसके कारण)। कृपया संपादित पोस्ट देखें। कोई उपाय?? – Anubis

+2

@ एनीबिस एक्सेलेरोमीटर इस तरह हैं - यहां तक ​​कि जब स्थिरता से आयोजित किया जाता है, तो छोटे गलती संकेत होते हैं। और बड़ा ज़ेड-वैल्यू गुरुत्वाकर्षण के कारण होता है (जो ऊर्ध्वाधर है, i। ई। जेड-अक्ष के साथ समानांतर)। –

उत्तर

11

आप datasheet को देखने के लिए सार्थक लोगों के लिए कच्चे मूल्यों का अनुवाद करने की जरूरत है। जाइरोस्कोप के लिए इस तरह टेबल के लिए देखो:

gyro table

आप मूलभूत मूल्यों उपयोग किया है, FS_SEL0 हो जाएगा। यह संवेदनशीलता सेटिंग है। तो अपने कच्चे जीरोस्कोप मानों को प्रति सेकंड डिग्री में अनुवाद करने के लिए, आप उन्हें 131 तक विभाजित करते हैं। आप देख सकते हैं कि आपकी संख्या प्रति सेकंड 2 डिग्री से कम है या नहीं, जो त्रुटि का उचित मार्जिन है।

डिफ़ॉल्ट एक्सेलेरोमीटर संवेदनशीलता के लिए, जी (पृथ्वी द्वारा लगाए गए बल) में मान प्राप्त करने के लिए आप 16,384 से विभाजित करते हैं। आप x अक्ष के लिए 0.01 जी और जेड अक्ष के लिए 0.95 जी के क्रम में प्राप्त कर रहे हैं, जो चिप के लिए त्रुटि के उचित मार्जिन के भीतर है जो अभी भी पृथ्वी की ओर इशारा करते हुए जेड-अक्ष के साथ रहता है।

+3

बहुत धन्यवाद कार्ल! मैंने इस मॉड्यूल को खरीदा क्योंकि मुझे लगता है कि क्वाड-कॉप्टर बनाने के दौरान वे काम में आते हैं (मैं एक बनाने जा रहा हूं)। लेकिन इसके अलावा, मैं उनका उपयोग करने के बारे में कुछ भी नहीं जानता। मैंने केवल दिए गए नमूना कोड का उपयोग करके परीक्षण किया है (वह कोड बहुत बड़ा है, किसी चीज़ को समझ नहीं सकता :()। मुझे पता है कि [यह लाइब्रेरी] है (https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/एमपीयू 6050), कई कहते हैं कि यह बहुत उपयोगी है। अगर आप मुझे एक सरल (समझने योग्य) स्केच लिखने में मदद कर सकते हैं, तो मैं आभारी रहूंगा। _ (मैंने पाया [यह पृष्ठ] (http://www.instructables.com/ आईडी/एक्सेलेरोमीटर-Gyro- ट्यूटोरियल /) सहायक।) _ – 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

कृपया भविष्य के उपयोगकर्ताओं की मदद के लिए अपने उत्तरों में स्पष्टीकरण जोड़ें। –

+0

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, इस सवाल का जवाब देने के तरीके के बारे में अतिरिक्त संदर्भ प्रदान करना और/या यह कोड कैसे सुधारता है दीर्घकालिक मूल्य। कोड-केवल उत्तर निराश होते हैं। – Ajean