Kaufen Sie aus den OSOYOO | Kaufen Sie bei US | Kaufen Sie bei UK | Kaufen Sie bei DE | Kaufen Sie bei IT | Kaufen Sie bei FR | Kaufen Sie bei ES | Kaufen Sie bei JP |
In diesem Projekt werden wir einen Hindernissensor (Ultraschall-Abstandsdetektor) verwenden, um Hindernisse zu erkennen, Kollisionen zu vermeiden und automatisch zu fahren.
Bitte bereiten Sie die folgenden Teile vor, um dieses Projekt abzuschließen
HINWEIS:
1. Die Farbe des Bausteins unterliegt dem tatsächlichen Produkt, was die Verwendung nicht beeinflusst.
2. ALLE OSOYOO-PRODUKTE FÜR ARDUINO SIND BOARDS VON DRITTANBIETERN, DIE VOLLSTÄNDIG MIT ARDUINO KOMPATIBEL SIND
Bevor Sie dieses Roboterauto mit Blöcken bauen, installieren Sie bitte die OSOYOO-Basisplatine für Arduino unter dem OSOYOO Magic I / O-Shield wie folgt(Achtung bitte: Die Pins des I / O-Shields sind zuerst mit dem Port der Basisplatine ausgerichtet, dann drücken Sie die Abschirmung fest auf die Platine).
Bitte befolgen Sie die Bauschritte, um dieses Roboterauto zu bauen, Wenn Sie klare PDF-Bauschritte erhalten möchten, laden Sie sie bitte von https://osoyoo.com/picture/Building_Robot_Car/lesson4/LESSON4.pdf herunter.
Hinweis: Wenn Sie das Roboterauto für Lektion1 gebaut haben, fahren Sie bitte mit Schritt 35 in diesem PDF fort.
Bitte schließen Sie Motoren und 9-V-Batteriefach als Lektion an1
Verbinden Sie dann den Servomotor SG90 mit einem 4-poligen PNP-Kabel wie folgt mit dem D7-Port des OSOYOO Magic I/O-Shields, den Ultraschallmodulsensor mit dem D8D4-Port des Magic I/O-Shields:
Hinweis: In diesem Kit verwenden wir mblock als Programmierwerkzeug, wenn Sie mehr über mblock erfahren möchten, besuchen Sie bitte die Vorbereitung vor Klasse 1: https://osoyoo.com/2021/12/01/preparation-before-class-1
Schritt 1) Laden Sie die mBlock PC-Version von https://mblock.makeblock.com/en-us/download/ herunter und wählen Sie die Download-Datei gemäß dem Betriebssystemtyp Ihres Computers aus (bitte verwenden Sie nicht die Browserversion):
Schritt 2) Laden Sie OSOYOO_UNO.mext-Gerätedatei von https://osoyoo.com/driver/mblock/osoyoo_uno.mext herunter
Schritt 3) Führen Sie die mBlock PC-Software aus, indem Sie auf das schöne Panda-Symbol doppelklicken. Sie sehen die mBlock-Benutzeroberfläche wie in der folgenden Abbildung. Bitte löschen Sie das Standardgerät CyberPi, indem Sie auf das Kreuz im roten Kreis klicken.
Schritt 4) Ziehen Sie osoyoo_uno_mext Datei (heruntergeladen in Schritt 2) wie folgt in die mBlock-Software:
Nun sehen Sie eine neue Geräte-Firmware in mBlock, siehe folgendes Bild:
Jetzt wurden die mBlock-Software und OSOYOO_UNO Geräte-Firmware erfolgreich auf unserem PC installiert!
Jetzt zeigen wir Ihnen, wie Sie Blöcke verwenden, um die obige Idee in die Realität umzusetzen.
Schritt 5):Klicken Sie auf Events, fügen Sie oben den Block when Arduino Uno starts up hinzu:
Schritt 6): Klicken Sie auf Control, dann ziehen Sie den Block Forever in den Programmierbereich und legen ihn dort ab:
Schritt 7): Klicken Sie auf Action, dann ziehen Sie den Block set servo pin angle as in den Programmierbereich und legen ihn wie folgt ab
Schritt 8): Klicken Sie auf Control, dann ziehen Sie den Block wait seconds in den Programmierbereich und setzen Sie den Wert auf 0,5 Sekunden wie folgt:
Schritt 9): Klicken Sie mit der rechten Maustaste auf den Block set servo pin angle as und wählen Sie “Duplizieren” aus dem Dropdown-Menü. Sie erhalten einen duplizierten Block und platzieren ihn hinter dem wait seconds Block. Stellen Sie den Wert 45 auf 135 und 90 wie in der folgenden Abbildung ein.
Schritt 10): Klicken Sie auf Control, dann ziehen Sie den Block forever in den Programmierbereich und legen ihn wie folgt ab:
Schritt 11): Klicken Sie auf Action, dann ziehen Sie den Block set servo pin angle as in den Programmierbereich und ändern Sie den Wert 90 in 45 wie folgt;
Schritt 12): Klicken Sie auf Control, dann ziehen Sie den Block wait seconds in den Programmierbereich und setzen Sie den Wert auf 0,5 Sekunden wie folgt:
Schritt 13): Klicken Sie auf Control, dann ziehen Sie den Block if then else in den Programmierbereich und legen ihn dort ab:
Schritt 14: Klicken Sie auf “Operation”, ziehen Sie dann den Block “0<0″ per Drag & Drop in den Programmierbereich, ändern Sie die 0 in 15 wie folgt:
Schritt 15: Klicken Sie auf “Sensor” und ziehen Sie dann den Block [read ultrasonic sensor trig pin echo pin] per Drag & Drop in den Programmierbereich, Pin-Nummer wie folgt auf Pin 7 und Pin 8 eingestellt;
Schritt 16: Klicken Sie auf “Variable” und dann auf den Block [Make a Variable], wobei der Variablenname im leeren Dialogfeld wie folgt auf [Right] gesetzt ist. Erstellen Sie die Variablen [left] und [center] auf die gleiche Weise;
Schritt 17: Klicken Sie auf Variable, dann ziehen Sie den Block “Set center to” in den Programmierbereich, ändern Sie Center auf Right , ändern Sie den Wert von 0 auf 1 , wie folgt:
Schritt 18: Wiederholen Sie den vorherigen Schritt und ändern Sie die 1 wie folgt in 0:
Schritt 19: Klicken Sie mit der rechten Maustaste set servo pin angle as, klicken Sie auf Duplizieren vom digitalen Schreibstift, um ihn zu blockieren. Sie erhalten einen duplizierten Block und platzieren ihn wait seconds wartesekundenblock. Setzen Sie den Wert 45 auf 135 und 90, ändern Sie right in left und center wie in der folgenden Abbildung
Schritt 20: Klicken Sie auf Control, dann auf Drag & Drop if then else Block zum Programmierbereich wie folgt:
Schritt 21: Klicken Sie auf Operation, dann ziehen Sie den Block 0 = 0 per Drag & Drop in den Programmierbereich und ändern Sie die 50 wie folgt in 0:
Schritt 22: Klicken Sie auf Variableund dann auf Ziehen Sie center wie folgt in den Programmierbereich:
Schritt 23: Klicken Sie auf Action und dann auf Drag & Drop Move forward at speed for Block zum Programmierbereich, ändern Sie die 1 sec to 0.5 sec wie folgt;
Schritt 24: Klicken Sie erneut auf Action und ziehen Sie dann den Stop Moving Block wie folgt in den Programmierbereich;
Schritt 25: Klicken Sie auf Control und ziehen Sie dann den if then else Block wie folgt in den Programmierbereich.
Schritt 26: Klicken Sie auf Operation, iehen Sie dann den Block 0=0 in den Programmierbereich und ändern Sie den Wert 50 to 0 wie folgt
Schritt 27: Klicken Sie auf Variable und ziehen Sie dann den left Block in den Programmierbereich wie folgt:
Schritt 28: Klicken Sie auf Action, ziehen Sie dann den Block Turn Left at speed for in den Programmierbereich und ändern Sie die 1 sec in 0.5 sec wie folgt;
Schritt 29: Klicken Sie erneut auf Action und ziehen Sie den Block Stop Moving wie folgt in den Programmierbereich;
Schritt 30: Klicken Sie auf Control, und ziehen Sie dann den if then else Block wie folgt in den Programmierbereich.
Schritt 31:Klicken Sie auf Operation, dann ziehen Sie den Block 0=0 in den Programmierbereich und ändern Sie den Wert 50 in 0 wie folgt;
Schritt 32: Klicken Sie auf Variable, und ziehen Sie dann den right block in den Programmierbereich und legen Sie ihn dort ab:
Schritt 33: Klicken Sie auf Action, Ziehen Sie dann den Block Turn Right at speed for in den Programmierbereich und ändern Sie 1 sec in 0.5 sec wie folgt;;
Schritt 34: Klicken Sie erneut auf Action und ziehen Sie den Block Stop Moving in den Programmierbereich, wie folgt;
Schritt 35: Klicken Sie erneut auf Action den Block Turn Right at speed for in den Programmierbereich und ändern Sie den Wert 1 sec in 1.5 sec wie folgt;
Schritt 36: In Action, dann ziehen Sie Stop Moving Block in den Programmierbereich, wie folgt;
Nun haben wir die Blockprogrammierung abgeschlossen. Die letzten Blöcke sehen wie folgt aus:
Nun sind alle Programmierblöcke abgeschlossen! Aus dem obigen Bild ist die Logik ziemlich einfach:
Wenn Arduino gestartet wird, tritt der Computer in eine Totschleife ein, die den Tastenstatus überprüft, wenn die Taste nicht gedrückt wird, stoppt das Servo in der ursprünglichen Position (in meinem Servo 0 Grad) und das Höhenruder befindet sich im Boden, wenn der Knopf gedrückt wird, dreht sich der Servoarm von der 0-Grad-Position in die 180-Grad-Position und das Höhenruder wird in die Luft gehoben.
1) Bitte schließen Sie Ihr OSOYOO basic board zunächst mit einem USB-Kabel an Ihren PC an. Klicken Sie dann auf die Schaltfläche “Verbinden” unten in der Software mBlock, es öffnet sich ein USB-Fenster,
2) Aktivieren Sie das Kontrollkästchen Alle anschließbaren Geräte anzeigen, dann wird ein Geräte-Dropdown-Menü eingeblendet,
3) Wählen Sie Ihren Anschluss aus dem Dropdown-Menü des Geräts
4) Klicken Sie auf die Schaltfläche Verbinden, um Ihren PC mit dem OSOYOO basic board zu verbinden.
5)Nachdem Ihr PC mit dem OSOYOO basic board verbunden ist, klicken Sie bitte auf die Schaltfläche Upload im unteren Teil der Software, dann wird der Code auf das OSOYOO basic board hochgeladen:
In dieser Lektion lernen wir einige neue Programmblöcke kennen, wie zum Beispiel die folgenden:
i)Set Servo angle block in Action Kategorie:
Dieser Block steuert ein Servo an einem bestimmten digitalen Anschluss in einem bestimmten Winkel.
Nehmen Sie den obigen Block als Beispiel. Er dreht das Servo im D4-Pin um 90 Grad, wodurch der Ultraschallsensor nach vorne gerichtet wird. In diesem Fall erkennt der Sensor, ob sich auf der Vorderseite ein Hindernis befindet.
Wenn Sie den Winkelwert von 90 auf 45 ändern, dreht sich der Sensor um 45 Grad nach links und der Ultraschallsensor prüft Hindernisse auf der linken Seite.
Wenn Sie den Winkelwert von 90 auf 135 ändern, dreht sich der Sensor um 45 Grad nach rechts und der Ultraschallsensor prüft Hindernisse auf der rechten Seite.
ii) Gelb Wait Block von Control Kategorie
Dieser Satz hält den aktuellen Status für eine bestimmte Zeitspanne, bevor der nächste Programmsatz ausgeführt wird
Im obigen Beispiel dreht sich das Servo in D4 um 90 Grad und hält dann für 2 Sekunden an.
iii)Read Ultrasonic Sensor Block aus Sensor Abschnitt
Dieser Block liest den Entfernungswert vom Ultraschallsensor
Im obigen Beispiel liest der Block den Wert der Hindernisentfernung aus einem Ultraschallsensor, dessen Trigger-Pin in D7 und Echo-Pin in D8 liegt.
Wenn der Ultraschallsensor ein Hindernis erkennt, gibt er den Entfernungswert (Integer) zurück.
iv)Compare block in Operator Kategorie
Der Vergleichsblock gibt True oder False basierend auf dem Vergleichswert zurück
Wenn im obigen Beispiel der Abstandswert des Ultraschallsensors unter dem Schwellenwert von 15 ( liegt, wird True zurückgegeben, was bedeutet, dass ein Hindernis erkannt wurde.
Andernfalls wird False zurückgegeben, was bedeutet, dass kein Hindernis in dieser Richtung vorhanden ist. Sie können den Schwellenwert auf einen anderen Wert ändern. Je größer der Wert, desto empfindlicher reagiert das Auto.
Die gesamte Programmierlogik:
Zunächst lässt das Programm den Ultraschallsensor von 45 Grad auf 135 Grad rotieren und hält dann 2 Sekunden lang bei 90 Grad an. Dies gibt Ihnen die Möglichkeit, die Servorichtung auszurichten. Wenn der Sensor während der 2 Sekunden bei 90 Grad nicht nach vorne zeigt, müssen Sie die Position des Sensors im Servo anpassen und ihn auf 90 Grad ausrichten.
Dann tritt der Sensor in eine ewige Schleife ein, die das Auto im Hindernisvermeidungsmodus laufen lässt.
Das Programm dreht den Servo um 45 Grad, wenn der Sensor ein Hindernis innerhalb von 15 cm erkennt, wird die Variable rechts auf 1 gesetzt, was bedeutet, dass auf der rechten Seite ein Hindernis ist. Andernfalls wird die Variable rechts auf 0 gesetzt.
Dann dreht das Programm das Servo um 135 Grad und 90 Grad, um Hindernisse auf der linken Seite und in der Mitte zu testen. Wenn die linke Seite ein Hindernis innerhalb von 15 cm hat, wird die Variable links auf 1 gesetzt, wenn die mittlere Richtung ein Hindernis innerhalb von 15 cm hat, wird die Variable Mitte auf 1 gesetzt. Wenn kein Hindernis vorhanden ist, werden diese Variablen auf 0 gesetzt.
Jetzt haben wir den Hindernisstatus in drei Variablen left, right und center bekannt. Das Programm wird die Bewegung der Kabine auf der Grundlage dieser Werte bestimmen.
Wenn die mittlere Richtung KEIN Hindernis hat (center=0), dann fährt das Auto vorwärts.
Wenn die mittlere Richtung ein Hindernis hat, aber die linke Seite KEIN Hindernis hat (center=1, aber left=0), dann fährt die Kabine nach links.
Wenn die mittlere Richtung und die linke Seite alle ein Hindernis haben, aber die rechte Seite KEIN Hindernis hat (center=1 und left=1 aber right=0 ), dann biegt die Kabine rechts ab.
Wenn die mittlere Richtung, die linke und rechte Seite alle ein Hindernis haben (center=1 und left=1 right=1 ), dann biegt das Auto für eine lange Zeit nach rechts ab, was das Auto dazu bringt, zurück zu fahren.
Die folgende Abbildung zeigt die obige Programmierlogik in den Programmblöcken.
Passen Sie die Richtung des Ultraschallsensors an:
Nachdem der Code in das Roboterauto geladen wurde, ziehen Sie das USB-Kabel von der UNO-Platine ab und schalten Sie den Netzschalter auf der Magic I/O-Karte ein. Dann dreht sich der Ultraschallsensor 5 Sekunden lang in die geradlinige Richtung. Wenn der Ultraschallsensor nicht in die vordere Position zeigt, schalten Sie bitte die Stromversorgung aus. Bitte verwenden Sie einen Schraubendreher, um die Richtung des Ultraschallsensors einzustellen und geradeaus zu zeigen, schalten Sie dann das Gerät wieder ein und während der ersten 5 Sekunden sollte der Sensor nach vorne zeigen.
Nach den 5 Sekunden beginnt das Roboterauto zu fahren und ändert automatisch die Richtung, um Hindernissen auszuweichen.
DownLoad Url osoyoo.com