5.3 KiB
Detecteer nabijheid - Raspberry Pi
In dit deel van de les voeg je een nabijheidssensor toe aan je Raspberry Pi en lees je de afstand ervan af.
Hardware
De Raspberry Pi heeft een nabijheidssensor nodig.
De sensor die je gaat gebruiken is een Grove Time of Flight afstandssensor. Deze sensor gebruikt een laserafstandsmodule om afstanden te detecteren. De sensor heeft een bereik van 10mm tot 2000mm (1cm - 2m) en rapporteert waarden binnen dat bereik vrij nauwkeurig, waarbij afstanden boven 1000mm worden gerapporteerd als 8109mm.
De laserafstandsmeter bevindt zich aan de achterkant van de sensor, tegenover de Grove-aansluiting.
Dit is een I²C-sensor.
Verbind de Time of Flight-sensor
De Grove Time of Flight-sensor kan worden aangesloten op de Raspberry Pi.
Taak - verbind de Time of Flight-sensor
Verbind de Time of Flight-sensor.
-
Steek één uiteinde van een Grove-kabel in de aansluiting op de Time of Flight-sensor. De kabel past maar op één manier.
-
Schakel de Raspberry Pi uit en verbind het andere uiteinde van de Grove-kabel met een van de I²C-aansluitingen gemarkeerd als I²C op de Grove Base Hat die aan de Pi is bevestigd. Deze aansluitingen bevinden zich op de onderste rij, aan de tegenovergestelde kant van de GPIO-pinnen en naast de aansluiting voor de camerakabel.
Programmeer de Time of Flight-sensor
De Raspberry Pi kan nu worden geprogrammeerd om de aangesloten Time of Flight-sensor te gebruiken.
Taak - programmeer de Time of Flight-sensor
Programmeer het apparaat.
-
Zet de Pi aan en wacht tot deze is opgestart.
-
Open de
fruit-quality-detector
code in VS Code, direct op de Pi of via de Remote SSH-extensie. -
Installeer het rpi-vl53l0x Pip-pakket, een Python-pakket dat interacteert met een VL53L0X Time of Flight-afstandssensor. Installeer het met dit pip-commando:
pip install rpi-vl53l0x
-
Maak een nieuw bestand in dit project genaamd
distance-sensor.py
.💁 Een eenvoudige manier om meerdere IoT-apparaten te simuleren is om elk apparaat in een apart Python-bestand te plaatsen en ze tegelijkertijd uit te voeren.
-
Voeg de volgende code toe aan dit bestand:
import time from grove.i2c import Bus from rpi_vl53l0x.vl53l0x import VL53L0X
Dit importeert de Grove I²C-busbibliotheek en een sensorbibliotheek voor de kernhardware die in de Grove Time of Flight-sensor is ingebouwd.
-
Voeg hieronder de volgende code toe om toegang te krijgen tot de sensor:
distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin()
Deze code declareert een afstandssensor met behulp van de Grove I²C-bus en start vervolgens de sensor.
-
Voeg ten slotte een oneindige lus toe om afstanden te lezen:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
Deze code wacht tot er een waarde beschikbaar is om te lezen van de sensor en print deze vervolgens naar de console.
-
Voer deze code uit.
💁 Vergeet niet dat dit bestand
distance-sensor.py
heet! Zorg ervoor dat je dit uitvoert via Python en niet viaapp.py
. -
Je zult afstandsmetingen in de console zien verschijnen. Plaats objecten in de buurt van de sensor en je zult de afstandsmeting zien:
pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
De afstandsmeter bevindt zich aan de achterkant van de sensor, dus zorg ervoor dat je de juiste kant gebruikt bij het meten van afstanden.
💁 Je kunt deze code vinden in de code-proximity/pi map.
😀 Je programma voor de nabijheidssensor is een succes!
Disclaimer:
Dit document is vertaald met behulp van de AI-vertalingsservice Co-op Translator. Hoewel we ons best doen voor nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.