Schaltungen

So bauen Sie einen Roboter - Lektion 7: Bauen Sie einen Bluetooth-gesteuerten Arduino-Roboter: 14 Schritte

Сборка робота Robot Car с видео камерой и Wi Fi с контроллером, совместимым со средой Arduino

Сборка робота Robot Car с видео камерой и Wi Fi с контроллером, совместимым со средой Arduino

Inhaltsverzeichnis:

Anonim

Da der Arduino-Roboter die Grundfunktionen ausführen kann, erweitern wir ihn jetzt um eine weitere Funktion - die Fernbedienung über Bluetooth.

Wie in den anderen Tutorials zum Erstellen eines Roboters wird auch hier ein Arduino-Roboterkit (Pirat: 4WD Arduino Mobile Robot Kit mit Bluetooth 4.0) als Beispiel verwendet. Außerdem benötigen wir die Hilfe von GoBLE (A Generic BLE APP Controller), mit dem Sie Roboter, mobile Plattformen, Drohnen oder andere Dinge wie unbemannte Luftfahrzeuge (UAV) über Bluetooth mit Ihren Mobilgeräten verbinden und steuern können.

Unterrichtsmenü:

Lektion 1: Einführung

Lektion 2: Erstellen Sie einen einfachen Arduino-Roboter

Lektion 3: Erstellen Sie einen Line Tracking-Arduino-Roboter

Lektion 4: Bauen Sie einen Arduino-Roboter, der Hindernisse ausweichen kann

Lektion 5: Bauen Sie einen Arduino-Roboter mit Licht- und Soundeffekten

Lektion 6: Erstellen Sie einen Arduino-Roboter, der die Umgebung überwachen kann

Lektion 7: Bauen Sie einen Bluetooth-gesteuerten Arduino-Roboter

Vorbereitung

iPhone oder iPad × 1

GoBLE APP × 1

Zubehör:

Schritt 1:

Hinweis: Derzeit kann GoBLE nur auf iOS-Geräten verwendet werden und fordert Sie auf, mindestens iOS 8.1 zu installieren.

Für iOS-Benutzer: Laden Sie GoBLE aus dem App Store herunter.

Schritt 2:

Laden Sie den Testcode hoch

Bitte verbinden Sie den Romeo BLE mit dem Computer. Der Testcode "GoBLE_Test.ino" ist im Softwarepaket enthalten. Hier können Sie die Signalausgabe Ihrer Geräte überprüfen. LADEN SIE ES HERUNTER & PRÜFEN SIE ES. Vergessen Sie nicht, die GoBLE-Bibliothek zu laden, bevor Sie den Testcode herunterladen.

Schritt 3:

Bluetooth-Test

Beginnen wir nun mit der Bluetooth-Kopplung. Schalten Sie das mobile Bluetooth ein und öffnen Sie die GoBLE-App. Ihr Bildschirm würde so aussehen!

Schritt 4:

Klicken Sie auf den Bluetooth-Suchschlüssel (er sieht aus wie eine rote Lupe). Wählen Sie dann eines der Bluetooth-Geräte, die dem Namen von Romeo BLE entsprechen. Klicken Sie auf die UUID und sie beginnen mit dem Pairing.

Schritt 5:

Sobald die Verbindung hergestellt ist, wechselt die Farbe des Bluetooth-Suchschlüssels von rot zu grün.

Schritt 6:

Gleichzeitig leuchtet die LINK-LED auf der Platine auf, dh Ihr iPhone wurde mit dem Romeo BLE (Arduino Robot Control Board mit Bluetooth 4.0) verbunden.

Schritt 7:

Testen wir nun, ob der Controller erfolgreich ein Signal von Ihrem iPhone empfangen kann. Kehren Sie zur Arduino IDE-Oberfläche zurück und klicken Sie auf den seriellen Monitor in der oberen rechten Ecke.

Schritt 8:

Ein Dialog wie im Bild unten wird angezeigt. Zunächst muss die Baudrate der seriellen Schnittstelle auf 115200 eingestellt werden, wie im roten Kreis unten gezeigt.

Schritt 9:

Jetzt können Sie Ihr iPhone herausnehmen und den virtuellen Joystick nach dem Zufallsprinzip bewegen oder auf die Schaltfläche auf dem Bildschirm klicken. Wenn nichts anderes angezeigt wird, sehen Sie den entsprechenden Wert auf dem seriellen Monitor. Der Joystick-Wert auf dem seriellen Monitor wird geändert, wenn Sie den virtuellen Joystick auf dem Bildschirm bewegen. Sie werden feststellen, dass der Wert zunimmt, wenn der Joystick nach oben streicht, oder abnimmt, wenn der Joystick nach unten streicht.

