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

Ü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)
  • L9110S 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 L9110S-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 L9110S-Modul).
  • Die andere Stromquelle für das Arduino-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-AA-Batterien (insgesamt 6 V). So gehen Sie dabei vor:

  • 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-Boards, um den Arduino zu versorgen.
  • Stellen Sie sicher, dass das L9110S-Modul, das Arduino-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.

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 3 // The Arduino pin connected to IR receiver #define MOTOR_A_IA_PIN 5 // The Arduino pin connected to the A-IA pin of the L9110S (Motor A) #define MOTOR_A_IB_PIN 6 // The Arduino pin connected to the A-IB pin of the L9110S (Motor A) #define MOTOR_B_IA_PIN 9 // The Arduino pin connected to the B-IA pin of the L9110S (Motor B) #define MOTOR_B_IB_PIN 10 // The Arduino 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("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; } } } 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

  • 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 L9110S-Modul aus.
  • Sie können die Ergebnisse auch im Serial Monitor der Arduino IDE sehen.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Ln 11, Col 1
Arduino Uno on COM15
2
  • 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!