MPU6050 सेंसर में सिंगल चिप पर कई कार्य हैं। इसमें एक एमईएमएस एक्सेलेरोमीटर, एक एमईएमएस गायरो और तापमान सेंसर होता है। एनालॉग मॉड्यूल को डिजिटल में परिवर्तित करते समय यह मॉड्यूल बहुत सटीक है क्योंकि इसमें प्रत्येक चैनल के लिए डिजिटल कनवर्टर हार्डवेयर के लिए 16 बिट एनालॉग है। यह मॉड्यूल एक ही समय में x, y और z चैनल को पकड़ने में सक्षम है। होस्ट नियंत्रक के साथ संवाद करने के लिए इसमें I2C इंटरफ़ेस है। यह MPU6050 मॉड्यूल एक कॉम्पैक्ट चिप है जिसमें एक्सेलेरोमीटर और जाइरो दोनों हैं । यह ड्रोन, रोबोट, मोशन सेंसर जैसे कई अनुप्रयोगों के लिए एक बहुत ही उपयोगी उपकरण है। इसे गायरोस्कोप या ट्रिपल एक्सिस एक्सेलेरोमीटर भी कहा जाता है ।
आज इस लेख में हम Arduino के साथ इस MPU6050 Gyroscope को इंटरफ़ेस करने जा रहे हैं और 16x2 एलसीडी पर मान दिखा रहे हैं।
आवश्यक घटक:
- अरुडिनो उनो
- MPU-6050
- 10K पॉट
- जम्पर तार
- ब्रेड बोर्ड
- यूएसबी केबल
- बिजली की आपूर्ति
MPU6050 गायरो सेंसर:
MPU-6050 एक सिंगल चिप में 8 पिन 6 एक्सिस गायरो और एक्सेलेरोमीटर है। यह मॉड्यूल डिफ़ॉल्ट रूप से I2C सीरियल संचार पर काम करता है लेकिन इसे एसपीआई इंटरफ़ेस के लिए कॉन्फ़िगर करके इसे रजिस्टर किया जा सकता है। I2C के लिए इसमें SDA और SCL लाइनें हैं। लगभग सभी पिन बहुक्रियाशील हैं लेकिन यहां हम केवल I2C मोड पिन के साथ आगे बढ़ रहे हैं।
पिन कॉन्फ़िगरेशन:
Vcc: - इस पिन का प्रयोग MPU6050 मॉड्यूल को ग्राउंडिंग के संबंध में शक्ति प्रदान करने के लिए किया जाता है
जीएनडी: - यह ग्राउंड पिन है
SDA: - SDA पिन का उपयोग कंट्रोलर और mpu6050 मॉड्यूल के बीच डेटा के लिए किया जाता है
SCL: - SCL पिन का उपयोग क्लॉक इनपुट के लिए किया जाता है
XDA: - यह सेंसर I2C एसडीए डेटा लाइन है जो बाहरी सेंसर से कॉन्फ़िगर करने और पढ़ने के लिए है ((वैकल्पिक) जिसका उपयोग हमारे मामले में नहीं किया गया है)
XCL: - यह सेंसर I2C SCL क्लॉक लाइन है जो बाहरी सेंसर से कॉन्फ़िगर करने और पढ़ने के लिए ((वैकल्पिक) हमारे मामले में उपयोग नहीं किया गया है)
ADO: - I2C स्लेव एड्रेस LSB (हमारे मामले में लागू नहीं)
INT: - तैयार डेटा के संकेत के लिए इंटरप्ट पिन।
विवरण:
इस लेख में, हम Arduino के साथ MPU6050 का उपयोग करते हुए एलसीडी पर तापमान, gyro और एक्सेलेरोमीटर रीडिंग दिखा रहे हैं । यह मॉड्यूल हमें आउटपुट में पंक्ति मान और सामान्यीकृत मान देता है लेकिन पंक्ति मान स्थिर नहीं है इसलिए यहां एलसीडी पर सामान्यीकृत मान दिखा रहे हैं। यदि आप सिर्फ एक्सेलेरोमीटर मूल्य चाहते हैं, तो आप Arduino के साथ एक्सेलेरोमीटर ADXL335 का भी उपयोग कर सकते हैं।
इस परियोजना में, हमने पहले एलसीडी पर एक तापमान मान दिखाया है और 10 सेकंड के बाद हम gyro मान दिखाते हैं और 10 सेकंड के बाद हमारे पास एक्सीलेरोमीटर रीडिंग होती है जैसा कि नीचे की छवियों में दिखाया गया है:
सर्किट आरेख और स्पष्टीकरण:
Arduino के साथ MPU6050 के इंटरफेस के लिए सर्किट आरेख, बहुत सरल है यहां हमने एक एलसीडी और MPU6050 का उपयोग किया है। और यहाँ हमने एक लैपटॉप USB पॉवर सप्लाई का उपयोग किया है। एलसीडी की चमक को नियंत्रित करने के लिए 10k पॉट का उपयोग किया जाता है। MPU6050 के संबंध में, हमने 5 कनेक्शन किए हैं जिसमें हमने 3.3v की बिजली आपूर्ति और MPU6050 की जमीन को Arvino के 3.3v और जमीन से जोड़ा है। MPU6050 का SCL और SDA पिन Arduino के A4 और A5 पिन से जुड़ा है। और MPU6050 का INT पिन Arduino (D2) के 0 को बाधित करने के लिए जुड़ा हुआ है। LCD का RS, RW और EN सीधे Arduino के 8, gnd और 9 से जुड़ा हुआ है। डेटा पिन सीधे डिजिटल पिन नंबर 10, 11, 12 और 13 से जुड़ा हुआ है।
प्रोग्रामिंग स्पष्टीकरण
इस प्रोजेक्ट के लिए प्रोग्रामिंग पार्ट भी आसान है। यहां हमने इस MPU6050 लाइब्रेरी का उपयोग इसे Arduino के साथ इंटरफेस करने के लिए किया है। तो सबसे पहले, हमें GitHub से MPU6050 लाइब्रेरी को डाउनलोड करने और इसे Arduino IDE में इंस्टॉल करने की आवश्यकता है।
इसके बाद, हम उदाहरण में उदाहरण कोड पा सकते हैं। उपयोगकर्ता उस कोड को सीधे Arduino पर अपलोड करके परीक्षण कर सकता है और धारावाहिक मॉनिटर पर मान देख सकता है। या उपयोगकर्ता एलसीडी और सीरियल मॉनिटर पर मान दिखाने के लिए लेख के अंत में दिए गए हमारे कोड का उपयोग कर सकते हैं।
कोडिंग में, हमने MPU6050 और LCD जैसे कुछ आवश्यक पुस्तकालयों को शामिल किया है।
#शामिल
में सेटअप समारोह, हम दोनों उपकरणों को प्रारंभ एलसीडी पर और लिखने स्वागत संदेश
शून्य सेटअप () {lcd.begin (16,2); lcd.createChar (0, डिग्री); सीरियल.बेगिन (9600); Serial.println ("प्रारंभिक MPU6050"); जबकि (mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("डिवाइस नहीं मिला"); Serial.println ("एक वैध MPU6050 सेंसर नहीं मिला, वायरिंग की जांच करें!"); देरी (500); } गिनती = 0; mpu.calibrateGyro (); mpu.setThreshold (3); में पाश समारोह, हम के लिए हर 10seconds में तीन कार्यों कहा जाता है तापमान, जायरो प्रदर्शित करने, और पढ़ने accelerometer एलसीडी पर। ये तीन कार्य हैं tempShow, gyroShow और accelerShow , आप इस लेख के अंत में दिए गए पूर्ण Arduino कोड में उन कार्यों की जांच कर सकते हैं:
शून्य लूप () {lcd.clear (); lcd.print ("तापमान"); long st = millis (); सिरियल.प्रिंटल ("तापमान"); जबकि (मिली)
MPU6050 gyro और एक्सेलेरोमीटर दोनों का उपयोग किसी भी डिवाइस की स्थिति और अभिविन्यास का पता लगाने के लिए किया जाता है। गायरो गति के परिवर्तन की दर के आधार पर x, y और z- अक्ष स्थिति और एक्सेलेरोमीटर का पता लगाने के लिए पृथ्वी के गुरुत्वाकर्षण का उपयोग करता है। हमने पहले ही अपनी कई परियोजनाओं में Arduino के साथ एक्सेलेरोमीटर का उपयोग किया है:
- एक्सेलेरोमीटर आधारित हैंड जेस्चर नियंत्रित रोबोट
- Arduino आधारित वाहन दुर्घटना चेतावनी प्रणाली
- Arduino का उपयोग करके भूकंप डिटेक्टर अलार्म