You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sr/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md

7.2 KiB

Детектовање близине - Raspberry Pi

У овом делу лекције, додаћете сензор близине на ваш Raspberry Pi и читати удаљеност са њега.

Хардвер

Raspberry Pi захтева сензор близине.

Сензор који ћете користити је Grove Time of Flight сензор удаљености. Овај сензор користи ласерски модул за мерење удаљености. Сензор има опсег од 10мм до 2000мм (1цм - 2м) и прилично прецизно ће пријављивати вредности у том опсегу, док ће удаљености изнад 1000мм бити пријављене као 8109мм.

Ласерски мерач удаљености налази се на задњој страни сензора, супротно од Grove прикључка.

Ово је I²C сензор.

Повежите сензор удаљености

Grove сензор удаљености може се повезати са Raspberry Pi.

Задатак - повежите сензор удаљености

Повежите сензор удаљености.

Grove сензор удаљености

  1. Уметните један крај Grove кабла у прикључак на сензору удаљености. Кабл ће ући само на један начин.

  2. Са искљученим Raspberry Pi-јем, повежите други крај Grove кабла у један од I²C прикључака означених I²C на Grove Base хату који је прикључен на Pi. Ови прикључци се налазе на доњем реду, супротном крају од GPIO пинова и поред слота за камеру.

Grove сензор удаљености повезан на I²C прикључак

Програмирање сензора удаљености

Raspberry Pi сада може бити програмиран да користи повезани сензор удаљености.

Задатак - програмирајте сензор удаљености

Програмирајте уређај.

  1. Укључите Pi и сачекајте да се покрене.

  2. Отворите код fruit-quality-detector у VS Code-у, било директно на Pi-ју или се повежите преко Remote SSH екстензије.

  3. Инсталирајте rpi-vl53l0x Pip пакет, Python пакет који комуницира са VL53L0X сензором удаљености. Инсталирајте га користећи ову pip команду:

    pip install rpi-vl53l0x
    
  4. Направите нову датотеку у овом пројекту под називом distance-sensor.py.

    💁 Лак начин за симулацију више IoT уређаја је да сваки уређај буде у различитој Python датотеци, а затим их покренете истовремено.

  5. Додајте следећи код у ову датотеку:

    import time
    
    from grove.i2c import Bus
    from rpi_vl53l0x.vl53l0x import VL53L0X
    

    Ово увози Grove I²C библиотеку и библиотеку сензора за основни хардвер сензора уграђеног у Grove сензор удаљености.

  6. Испод овога, додајте следећи код за приступ сензору:

    distance_sensor = VL53L0X(bus = Bus().bus)
    distance_sensor.begin()    
    

    Овај код декларише сензор удаљености користећи Grove I²C, а затим покреће сензор.

  7. На крају, додајте бесконачну петљу за читање удаљености:

    while True:
        distance_sensor.wait_ready()
        print(f'Distance = {distance_sensor.get_distance()} mm')
        time.sleep(1)
    

    Овај код чека да вредност буде спремна за читање са сензора, а затим је исписује на конзолу.

  8. Покрените овај код.

    💁 Не заборавите да се ова датотека зове distance-sensor.py! Уверите се да је покрећете преко Python-а, а не app.py.

  9. Видећете мерења удаљености на конзоли. Поставите објекте близу сензора и видећете мерење удаљености:

    pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py 
    Distance = 29 mm
    Distance = 28 mm
    Distance = 30 mm
    Distance = 151 mm
    

    Мерач удаљености је на задњој страни сензора, па се уверите да користите исправну страну приликом мерења удаљености.

    Мерач удаљености на задњој страни сензора удаљености усмерен ка банани

💁 Овај код можете пронаћи у code-proximity/pi фасцикли.

😀 Ваш програм за сензор близине је успешно завршен!


Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.