Die Kommunikation zwischen Roboter - Lern LEGO MINDSTORMS EV3 (2015)

Kapitel 11. Die Kommunikation zwischen Roboter

In diesem Kapitel werden wir untersuchen, wie Messaging via Bluetooth verwenden Kommunikation zwischen Roboter zu ermöglichen. Wir werden:

· Aktivieren der Bluetooth-Kommunikation zwischen Robotern

· Verwenden Sie einen Roboter eines anderen steuern

· Programm zwei Roboter zu kommunizieren, um eine sichere Fahrzeit erreichbar zu halten

· Verwenden Sie zwei Roboter zur Zusammenarbeit ein verstecktes Ziel zu finden

Die offiziell EV3 Tutorials führen Sie durch die Bluetooth-Kommunikation einrichten und Verbindungen auf dem Backstein einrichten. Die Tutorials dann weiterziehen, wie eine Nachricht von einem Roboter zu einem anderen zu senden. Ein Master-EV3 Roboter kann bis zu sieben Slave-EV3 Roboter steuern. Master-Slave-Roboter-Steuerung ist ein gebräuchlicher Begriff in der Technik. In dieser Anordnung kann der Master kommunizieren hin und her mit allen Slave-Robotern. Allerdings kann der Slave-Roboter nicht miteinander kommunizieren. Es gibt viele Beispiele für das Web mit einer EV3 als Fernbedienung für einen vollen Roboter. In diesem Kapitel werde ich mich auf zwei volle Roboter miteinander kommunizieren konzentrieren.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Als nächstes werden wir direkt mit den Ziegelsteinen arbeiten Kommunikation zwischen den Robotern zu ermöglichen. Die EV3 Tutorials haben Sie die volle Kommunikation ermöglichen jedes Mal, wenn Sie ein Programm ausführen, mit den Backstein-Schaltflächen. In Wahrheit, müssen Sie nur die Roboter zu ermöglichen, sie einmal mit den Ziegeln Tasten zu entdecken. In der folgenden Programmierung, können Sie die Verbindung mit der Software machen.

Aus dem Menü Einstellungen auf Ihrem EV3 Ziegel, wählen Sie Bluetooth. wie in dem folgenden Bild zu sehen. Tun Sie dies auf Ihre beiden Ziegel, Master und Slave.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Wenn Sie Bluetooth wählen, indem Sie die mittlere Taste drücken, werden Sie das Bluetooth-Menü sehen, wie in der folgenden Abbildung dargestellt. Sie sollten das iPhone / iPad / iPod Option deaktivieren. Sie wollen sowohl die Bluetooth- und Sichtbarkeitsoptionen ausgewählt haben. Tun Sie dies auf beiden Steine. Sobald dies erledigt ist, wählen Sie Verbindungen auf beiden Steine ​​nur um sicherzugehen, dass sie einander sehen können.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Jetzt suchen wählen, wie im folgenden Bild dargestellt. Dies wird die Paarung zwischen dem EV3 Ziegel erlauben zu beginnen.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Vom Master Ziegel, wollen Sie den Roboter, an dem Sie koppeln möchten auszuwählen, wie in der folgenden Abbildung dargestellt. Sie müssen dies nur auf dem Master-Ziegel tun, nicht sowohl die Ziegel.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Wenn Sie den Roboter auswählen, mit zu paaren, wird es Sie fragen, ob Sie eine Verbindung herstellen möchten. Klicken Sie auf Schließen Sie die Paarung zu beginnen, wie in der folgenden Abbildung dargestellt:

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

An diesem Punkt wird eine Aufforderung den Pairing erscheint auf dem Slave-Roboter zu übernehmen. Akzeptieren Sie die Paarung. Einmal angenommen, es wird Sie für einen PASSKEY fragen, wie in der folgenden Abbildung dargestellt. Stellen Sie sicher, dass Sie den gleichen Autorisierungsschlüssel auf beiden Roboter ein.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Nachdem Sie den Autorisierungsschlüssel eingegeben haben, sollten die Roboter die Verbindung abzuschließen. Sie werden das Display sehen, wie in der folgenden Abbildung dargestellt:

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Dieses Verfahren zum Verbinden der Roboter unter Verwendung der Ziegel Tasten muss nur einmal durchgeführt werden. Wenn Sie jedoch nicht diese erste Paarung tun, wenn Sie versuchen, die Programme ausführen, erhalten Sie eine Fehlermeldung.

