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 18Wiederholen 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.

Schritt 37 Laden Sie das Programm auf das OSOYOO Basis board hoch

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.

Nein. Bild Gerät Verbinden
1 OSOYOO Basic R3 Board für Arduino Klicken Sie hier, um zu kaufen
2 OSOYOO Magic I/O Shield für Arduino Klicken Sie hier, um zu kaufen
3 OSOYOO Ultraschall-Detektor-Modul Klicken Sie hier, um zu kaufen
4 OSOYOO IR-Empfänger-Modul Klicken Sie hier, um zu kaufen
5 OSOYOO Roter Knopf Modul Klicken Sie hier, um zu kaufen
6 IR-Fernbedienung Klicken Sie hier, um zu kaufen
7 9V Batteriekasten Klicken Sie hier, um zu kaufen
8 9V Batterie Klicken Sie hier, um zu kaufen
9 Servo Klicken Sie hier, um zu kaufen
10 Motor Klicken Sie hier, um zu kaufen
11 OSOYOO Tracking-Sensor-Modu Klicken Sie hier, um zu kaufen
12 OSOYOO Photoresitor Modul Klicken Sie hier, um zu kaufen
13 OSOYOO DHT11 Modul Klicken Sie hier, um zu kaufen
14 OSOYOO Ultraschall-Sensor-Block Klicken Sie hier, um zu kaufen
15 OSOYOO ESP-Modul Klicken Sie hier, um zu kaufen
16 3-poliges 20cm PnP-Kabel Klicken Sie hier, um zu kaufen
17 4-poliges 20cm PnP-Kabel Klicken Sie hier, um zu kaufen
18 B117 Klicken Sie hier, um zu kaufen
19 B115 Klicken Sie hier, um zu kaufen
20 B113 Klicken Sie hier, um zu kaufen
21 B111 Klicken Sie hier, um zu kaufen
22 B109 Klicken Sie hier, um zu kaufen
23 B107 Klicken Sie hier, um zu kaufen
24 B105 Klicken Sie hier, um zu kaufen
25 B103 Klicken Sie hier, um zu kaufen
26 T024 Klicken Sie hier, um zu kaufen
27 T016 Klicken Sie hier, um zu kaufen
28 L024 Klicken Sie hier, um zu kaufen
29 X064 Klicken Sie hier, um zu kaufen
30 L035 Klicken Sie hier, um zu kaufen
31 X044 Klicken Sie hier, um zu kaufen
32 F057 Klicken Sie hier, um zu kaufen
33 T033 Klicken Sie hier, um zu kaufen
34 PS11 Klicken Sie hier, um zu kaufen
35 P021 Klicken Sie hier, um zu kaufen
36 P011 Klicken Sie hier, um zu kaufen
37 Z005 Klicken Sie hier, um zu kaufen
38 Z010 Klicken Sie hier, um zu kaufen
39 Z101 Klicken Sie hier, um zu kaufen
40 Z1S1 Klicken Sie hier, um zu kaufen
41 A024 Klicken Sie hier, um zu kaufen
42 A013 Klicken Sie hier, um zu kaufen
43 A050 Klicken Sie hier, um zu kaufen
44 A05S Klicken Sie hier, um zu kaufen
45 A08S Klicken Sie hier, um zu kaufen
46 A060 Klicken Sie hier, um zu kaufen
47 A03S Klicken Sie hier, um zu kaufen
48 Z121 Klicken Sie hier, um zu kaufen
49 X275 Klicken Sie hier, um zu kaufen
50 X073 Klicken Sie hier, um zu kaufen
51 Y001 Klicken Sie hier, um zu kaufen
52 Z102 Klicken Sie hier, um zu kaufen
53 P012 Klicken Sie hier, um zu kaufen
54 P011 Klicken Sie hier, um zu kaufen
55 Rad Klicken Sie hier, um zu kaufen
56 Universalrad Klicken Sie hier, um zu kaufen