Arduino Nano ESP32 – Auto

Eines der coolsten Dinge, die man ausprobieren kann, wenn man gerade mit dem Arduino Nano ESP32 anfängt, ist der Bau eines Roboterautos. In diesem Leitfaden lernen wir, wie man den Arduino Nano ESP32 verwendet, um ein Roboterauto zu bauen und es mit einer IR-Fernbedienung zu steuern. Um das Roboterauto über das Web (WLAN) zu steuern, siehe das Tutorial Arduino Nano ESP32 steuert Roboterauto über Web.

Arduino Nano ESP32 IR-Fernsteuerungsauto

Erforderliche Hardware

1×Arduino Nano ESP32
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×L9110S Motortreiber-Modul
1×IR-Fernbedienungs-Kit
1×CR2025 Batterie (für IR-Fernbedienung)
1×1.5V AA Battery (for Arduino Nano ESP32 and Car)
1×Verbindungskabel
1×Breadboard
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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 Zusammenhang mit dem Arduino Nano ESP32 wird das Roboterauto oft unter verschiedenen Namen bezeichnet, wie Roboterauto, RC-Auto, Fernsteuerungsauto, Smart Car oder DIY-Auto. Es kann aus der Ferne kabellos gesteuert werden. Sie können entweder eine spezielle Fernbedienung verwenden, die Infrarotlicht nutzt, oder eine Smartphone-App über Bluetooth oder WLAN nutzen. Das Roboterauto kann nach links oder rechts fahren und auch vorwärts oder rückwärts.

Ein 2WD-Fahrzeug (Zwei-Rad-Antrieb) für Arduino Nano ESP32 ist ein kleines Roboterfahrzeug, das Sie mit einem Arduino Nano 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.
  • Wheels: Die beiden Räder, die dem Auto den Antrieb ermöglichen. Sie sind an zwei DC-Motoren angeschlossen.
  • Motors: Zwei DC-Motoren werden verwendet, um die beiden Räder anzutreiben.
  • Motortreiber: Die Motortreiberplatine ist eine wesentliche Komponente, die als Schnittstelle zwischen dem Arduino Nano ESP32 und den Motoren dient. Sie empfängt Signale vom Arduino Nano ESP32 und liefert die notwendige Leistung und Steuerung an die Motoren.
  • Arduino Nano ESP32 Board: Das Gehirn des Autos. Es liest Eingaben von Sensoren und Benutzerbefehlen aus und steuert entsprechend die Motoren.
  • Power Source: Das 2WD-Auto benötigt eine Stromquelle, üblicherweise Batterien und einen Batteriehalter, um die Motoren und das Arduino Nano 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, Linienverfolgungssensoren) und mehr.

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

  • 2WD Auto-Bausatz (einschließlich Fahrgestell, Räder, Motoren, Batteriefach)
  • L9110S-Motortreiber
  • Infrarot-Kit (einschließlich IR-Fernbedienung und IR-Empfänger)

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

Wie es funktioniert

Arduino Nano ESP32 2WD Auto – wie es funktioniert
  • Der Arduino Nano ESP32 verbindet sich über das L9110S-Motortreiber-Modul mit den DC-Motoren des Roboterautos.
  • Der Arduino Nano ESP32 verbindet sich mit einem IR-Empfänger.
  • Die Batterie versorgt ESP32, DC-Motoren, Motortreiber und IR-Empfänger mit Strom.
  • Die Benutzer drücken die UP/DOWN/LEFT/RIGHT/OK-Tasten auf der IR-Fernbedienung.
  • Der Arduino Nano ESP32 empfängt die UP/DOWN/LEFT/RIGHT/OK-Befehle über den IR-Empfänger.
  • Der Arduino Nano ESP32 steuert das Auto, damit es sich vorwärts/rückwärts/links/rechts/STOP bewegt, indem es den DC-Motor über den Motortreiber ansteuert.

Verdrahtungsdiagramm

Arduino Nano ESP32 2WD Auto-Schaltplan

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

Normalerweise benötigt man zwei Energiequellen:

  • Eine für den Motor (indirekt über das L9110S-Modul).
  • Eine weitere für das Arduino Nano ESP32-Board, das L9110S-Modul und den IR-Empfänger.