In den EV3 Tutorials (in der Software LEGO MINDSTORMS EV3 embedded), präsentieren sie ein Beispiel für Messaging, wo Feedback von den Drehgebern eines Motors auf dem Master-Roboter die Slave-Roboter bewegen. Allerdings dauert das Feedback in den Lernprogrammen Positionsablesungen vom Motor auf dem Master-Roboter. Dies ist sehr ähnlich zu einem Knopf auf einer Fernbedienung verwendet werden, den Roboter bewegen zu machen. Ich werde stattdessen Leistungswerte verwenden, so dass wir die Geschwindigkeit des Master-Roboters emulieren können.

Im folgenden Beispiel habe ich zwei ähnliche Roboter. Die Roboter müssen nicht identisch sein, sondern den richtigen Motor in Port B und den linken Motor in Port C. mich aus unseren früheren Kapiteln zwei der Nachlauf-Bots gesteckt haben müssen. In diesem Programm, wenn Sie den Master-Roboter entlang einer Oberfläche drücken, wird der slave1 Roboter die Bewegungen nachzuahmen.

Im folgenden Screenshot ist das Programm auf den Master-Roboter heruntergeladen werden. Das Programm beginnt mit dem Ziegel Bluetooth mit dem Bluetooth-Kommunikation auf Block durch Drehen. Als nächstes bereitet das Programm eine Linie der Kommunikation zwischen dem Master-Roboter und dem slave1 Roboter mit dem Bluetooth-Kommunikationsblock einleiten. Beachten Sie, dass dies den Master-Roboter erlaubt es, Nachrichten an den slave1 Roboter zu schicken, aber der Master-Roboter nicht vorbereiten Nachrichten zu empfangen. Sie müssen die richtigen Namen des empfangenden Roboters in diesem Block schreiben. Nach dem Zurücksetzen des Drehgebers am Motor C mit den Motordrehblöcken, geben wir den Endlosschleife Block genannt Motion. Die aktuellen Stromwerte werden von der Motordrehblocks auf die Nachricht senden Numeric Blöcke gesendet. Ich habe gewählt, für jeden Motor ein Signal zu haben. Obwohl ich nur der Roboter bewegt sich hin und her in diesem Kapitel machen würde, separate Nachrichten Motor setzt die Option auf den Code für Sie Anweisungen zu geben Navigation zu ändern.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Das Programm für den Slave-Roboter ist recht einfach, wie Sie im folgenden Screenshot sehen. Wir beginnen, indem sie auf dem Backstein Bluetooth einschalten. Innerhalb der Schleife Block, können wir das Programm sehen wiederholt Starkstrom Wert Nachrichten aus dem Messaging Empfangen Numeric Block und sendet sie an Bewegung Tank auf Block akzeptiert.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Da diese die tatsächlichen Stromwert gemessen von dem Drehgeber auf den Master-Robotern sind, hat der Slave-Roboter eine effiziente Arbeit der Bewegung des anderen Roboters zu emulieren.

Halten Sie einen Abstand

Wir werden das gleiche Slave-Programm verwenden, wie wir in dem Mitläufer Abschnitt verwendet. Alle von der Magie werden in dem Programm auf dem Master-Roboter geschehen. Sie müssen einen Ultraschall-Sensor nach hinten gerichtet auf dem Master-Roboter montieren. Sie können den Bewegungssensor in Port 4 auf dem Master-Roboter stecken. Dies wird verwendet, um zu erkennen, wie weit entfernt der Slave-Roboter ist. Es wird zwei parallel Sequenzen sein, eine Sequenz, die für die Kommunikation mit dem Slave, und die andere Sequenz, die die Bewegung des Master-Roboters zu steuern.