Die Schaltflächen-ID gibt an, auf welche Schaltfläche Sie klicken.

Schritt 10:

Laden Sie den Code für die Fernbedienung hoch

Wenn alles in Ordnung ist, fahren wir fort und laden den Code für die Fernsteuerung auf das Arduino-Board hoch. Es gibt einen sehr wichtigen Punkt, den Sie im Hinterkopf behalten sollten!

Ihr iPhone wurde bereits in der letzten Testphase mit dem Romeo BLE Board verbunden. Sie können den Code jedoch nicht auf die Romeo BLE-Karte hochladen, wenn die Bluetooth-Verbindung zwischen Ihrem Telefon und der Karte hergestellt wurde. Daher sollten Sie zuerst die Bluetooth-Kopplung abbrechen. Außerdem können Sie den Code erneut hochladen, wenn die Karte vom Telefon getrennt wurde. DIES IST SEHR WICHTIG!

Es gibt zwei Methoden, um die Verbindung zu unterbrechen. Eine Möglichkeit besteht darin, dass Sie die Remeo BLE-Stromversorgung einfach ausschalten und dann wieder einschalten können. Der andere Weg ist, dass Sie einfach die Bluetooth-Funktion Ihres Telefons ausschalten.

Nach dem Trennen der Verbindung können Sie den Beispielcode erneut hochladen. Der Code wird im Codepaket als GoBLE_APP.ino bezeichnet.

Schritt 11:

Nach dem erfolgreichen Hochladen können Sie dem roten Pfeil in der Abbildung unten folgen und mit dem Joystick über Ihren Roboter fahren. Sie können auch auf die rote Taste klicken, um die LED auf der Platine, die mit PIN13 verbunden ist, ein- oder auszuschalten.

Schritt 12:

Code-Übersicht

Lassen Sie uns nach dem Spielen des Roboters lernen, wie man den Code verwendet. Keine weiteren Wörter für den Testcode für den GoBLE-Test. Dann gehen wir einfach weiter zur GoBLE APP.

Der grundlegende Code muss nicht besprochen werden. Schauen wir uns nur den Teil an, der die Bluetooth-Steuerung umfasst. Wenn Sie den Roboter fernsteuern möchten, werden zwei Bibliotheken mit den Namen Metro und GoBLE verwendet.

#include "Metro.h"

#include "GoBLE.h"

int joystickX, joystickY;

int buttonState 6;

joystickX, joystickY und buttonState 6, drei Variablen, sind für die GoBLE-Bibliothek definiert. Sie werden verwendet, um den Statuswert für die X-Achse, die Y-Achse und die Werte von sechs Schaltflächen zu speichern.

Die Karte unten zeigt das Layout aller Schaltflächen. Möglicherweise kennen Sie die Bedeutungen von + X, -X, + Y und –Y, wenn Sie die Änderung der Statuswerte analysiert haben.

X & Y sind die Bewegungsrichtungen des Joysticks. "+, -" zeigen die Trends des Werts. "+" Bedeutet, dass der Statuswert zunimmt. Und "-" bedeutet, dass der Statuswert abnimmt.

Schritt 13:

Die anfängliche Einstellung muss in die Funktion von Setup () geschrieben werden.
Goble.begin ();

Diese Leitung wird zum Einleiten des Bluetooth-Setups verwendet. Und es kann nicht übersehen werden, wenn Sie den Bluetooth-Code auf Ihrem Board verwenden.

Serial.begin (115200);

Tatsächlich wurde diese Leitung in der Testphase verwendet. Hiermit wird die serielle Schnittstelle initiiert. Wenn Sie den Wert aus dem Serial Monitor lesen möchten, müssen Sie diese Anweisung in die Setup-Funktion schreiben. UND, müssen auch die Baudrate einstellen.

Da die Baudrate von Bluetooth speziell ist, müssen Sie die Einstellung auf 115200 vornehmen. Stellen Sie sicher, dass die Baudrate eingerichtet wurde, da dies sonst zu Problemen führen kann.

Bitte schauen Sie weiter nach unten. Die nächste Zeile ist die Funktion von Goble.available ()

if (Goble.available ()) {mach etwas; }

Dies bedeutet, dass die nächste Aktion ausgeführt wird, sobald die Figur über Bluetooth empfangen wurde.

Was in den Klammern steht, wäre unsere nächste Aktion. Zunächst müssen wir die erhaltene Zahl analysieren. Mit den folgenden beiden Anweisungen wird der Wert auf der X- und Y-Achse gelesen.

joystickX = Goble.readJoystickX ();

joystickY = Goble.readJoystickY ();

