Micropython HC -Srtop 10 Ultraschallsensor - ESPTOP 10 und Thonny IDE

Micropython HC -Srtop 10 Ultraschallsensor - ESPTOP 10 und Thonny IDE

Micropython wird häufig bei Mikrocontrollern und eingebetteten Systemen verwendet. Wir können Code und Bibliotheken in Micropython -IDE schreiben und mehrere Sensoren interfasieren. In dieser Beschreibung wird Sie mit dem ESP32 mit dem HC-SR04-Sensor über den Messabstand angeleitet.

ESP32 mit HC-SR04-Ultraschallsensor unter Verwendung von Micropython

Die Schnittstelle ESP32 mit Ultraschall erfordert nur, dass zwei Drähte angeschlossen werden müssen. Mit Ultraschallsensoren können wir den Objektabstand messen und Antworten auf der Grundlage dieses Systems lösen, z.

Mit Micropython, einer entworfenen Sprache für ESP32 und andere Mikrocontroller HC-SR04. Der Micropython -Code wird geschrieben, der die Zeit der Sonarwelle berechnet, um vom Sensor zum Objekt und zurück zum Objekt zu gelangen. Später mit der Entfernungsformel können wir den Objektabstand berechnen.

Hier sind einige wichtigste Highlights des HC-SR04-Sensors:

Eigenschaften Wert
Betriebsspannung 5 V DC
Betriebsstrom 15 mA
Arbeitsfrequenz 40 kHz
Min 2 cm/ 1 Zoll
Maximale Reichweite 400 cm/ 13 Fuß
Genauigkeit 3 mm
Messwinkel <15 degree

HC-SR04 PinoutHC-SR04 enthält folgende vier Stifte:

  • VCC: Schließen Sie eine Verbindung zum ESP32 Vin Pin an
  • GND: Verbindung zu GND herstellen
  • Trig: PIN, um das Steuersignal von der ESP32 -Karte zu empfangen
  • Echo: Signal Signal senden. Die Mikrocontroller -Karte empfängt dieses Signal, um den Abstand mit der Zeit zu berechnen

Wie Ultraschall funktioniert

Nachdem der HC-SR04-Sensor mit ESP32 A Signal am Anhang angeschlossen ist Trig Pin wird von Board erzeugt. Sobald das Signal am Trigchenstift des HC-SR04-Sensors empfangen wird, wird eine Ultraschallwelle erzeugt, die den Sensor verlässt und den Objekt oder den Hinderniskörper trifft. Nach dem Schlagen wird es wieder zur Objektoberfläche abprallen.

Sobald die reflektierte Welle zum Sensor zurückreicht, wird ein Signalimpuls am Echo -Stift erzeugt. ESP32 empfängt das Echo -Pin -Signal und berechnet den Abstand zwischen Objekt und Sensor mithilfe Entfernungsformel.

Der berechnete Gesamtabstand sollte durch zwei im ESP32 -Code geteilt werden, da der Abstand, den wir ursprünglich erhalten. So ist der reale Abstand das Signal, das die Hälfte dieser Entfernung entspricht.

Schematisch

Im Folgenden finden Sie das Schema für die Schnittstelle von ESP32 mit Ultraschallsensor:

Verbinden Sie den Trigger- und Echo -Stift des Sensors mit GPIO 5 bzw. GPIO 18 von ESP32. Schließen Sie auch ESP32 GND und Vin Pin mit Sensorstiften an.

HC-SR04 Ultraschallsensor ESP32 PIN
Trig GPIO 5
Echo GPIO 18
GND GND
VCC Vin

Hardware

Die folgenden Komponenten sind erforderlich, um Ultraschallsensor zu programmieren:

  • ESP32
  • HC-SR04
  • Brotbrett
  • Jumperdrähte

So richten Sie Ultraschall HC-SR04 mit ESP32 unter Verwendung von Micropython ein

Bevor wir ESP32 mit einem Ultraschallsensor programmieren können, müssen wir darin eine Bibliothek installieren. Verbinden Sie die ESP32 -Platine mit dem PC. Befolgen Sie die Schritte, um die ESP32 -Konfiguration mit Ultraschallsensor in Thonny IDE mit Micropython zu vervollständigen.

Schritt 1: Jetzt öffne Thonny IDE. Erstellen Sie eine neue Datei im Editor -Fenster gehen: Datei> neu oder drücken Sie Strg + n.

Sobald die neue Datei geöffnet ist, fügen Sie den folgenden Code in das Thonny IDE -Editorfenster ein.

Importmaschine, Zeit
vom Maschinenimportstift
Klasse HCSR04:
# echo_timeout_us basiert auf dem Chip -Bereichslimit (400 cm)
def __init __ (self, trigger_pin, echo_pin, echo_timeout_us = 500*2*30):
selbst.echo_timeout_us = echo_timeout_us
# Init Trigger Pin (OUT)
selbst.Trigger = Pin (Trigger_pin, Modus = Pin.Raus, pull = keine)
selbst.Abzug.Wert (0)
# Init echo pin (in)
selbst.echo = pin (echo_pin, modus = pin.In, pull = keine)
def _send_pulse_and_wait (self):
selbst.Abzug.Wert (0) # stabilisieren den Sensor
Zeit.sleep_us (5)
selbst.Abzug.Wert (1)
# Senden Sie einen 10US -Puls.
Zeit.sleep_us (10)
selbst.Abzug.Wert (0)
versuchen:
pulse_time = machine.time_pulse_us (self.Echo, 1, Selbst.echo_timeout_us)
Return Pulse_Time
Außer Oserror als Ex:
Wenn Ex.args [0] == 110: # 110 = etimedout
Erhöhen Sie Oserrror ("außerhalb der Reichweite")
Ex
Def Distance_mm (Selbst):
pulse_time = self._send_pulse_and_wait ()
mm = pulse_time * 100 // 582
MM zurückgeben
Def Distance_cm (Selbst):
pulse_time = self._send_pulse_and_wait ()
CMS = (pulse_time / 2) / 29.1
CMS zurückgeben

