Suchcode

Lektion 29/31: Auto-7 Steuerung des SunFounder Smart Cars mit Fernbedienung | Robojax

Lektion 29/31: Auto-7 Steuerung des SunFounder Smart Cars mit Fernbedienung | Robojax

In dieser Lektion verwandeln wir Ihr SunFounder-Smart-Car in ein ferngesteuertes Fahrzeug mit einer Infrarot-Fernbedienung (IR). Anstatt auf eine kabelgebundene Verbindung oder eine Smartphone-App zu setzen, lernen Sie, wie Sie die Tasten einer Standard-IR-Fernbedienung zuordnen, um die Bewegung des Autos zu steuern—vorwärts, rückwärts, drehen und sogar diagonale Manöver—sowie die Geschwindigkeit spontan anzupassen. Dieses Projekt ist der perfekte nächste Schritt, nachdem Sie die Grundlagen der Motorsteuerung und der IR-Kommunikation gelernt haben, da es beides in einem einzigen, interaktiven System vereint.

Der praktische Wert liegt hier darin, zu verstehen, wie man eine robuste, benutzerfreundliche Steuerungsschnittstelle für eine Roboterplattform erstellt. Die Prinzipien, die Sie lernen, sind direkt auf eine Vielzahl von Projekten anwendbar, wie zum Beispiel:

  • Bau eines ferngesteuerten Roboters für Hausautomationsaufgaben, wie einen kleinen Lieferboten.
  • Erstellung eines programmierbaren Fahrzeugs für pädagogische Robotik-Wettbewerbe.
  • Entwicklung einer eigenen Fernbedienung für einen Kamera-Slider oder einen Schwenk-Neige-Mechanismus.
  • Prototyping einer Benutzeroberfläche für ein größeres, komplexeres automatisiertes System.

Hardware und Komponenten

Dieses Projekt baut auf dem SunFounder 3-in-1-Arduino-Kit auf. Um mitzumachen, benötigen Sie die unten aufgeführten Komponenten. Die Verkabelung ist unkompliziert und erweitert die vorherigen Lektionen des Kurses.

  • SunFounder 3-in-1-Arduino-Kit: Dieses enthält das Smart-Car-Chassis, die Motortreiberplatine und das Arduino-Board.
  • Infrarot-Fernbedienung: Die Standard-Fernbedienung, die mit dem Kit geliefert wird.
  • IR-Empfängermodul: Der Sensor, der die Signale der Fernbedienung dekodiert.
  • LED und 330-Ohm-Widerstand: Wird als visueller Indikator verwendet, um zu bestätigen, dass eine Taste gedrückt wurde. (im Video bei 04:08)
  • Jumper-Kabel: Für die notwendigen Verbindungen auf dem Breadboard.

Verkabelungsanleitung

car_9_lesson_29_wriing_for_IR

Bevor wir in den Code eintauchen, stellen wir sicher, dass die Hardware korrekt angeschlossen ist. Die Verkabelung für den IR-Empfänger und den Motortreiber entspricht den vorherigen Lektionen dieser Serie. Um das Projekt interaktiver zu gestalten, schließen wir außerdem eine externe LED an Pin 13 als visuellen Feedback-Indikator an.

Hier ist eine Schritt-für-Schritt-Anleitung für die Verbindungen:

  1. IR-Empfänger: Der IR-Empfänger hat drei Pins. Der positive Pin wird mit der 5V-Schiene auf dem Breadboard verbunden. Der Erdungspin wird mit der GND-Schiene verbunden. Der Signalpin, der letzte Pin, wird mit digitalem Pin 11 auf Ihrem Arduino-Board verbunden. (im Video bei 05:29)
  2. Externe LED: Verbinden Sie ein Bein des 330-Ohm-Widerstands mit digitalem Pin 13 auf dem Arduino. Verbinden Sie das andere Bein des Widerstands mit dem längeren (Anoden-)Bein der LED. Das kürzere (Kathoden-)Bein der LED sollte mit der GND-Schiene auf dem Breadboard verbunden werden. (im Video bei 04:08)
  3. Motortreiber: Die vier Pins für den Motortreiber (A_1B, A_1A, B_1B, B_1A) werden mit den Pins 5, 6, 9 und 10 auf dem Arduino verbunden. Dieses Setup wurde in früheren Lektionen behandelt. (im Video bei 06:44)

Für eine visuelle Referenz dieser Verbindungen beachten Sie bitte das Verkabelungsdiagramm unten.

Code-Erklärung

Der Code für dieses Projekt ist intuitiv gestaltet. Er verwendet die IRremote-Bibliothek, um die komplexe Aufgabe der Dekodierung von IR-Signalen zu übernehmen. Lassen Sie uns die benutzerkonfigurierbaren Teile aufschlüsseln, die Sie möglicherweise für Ihre eigenen Projekte anpassen möchten.

Am Anfang des Sketches finden Sie die Pin-Definitionen. Diese sollten Sie zuerst überprüfen, wenn Sie Ihre Komponenten an andere Pins als in diesem Beispiel angeschlossen haben.

