- Erforderliches Material
- HC-06 Bluetooth-Modul
- Schaltplan
- Konfigurieren der Roboremo App zur Steuerung von Servos:
- Code und Erklärung
- Funktionsweise der Servomotorsteuerung über Bluetooth:
Die Verwendung eines Servomotors ist in der Robotik zur präzisen Steuerung üblich. In diesem Tutorial zeigen wir Ihnen, wie Sie einen Servomotor drahtlos mit einem Arduino UNO und einem Android-Gerät über eine Bluetooth-Verbindung verwenden können. Wir haben das Servo bereits mit Arduino gesteuert, diesmal steuern wir den Servomotor mit Arduino und Bluetooth.
Erforderliches Material
- Arduino UNO
- Bluetooth-Modul HC-05 oder HC-06
- Servomotor
- Roboremo App aus dem Playstore
- Steckbrett
- Verbindungskabel
HC-06 Bluetooth-Modul
Bluetooth kann in den folgenden zwei Modi betrieben werden:
- Befehlsmodus
- Betriebsart
Im Befehlsmodus können wir die Bluetooth-Eigenschaften wie den Namen des Bluetooth-Signals, sein Passwort, die Baudrate usw. konfigurieren. Im Betriebsmodus können wir Daten zwischen dem PIC-Mikrocontroller senden und empfangen und das Bluetooth-Modul. Daher werden wir in diesem Tutorial nur mit dem Betriebsmodus spielen. Der Befehlsmodus wird auf die Standardeinstellungen zurückgesetzt. Der Gerätename lautet HC-05 (ich verwende HC-06) und das Kennwort lautet 0000 oder 1234, und vor allem beträgt die Standardbaudrate für alle Bluetooth-Module 9600.
Das Modul wird mit 5 V versorgt und die Signalpins werden mit 3,3 V betrieben, daher ist im Modul selbst ein 3,3 V-Regler vorhanden. Daher brauchen wir uns darüber keine Sorgen zu machen. Von den sechs Pins werden im Betriebsmodus nur vier verwendet. Die Pin-Verbindungstabelle ist unten dargestellt
S.No. | Pin auf HC-05 / HC-06 | Pin-Name auf der MCU | PIN-Nummer in PIC |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 nd pin |
3 | Tx | RC6 / Tx / CK | 25 th Stift |
4 | Rx | RC7 / Rx / DT | 26 th Stift |
5 | Zustand | NC | NC |
6 | DE (Aktivieren) | NC | NC |
In unseren anderen Projekten erfahren Sie mehr über das Bluetooth-Modul HC-05 mit anderen Mikrocontrollern:
- Bluetooth-gesteuertes Spielzeugauto mit Arduino
- Bluetooth-gesteuertes Hausautomationssystem mit 8051
- Sprachgesteuerte Lichter mit Raspberry Pi
- Smartphonegesteuertes FM-Radio mit Arduino und Verarbeitung
- Verbindung des Bluetooth-Moduls HC-06 mit dem PIC-Mikrocontroller
Überprüfen Sie auch alle Bluetooth-bezogenen Projekte hier.
Schaltplan
Der Schaltplan für dieses Arduino Bluetooth Servo Motor Control- Projekt ist unten angegeben:
Konfigurieren der Roboremo App zur Steuerung von Servos:
Schritt 1: - Laden Sie die Roboremo-App aus dem Android Play Store herunter und installieren Sie sie auf Ihrem Smartphone. Nach der Installation sehen Sie das App-Fenster wie in Abbildung 1 gezeigt. Wenn Sie auf die Schaltfläche 'Menü' klicken , sehen Sie das in Abbildung 2 gezeigte Fenster:
Schritt 2: - Klicken Sie dann auf die Schaltfläche "Verbinden". Das in Abbildung 3 gezeigte Fenster wird angezeigt. Anschließend müssen Sie " Bluetooth RFCOMM" auswählen. Anschließend können Sie Ihr HC-06-Bluetooth-Modul mit Ihrer Android-App "Roboremo" verbinden.
Schritt 3: - Nach dem mit dem HC-06 Anschluss Bluetooth - Modul wieder zu figure2 Fenstern und klicken Sie auf ‚ bearbeiten ui ‘für den Benutzer zu schaffen Schnittstelle nach Ihrem Bedarf.
Wenn Sie auf ‚Bearbeiten ui‘ Sie werden wieder aus dem Fenster sehen in Abbildung 1 gezeigt, dann irgendwo auf dem Bildschirm klicken, sehen Sie die App - Fenster wie figure4 und die Select ‚siehe Taste ‘auf die Schaltfläche Struktur zu erhalten.
Schritt 4: - Nach Auswahl der Schaltfläche wird auf dem Bildschirm eine Schaltflächenstruktur zum Bearbeiten angezeigt. Sie können die Größe der Struktur ändern und sie an eine beliebige Stelle auf dem Bildschirm verschieben. Um den Wert festzulegen, der per Klick über Bluetooth gesendet werden soll, müssen Sie die Druckaktion einstellen (siehe Abbildung 6) und den Wert eingeben, den Sie über diese bestimmte Schaltfläche senden möchten. Zum Beispiel senden wir '1' zum Drehen des Servos durch Drücken der 'Start'-Taste in der Roboremo-Android-Anwendung.
Sie können alle Werte, die beim Klicken auf verschiedene Schaltflächen gesendet werden, in der Tabelle im späteren Abschnitt überprüfen.
Schritt 5: - Endlich haben wir eine Benutzeroberfläche zur Steuerung des Servomotors mit dem Smartphone.
Code und Erklärung
Der vollständige Code für den Arduino Control Servomotor über Bluetooth ist am Ende angegeben.
Arduino hat eine Bibliothek für Servomotoren und kümmert sich um alle PWM-bezogenen Dinge, um das Servo zu drehen. Sie müssen nur den Winkel eingeben, in den Sie drehen möchten, und es gibt die Funktion servo1.write (Winkel); Dadurch wird das Servo in den gewünschten Winkel gedreht.
Hier beginnen wir mit der Definition der Bibliothek für den Servomotor und der Software Serial Library wird zur Definition des Rx- und Tx-Pins verwendet.
#einschließen
Im folgenden Code initialisieren wir die Arduino-Pins für Rx und Tx und definieren Variablen für Servo und andere Dinge .
Servo myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int new1; SoftwareSerial Bluetooth (TxD, RxD);
Nun Setup alle variablen und Komponenten Anfangsstadium. Hier haben wir die Servo 9 angebracht ten Stift des Arduino und machte die Ausgangsposition des Servo auf 0 Grad. Die Baudrate für die serielle und Bluetooth-Kommunikation wurde ebenfalls auf 9600 eingestellt.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // serielle Kommunikation mit 9600bps starten bluetooth.begin (9600); }}
In der Void-Loop- Funktion überprüft Arduino ständig die eingehenden Werte und dreht das Servo entsprechend dem vom Smartphone empfangenen Wert. Alle Werte werden über die serielle Kommunikation empfangen.
Wenn der Wert 0 ist, dreht sich das Servo um 0 Grad. Wenn wir 45, 90, 135 und 180 von der Bluetooth-Anwendung senden, dreht sich das Servo auf einen Winkel von 45, 90, 135 bzw. 180 Grad.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposition = value.toInt (); if (value.toInt () == 0) { Serial.println (Servoposition); myServo.write (0); } if (value.toInt () == 45) { Serial.println (Servoposition); myServo.write (45); } if (value.toInt () == 90) { Serial.println (Servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (Servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (Servoposition); myServo.write (180); }}
Wenn wir den Wert '1' durch Drücken der Start- Taste senden, dreht sich das Servo kontinuierlich, bis die Stopp- Taste gedrückt wird. Hier senden wir '2' beim Drücken der Stopp- Taste, die vom Arduino gelesen wird und die while- Schleife unterbricht und das Servo gestoppt wird.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (Wert); if (value.toInt () == 2) {Serial.println ("YYY"); Unterbrechung; }} servopos ++; Verzögerung (30); Serial.println (Servopos); myServo.write (Servopos); if (servopos == 180) {servopos = 0; break;}}}}
Funktionsweise der Servomotorsteuerung über Bluetooth:
In diesem Projekt steuern wir den Servomotor mit einer Android-Anwendung „Roboremo“. In der Benutzeroberfläche dieser Anwendung haben wir 5 Schaltflächen zur Steuerung des Servomotors erstellt, wie zuvor erläutert. Die Funktionsweise jeder Taste ist in der folgenden Tabelle aufgeführt:
S.No. |
Schaltflächenname |
Wert senden |
Beschreibung |
1. |
Start |
1 |
Mit dieser Taste wird das Servo von 0 ° auf 180 ° gedreht. |
2. |
Halt |
2 |
Diese Taste wird verwendet, um das Servo an einem beliebigen Punkt anzuhalten. |
3. |
0⁰ |
0 |
Mit dieser Taste wird das Servo auf 0 ° gedreht. |
4. |
90⁰ |
90 |
Mit dieser Taste wird das Servo auf 90 ° gedreht. |
5. |
180⁰ |
180 |
Mit dieser Taste wird das Servo auf 180 ° gedreht. |
Wenn Sie diese Tasten in Ihrer Android-App Roboremo drücken , werden die Daten über das Bluetooth des Smartphones an das Bluetooth-Modul HC-06 gesendet. Von diesem HC-06-Modul werden Daten vom Arduino empfangen und Arduino dreht den Servo in dem Winkel, der im Code für die jeweilige Taste definiert ist. Wir haben auch für Winkel 45 und 135 codiert, aber aufgrund der Einschränkung der Roboremo-App können Sie nur 5 Schaltflächen erstellen, sodass wir zwei Schaltflächen übersprungen haben.
Auf diese Weise können Sie die Daten vom Smartphone über Bluetooth an das Arduino senden, um das Servo drahtlos zu steuern. Dies kann in vielen Anwendungen wie Spielzeugautos, Robotern usw. verwendet werden.