Schritt 2: Nach dem Schreiben der Bibliothek Code im Editor -Fenster jetzt müssen wir es im Micropython -Gerät speichern.

Schritt 3: Gehe zu: Datei> Speichern oder drücken Sie Strg + s.

Schritt 4: Ein neues Fenster wird angezeigt. Stellen Sie sicher, dass ESP32 mit dem PC verbunden ist. Wählen Sie Micropython -Gerät, um die Bibliotheksdatei zu speichern.

Schritt 5: Speichern Sie die Ultraschallbibliotheksdatei mit Namen HCSR04.py und klicken Sie OK.

Jetzt wird die Ultrasonic HCSR04 -Sensorbibliothek erfolgreich in das ESP32 -Board hinzugefügt. Jetzt können wir Bibliotheksfunktionen im Code aufrufen, um die Entfernung verschiedener Objekte zu messen.

Code für Ultraschallsensor unter Verwendung von Micropython

Für Ultraschallsensorcode erstellen Sie eine neue Datei (erstellen Sie eine neue Datei (Strg + n). Geben Sie im Editor -Fenster den unten angegebenen Code ein und speichern Sie ihn in der hauptsächlich.py oder Stiefel.py Datei. Dieser Code druckt die Entfernung jedes Objekts, das vor HC-SR04 steht.

Code begann mit dem Aufrufen wichtiger Bibliotheken wie wie HCSR04 Und Zeit Bibliothek zusammen mit schlafen Verzögerungen geben.

Als nächstes haben wir ein neues Objekt mit einem Namen erstellt Sensor. Dieses Objekt nimmt drei verschiedene Argumente an: Trigger, Echo und Zeitüberschreitungen. Hier ist Timeout als maximal die maximale Zeit, nachdem der Sensor außerhalb der Reichweite geht.

Sensor = hcsr04 (Trigger_pin = 5, echo_pin = 18, echo_timeout_us = 10000)

Um die Entfernung zu messen und zu speichern, ein neues Objekt benannt Distanz geschaffen. Dieses Objekt speichert die Entfernung in CM.

Entfernung = Sensor.Distanz_cm ()

Schreiben Sie den folgenden Code, um Daten in MM zu erhalten.

Entfernung = Sensor.Distanz_mm ()

Als nächstes druckten wir das Ergebnis auf der Micropython -IDE -Shell.

print ('distanz:', distanz, 'cm')

Am Ende wird eine Verzögerung von 1 Sek. Gegeben.

Schlaf (1)

Der vollständige Code ist unten angegeben:

Aus HCSR04 importieren Sie HCSR04
Zum Zeitpunkt des Imports
# ESP32
Sensor = hcsr04 (Trigger_pin = 5, echo_pin = 18, echo_timeout_us = 10000)
# ESP8266
#Sensor = hcsr04 (Trigger_pin = 12, echo_pin = 14, echo_timeout_us = 10000)
während wahr:
Entfernung = Sensor.Distanz_cm ()
print ('distanz:', distanz, 'cm')
Schlaf (1)

Nachdem ich Code im Micropython -Gerät geschrieben und gespeichert hatte, führe ich jetzt den Ultraschallsensor aus hauptsächlich.py Dateicode. Klicken Sie auf die Wiedergabetaste oder drücken Sie F5.

Ausgabe von Ultraschallsensor, wenn das Objekt in der Nähe ist

Platzieren Sie nun ein Objekt in der Nähe des Ultraschallsensors und überprüfen Sie den gemessenen Abstand im seriellen Monitorfenster der Arduino -IDE.

Die Objektabstand ist in der Schalenklemme gezeigt. Jetzt wird das Objekt 5 cm vom Ultraschallsensor entfernt platziert.

Ausgabe von Ultraschallsensor, wenn das Objekt weit ist

Um unser Ergebnis nun zu überprüfen. Platzieren Sie Objekte wie in Bild unten gezeigt:

Das Ausgabefenster gibt uns eine neue Entfernung und wie wir sehen können, dass das Objekt weit vom Sensor entfernt ist, ist der gemessene Abstand ca. 15 cm vom Ultraschallsensor entfernt.

Abschluss

Die Messung der Distanz hat eine großartige Anwendung, wenn es um Robotik und andere Projekte geht. Es gibt verschiedene Möglichkeiten, die Entfernung zu messen. HC-SR04 mit ESP32 kann den Abstand verschiedener Objekte messen. Hier wird in dieser Beschreibung alle Schritte behandelt, die man braucht, um die Entfernung mit ESP32 zu integrieren und zu messen.