Raspberry Pi - Obstakel Sensor

Deze handleiding leert u hoe u de Raspberry Pi gebruikt met de infrarood obstakel vermijdingssensor. We zullen in detail leren:

Hardware benodigd

1×Raspberry Pi 5
1×IR Obstakel Vermijdingssensor
1×Jumperdraden
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de IR Obstakel Vermijdingssensor

De infrarood obstakelsensor kan de aanwezigheid van een object voor zich detecteren door gebruik te maken van infrarood signalen. Het detectiebereik is van 2 cm tot 30 cm en kan worden aangepast met een ingebouwde potentiometer.

Pinout van de Infrarood Obstakel Vermijdingssensor

De IR obstakel vermijdingssensor heeft drie pinnen:

  • GND pin: moet worden verbonden met GND (0V)
  • VCC pin: moet worden verbonden met VCC (5V of 3.3V)
  • OUT pin: is een uitgangspin, LOW wanneer er een obstakel aanwezig is, HIGH wanneer er geen obstakel is. Deze pin dient verbonden te worden met een input pin van de Raspberry Pi.
IR Obstakel Vermijdingssensor pinout

Hoe het werkt

De infrarood obstakelsensormodule bevat een ingebouwde IR zender en IR ontvanger. De IR zender zendt het IR-signaal uit. De IR ontvanger zoekt naar het teruggekaatste IR-signaal om te detecteren of er een object aanwezig is of niet. De OUT pin van de sensor geeft de aanwezigheid van een obstakel weer:

  • Als er een obstakel voor de sensor is, wordt de OUT pin van de sensor LOW
  • Als er geen obstakel voor de sensor is, wordt de OUT pin van de sensor HIGH

※ Notiz:

Tijdens het transport kan de sensor vervormd raken, wat storingen kan veroorzaken. Als de sensor niet correct werkt, stel dan de IR zender en ontvanger bij zodat ze parallel aan elkaar staan.

Bedradingsschema

Raspberry Pi IR Obstakel Vermijdingssensor bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren voor IR Obstakel Vermijdingssensor

  • Initialiseert de Raspberry Pi pin in digitale input-modus met de GPIO.setup() functie.
GPIO.setup(SENSOR_PIN, GPIO.IN)
  • Gebruik de GPIO.input() functie om de status van de Raspberry Pi pin uit te lezen.
obstacle_state = GPIO.input(SENSOR_PIN)

Raspberry Pi Code

Er kunnen twee benaderingen worden gekozen bij het programmeren voor een obstakel vermijdingsapplicatie:

  • Handelen op basis van of het obstakel aanwezig is of niet
  • Handelen op basis van of het obstakel is gedetecteerd of verwijderd

Raspberry Pi code voor het controleren of het obstakel aanwezig is

Snelle stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem geïnstalleerd hebt op uw Pi.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u nog libraries moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, zie hoe u de Raspberry Pi instelt
  • Verbind uw pc met de Raspberry Pi via SSH met de ingebouwde SSH client op Linux en macOS of met PuTTY op Windows. Zie hoe u uw pc met Raspberry Pi verbindt via SSH.
  • Zorg dat de RPi.GPIO bibliotheek geïnstalleerd is. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python script aan met de naam obstacle_sensor.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-obstacle-sensor import RPi.GPIO as GPIO # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the ir obstacle avoidance sensor SENSOR_PIN = 12 # Set the GPIO pin as an input GPIO.setup(SENSOR_PIN, GPIO.IN) try: while True: # Read the state from the ir obstacle avoidance sensor obstacle_state = GPIO.input(SENSOR_PIN) # The ir obstacle avoidance sensor outputs LOW (0) when obstacle is present, otherwise HIGH (1) if obstacle_state == GPIO.LOW: print("The obstacle is present") else: print("The obstacle is NOT present") except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit door het volgende commando in de terminal te typen:
python3 obstacle_sensor.py
  • Plaats gedurende enige tijd een obstakel voor de sensor en haal het dan weer weg.
  • Controleer de uitvoer in de Terminal.
PuTTY - Raspberry Pi
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present

Het script draait oneindig in een lus door tot u in de terminal Ctrl + C indrukt.

Raspberry Pi code voor het detecteren van obstakels

Snelle stappen

  • Maak een Python script aan met de naam obstacle_sensor_events.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-obstacle-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the ir obstacle avoidance sensor SENSOR_PIN = 12 # Set the GPIO pin as an input GPIO.setup(SENSOR_PIN, GPIO.IN) # Variable to track the ir obstacle avoidance sensor state prev_obstacle_state = GPIO.HIGH # Assuming no obstacle initially try: while True: obstacle_state = GPIO.input(SENSOR_PIN) if obstacle_state != prev_obstacle_state: if obstacle_state == GPIO.LOW: # obstacle is detected print("An obstacle is detected") else: # An obstacle is removed print("An obstacle is removed") prev_obstacle_state = obstacle_state time.sleep(0.1) # A small delay to debounce the input except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit door het volgende commando in de terminal te typen:
python3 obstacle_sensor_events.py
  • Plaats een obstakel voor de sensor en haal het daarna weer weg.
  • Bekijk de resultaten in de Terminal.
PuTTY - Raspberry Pi
An obstacle is detected An obstacle is removed

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!