Das L9110S-Modul versorgt die Motoren direkt über seine VCC- und GND-Pins und besitzt keinen integrierten 5-V-Spannungsregler. Dadurch können Sie alles aus einer einzigen Stromquelle betreiben – vier 1,5-V-Batterien (insgesamt 6 V). So können Sie das tun:

  • Verbinden Sie die 6-V-Batterie mit den VCC- und GND-Pins des L9110S-Moduls, um die Motoren zu versorgen.
  • Verbinden Sie dieselbe 6-V-Batterie mit den Vin- und GND-Pins des Arduino Nano ESP32-Boards, um es zu versorgen.
  • Stellen Sie sicher, dass das L9110S-Modul, das Arduino Nano ESP32-Board und der IR-Empfänger eine gemeinsame Masse (GND) teilen.

Anders als beim L298N besitzt das L9110S keine ENA/ENB-Enable-Jumper und kein 12-V-Schraubterminal, sodass die Verdrahtung einfacher ist.

Arduino Nano ESP32-Code

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-car */ #include <DIYables_IRcontroller.h> // IR Remote Controller library #define IR_RECEIVER_PIN D11 // The Arduino Nano ESP32 pin connected to IR receiver #define MOTOR_A_IA_PIN D5 // The Arduino Nano ESP32 pin connected to the A-IA pin of the L9110S (Motor A) #define MOTOR_A_IB_PIN D6 // The Arduino Nano ESP32 pin connected to the A-IB pin of the L9110S (Motor A) #define MOTOR_B_IA_PIN D9 // The Arduino Nano ESP32 pin connected to the B-IA pin of the L9110S (Motor B) #define MOTOR_B_IB_PIN D10 // The Arduino Nano ESP32 pin connected to the B-IB pin of the L9110S (Motor B) DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(MOTOR_A_IA_PIN, OUTPUT); pinMode(MOTOR_A_IB_PIN, OUTPUT); pinMode(MOTOR_B_IA_PIN, OUTPUT); pinMode(MOTOR_B_IB_PIN, OUTPUT); } 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(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_moveBackward() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, HIGH); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_turnRight() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_stop() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); }

Schnelle Schritte

  • Wenn Sie Arduino Nano ESP32 zum ersten Mal verwenden, lesen Sie wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Installieren Sie die Bibliothek DIYables_IRcontroller in der Arduino IDE, indem Sie dieser Anleitung folgen.
  • Schließen Sie die Verkabelung gemäß dem oben gezeigten Diagramm an.
  • Trennen Sie das Kabel vom Vin am ESP32, weil wir den Arduino Nano ESP32 während des Hochladens des Codes über das USB-Kabel mit Strom versorgen werden.
  • Drehen Sie das Auto um, sodass die Räder nach oben zeigen.
  • Verbinden Sie das Arduino Nano ESP32-Board über ein USB-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige Arduino Nano ESP32-Board (z. B. Arduino Nano ESP32) und den COM-Port.
  • Kopieren Sie den bereitgestellten Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie im Arduino IDE auf die Upload-Schaltfläche, um den Code auf den Arduino Nano ESP32 zu übertragen.
  • Verwenden Sie die IR-Fernbedienung, damit das Auto vorwärts, rückwärts, nach links, nach rechts fährt oder stoppt.
  • Prüfen Sie, ob sich die Räder gemäß Ihren Befehlen richtig bewegen.
  • Wenn sich die Räder in die falsche Richtung bewegen, tauschen Sie die Kabel des DC-Motors am L9110S-Modul.
  • Sie können die Ergebnisse auch im Serial Monitor in der Arduino IDE sehen.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
  • Wenn alles gut läuft, trenne das USB-Kabel vom ESP32, und dann schließe das Kabel wieder in den Vin-5V-Pin an. Dies versorgt den Arduino Nano ESP32 mit Strom aus der Batterie.
  • Stelle das Auto wieder in seine normale Position zurück, mit den Rädern am Boden.
  • Viel Spaß beim Steuern des Autos!

Code-Erklärung

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

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

Sie können dieses Projekt erweitern, indem Sie:

  • Sensoren zur Hindernisvermeidung hinzufügen, die das Auto sofort stoppen, sobald ein Hindernis erkannt wird.
  • Eine Funktion hinzufügen, um die Geschwindigkeit des Autos zu steuern (siehe Arduino Nano 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.

※ 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!