- वीएल6180 एक्स टाइम-ऑफ-फ्लाइट (टीओएफ) रेंज फाइंडर सेंसर
- सर्किट आरेख
- VL6180 ToF सेंसर के लिए आवश्यक पुस्तकालय जोड़ना
- प्रोग्रामिंग और कार्य स्पष्टीकरण
टीओएफ या उड़ान का समय अल्ट्रासोनिक सेंसर जैसे विभिन्न दूरी माप सेंसर द्वारा दूर की वस्तुओं की दूरी को मापने के लिए आमतौर पर इस्तेमाल की जाने वाली विधि है। किसी माध्यम से दूरी तय करने के लिए किसी कण, तरंग या किसी वस्तु द्वारा लिए गए समय के मापन को टाइम-ऑफ-फ्लाइट (TOF) कहा जाता है। इस माप का उपयोग तब वेग या पथ की लंबाई की गणना करने के लिए किया जा सकता है। इसका उपयोग माध्यम के कण या गुणों जैसे कि रचना या प्रवाह दर के बारे में जानने के लिए भी किया जा सकता है। यात्रा की वस्तु का प्रत्यक्ष या अप्रत्यक्ष रूप से पता लगाया जा सकता है।
अल्ट्रासोनिक दूरी मापने वाले उपकरण उड़ान के समय के सिद्धांत का उपयोग करते हुए सबसे शुरुआती उपकरणों में से एक हैं। ये उपकरण एक अल्ट्रासोनिक पल्स का उत्सर्जन करते हैं और लहर को उत्सर्जित करने के लिए लहर द्वारा उठाए गए समय के आधार पर एक ठोस सामग्री से दूरी को मापते हैं। हमने दूरी को मापने के लिए अपने कई एप्लिकेशन में अल्ट्रासोनिक सेंसर का उपयोग किया:
- Arduino और अल्ट्रासोनिक सेंसर आधारित दूरी माप
- माप रास्पबेरी पाई और HCSR04 अल्ट्रासोनिक सेंसर का उपयोग कर दूरी
- दो अल्ट्रासोनिक सेंसर के बीच की दूरी को कैसे मापें
इलेक्ट्रॉन गतिशीलता का अनुमान लगाने के लिए उड़ान विधि के समय का भी उपयोग किया जा सकता है। दरअसल, यह कम-प्रवाहकीय पतली फिल्मों की माप के लिए डिज़ाइन किया गया था, बाद में इसे आम अर्धचालकों के लिए समायोजित किया गया था। इस तकनीक का उपयोग कार्बनिक क्षेत्र प्रभाव ट्रांजिस्टर के साथ-साथ धातु-ढांकता हुआ-धातु संरचनाओं के लिए किया जाता है। लेजर या वोल्टेज पल्स के अनुप्रयोग द्वारा, अतिरिक्त शुल्क उत्पन्न होते हैं।
टीओएफ सिद्धांत एक सेंसर और एक वस्तु के बीच की दूरी को मापने के लिए प्रयोग किया जाता है। किसी वस्तु से प्रतिबिंबित होने के बाद सेंसर तक वापस पहुंचने के लिए सिग्नल द्वारा लिया गया समय मापा जाता है और इसका उपयोग दूरी की गणना करने के लिए किया जाता है। टीओएफ सिद्धांत के साथ ध्वनि, प्रकाश जैसे विभिन्न प्रकार के संकेतों (वाहक) का उपयोग किया जा सकता है। जब TOF का उपयोग रेंज खोजने के लिए किया जाता है तो यह बहुत शक्तिशाली होता है जब ध्वनि के बजाय प्रकाश उत्सर्जित करता है। अल्ट्रासाउंड की तुलना में यह तेजी से पढ़ने, उच्च सटीकता और अधिक से अधिक रेंज अभी भी अपने कम वजन, छोटे आकार और कम बिजली की खपत विशेषताओं को बनाए रखता है।
यहाँ इस ट्यूटोरियल में हम सेंसर और ऑब्जेक्ट के बीच की दूरी की गणना करने के लिए Arduino के साथ VL6180X TOF रेंज फाइंडर सेंसर का उपयोग करेंगे । यह सेंसर LUX में लाइट इंटेंसिटी वैल्यू को भी बताता है।
वीएल6180 एक्स टाइम-ऑफ-फ्लाइट (टीओएफ) रेंज फाइंडर सेंसर
VL6180 अन्य दूरी सेंसर से अलग है क्योंकि यह किसी भी सतह से वापस प्रतिबिंबित करने के लिए प्रकाश द्वारा लिए गए समय को मापने के लिए एक सटीक घड़ी का उपयोग करता है। यह वीएल6180 को अन्य सेंसरों पर लाभ देता है क्योंकि यह शोर के लिए अधिक सटीक और प्रतिरक्षा है।
VL6180 एक 3-इन -1 पैकेज है जिसमें एक आईआर एमिटर, एक एम्बिएंट लाइट सेंसर और एक रेंज सेंसर शामिल है । यह एक I 2 C इंटरफ़ेस के माध्यम से संचार करता है। इसमें ऑनबोर्ड 2.8V रेगुलेटर है। यहां तक कि अगर हम 2.8 वी से अधिक वोल्टेज में प्लग करते हैं, तो यह बोर्ड को नुकसान पहुंचाए बिना स्वचालित रूप से नीचे शिफ्ट हो जाएगा। यह 25 सेमी तक की सीमा को मापता है । इसमें दो प्रोग्रामेबल GPIO दिए गए हैं।
सर्किट आरेख
यहां नोकिया 5110 एलसीडी का उपयोग लाइट स्तर और दूरी प्रदर्शित करने के लिए किया जाता है। नोकिया 5110 एलसीडी 3.3V पर काम करता है इसलिए इसे सीधे Arduino नैनो डिजिटल पिन के साथ नहीं जोड़ा जा सकता है। तो 5V डिजिटल पिन से 3.3V लाइनों की सुरक्षा के लिए डेटा संकेतों के साथ श्रृंखला में 10k प्रतिरोधों को जोड़ें। Arduino के साथ नोकिया 5110 एलसीडी का उपयोग करने के बारे में अधिक जानें ।
VL6180 सेंसर सीधे Arduino के लिए जोड़ा जा सकता है। VL6180and Arduino के बीच संचार I2C है। वास्तव में I2C संचार प्रोटोकॉल SPI और UART की सर्वोत्तम विशेषताओं को जोड़ती है। यहां हम कई गुलामों को एक ही मास्टर से जोड़ सकते हैं और हमारे पास एक या कई गुलामों को नियंत्रित करने वाले कई स्वामी हो सकते हैं। UART संचार की तरह, I2C संचार SDA (सीरियल डेटा) और SCL (सीरियल क्लॉक), एक डेटा लाइन और घड़ी लाइन के लिए दो तारों का उपयोग करता है।
VL6180 ToF रेंज फाइंडर सेंसर को Arduino के साथ जोड़ने के लिए सर्किट आरेख नीचे दिखाया गया है:
- 10K रोकनेवाला के माध्यम से Arduino के पिन 6 में एलसीडी के RST पिन को कनेक्ट करें।
- 10K रोकनेवाला के माध्यम से Arduino के 7 पिन के लिए एलसीडी के CE पिन कनेक्ट करें।
- एलसीडी के डीसी पिन को 10K रोकनेवाला के माध्यम से 5 Arduino के पिन से कनेक्ट करें।
- एलसीडी के दीन पिन को 10K रोकनेवाला के माध्यम से 4 Arduino के पिन से कनेक्ट करें।
- एलसीडी के सीएलके पिन को 10K रोकनेवाला के माध्यम से 3 Arduino के पिन से कनेक्ट करें।
- Arduino के 3.3V पिन के लिए एलसीडी का वीसीसी पिन कनेक्ट करें।
- एलसीडी के GND पिन को Arduino के GND से कनेक्ट करें।
- VL6180 के SCL पिन को Arduino के A5 पिन से कनेक्ट करें
- VL6180 के SDA पिन को Arduino के A4 पिन से कनेक्ट करें
- VL6180 के VCC पिन को Arduino के 5V पिन से कनेक्ट करें
- VL6180 के GND पिन को Arduino के GND पिन से कनेक्ट करें
VL6180 ToF सेंसर के लिए आवश्यक पुस्तकालय जोड़ना
Arduino के साथ VL6180 सेंसर को इंटरफेस करने में तीन पुस्तकालयों का उपयोग किया जाएगा।
1. Adafruit_PCD8544
Adafruit_PCD8544 मोनोक्रोम नोकिया 5110 एलसीडी डिस्प्ले के लिए एक पुस्तकालय है। ये डिस्प्ले संचार के लिए SPI का उपयोग करते हैं। इस एलसीडी को बदलने के लिए चार या पांच पिन की आवश्यकता होती है। इस लाइब्रेरी को डाउनलोड करने का लिंक नीचे दिया गया है:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Arduino के लिए Adafruit_GFX लाइब्रेरी एलसीडी डिस्प्ले के लिए मुख्य ग्राफिक्स लाइब्रेरी है, जो एक सामान्य वाक्यविन्यास और ग्राफिक्स प्राइमेटिक्स (अंक, रेखाएं, मंडलियों, आदि) का सेट प्रदान करती है। इसे हमारे द्वारा उपयोग किए जाने वाले प्रत्येक डिस्प्ले डिवाइस (निचले स्तर के कार्यों को संभालने के लिए) के लिए एक हार्डवेयर विशिष्ट लाइब्रेरी के साथ जोड़ा जाना चाहिए। इस लाइब्रेरी को डाउनलोड करने का लिंक नीचे दिया गया है:
github.com/adafruit/Adafruit-GFX-Library
3. स्पार्कफुन वीएल6180
SparkFun_VL6180 VL6180 सेंसर की बुनियादी कार्यक्षमता के साथ Arduino लाइब्रेरी है। VL6180 में एक IR एमिटर, एक रेंज सेंसर और एक एम्बिएंट लाइट सेंसर होता है जो I2C इंटरफ़ेस के माध्यम से संचार करता है। यह लाइब्रेरी आपको सेंसर से दूरी और प्रकाश आउटपुट को पढ़ने की अनुमति देती है, और सीरियल कनेक्शन के माध्यम से डेटा को आउटपुट करती है। इस लाइब्रेरी को डाउनलोड करने का लिंक नीचे दिया गया है:
downloads.arduino.cc/lbooks/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
स्केच में जाकर एक-एक करके सभी लाइब्रेरी को जोड़ें >> Arduino IDE में लाइब्रेरी । Add.ZIP लाइब्रेरी शामिल करें । फिर उपरोक्त लिंक्स से डाउनलोड की गई लाइब्रेरी को अपलोड करें।
कभी-कभी आपको तार और एसपीआई लाइब्रेरी जोड़ने की आवश्यकता नहीं होगी, लेकिन अगर आपको कोई त्रुटि मिल रही है तो कृपया उसे अपने Arduino IDE में डाउनलोड और जोड़ें।
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
प्रोग्रामिंग और कार्य स्पष्टीकरण
एक कामकाजी वीडियो के साथ पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है, यहां हम प्रोजेक्ट के कामकाज को समझने के लिए पूरा कार्यक्रम बता रहे हैं।
इस कार्यक्रम में अधिकांश भाग पुस्तकालयों द्वारा संभाले जाते हैं जिन्हें हमने जोड़ा है इसलिए आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।
में सेटअप हिस्सा रों सेट 115200 के रूप में बॉड दर और I2C के लिए तार पुस्तकालय आरंभ कर देगा। फिर जांचें कि VL6180 सेंसर ठीक से काम कर रहा है या नहीं, अगर यह काम नहीं कर रहा है तो त्रुटि संदेश दिखाएं।
निम्नलिखित भाग में हम डिस्प्ले सेट कर रहे हैं, आप अपने इच्छित मूल्य के विपरीत बदल सकते हैं यहां मैं इसे 50 के रूप में सेट कर रहा हूं
शून्य सेटअप () { Serial.begin (115200); // 115200bps वायर पर शुरू करें । वायरिन (); // प्रारंभ I2C पुस्तकालय देरी (100); // देरी। if (सेंसर.VL6180xInit ()! = 0) { Serial.println ("FAILED TO INITALIZE"); // प्रारंभिक उपकरण और त्रुटियों के लिए जाँच करें }; Sens.VL6180xDefautSettings (); // आरंभ करने के लिए डिफ़ॉल्ट सेटिंग्स लोड करें। देरी (1000); // देरी 1s प्रदर्शन .begin (); // init किया गया // आप सबसे अच्छा देखने के लिए प्रदर्शन को अनुकूलित करने के लिए इसके विपरीत बदल सकते हैं //! display.setContrast (50); display.display (); // शो स्पलैशस्क्रीन प्रदर्शन ।clearDisplay (); }
में शून्य पाश हिस्सा सेटअप निर्देशों का एलसीडी स्क्रीन पर मूल्यों को प्रदर्शित करने। यहां हम दो मान प्रदर्शित कर रहे हैं, एक है "लक्स में एम्बिएंट लाइट लेवल" (एक लक्स वास्तव में प्रति वर्ग मीटर क्षेत्र में एक लुमेन है), और दूसरा "मिमी में मापा गया दूरी" है। एलसीडी स्क्रीन पर विभिन्न मूल्यों को प्रदर्शित करने के लिए प्रत्येक स्क्रीन की स्थिति को परिभाषित करें जो एलसीडी स्क्रीन पर "display.setCursor (0,0)" का उपयोग करके प्रदर्शित करना चाहिए।
शून्य लूप () { display.clearDisplay (); // एंबियंट लाइट लेवल प्राप्त करें और लक्स सीरियल में रिपोर्ट करें ("एम्बिएंट लाइट लेवल (लक्स) ="); Serial.println (Sens.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (BLACK); display.setCursor (0,0); display.println ("लाइट लेवल"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // mm Serial.print में दूरी और रिपोर्ट प्राप्त करें ("दूरी मापा (मिमी) ="); Serial.println (Sens.getDistance ()); display.setTextSize (1); display.setTextColor (BLACK); display.setCursor (0, 24); display.println ("दूरी (मिमी) ="); display.setCursor (0, 36); b = sensor.getDistance (); display.println (b); display.display (); देरी (500); }
कार्यक्रम को अपलोड करने के बाद, सीरियल मॉनिटर खोलें और इसे नीचे दिखाए अनुसार आउटपुट दिखाना चाहिए।
वीएल 6180 टीओएफ रेंज फाइंडर्स का उपयोग स्मार्टफोन, पोर्टेबल टचस्क्रीन डिवाइस, टैबलेट, लैपटॉप, गेमिंग डिवाइस और घरेलू उपकरणों / औद्योगिक उपकरणों में किया जाता है।
यहां हम लक्स में एंबिएंट लाइट लेवल और मिमी में दूरी प्रदर्शित कर रहे हैं ।
पता लगाएं पूरा कार्यक्रम और प्रदर्शन वीडियो नीचे। यह भी देखें कि BH1750 एम्बिएंट लाइट सेंसर का उपयोग करके अल्ट्रासोनिक सेंसर और प्रकाश स्तर का उपयोग करके दूरी कैसे मापें।