"रजिस्टर 0x31- DATA_FORMAT" में आपने वास्तव में किस मूल्य को स्टोर किया था?
मैं मान रहा हूं कि आपने उस रजिस्टर में कुछ भी संग्रहीत नहीं किया है, इसलिए यह अभी भी 00 के रीसेट मूल्य में है। दूसरे शब्दों में, जब आप डेटा एकत्र कर रहे थे (तालिका 16 से और ADXL345 डेटाशीट के पृष्ठ 17 से भी ):
- रजिस्टर 0x31- DATA_FORMAT == 00।
- FULL_RES == 0. तो डिवाइस 10-बिट मोड में है, और रेंज बिट अधिकतम जी रेंज और स्केल फैक्टर निर्धारित करते हैं।
- औचित्य बिट == 0. इतना सही औचित्य संकेत विस्तार के साथ।
- रेंज बिट्स == 00. तो + - 2 जी रेंज।
पहली चीज जो मैं करूंगा, वह मूल 16 बिट वैल्यू को रिकवरमीटर से पढ़ने के रूप में ठीक करना है। (यानी, अगर मैंने लापरवाही से मूल डेटा को फेंक दिया है, और मेरे पास जो कुछ बचा है वह "जी" की इकाइयों में संख्या है जो कुछ ऑफसेट को घटाकर और कुछ गलत पैमाने के कारक से गुणा करके गणना की गई है, मैं एकत्रित डेटा को एक में कॉपी करूंगा स्प्रेडशीट और उसी (गलत) स्केल फैक्टर द्वारा विभाजित करें और फिर मूल मूल्यों के करीब कुछ पुनर्प्राप्त करने की कोशिश करने के लिए उस ऑफसेट को जोड़ें)।
फिर मैं डेटा को ग्राफ़ करूंगा और देखूंगा कि क्या यह "संतृप्ति", "रैखिक", या "रोल-ओवर" (जैसा कि नीचे दिया गया है) अधिक दिखता है।
डेटाशीट maddeningly अस्पष्ट है कि क्या होता है जब सेंसर 2 जी से अधिक त्वरण का अनुभव करता है।
स्पर्शरेखा रैंट
क्या मैंने आपको बताया कि जब तकनीकी लेखक निष्क्रिय आवाज़ में लिखने पर ज़ोर देते हैं तो यह मुझे कितना परेशान करता है? जब लेखक आपके द्वारा उद्धृत वाक्य में निष्क्रिय आवाज का उपयोग करता है,
"सभी डेटा, सिवाय इसके कि data 16 जी रेंज के लिए, रोलओवर से बचने के लिए क्लिप किया जाना चाहिए।" (पेज 17)
मैं नहीं बता सकता कि कौन वास्तव में इस क्लिपिंग को करने वाला है।
कई लोग सक्रिय आवाज का उपयोग करने की सलाह देते हैं । जब मैं उन अनुशंसाओं का पालन करता हूं, तो मेरा पाठ आमतौर पर अधिक स्पष्ट होता है कि कौन क्या करता है। क्या यह बेहतर नहीं है जब मैं ऐसा सामान लिखूं जो समझने में आसान हो , न कि किसी शैली का उपयोग करने के बजाय जिसे लोगों को "अधिक पेशेवर" या "अधिक विद्वान" लगता है?
स्वचालित क्लिपिंग
मेरा सबसे अच्छा अनुमान है कि एक्सेलेरोमीटर स्वचालित रूप से यह क्लिपिंग करता है।
संतृप्ति : यदि आप त्वरण मूल्यों के माध्यम से रैंप को देखते हैं, तो रहस्यमय तरीके से एक पठार पर अटक जाते हैं, +2 जी पर या उसके पास संतृप्त होते हैं, तो एक्सीलेरोमीटर "सहायक रूप से" आपके लिए डेटा को क्लिप कर देता है। कतरन के बाद, "शीर्ष" मान अब इंगित नहीं करता है "एक त्वरण + 2 जी के बहुत करीब है", लेकिन अब इंगित करता है "कम से कम 2 जी का त्वरण, और संभवतः बहुत, बहुत अधिक - बताने का कोई तरीका नहीं है"।
क्योंकि यह 10-बिट राइट-जस्टिफ़ाइड मोड में था, जब मैं उन 16 बिट मानों को सामान्य 16 बिट हस्ताक्षरित पूर्णांक के रूप में व्याख्या करता हूं, तो मुझे मानों को देखने की उम्मीद है
- 0x01FF = +511, 1.992 ग्राम से अधिक का संकेत देता है। संभवतः बहुत, बहुत अधिक।
- 0x01FE = +510, 510/256 g ~ = 1.992 g को दर्शाता है
- 0x01FD = +509, 510/256 g ~ = 1.988 g को दर्शाता है
- ...
- 0x0001 = +1, 1/256 g = 0.0039 g को दर्शाता है
- 0x0000 = 0, 0 जी को दर्शाता है
- 0xFFFF = -1, -1/256 g = 0.0039 को दर्शाता है
- ...
- 0xFE02 = -510, -510/256 = -1.992 g को दर्शाता है
- 0xFE01 = -511, -511/256 = -1.996 g को दर्शाता है
- 0xFE00 = -512, कुछ और नकारात्मक -1.996 g को दर्शाता है। संभवतः कहीं अधिक, कहीं अधिक नकारात्मक।
(हां, मुझे पता है कि इस सेंसर के लिए परिशुद्धता के 4 दशमलव स्थान अपरिवर्तित हैं)। (मैंने कुछ उपकरणों को किसी अन्य बिंदु पर संतृप्त देखा है, जैसे -511 या -510। मैं आमतौर पर डेटा को देख सकता हूं और वास्तविक संतृप्ति बिंदु का पता लगा सकता हूं)।
आप इस क्लिप डेटा सेट से कुछ उपयोगी डेटा को पुनर्प्राप्त कर सकते हैं । आप इसे मापने के लिए उपयोग कर सकते हैं, उदाहरण के लिए, कितने मिलीसेकंड का त्वरण कम से कम 1.5 ग्राम था। काश, जब आप इस तरह के डेटा सेट में पठारों को देखते हैं, तो अधिकतम त्वरण या कुल आवेग को मापना असंभव है - आप जो सबसे अच्छा कर सकते हैं, वह है, "ठीक है, हम जानते हैं कि अधिकतम त्वरण कम से कम 2 जी और शायद अधिक है ", और" अच्छी तरह से गणना, हम गणना करते हैं कि कुल आवेग कम से कम (कुछ) न्यूटन * दूसरा "है।
विकल्प
यह पता लगाना संभव है कि एक्सीलरोमीटर डेटा से क्लिपिंग करता है या नहीं। (मैंने रैंप अप के संदर्भ में "संतृप्ति", "रैखिक" और "रोल-ओवर" का वर्णन किया है - डेटा के कुछ सेट के साथ, इसके बजाय रैंप को देखने के लिए अधिक स्पष्ट हो सकता है)।
रैखिक : यदि आप त्वरण को प्रशंसनीय मूल्यों के माध्यम से रैंप पर देखते हैं, तो उच्च मूल्यों (512 से ऊपर के मूल्य, या -512 से अधिक नकारात्मक) के लिए रैंपिंग जारी रखें, तो आप किस्मत में थे - एक्सेलेरोमीटर वास्तव में कोई क्लिपिंग नहीं किया था, और आपके पास संपूर्ण श्रेणी के माध्यम से मान्य डेटा है।
रोल-ओवर : यदि आप त्वरण मूल्यों के माध्यम से रैंप को देखते हैं, और इससे पहले कि यह +2 ग्राम तक पहुंच जाए, तो यह तुरंत -2 जी के पास एक गैर-भौतिक-यथार्थवादी मूल्य पर कूदता है और फिर रैंप पर जारी रहता है - संभवतः जा रहा है शून्य के माध्यम से, फिर + 2 जी फिर से आ रहा है, और फिर से -2 जी के पास नीचे कूद रहा है - फिर आपके पास रोल-ओवर रैप-अराउंड है। यदि आप भाग्यशाली हैं, तो मूल्य बहुत आसानी से बदल जाते हैं, जिससे प्रत्येक रोलओवर का पता लगाना संभव हो जाता है और वास्तविक मान को ठीक करने के लिए इन मूल्यों को "अनचाहे" कर देते हैं।
ps: ओपन सर्किट संपादित करने के लिए स्वतंत्र महसूस करें : रॉकेट कंप्यूटर ।