5.4 KiB
Detectează proximitatea - Raspberry Pi
În această parte a lecției, vei adăuga un senzor de proximitate la Raspberry Pi și vei citi distanța de la acesta.
Hardware
Raspberry Pi are nevoie de un senzor de proximitate.
Senzorul pe care îl vei folosi este un Grove Time of Flight distance sensor. Acest senzor utilizează un modul de măsurare cu laser pentru a detecta distanța. Senzorul are un interval de măsurare de la 10mm la 2000mm (1cm - 2m) și va raporta valori destul de precise în acest interval, cu distanțele de peste 1000mm raportate ca 8109mm.
Telemetrul laser se află pe partea din spate a senzorului, partea opusă soclului Grove.
Acesta este un senzor I²C.
Conectează senzorul Time of Flight
Senzorul Grove Time of Flight poate fi conectat la Raspberry Pi.
Sarcină - conectează senzorul Time of Flight
Conectează senzorul Time of Flight.
-
Introdu un capăt al unui cablu Grove în soclul senzorului Time of Flight. Acesta va intra doar într-un singur mod.
-
Cu Raspberry Pi oprit, conectează celălalt capăt al cablului Grove la unul dintre soclurile I²C marcate I²C pe Grove Base Hat atașat la Pi. Aceste socluri se află pe rândul de jos, la capătul opus pinilor GPIO și lângă slotul pentru cablul camerei.
Programează senzorul Time of Flight
Raspberry Pi poate fi acum programat pentru a utiliza senzorul Time of Flight atașat.
Sarcină - programează senzorul Time of Flight
Programează dispozitivul.
-
Pornește Pi-ul și așteaptă să se încarce.
-
Deschide codul
fruit-quality-detector
în VS Code, fie direct pe Pi, fie conectându-te prin extensia Remote SSH. -
Instalează pachetul rpi-vl53l0x Pip, un pachet Python care interacționează cu un senzor de distanță VL53L0X Time of Flight. Instalează-l folosind această comandă pip:
pip install rpi-vl53l0x
-
Creează un fișier nou în acest proiect numit
distance-sensor.py
.💁 O modalitate ușoară de a simula mai multe dispozitive IoT este să le implementezi pe fiecare într-un fișier Python separat, apoi să le rulezi simultan.
-
Adaugă următorul cod în acest fișier:
import time from grove.i2c import Bus from rpi_vl53l0x.vl53l0x import VL53L0X
Acest cod importă biblioteca Grove I²C bus și o bibliotecă pentru hardware-ul de bază al senzorului integrat în senzorul Grove Time of Flight.
-
Sub acest cod, adaugă următorul cod pentru a accesa senzorul:
distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin()
Acest cod declară un senzor de distanță utilizând Grove I²C bus, apoi pornește senzorul.
-
În cele din urmă, adaugă un buclă infinită pentru a citi distanțele:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
Acest cod așteaptă ca o valoare să fie gata pentru a fi citită de la senzor, apoi o afișează în consolă.
-
Rulează acest cod.
💁 Nu uita că acest fișier se numește
distance-sensor.py
! Asigură-te că îl rulezi cu Python, nu cuapp.py
. -
Vei vedea măsurători ale distanței apărând în consolă. Poziționează obiecte lângă senzor și vei vedea măsurătorile distanței:
pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Telemetrul se află pe partea din spate a senzorului, așa că asigură-te că folosești partea corectă atunci când măsori distanța.
💁 Poți găsi acest cod în folderul code-proximity/pi.
😀 Programul tău pentru senzorul de proximitate a fost un succes!
Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.