Arduino - Auto

Eines der aufregendsten Projekte für Arduino-Anfänger ist die Erstellung eines Arduino-Roboterautos. In diesem Tutorial werden wir herausfinden, wie man Arduino verwendet, um ein Roboterauto zu bauen und es mit einer IR-Fernbedienung zu steuern. Wir werden außerdem ein weiteres Tutorial untersuchen, in dem wir lernen, es in ein Bluetooth-gesteuertes Auto zu verwandeln.

Arduino Infrarot-Fernsteuerungsauto

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×RC Car
1×L298N Motortreiber-Modul
1×IR-Fernbedienungs-Kit
1×CR2025 Batterie (für IR-Fernbedienung)
1×1.5V AA Battery (for Arduino and Car)
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino 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 Roboter-Auto

Im Arduino-Kontext wird das Roboterauto üblicherweise als Roboterauto, RC-Auto, Fernsteuerungsauto, Smart Car oder DIY-Auto bezeichnet. Es kann aus der Ferne und drahtlos gesteuert werden, entweder über eine IR-Fernbedienung oder eine Smartphone-App über Bluetooth/WiFi... Das Roboterauto kann nach links oder rechts abbiegen und vorwärts oder rückwärts fahren.

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

  • Fahrgestell: Die Basis bzw. der Rahmen des Autos, an dem alle anderen Komponenten montiert sind.
  • Räder: Die beiden Räder, die dem Auto Fortbewegung verleihen. Sie sind an zwei DC-Motoren angeschlossen.
  • Motoren: Zwei DC-Motoren werden verwendet, um die beiden Räder anzutreiben.
  • Motortreiber: Die Motortreiberplatine ist eine wesentliche Komponente, die zwischen dem Arduino und den Motoren vermittelt. Sie nimmt Signale vom Arduino entgegen und liefert die notwendige Leistung und Steuerung für die Motoren.
  • Arduino-Board: Das Gehirn des Autos. Es liest Eingaben von Sensoren und Benutzereingaben aus und steuert die Motoren entsprechend.
  • Stromversorgung: Das 2WD-Auto benötigt eine Stromquelle, in der Regel Batterien und einen Batteriehalter, um die Motoren und das Arduino-Board mit Strom zu versorgen.
  • Drahtloser Empfänger: Ein Infrarot-, Bluetooth- oder WLAN-Modul für die kabellose Kommunikation mit einer Fernbedienung oder einem Smartphone.
  • Optionale Komponenten: Je nach Komplexität deines Projekts kannst du verschiedene optionale Komponenten hinzufügen, wie Sensoren (z. B. Ultraschallsensoren zur Hindernisvermeidung, Linienfolgesensoren) und mehr.

In diesem Tutorial verwenden wir zur Vereinfachung Folgendes:

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

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

So funktioniert es

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

Verdrahtungsdiagramm

Arduino 2WD Auto-Schaltplan

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

Normalerweise benötigen wir zwei Stromquellen:

  • Eine Stromquelle für den Motor (indirekt über das L298N-Modul).
  • Die andere Stromquelle für das Arduino-Board, das L298N-Modul und den IR-Empfänger.

Es gibt jedoch eine Möglichkeit, nur eine Stromquelle für alles zu verwenden. Man kann dafür vier 1,5-V-Batterien (insgesamt 6 V) verwenden. So können wir das machen:

  • Schließen Sie die Batterien an das L298N-Modul an, indem Sie dem obigen Diagramm folgen.
  • Entfernen Sie zwei kleine Jumper-Stecker, die die ENA- und ENB-Pins mit 5 Volt am L298N-Modul verbinden.
  • Setzen Sie einen speziellen Verbinder (Jumper) mit der Bezeichnung 5VEN ein, der im obigen Diagramm mit einem gelben Kreis markiert ist.
  • Verbinden Sie den 12-V-Pin des Schraubterminals des L298N-Moduls mit dem Vin-Pin des Arduino-Boards. Dadurch wird der Arduino direkt von der Batterie gespeist (insgesamt 6 V).

Bitte beachten Sie, dass während der Entwicklungsphase, wenn Sie das USB-Kabel zum Programmieren an den Arduino anschließen müssen, Sie die Stromversorgung zwischen der Batterie und dem Arduino-Board unbedingt trennen müssen, indem Sie ein Kabel vom Vin-Pin entfernen. Das Arduino-Board sollte nicht gleichzeitig von zwei Stromquellen versorgt werden.

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 9 // The Arduino pin connected to IR receiver #define ENA_PIN 7 // The Arduino pin connected to the ENA pin L298N #define IN1_PIN 6 // The Arduino pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino pin connected to the IN2 pin L298N #define IN3_PIN 4 // The Arduino pin connected to the IN3 pin L298N #define IN4_PIN 3 // The Arduino pin connected to the IN4 pin L298N #define ENB_PIN 2 // The Arduino pin 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("MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } vvoid 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

  • Installieren Sie die DIYables_IRcontroller-Bibliothek in der Arduino IDE, indem Sie dieser Anleitung folgen.
  • Schließen Sie die Verkabelung gemäß dem oben gezeigten Diagramm.
  • Trennen Sie das Kabel vom Vin-Pin am Arduino, denn wir werden den Arduino beim Hochladen des Codes über das USB-Kabel mit Strom versorgen.
  • Drehen Sie das Auto um, sodass die Räder oben sind.
  • Verbinden Sie den Arduino mit Ihrem Computer über das USB-Kabel.
  • Kopieren Sie den bereitgestellten Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie im Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino zu übertragen.
  • Verwenden Sie die IR-Fernbedienung, um das Auto vorwärts, rückwärts, nach links, nach rechts zu bewegen oder anzuhalten.
  • 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 L298N-Modul aus.
  • Sie können die Ergebnisse auch im Serial Monitor der Arduino IDE sehen.
COM6
Send
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Wenn alles einwandfrei funktioniert, trennen Sie das USB-Kabel vom Arduino und das Kabel wieder an den Vin-Pin anschließen, um den Arduino mit Strom aus der Batterie zu versorgen.
  • Drehen Sie das Auto wieder in seine normale Position, wobei die Räder den Boden berühren.
  • Viel Spaß beim Steuern des Autos!

Code-Erklärung

Sie finden die Erklärung in der Kommentarzeile des oben genannten 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:

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