ESP32 - Hindernisvermeidungssensor

In dieser Anleitung lernen wir, wie Sie den Infrarot-Hindernisvermeidungssensor mit dem ESP32 und MicroPython verwenden, um Hindernisse zu erkennen. Im Einzelnen lernen wir:

ESP32 MicroPython Hindernisvermeidungssensor

Überblick über IR Obstacle Avoidance Sensor

Der Infrarot-Hindernissensor (IR) erkennt Hindernisse mithilfe eines Infrarotsignals. Er kann Objekte in einer Entfernung zwischen 2 cm und 30 cm erkennen. Der Erfassungsbereich kann mit einem Potentiometer auf der Platine eingestellt werden.

Pinbelegung

Der IR-Hindernisvermeidungssensor hat drei Pins:

  • GND-Pin: Mit Masse (0 Volt) verbinden.
  • VCC-Pin: Mit einer Spannungsversorgung (5 Volt oder 3,3 Volt) verbinden.
  • OUT-Pin: Dieser Ausgangspin wird LOW, wenn ein Hindernis erkannt wird, und HIGH, wenn kein Hindernis vorhanden ist. Verbinden Sie ihn mit einem Eingangspin des ESP32.
IR-Hindernisvermeidungssensor Pinbelegung
image source: diyables.io

Funktionsweise

Ein Infrarot-Hindernissensormodul enthält einen IR-Sender und einen IR-Empfänger. Der IR-Sender strahlt ein Infrarotsignal aus, während der IR-Empfänger das reflektierte Signal erfasst, um festzustellen, ob ein Objekt vorhanden ist. Das Vorhandensein eines Hindernisses wird über den OUT-Pin angezeigt:

  • Befindet sich ein Hindernis vor dem Sensor, ist der OUT-Pin LOW.
  • Befindet sich kein Hindernis vor dem Sensor, ist der OUT-Pin HIGH.

※ Notiz:

Der Sensor kann beim Versand verbogen werden, was zu Fehlfunktionen führt. Wenn der Sensor nicht richtig funktioniert, richten Sie IR-Sender und IR-Empfänger so aus, dass sie parallel zueinander stehen.

Verdrahtungsdiagramm

  • So verbinden Sie ESP32 und Hindernisvermeidungssensor über ein Breadboard
ESP32 MicroPython IR-Hindernisvermeidungssensor Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

So verbinden Sie ESP32 und Hindernisvermeidungssensor

ESP32 MicroPython-Code

Es gibt zwei Ansätze, eine Anwendung zur Hindernisvermeidung zu programmieren:

  • Eine Aktion ausführen oder überspringen, je nachdem, ob das Hindernis vorhanden ist oder nicht.
  • Eine Aktion ausführen oder überspringen, wenn das Hindernis erkannt oder entfernt wird.

ESP32 MicroPython-Code zur Prüfung, ob ein Hindernis vorhanden ist

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-micropython/esp32-micropython-obstacle-avoidance-sensor */ from machine import Pin from time import sleep # Define pin SENSOR_PIN = 18 # The ESP32 pin GPIO18 connected to the OUT pin of IR obstacle avoidance sensor # Initialize the pin sensor = Pin(SENSOR_PIN, Pin.IN) # Main loop while True: state = sensor.value() # Read the state of the input pin if state == 0: print("The obstacle is present") else: print("The obstacle is NOT present") sleep(0.1) # Delay 100 ms

Schnelle Schritte

So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
  • Verdrahten Sie den Hindernisvermeidungssensor gemäß dem Schaltplan mit dem ESP32.
  • Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Thonny IDE auf Ihrem Computer.
  • Gehen Sie in der Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Stellen Sie ein Hindernis für eine Weile vor den Sensor und entfernen Sie es dann.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot 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
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

ESP32 MicroPython-Code zur Erkennung von Hindernissen

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-micropython/esp32-micropython-obstacle-avoidance-sensor */ from machine import Pin from time import sleep # Define pin SENSOR_PIN = 18 # The ESP32 pin GPIO18 connected to the OUT pin of IR obstacle avoidance sensor # Initialize the pin sensor = Pin(SENSOR_PIN, Pin.IN) # Variables to store the previous and current obstacle states prev_obstacle_state = 1 # Start with HIGH (no obstacle) obstacle_state = 1 # Current reading from the input pin # Main loop while True: # Read the state of the input pin obstacle_state = sensor.value() if prev_obstacle_state == 1 and obstacle_state == 0: print("The obstacle is detected") elif prev_obstacle_state == 0 and obstacle_state == 1: print("The obstacle is cleared") # Save the last state prev_obstacle_state = obstacle_state sleep(0.1) # Delay 100 ms

Schnelle Schritte

  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Halten Sie kurz etwas vor den Sensor und entfernen Sie es dann.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The obstacle is detected The obstacle is cleared
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!