ESP32 - Auto

Eine der coolsten Sachen, die man ausprobieren kann, wenn man gerade erst mit dem ESP32 anfängt, ist der Bau eines Roboterautos. In diesem Leitfaden lernen wir, wie man den ESP32 verwendet, um ein Roboterauto zu bauen und es mit einer IR-Fernbedienung zu steuern. Für die Steuerung des Roboterautos über Web (WLAN) siehe ESP32 steuert Auto über Web Tutorial.

ESP32 IR-Fernsteuerungsauto

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×2WD RC Car
1×L298N Motortreiber-Modul
1×IR-Fernbedienungs-Kit
1×CR2025 Batterie (für IR-Fernbedienung)
1×1.5V AA Battery (for ESP32 and Car)
1×Verbindungskabel
1×Breadboard
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Roboterauto

Im ESP32-Kontext wird das Roboterauto oft unter verschiedenen Bezeichnungen geführt, wie Roboterauto, RC-Auto, Fernsteuerungsauto, Smartcar oder DIY-Auto. Es kann aus der Ferne ohne Kabel gesteuert werden. Sie können entweder eine spezielle Fernbedienung verwenden, die Infrarotlicht nutzt, oder eine Smartphone-App über Bluetooth oder WLAN. Das Roboterauto kann nach links oder rechts fahren und auch vorwärts oder rückwärts.

Ein 2WD-Auto (Zweiradantrieb) für ESP32 ist ein kleines Roboterfahrzeug, das Sie mit einem ESP32-Board bauen und steuern können. Es besteht typischerweise aus den folgenden Komponenten:

  • Chassis: Die Basis oder der Rahmen des Autos, an dem alle anderen Komponenten montiert sind.
  • Räder: Die beiden Räder, die dem Auto Fortbewegung verleihen. Sie sind mit zwei DC-Motoren verbunden.
  • Motoren: Zwei DC-Motoren werden verwendet, um die beiden Räder anzutreiben.
  • Motortreiber: Die Motortreiber-Platine ist eine wesentliche Komponente, die zwischen dem ESP32 und den Motoren vermittelt. Sie empfängt Signale vom ESP32 und liefert die notwendige Leistung und Steuerung an die Motoren.
  • ESP32-Board: Das Gehirn des Autos. Es liest Eingaben von Sensoren und Benutzereingaben und steuert die Motoren entsprechend.
  • Stromquelle: Das 2WD-Auto benötigt eine Stromquelle, üblicherweise Batterien und einen Batteriehalter, um die Motoren und das ESP32-Board mit Strom zu versorgen.
  • Drahtloser Empfänger: Ein Infrarot-, Bluetooth- oder WiFi-Modul zur drahtlosen Kommunikation mit einer Fernbedienung oder einem Smartphone.
  • Optionale Komponenten: Je nach Komplexität Ihres Projekts können Sie verschiedene optionale Komponenten hinzufügen, wie Sensoren (z. B. Ultraschallsensoren zur Hindernisvermeidung, Linienfolger-Sensoren) und mehr.

In diesem Tutorial verwenden wir, um es einfach zu machen:

  • 2WD Auto-Kit (einschließlich Fahrgestell, Räder, Motoren, Batteriehalter)
  • L298N Motortreiber
  • Infrarot-Kit (einschließlich Infrarot-Fernbedienung und Infrarot-Empfänger)

Überprüfen Sie die Hardwareliste oben auf dieser Seite.

Wie es funktioniert

ESP32-2WD Auto: wie es funktioniert
  • ESP32 verbindet sich über das L298N-Motortreiber-Modul mit den Gleichstrommotoren des Roboterautos.
  • ESP32 verbindet sich mit einem IR-Empfänger.
  • Die Batterie versorgt ESP32, Gleichstrommotoren, den Motortreiber und den IR-Empfänger.
  • Benutzer drücken die Tasten UP/DOWN/LEFT/RIGHT/OK auf der IR-Fernbedienung.
  • ESP32 empfängt die UP/DOWN/LEFT/RIGHT/OK-Befehle über den IR-Empfänger.
  • ESP32 steuert das Auto so, dass es sich VORWÄRTS/RÜCKWÄRTS/LINKS/RECHTS/STOP bewegt, indem es den Gleichstrommotor über den Motortreiber steuert.

Verdrahtungsdiagramm

ESP32 2WD Auto-Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32 2WD Auto-Schaltplan

In der Regel werden zwei Energiequellen benötigt:

  • Eines für den Motor (indirekt über das L298N-Modul).
  • Ein weiteres für das ESP32-Board, das L298N-Modul und den IR-Empfänger.