Wir beginnen die Kontrollsequenz wie folgt:

1. Definieren der variable Blöcke mit Werten für die Verstärkung und die Sollabstand im Proportionalregler.

2. Als nächstes werden die Bluetooth-Verbindung blockiert initiieren eine Verbindung mit dem Slave-Roboter.

3. Dann ist unsere Entfernung Meßschleife Block Nachrichten an den Slave-Roboter senden, so dass ein konstanter Abstand zwischen den Robotern aufrechterhalten werden kann.

4. Innerhalb der Schleife Block berechnet der erweiterten Mathematik- Block die Differenz zwischen dem Blockwert Ultraschallsensor und der Wert für den Sollabstand und multipliziert diese Differenz durch den Gewinn.

5. Dieser Leistungspegel wird an den Slave-Roboter durch die Messaging-Blöcke gesendet.

Eine einfache Herausforderung wäre in einer anderen Variable für die Geschwindigkeit des Master-Roboters in diesen Algorithmus an, so wird der Roboter nicht immer aufholen zu spielen.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Die zweite Sequenz steuert die Bewegung des Master-Roboters. Wir beginnen mit einer Wartezeit Block, um dem Slave-Roboter ein paar Sekunden mit dem Master-Roboter aufholen zu können. Dann haben wir den Master-Roboter vorwärts für einige Sekunden bewegen, stoppen und dann rückwärts bewegen. Auch hier sollten Sie zuerst das Programm auf dem Slave-Roboter starten. Wenn Sie die Programme ausführen, können Sie mit dem Wert für die Verstärkung und Distanz Variablen rumspielen. Sie können versuchen, neue Situationen zu schaffen, den Verkehr auf einer Autobahn zu simulieren. Als zusätzliche Herausforderung, könnten Sie in einer proportionalen Linie Tracker zu beiden Robotern hinzufügen und haben sie eine Linie verfolgen, während eine feste Distanz zu halten.

Im folgende Programm werden wir zwei Roboter verwenden, um zu versuchen und ein Ziel. Ohne zu wissen, wo das Ziel ist, wird jeder Roboter reist nach außen und nach einem Ziel. Wenn das Ziel gefunden wird, wird der andere Roboter den Roboter anschließen, der das Ziel gefunden. Wenn weder das Ziel findet, kehren beiden Roboter in ihre Ausgangspositionen.

Wenn Sie dieses Modell auf mehrere Roboter erweitern, haben wir einen Zweig der Robotik namens Schwärmen. Wie können Sie mehrere autonome Roboter verwenden ein unbekanntes Ziel in zweidimensionalen (oder dreidimensionalen) Raum zu finden? Die Anwendungen starten von Grund Staubsauger Roboter bis zu fliegen autonome Quad-Copter Wiederfinden verlorener Wanderer und Waldbrände.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

In diesem speziellen Beispiel, sollten Sie zwei identische Roboter platzieren Rücken an Rücken, wie Sie im vorhergehenden Bild sehen können. Montieren jeder Roboter mit einem Farbsensor nach unten gerichtet für das Ziel zu suchen. In dem vorhergehenden Bild, war der größte Teil des Geländes eine weiße Fläche. Aber wie Sie im folgenden Bild sehen können, ist das Ziel ein schwarzes Blatt Papier. An der Vorderseite jeden Roboters, legen Sie einen Touch-Sensor. Wenn der Touch-Sensor auf ein Hindernis trifft, wird es den Farbsensor löst die Farbe auf der Oberfläche darunter zu messen. Platzieren ein farbiges Ziel vor der Schranke nur in eine Richtung.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Auf beiden Roboter wird der Touch-Sensor in Port eingesteckt 1 und der Farbsensor in Port 3. Der Ultraschallsensor angeschlossen ist nicht für dieses Programm benötigt, sondern aus dem Halten Sie einen Abstand Abschnitt des Programms übrig.

