# निकटता का पता लगाएं - रास्पबेरी पाई इस पाठ के इस भाग में, आप अपने रास्पबेरी पाई में एक निकटता सेंसर जोड़ेंगे और उससे दूरी पढ़ेंगे। ## हार्डवेयर रास्पबेरी पाई को एक निकटता सेंसर की आवश्यकता है। आप जो सेंसर उपयोग करेंगे वह [Grove Time of Flight distance sensor](https://www.seeedstudio.com/Grove-Time-of-Flight-Distance-Sensor-VL53L0X.html) है। यह सेंसर दूरी का पता लगाने के लिए एक लेजर रेंजिंग मॉड्यूल का उपयोग करता है। इस सेंसर की रेंज 10mm से 2000mm (1cm - 2m) है, और यह इस रेंज में दूरी को काफी सटीकता से रिपोर्ट करेगा। 1000mm से अधिक की दूरी को 8109mm के रूप में रिपोर्ट किया जाएगा। लेजर रेंजफाइंडर सेंसर के पीछे की तरफ है, जो Grove सॉकेट के विपरीत दिशा में है। यह एक I²C सेंसर है। ### टाइम ऑफ फ्लाइट सेंसर कनेक्ट करें Grove टाइम ऑफ फ्लाइट सेंसर को रास्पबेरी पाई से जोड़ा जा सकता है। #### कार्य - टाइम ऑफ फ्लाइट सेंसर कनेक्ट करें टाइम ऑफ फ्लाइट सेंसर को कनेक्ट करें। ![एक Grove टाइम ऑफ फ्लाइट सेंसर](../../../../../translated_images/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.hi.png) 1. Grove केबल के एक सिरे को टाइम ऑफ फ्लाइट सेंसर के सॉकेट में डालें। यह केवल एक ही दिशा में जाएगा। 1. रास्पबेरी पाई को बंद करके, Grove केबल के दूसरे सिरे को Grove बेस हैट पर **I²C** सॉकेट में कनेक्ट करें। ये सॉकेट निचली पंक्ति में हैं, GPIO पिन्स के विपरीत छोर पर और कैमरा केबल स्लॉट के पास हैं। ![Grove टाइम ऑफ फ्लाइट सेंसर I²C सॉकेट से जुड़ा हुआ](../../../../../translated_images/pi-time-of-flight-sensor.58c8dc04eb3bfb57a7c3019f031433ef4d798d4d7603d565afbf6f3802840dba.hi.png) ## टाइम ऑफ फ्लाइट सेंसर प्रोग्राम करें अब रास्पबेरी पाई को जुड़े हुए टाइम ऑफ फ्लाइट सेंसर का उपयोग करने के लिए प्रोग्राम किया जा सकता है। ### कार्य - टाइम ऑफ फ्लाइट सेंसर प्रोग्राम करें डिवाइस को प्रोग्राम करें। 1. पाई को चालू करें और इसके बूट होने का इंतजार करें। 1. `fruit-quality-detector` कोड को VS Code में खोलें, या तो सीधे पाई पर, या Remote SSH एक्सटेंशन के माध्यम से कनेक्ट करें। 1. `rpi-vl53l0x` Pip पैकेज इंस्टॉल करें, जो VL53L0X टाइम-ऑफ-फ्लाइट डिस्टेंस सेंसर के साथ इंटरैक्ट करता है। इसे इस पिप कमांड का उपयोग करके इंस्टॉल करें: ```sh pip install rpi-vl53l0x ``` 1. इस प्रोजेक्ट में एक नई फाइल बनाएं जिसका नाम `distance-sensor.py` हो। > 💁 कई IoT डिवाइसों को सिमुलेट करने का एक आसान तरीका यह है कि प्रत्येक को एक अलग Python फाइल में करें, फिर उन्हें एक साथ चलाएं। 1. इस फाइल में निम्नलिखित कोड जोड़ें: ```python import time from grove.i2c import Bus from rpi_vl53l0x.vl53l0x import VL53L0X ``` यह Grove I²C बस लाइब्रेरी और Grove टाइम ऑफ फ्लाइट सेंसर में निर्मित कोर सेंसर हार्डवेयर के लिए एक सेंसर लाइब्रेरी को इंपोर्ट करता है। 1. इसके नीचे, सेंसर को एक्सेस करने के लिए निम्नलिखित कोड जोड़ें: ```python distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin() ``` यह कोड Grove I²C बस का उपयोग करके एक डिस्टेंस सेंसर घोषित करता है, फिर सेंसर को शुरू करता है। 1. अंत में, दूरी पढ़ने के लिए एक अनंत लूप जोड़ें: ```python while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1) ``` यह कोड सेंसर से पढ़ने के लिए एक मान तैयार होने का इंतजार करता है, फिर इसे कंसोल में प्रिंट करता है। 1. इस कोड को चलाएं। > 💁 ध्यान दें कि इस फाइल का नाम `distance-sensor.py` है! इसे Python के माध्यम से चलाना सुनिश्चित करें, न कि `app.py` के माध्यम से। 1. आप कंसोल में दूरी माप देखेंगे। सेंसर के पास वस्तुओं को रखें और आप दूरी माप देखेंगे: ```output pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm ``` रेंजफाइंडर सेंसर के पीछे की तरफ है, इसलिए दूरी मापते समय सही दिशा का उपयोग करना सुनिश्चित करें। ![टाइम ऑफ फ्लाइट सेंसर के पीछे का रेंजफाइंडर एक केले की ओर इशारा करते हुए](../../../../../translated_images/time-of-flight-banana.079921ad8b1496e4525dc26b4cdc71a076407aba3e72ba113ba2e38febae92c5.hi.png) > 💁 आप इस कोड को [code-proximity/pi](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/pi) फोल्डर में पा सकते हैं। 😀 आपका निकटता सेंसर प्रोग्राम सफल रहा! **अस्वीकरण**: यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।