Es gibt jedoch eine Methode, dies zu vereinfachen, indem man nur eine Stromquelle für alles verwendet. Man erreicht dies, indem man vier 1,5-V-Batterien (insgesamt 6 V) verwendet. So können Sie es machen:

  • Schließen Sie die Batterien wie im Diagramm am L298N-Modul an.
  • Entfernen Sie zwei Jumper, die die ENA- und ENB-Pins mit 5 Volt am L298N-Modul verbinden.
  • Setzen Sie eine Brücke ein, die mit 5VEN beschriftet ist und im Diagramm mit einem gelben Kreis markiert ist.
  • Verbinden Sie den 12-V-Pin des Schraubterminals des L298N-Moduls mit dem Vin-Pin auf dem ESP32-Board. Dadurch wird der ESP32 direkt aus den Batterien (6 V) mit Strom versorgt.

ESP32-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-car */ #include <DIYables_IRcontroller.h> // IR Remote Controller library #define IR_RECEIVER_PIN 13 // The ESP32 pin GPIO13 connected to IR receiver #define ENA_PIN 14 // The ESP32 pin GPIO14 connected to the ENA pin L298N #define IN1_PIN 27 // The ESP32 pin GPIO27 connected to the IN1 pin L298N #define IN2_PIN 26 // The ESP32 pin GPIO26 connected to the IN2 pin L298N #define IN3_PIN 25 // The ESP32 pin GPIO25 connected to the IN3 pin L298N #define IN4_PIN 33 // The ESP32 pin GPIO33 connected to the IN4 pin L298N #define ENB_PIN 32 // The ESP32 pin GPIO32 connected to the ENB pin L298N DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); pinMode(IN3_PIN, OUTPUT); pinMode(IN4_PIN, OUTPUT); pinMode(ENB_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); // set full speed digitalWrite(ENB_PIN, HIGH); // set full speed } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_UP: Serial.println("CAR - MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("CAR - MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("CAR - TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("CAR - TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("CAR - STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } void CAR_moveForward() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_moveBackward() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); } void CAR_turnRight() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); }

Schnelle Schritte

  • Wenn du ESP32 zum ersten Mal verwendest, siehe wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet.
  • Installiere die Bibliothek DIYables_IRcontroller in der Arduino-IDE, indem du dieser Anleitung folgst.
  • Schließe die Verkabelung entsprechend dem oben gezeigten Diagramm an.
  • Trenne das Kabel vom Vin-Pin am ESP32, weil wir den ESP32 beim Hochladen des Codes über das USB-Kabel mit Strom versorgen werden.
  • Drehe das Auto um, damit die Räder oben sind.
  • Schließe das ESP32-Board über ein Micro-USB-Kabel an deinen PC an.
  • Öffne die Arduino-IDE auf deinem PC.
  • Wähle das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Kopiere den bereitgestellten Code und öffne ihn in der Arduino-IDE.
  • Klicke auf die Hochladen-Schaltfläche in der Arduino-IDE, um den Code auf den ESP32 zu übertragen.
  • Verwende die IR-Fernbedienung, damit das Auto vorwärts, rückwärts, nach links, nach rechts fährt oder stoppt.
  • Überprüfe, ob sich die Räder gemäß deinen Befehlen korrekt bewegen.
  • Wenn sich die Räder in die falsche Richtung bewegen, tausche die Kabel des DC-Motors am L298N-Modul.
  • Du kannst die Ergebnisse auch im Serial Monitor der Arduino-IDE sehen.
COM6
Send
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Wenn alles gut läuft, stecke das USB-Kabel vom ESP32 ab, und dann schließe das Kabel wieder an den Vin-5V-Pin an. Dadurch wird der ESP32 von der Batterie mit Strom versorgt.
  • Stelle das Auto wieder in seine normale Position mit den Rädern auf dem Boden.
  • Viel Spaß beim Steuern des Autos!

Code-Erklärung

Sie finden die Erklärung in den Kommentaren des Arduino-Codes.

Sie können mehr über den Code erfahren, indem Sie sich die folgenden Tutorials ansehen:

Sie können dieses Projekt wie folgt erweitern:

  • Hindernisvermeidungssensoren hinzufügen, um das Auto sofort zu stoppen, wenn ein Hindernis erkannt wird.
  • Eine Funktion zur Steuerung der Geschwindigkeit des Autos hinzufügen (siehe ESP32 - DC motor Tutorial). Der bereitgestellte Code steuert das Auto mit voller Geschwindigkeit.

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!