// Serial.print ("joystickX:");

// Serial.print (joystickX);

// Serial.print ("joystickY:");

// Serial.println (joystickX);

Ratet mal, was die vier obigen Anweisungen Serial.print () bedeuten. Es ist verwandt mit der Serie. Die Seriennummer druckt die empfangenen Daten, was für das Debuggen und Optimieren von Code praktisch ist.

"//" bedeutet Annotation des folgenden Inhalts. Diese vier Sätze werden beim Kompilieren des Codes nicht berücksichtigt. Es werden nämlich keine Daten an die Seriennummer gesendet, sobald wir den Kommentar für diese vier Anweisungen verwenden.

Weitere Informationen finden Sie auf der Referenzseite der Arudino-Website (www.arduino.cc).

buttonState SWITCH_UP = Goble.readSwitchUp ();

buttonState SWITCH_DOWN = Goble.readSwitchDown ();

buttonState SWITCH_LEFT = Goble.readSwitchLeft ();

buttonState SWITCH_RIGHT = Goble.readSwitchRight ();

buttonState SWITCH_SELECT = Goble.readSwitchSelect ();

buttonState SWITCH_START = Goble.readSwitchStart ();

Alle oben genannten Inhalte werden zum Laden der Informationen über den Status der Schaltflächen verwendet.

Die Tasten sind wie folgt angeordnet.

SWITCH_UP - 1 SWITCH_RIGHT - 2

SWITCH_DOWN - 3

SWITCH_LEFT - 4

SWITCH_SELECT - 5

SWITCH_START - 6

Schritt 14:

Wir müssen alle gelesenen Daten verarbeiten, bevor wir sie verwenden.

Der am Joystick abgelesene Wert wird auf die Drehzahl der Räder unseres Roboters abgebildet. Somit stellt sich heraus, dass die Drehzahl der Räder zwischen -255 und 255 liegt.

int SpeedX = 2 * joystickX-256;

int SpeedY = 2 * JoystickY-256;

Serial.print ("Speed:");

Serial.print (SpeedX);

Serial.print ("");

Serial.println (SpeedY);

Auch die Seriennummer würde die Geschwindigkeit ausdrucken. Wenn dies nicht erforderlich ist, können Sie am Anfang ein "//" hinzufügen, um es zu entfernen.

Lassen Sie uns nun den Roboter steuern und in Bewegung setzen.

Wenn (Joystick nach oben oder unten bewegen) {Roboter vorwärts oder rückwärts bewegen; }

Wenn (Joystick nach rechts oder (||) nach links bewegen) {Roboter nach rechts oder links bewegen}

Wenn (X-Achse des Joysticks in der Mitte und (&&) Y-Achse des Joysticks in der Mitte bleiben) {Roboter stoppt; }

Die entsprechenden Codes lauten wie folgt:

if (SpeedX> 200 || SpeedX <-200) {LeftWheelSpeed ​​= SpeedX; RightWheelSpeed ​​= SpeedX; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed); }

sonst wenn (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed ​​= SpeedY-80; RightWheelSpeed ​​= SpeedY-80; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed);}

sonst wenn (SpeedX == 0 && SpeedY == 0) {Robot.Speed ​​(0,0); }

Der letzte Code wird verwendet, um die LED auf der mit PIN13 verbundenen Karte zu steuern.

int ledPin = 13;

Pin 13 sollte am Anfang des Codes definiert werden.

pinMode (ledPin, OUTPUT);

Stellen Sie den Ausgangsmodus für die LED ein, indem Sie die Funktion von setup () schreiben. Anweisungen zur Funktion von pinMode () finden Sie auf der Arduino-Website (www.arduino.cc).

Die folgenden Ausdrücke zeigen den Status der Schaltflächen. Sobald die Taste 1 gedrückt wurde, leuchtet die LED. Dies bedeutet, dass der LED-Pin auf HIGH gesetzt ist.

if (buttonState 1 == PRESSED) {digitalWrite (ledPin, HIGH); }

Sobald die Taste Nr. 1 losgelassen wurde, erlischt die LED. Dies bedeutet, dass der LED-Pin auf LOW eingestellt ist.

if (buttonState 1 == RELEASED) {digitalWrite (ledPin, LOW); }

Das ist heute alles für die Codierung. Macht es keinen Spaß? Es ist also nicht unmöglich, Code für Sie zu schreiben, oder? Sie können versuchen, eine Taste zu ändern, um das LED-Licht zu steuern, indem Sie den Code ändern. Es ist definitiv interessanter, wenn Sie es mit Ihrem Code steuern können. Jetzt fang an Spaß mit deinem Roboter zu haben !!!