Lassen Sie uns beginnen, indem das Programm für den Slave-Roboter zu untersuchen. Es gibt zwei parallele Sequenzen in diesem Programm, wie Sie im folgenden Screenshot sehen. Die erste Sequenz empfängt Bewegungsbefehle vom Master-Roboter. Dies ist vergleichbar mit dem Slave-Schleife Block aus den früheren Programmen, außer ich jetzt ein Verschieben Steering Block bin mit der Programmierung zu vereinfachen.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Die zweite Sequenz sendet in der folgenden Weise an den Master-Roboter-Informationen zurück:

1. Diese Sequenz beginnt erst, wenn der Touch-Sensor auf dem Slave-Roboter wird von der Warte Touch Sensor wechselt Block ausgelöst wurde.

2. Was anders ist, ist, dass jetzt die Bluetooth-Kommunikation einleiten Block der Master-Roboter bereitet Nachrichten von slave1 zurück zu erhalten.

3. Als nächstes wird ein Messaging senden Logikblock sendet eine Boolesche wahre Aussage genannt Blick an den Master zurück. Dies ermöglicht es dem Master zu wissen, dass der Slave-Roboter die Wand erreicht hat und nun sendet Farbinformationen.

Messblock zurück an den Master über den Messaging sendet Numeric Block 4. Die Farberkennung Loop-Block wird ständig Messwerte vom Wert des Farbsensors senden.

Um das Programm auf dem Master-Roboter zu vereinfachen, habe ich mehrere My Blöcke auf dem dritten von drei parallelen Sequenzen verwendet, wie Sie im folgenden Screenshot sehen:

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Die erste Sequenz definiert Standardwerte für die verschiedenen Variablen und setzt einige Sensorwerte. Wir beginnen damit, die Boolesche Logik Variable Blöcke EV3-M und EV3-S auf false (M für Master und S für Slave) einstellen. Diese Variablen verfolgen, wenn der Touch-Sensor an jedem Roboter ausgelöst wurde, und wird auf true ändern, nachdem ihre jeweiligen Berührungssensoren sind gedrückt worden ist. Die numerische Variable Blockfarbe verfolgt, welche Roboter das Ziel erkannt hat. Der Standardwert von 0 zeigt an, daß weder Roboter das Ziel erkannt hat. Ein Wert von 1 wird der Master anzuzeigen, dass das Ziel erfasst wird, und ein Wert von 2 wird diese Slave1 anzuzeigen, das Ziel erfaßt. Ein neuer Sensor wir nicht vorher besprochen haben, ist der Timer Sensorblock. Sie können tatsächlich bis zu acht einzelnen Timer-Sensoren haben unabhängig voneinander alle laufen. Wir werden zwei verschiedene Timer-Sensoren verwenden. Wir werden einen Timer Sensor verwenden, um die Fahrzeit messen sie die Wand für jeden Roboter zu erreichen dauern. Wir verwenden den Reset-Timer-Block Diese Timer zu Beginn des Programms auf Null.

Die zweite Sequenz wird Bewegungssteuerbefehle an den Slave-Roboter zusätzlich der Verfolgung der Reisezeit für den Slave-Roboter senden. Wir beginnen den Faden durch die Kommunikation mit dem Slave-Roboter zu initiieren. Beachten Sie, dass wir einen Loop-Messaging vergleichen Block haben. Im Inneren des Blocks ist der Befehl für den Roboter Slave vorwärts zu bewegen. Der Auslöser dieser Schleife zu brechen ist gegeben, wenn die Booleschen wahre Aussage aus dem Messaging-Sendelogikblock genannt Blick auf den Slave-Roboter empfangen. Als nächstes wird die Laufzeit des Slave-Roboters durch Senden des Wertes des Timer Measure Blockes 2 in dem numerischen Variable Block aufgezeichnet genannt 2. Schließlich den Slave ein Messaging senden Numeric Block zu stoppen Befehle und die Boolesche Variable EV3-S ist geändert, um wahr, um anzuzeigen, dass der Slave die Barriere erreicht hat.

1. Nachdem der Master-Roboter in Bewegung, der erste 1 My Block stoppt den Master-Roboter gesetzt worden ist, sobald es die Barriere erreicht hat und zeichnet die Reisezeit.