const int IR_RECEIVE_PIN = 12;  // Definieren Sie die Pinnummer für den IR-Sensor
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;
  • IR_RECEIVE_PIN: Diese Konstante definiert den digitalen Pin, der mit dem Signalpin Ihres IR-Empfängers verbunden ist. Wenn Sie ihn an einen anderen Pin angeschlossen haben, würden Sie die Nummer hier ändern.
  • A_1B, A_1A, B_1B, B_1A: Diese Konstanten ordnen die vier Steuerpins auf Ihrem Motortreiber zu. Sie steuern die Geschwindigkeit und Richtung der linken und rechten Motoren.

Als Nächstes finden Sie eine entscheidende Variable, die das Verhalten des Autos steuert.

int speed = 150;
  • speed: Diese Variable setzt die Anfangsgeschwindigkeit des Autos. Der Wert kann von 0 bis 255 reichen. In diesem Projekt können Sie ihn mit den Tasten "+" und "-" auf der Fernbedienung ändern. Der Code enthält auch Logik, um zu verhindern, dass die Geschwindigkeit 255 überschreitet oder unter 0 fällt. (im Video bei 09:22)

Die Kernlogik der Fernbedienung wird in der loop()-Funktion behandelt. Wenn eine Taste gedrückt wird, übersetzt die Funktion decodeKeyValue() den rohen IR-Code in eine einfache Zeichenfolge wie "2" für vorwärts oder "+" für Geschwindigkeit erhöhen. Dies macht die folgenden if-Anweisungen sehr leicht lesbar und modifizierbar. (im Video bei 07:58)

Die benutzerdefinierten Funktionen wie moveForward(), turnRight() und moveLeft() sind der Ort, an dem die Motorsteuerung stattfindet. Jede Funktion nimmt die aktuelle speed als Argument. Zum Beispiel fährt moveForward(speed) beide Motoren mit der angegebenen Geschwindigkeit vorwärts. Der Hauptunterschied zwischen einer „Drehung" und einer „Bewegung" besteht darin, dass eine Drehung beide Räder in entgegengesetzte Richtungen dreht, wodurch sich das Auto auf der Stelle dreht, während eine Bewegung nur ein Rad dreht, wodurch das Auto einen Bogen um das stationäre Rad fährt. (im Video bei 10:14)

Live-Projektdemonstration

Mit hochgeladenem Code und eingeschaltetem Auto wird die Fernbedienung zu deiner primären Schnittstelle. Die Demonstration im Video hebt einige wichtige Verhaltensweisen hervor:

  • Geschwindigkeitsregelung: Das Drücken der „+"-Taste erhöht die Geschwindigkeit um 50, während die „-"-Taste sie verringert. Die Geschwindigkeit ist auf 255 begrenzt und auf 0 begrenzt, um die Motoren zu schützen. (im Video bei 11:56)
  • Momentane Bewegung: Wenn du eine Richtungstaste wie „2" (vorwärts) oder „8" (rückwärts) drückst, bewegt sich das Auto eine Sekunde lang und stoppt dann automatisch. Dies ist eine Sicherheitsfunktion, die in den Code integriert ist. (im Video bei 13:09)
  • Drehen und Manövrieren: Die Tasten, die auf der Fernbedienung in einem Kreuzmuster angeordnet sind, funktionieren wie ein Joystick. Das Drücken von „4" oder „6" dreht das Auto links oder rechts auf der Stelle. Das Drücken der diagonalen Tasten wie „1" oder „3" führt eine „Bewegung nach links" oder „Bewegung nach rechts" aus, was eine schärfere Kurve ist, bei der ein Rad stationär bleibt. (im Video bei 16:42)

Eine Sache, die dir vielleicht auffällt, ist, dass das Auto nicht immer perfekt geradeaus fährt. Dies ist oft auf geringfügige Unterschiede in den Motoren oder die Spannung der Montage des Autos zurückzuführen, was ein häufiges und normales Merkmal dieser Bausätze ist. (im Video bei 15:14)

Kapitel

  • [00:00] Einführung in die IR-Fernbedienung für das Smart Car
  • [01:15] Voraussetzungen und erforderliche vorherige Lektionen
  • [01:56] Überblick über die Projektdokumentation
  • [02:29] Verständnis der Tastenfunktionen der Fernbedienung
  • [03:29] Schritt-für-Schritt-Verdrahtungsanleitung für IR-Empfänger und LED
  • [05:51] Öffnen und Laden des Projektcodes
  • [07:41] Code-Erklärung: Schleife, Tastendekodierung und Aktionen
  • [09:22] Geschwindigkeitsbegrenzung und Sicherheitsfunktionen im Code
  • [10:08] Erklärung der Motorbewegungsfunktionen
  • [11:49] Live-Demonstration: Testen der Geschwindigkeitsregelung und des LED-Blinkens
  • [13:27] Live-Demonstration: Vorwärts, Rückwärts und Drehen
  • [14:31] Vollständige Autodemonstration mit Strom und Bewegung

Bilder

car_9_lesson_29_wriing_for_IR
car_9_lesson_29_wriing_for_IR
896-Lesson 29/31: Car-7 Controlling SunFounder Smart Car using Remote Controller
Sprache: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Ressourcen & Referenzen

Dateien📁

Arduino-Bibliotheken (zip)