Lektion 24/31: Smartes Auto Teil 2: Vorwärts, Rückwärts, links und rechts fahren und die Geschwindigkeit des Autos steuern
Diese Lektion konzentriert sich auf die zweite Phase des Baus deines Smart Cars: die Übernahme der Kontrolle über seine Bewegung mithilfe von Arduino-Code. Während das erste Projekt das Auto möglicherweise auf einfache Weise bewegt hat, bringt dir dieser Leitfaden bei, wie du das Auto präzise nach vorne, hinten, links, rechts und zum Stillstand bringen kannst. Du lernst auch, wie du seine Geschwindigkeit steuerst, was sanftes Beschleunigen und Abbremsen ermöglicht. Dies ist ein grundlegender Schritt für jedes Robotikprojekt, da es dir die grundlegende Logik gibt, um komplexere autonome Verhaltensweisen zu erstellen.
Die Beherrschung dieser Bewegungssteuerungen eröffnet eine Welt voller Möglichkeiten. Hier sind einige praktische Anwendungen für dieses Wissen:
- Linienfolgeroboter: Verwende die Links- und Rechtsdrehfunktionen, um einen Roboter auf einer Spur zu halten.
- Hindernisvermeidungsfahrzeuge: Programmiere das Auto so, dass es sich vorwärts bewegt, stoppt und dreht, wenn es ein Objekt in seinem Weg erkennt.
- Ferngesteuerte Erkundung: Kombiniere diese Befehle mit einem drahtlosen Modul, um das Auto in deinem Haus oder Garten zu fahren.
- Automatisierte Liefersysteme: Erstelle einen kleinen Roboter, der sich zwischen festgelegten Punkten bewegen und bei Bedarf stoppen und starten kann.
Hardware und Komponenten
Dieses Projekt baut auf dem SunFounder 3-in-1 Arduino-Kit auf. Über das Basiskit hinaus sind keine zusätzlichen Komponenten erforderlich, aber du musst vier zusätzliche Kabel an den Arduino anschließen, um den Motortreiber zu steuern. Die wesentlichen Komponenten sind:
- Arduino Uno (oder kompatibles Board)
- SunFounder Smart Car-Chassis mit Motoren
- Motortreiberplatine (im Kit enthalten)
- Jumper-Kabel
- Batteriepack für das Auto
- USB-Kabel zum Programmieren
Verdrahtungsanleitung
Die Verdrahtung für dieses Projekt ist entscheidend für die Steuerung der Richtung jedes Motors. Das Video erklärt, dass die vier Motorsteuerkabel der Treiberplatine an die Arduino-Pins 5, 6, 9 und 10 angeschlossen werden. Diese Pins sind besonders, da sie Pulsweitenmodulation (PWM) unterstützen, die für die Geschwindigkeitssteuerung unerlässlich ist.
Im Video verbindet der Dozent sie in einer bestimmten Reihenfolge mit gelben und blauen Kabeln, wie im folgenden Diagramm gezeigt.
Ein wichtiger Sicherheitshinweis im Video ist, die Batterieversorgung des Autos (das rote Kabel zu 5V und das schwarze Kabel zu GND) zu trennen, während du den Arduino über USB programmierst. Dies verhindert, dass der USB-Anschluss überlastet wird und möglicherweise herunterfährt.
Code-Erklärung
Der Code für diese Lektion ist so strukturiert, dass er leicht zu ändern und zu verstehen ist. Der Schlüssel zur Steuerung des Autos liegt in den Pin-Definitionen am Anfang des Sketches. Du kannst diese ändern, wenn du dich entscheidest, andere Pins auf deinem Arduino zu verwenden.
const int in1 = 5;
const int in2 = 6;
const int in3 = 9;
const int in4 = 10;
Diese Zeilen definieren die Arduino-Pins, die mit den Eingängen des Motortreibers verbunden sind. in1 und in2 steuern einen Motor, während in3 und in4 den anderen steuern. Indem du diese Pins auf HIGH oder LOW setzt, steuerst du die Drehrichtung jedes Motors.
Um die Geschwindigkeit des Autos zu steuern, verwendet der Code zwei benutzerdefinierte Funktionen: moveForward(int speed) und moveBackwards(int speed). Diese Funktionen nehmen einen ganzzahligen Wert zwischen 0 und 255 als Argument. Ein Wert von 0 stoppt den Motor, während 255 die maximale Geschwindigkeit ist. Um das Auto beispielsweise mit voller Geschwindigkeit vorwärts zu bewegen, würdest du moveForward(255) aufrufen. Um es langsam rückwärts zu bewegen, würdest du moveBackwards(100) verwenden.
Das Video demonstriert auch eine Sequenz zum "Beschleunigen" und "Verlangsamen" mithilfe von for-Schleifen. Dies ist eine leistungsstarke Technik für sanftes Beschleunigen.
for(int i=0;i<=255;i+=5){
moveForward(i);
delay(100);
}
Diese Schleife beginnt mit i bei 0 und erhöht es bei jedem Durchlauf um 5, bis es 255 erreicht. Jedes Mal ruft sie moveForward(i) auf und erhöht so allmählich die Geschwindigkeit des Autos. Das delay(100) sorgt für eine 100-Millisekunden-Pause bei jedem Geschwindigkeitsschritt, wodurch die Beschleunigung sichtbar wird. Eine ähnliche Schleife mit einem dekrementierenden Wert von i wird verwendet, um das Auto zu verlangsamen.
Live-Projektdemonstration
Im Video demonstriert der Dozent das Projekt in zwei Hauptphasen. Zuerst zeigt er die grundlegenden Bewegungen des Autos. Durch das Laden des "move"-Codes führt das Auto eine vorprogrammierte Sequenz aus: zwei Sekunden vorwärts, anhalten, zwei Sekunden rückwärts, anhalten, links abbiegen und dann rechts abbiegen. Dies bestätigt visuell, dass die Verdrahtung und die Logik korrekt sind.
Die zweite Demonstration konzentriert sich auf die Geschwindigkeitsregelung. Der Ausbilder lädt den Code für „Beschleunigen" hoch, der das Auto schrittweise vorwärts beschleunigt, bis es die Höchstgeschwindigkeit erreicht, und dann sanft bis zum Stillstand abbremst. Anschließend zeigt er eine Version mit fester Geschwindigkeit, bei der sich das Auto mit 255 vorwärts bewegt, anhält und dann mit einer langsameren Geschwindigkeit von 100 rückwärts fährt, wobei die Werte zur Überprüfung auf dem seriellen Monitor ausgegeben werden.
Kapitel
- [00:00] Einführung in die Steuerung der Autobewegung
- [01:44] Einrichten der Verkabelung für die Code-Steuerung
- [02:07] Vorführung der Vorwärts- und Rückwärtsbewegung
- [03:18] Vorführung von Links- und Rechtskurven
- [05:05] Anschließen der Kabel an die Arduino-Pins
- [07:00] Code-Erklärung für die Richtungssteuerung
- [11:44] Einführung in die Geschwindigkeitsregelung
- [12:16] Code-Erklärung für die Geschwindigkeitsrampe
- [14:45] Verwendung des seriellen Monitors zur Fehlersuche
- [17:10] Live-Demonstration der Geschwindigkeitsregelung
- [19:45] Abschließender Außentest und Fazit
/*
Lesson 24/31: Smart code speeds up
Get this code and watch video Download and resource page https://robojax.com/RJT607
YouTube video https://www.youtube.com/watch?v=QzcUig2L3dM
*/
const int in1 = 5;
const int in2 = 6;
const int in3 = 9;
const int in4 = 10;
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
Serial.begin(9600);
Serial.println("SunFounder Arduino Course");
Serial.println("Lesson 3: Speed up");
Serial.println("www.Robojax.com");
}
void loop() {
moveForward(255);
Serial.print("Forward at: ");
Serial.println(255);
delay(5000);//for 5 seconds
Serial.println("Stopped ");
moveForward(0);//stop the car
delay(2000);//for 2 seconds
moveBackwards(100);
Serial.print("Reverse at: ");
Serial.println(100);
delay(5000);//for 5 seconds
Serial.println("Stopped ");
moveForward(0);//stop the car
delay(2000);//for 2 seconds
}
void moveForward(int speed) {
analogWrite(in1, 0);
analogWrite(in2, speed);
analogWrite(in3, speed);
analogWrite(in4, 0);
}
void moveBackwards(int speed) {
analogWrite(in1, speed);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, speed);
}
/*
Lesson 24/31: Smart code speeds up (custom code)
Get this code and watch video Download and resource page https://robojax.com/RJT607
YouTube video https://www.youtube.com/watch?v=QzcUig2L3dM
*/
const int in1 = 5;
const int in2 = 6;
const int in3 = 9;
const int in4 = 10;
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
Serial.begin(9600);
Serial.println("SunFounder Arduino Course");
Serial.println("Lesson 3: Speed up");
Serial.println("www.Robojax.com");
}
void loop() {
Serial.println("Loop 1: Speeding Up");
for(int i=0;i<=255;i+=5){
moveForward(i);
Serial.print("i= ");
Serial.println(i);
delay(100);
}
Serial.println("Loop 2: Slowing down ");
for(int i=255;i>=0;i-=5){
moveForward(i);
Serial.print("i= ");
Serial.println(i);
delay(100);
}
}
void moveForward(int speed) {
analogWrite(in1, 0);
analogWrite(in2, speed);
analogWrite(in3, speed);
analogWrite(in4, 0);
}
Common Course Links
Common Course Files
Dinge, die Sie vielleicht brauchen
-
Amazon5V DC motor on Amazonamzn.to
-
Amazon5V DC motor on eBayebay.us
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
AliExpress5V DC motor on AliExpresss.click.aliexpress.com
Ressourcen & Referenzen
-
DokumentationDokumentation für das SunFounder 3 in 1 IoT/Smarte Auto/Lernkitdocs.sunfounder.com
-
ExternKaufe das 3-in-1 Smart Car Lernkit von SunFounder.sunfounder.com
Dateien📁
Arduino-Bibliotheken (zip)
-
SunFounder 3-in-1 Smart Car Lernkit Quellcode
3in1-kit-main-v2.zip12.80 MB