2. Beide My Block prüft Berühren Sie, um zu sehen, ob die beiden Roboter ihre jeweiligen Barrieren erreicht haben.

4. Als nächstes wird ein mathematischer Block berechnet die Summe der individuellen Reisezeiten der einzelnen Roboter.

Im folgenden Screenshot, wenn wir in dem 1 My Block betrachten, können wir sehen, dass der Master-Roboter für eine Änderung des Zustandes des Touch Sensors wartet und dann stoppt den Roboter. An diesem Punkt, messen Sie die Timer-Zeit 1 Block sendet seinen Wert auf den numerischen Variable Block 1 die Dauer der Laufzeit für den Master-Roboter aufzunehmen. Zusätzlich ist eine wahre Aussage zu dem Variable Block EV3-M aufnehmen Boolesche Logik gesendet, dass der Master-Roboter die Barriere erreicht hat.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Im folgenden Screenshot, können wir innerhalb der beiden Touch My-Block sehen. Dies ist eine Boolesche Logik-Schleife, die Schleife wird fortgesetzt, bis es eine wahre Aussage aus den Verknüpfungen und Block empfängt. Dies wird nur wahr, wenn sowohl die Logik Variable Block EV3-M und die Logik Variable Block-EV3-S auf true gedreht werden. Da der logischen Variable Block EV3-S in einer parallelen Sequenz verändert wird, unterbricht diese die dritte Sequenz, bis der Slave-Roboter die Barriere erreicht hat.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Abschließen der Suche

Wir werden nun jede der drei Wahlen in unserem Schalterblock untersuchen. Jeweils in dem Schalterblock wird eine Reihe von Befehlen auszuführen, basierend auf dem Roboter das Ziel entdeckt hat.

Wahl 1 zeigt an, dass der Master den Roboter gefunden hat. Somit wird ein Befehl an den Slave gesendet, um den Master-Roboter zu verbinden. Die Motorbefehle werden für eine Zeitdauer an die Slave-Roboter gesendet, der den Wert der numerischen Variablen Reise. Der Wert der Reise ist die Summe der Menge an Zeit, die für beiden Roboter ihre jeweiligen Ziele zu erreichen. Auf diese Weise können wir die Menge der Zeit annähern es für einen Roboter zurück zu nehmen.

Im folgenden Screenshot können wir Tab 2. sehen, was der Fall ist für, wenn der Slave das Ziel findet. In ähnlicher Weise wird die Reisezeit wieder durch die numerische Variable Reise diktiert.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Der Standardfall ist, wenn weder Roboter das Ziel findet. In diesem Fall werden beide Roboter zurückkehren zurück, wo sie begonnen haben. Im folgenden Screenshot können Sie die einzelnen Bewegungsbefehle für jeden Roboter sehen, aber die Dauer der jeweiligen Rückfahrt spiegelt, wie viel Zeit es dauerte ihr Ziel zu erreichen.

Die Kommunikation zwischen Roboter - Lern ​​LEGO MINDSTORMS EV3 (2015)

Sobald die Roboter auf den Ursprung zurückgeführt haben, können Sie die Roboter wieder auszusenden, um zu versuchen und das Ziel zu erwerben. Man könnte diese Idee auf mehrere Roboter erweitern, die das Konzept des Schwarms ist.

In diesem Kapitel haben Sie gelernt, wie Messaging zu verwenden und Bluetooth-Kommunikation zwischen Robotern. Sie haben gelernt, wie Roboter miteinander interagieren zu lassen. Sie haben auch gelernt, wie man dynamisch die Bewegungen eines Slave-Roboter-Feedback basierend auf Sensor zu aktualisieren. Schließlich sah man, wie sich die Leistung mehrerer Roboter arbeiten zusammen, uns mehr als ein Roboter kann für sich allein zu erreichen ermöglicht.

Im nächsten Kapitel werden wir eine der fortgeschrittenen Programme von LEGO, Gyro Boy erkunden.

In Verbindung stehende Artikel