# नजिकको दूरी पत्ता लगाउनुहोस् - रास्पबेरी पाई यस पाठको यस भागमा, तपाईं आफ्नो रास्पबेरी पाईमा एक नजिकको दूरी मापन गर्ने सेन्सर थप्नुहुनेछ र त्यसबाट दूरी पढ्नुहुनेछ। ## हार्डवेयर रास्पबेरी पाईलाई एक नजिकको दूरी मापन गर्ने सेन्सर चाहिन्छ। तपाईंले प्रयोग गर्ने सेन्सर [Grove Time of Flight distance sensor](https://www.seeedstudio.com/Grove-Time-of-Flight-Distance-Sensor-VL53L0X.html) हो। यो सेन्सरले लेजर रेंजिङ मोड्युल प्रयोग गरेर दूरी पत्ता लगाउँछ। यस सेन्सरको दायरा १० मिमी देखि २००० मिमी (१ सेमी - २ मिटर) सम्म छ, र यो दायराभित्रको मानहरू धेरै ठ्याक्कै रिपोर्ट गर्दछ। १००० मिमी भन्दा माथिको दूरीलाई ८१०९ मिमीको रूपमा रिपोर्ट गरिन्छ। लेजर रेंजफाइन्डर सेन्सरको पछाडिको भागमा छ, Grove सकेटको विपरीततिर। यो एक I²C सेन्सर हो। ### टाइम अफ फ्लाइट सेन्सर जडान गर्नुहोस् Grove टाइम अफ फ्लाइट सेन्सरलाई रास्पबेरी पाईसँग जडान गर्न सकिन्छ। #### कार्य - टाइम अफ फ्लाइट सेन्सर जडान गर्नुहोस् टाइम अफ फ्लाइट सेन्सर जडान गर्नुहोस्। ![Grove टाइम अफ फ्लाइट सेन्सर](../../../../../translated_images/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.ne.png) 1. Grove केबलको एउटा छेउ टाइम अफ फ्लाइट सेन्सरको सकेटमा हाल्नुहोस्। यो केवल एक तरिकाले मात्र जान्छ। 1. रास्पबेरी पाई बन्द भएको अवस्थामा, Grove केबलको अर्को छेउलाई Grove Base Hat मा रहेको I²C सकेटमा जडान गर्नुहोस्। यी सकेटहरू तल्लो पङ्क्तिमा छन्, GPIO पिनहरूको विपरीततिर र क्यामेरा केबल स्लटको छेउमा। ![Grove टाइम अफ फ्लाइट सेन्सर I²C सकेटमा जडान गरिएको](../../../../../translated_images/pi-time-of-flight-sensor.58c8dc04eb3bfb57a7c3019f031433ef4d798d4d7603d565afbf6f3802840dba.ne.png) ## टाइम अफ फ्लाइट सेन्सर प्रोग्राम गर्नुहोस् अब रास्पबेरी पाईलाई जडान गरिएको टाइम अफ फ्लाइट सेन्सर प्रयोग गर्न प्रोग्राम गर्न सकिन्छ। ### कार्य - टाइम अफ फ्लाइट सेन्सर प्रोग्राम गर्नुहोस् डिभाइस प्रोग्राम गर्नुहोस्। 1. पाईलाई पावर दिनुहोस् र यसलाई बुट हुन दिनुहोस्। 1. `fruit-quality-detector` कोडलाई VS Code मा खोल्नुहोस्, चाहे पाईमा सिधै वा Remote SSH एक्सटेन्सनमार्फत जडान गरेर। 1. `rpi-vl53l0x` Pip प्याकेज स्थापना गर्नुहोस्, जुन VL53L0X टाइम अफ फ्लाइट दूरी सेन्सरसँग अन्तरक्रिया गर्ने Python प्याकेज हो। यसलाई निम्न pip कमाण्ड प्रयोग गरेर स्थापना गर्नुहोस्: ```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.ne.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) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।