# സമീപത കണ്ടെത്തുക - റാസ്പ്ബെറി പൈ
പാഠത്തിന്റെ ഈ ഭാഗത്ത്, നിങ്ങൾക്ക് നിങ്ങളുടെ റാസ്പ്ബെറി പൈയിൽ ഒരു സമീപത സെൻസർ ചേർക്കുകയും അതിൽ നിന്ന് ദൂരം വായിക്കുകയും ചെയ്യും.
## ഹാർഡ്വെയർ
റാസ്പ്ബെറി പൈക്ക് ഒരു സമീപത സെൻസർ ആവശ്യമുണ്ട്.
നீங்கள் ഉപയോഗിക്കുന്നത് ഒരു [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 സോക്കറ്റിന്റെ മറുവശം.
ഇത് ഒരു I2C സെൻസർ ആണ്.
### ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസർ കണക്റ്റ് ചെയ്യുക
Grove ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസർ റാസ്പ്ബെറി പായുമായി കണക്റ്റ് ചെയ്യാവുന്നതാണ്.
#### ടാസ്ക് - ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസർ കണക്റ്റ് ചെയ്യുക
ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസർ കണക്റ്റ് ചെയ്യുക.

1. ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസറിലെ സോക്കറ്റിൽ ഒരു Grove കേബിളിന്റെ ഒരു അറ്റം ഘടിപ്പിക്കുക. ഇത് ഒരു മാത്രമായും ശരിയായ ദിശയിൽ ഉൾപ്പെടുത്താവുന്നതാണ്.
1. റാസ്പ്ബെറി പൈ പവർത്തനം ഓഫാക്കുമ്പോൾ, Grove കേബിളിന്റെ മറ്റൊരു അറ്റം Grove ബേസ് ഹാറ്റിൽ Pi-യിലേക്കെടുത്ത I2C സോക്കറ്റുകളിൽ ഒന്നിൽ (**I2C** എന്ന ലേബലുള്ള) കണക്റ്റ് ചെയ്യുക. ഈ സോക്കറ്റുകൾ താഴത്തെ വരിയിലുള്ളവയാണ്, GPIO പിനുകളുടെ മറുവശത്തും ക്യാമറ കേബിൾ സ്ലോട്ടിനടുത്തുമുള്ളത്.

## ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസർ പ്രോഗ്രാം ചെയ്യുക
ഇപ്പോൾ റാസ്പ്ബെറി പൈ ചേർത്ത ടൈം ഓഫ ഫ്ലൈറ്റ് സെൻസർ ഉപയോഗിച്ച് പ്രോഗ്രാം ചെയ്യാവുന്നതാണ്.
### ടാസ്ക് - ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസർ പ്രോഗ്രാം ചെയ്യുക
ഉപകരണത്തെ പ്രോഗ്രാം ചെയ്യുക.
1. പൈ ഓൺ ചെയ്ത് ബൂട്ട് ആകുന്നത് കാത്തിരിക്കുക.
1. `fruit-quality-detector` കോഡ് VS Code-ൽ തുറക്കുക, നേരിട്ട് Pi-യിൽ അല്ലെങ്കിൽ Remote SSH എക്സ്റ്റൻഷൻ ഉപയോഗിച്ച് കണക്റ്റ് ചെയ്ത്.
1. rpi-vl53l0x പിപിപാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക, VL53L0X ടൈം ഓഫ് ഫ്ലൈറ്റ് ദൂരം മാപക സെൻസറുമായി ഇടപഴകുന്ന ഒരു Python പാക്കേജാണ് ഇത്. താഴെപ്പറയുന്ന പിപ്പ് കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യാം
```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 I2C ബസ് ലൈബ്രറി, കൂടാതെ Grove ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസറിന്റെ കോർ സെൻസർ ഹാർഡ്വെയറിലേക്ക് വേണ്ടി സെൻസർ ലൈബ്രറി ഇറക്കുമതി ചെയ്യുന്നു.
1. ഇതിന് താഴെ, സെൻസർ പ്രവേശിപ്പിക്കാൻ താഴെക്കൊടുത്ത കോഡ് ചേർക്കുക:
```python
distance_sensor = VL53L0X(bus = Bus().bus)
distance_sensor.begin()
```
ഈ കോഡ് Grove I2C ബസ് ഉപയോഗിച്ച് ഒരു ദൂരം സെൻസർ പ്രഖ്യാപിക്കുകയും, സെൻസർ ആരംഭിപ്പിക്കുകയും ചെയ്യുന്നു.
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
```
ടൈം ഓഫ് ഫ്ലൈറ്റ് സെൻസറിന്റെ മുകളിലൂടെ റേഞ്ച്ഫൈൻഡർ സജ്ജമാകുന്നതുകൊണ്ട്, ദൂരം അളക്കുമ്പോൾ ശരിയായ വശം ഉപയോഗിക്കുന്നുവെന്ന് ഉറപ്പുവരുത്തുക.

> 💁 ഈ കോഡ് [code-proximity/pi](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/pi) ഫോൾഡറിലുണ്ട്.
😀 നിങ്ങളുടെ proximity സെൻസർ പ്രോഗ്രാം വിജയകരമായി പൂർത്തിയായി!
---
**ജോൺ ചെയ്യൽ**:
ഈ ഡോക്യുമെന്റ് AI പരിഭാഷ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ ശരിയായ പരിഭാഷക്കായി ശ്രമിച്ചാലും, യാന്ത്രിക പരിഭാഷ വിവരസമ്മേളനങ്ങളിൽ പിശകുകൾ ഉണ്ടാകാം. അതിനാൽ, പ്രാദേശിക ഭാഷയിലെ യഥാർത്ഥ ഡോക്യുമെന്റ് അതിന്റെ ഔദ്യോഗിക ഉറവിടമായി കരുതണം. പ്രത്യധികാര വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ പരിഭാഷ ഉപയോഗിക്കുന്നതിൽ നിന്നുണ്ടാകാവുന്ന തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദിത്വം വഹിക്കുന്നില്ല.