- Nødvendigt materiale
- HC-06 Bluetooth-modul
- Kredsløbsdiagram
- Konfiguration af Roboremo-appen til styring af servo:
- Kode og forklaring
- Arbejde med servomotorstyring ved hjælp af Bluetooth:
Brug af en servomotor er almindelig i Robotics for præcis kontrol. Her, i denne vejledning, skal vi vise dig, hvordan du bruger en Servomotor trådløst med en Arduino UNO og en Android-enhed via Bluetooth-forbindelse. Vi har allerede kontrolleret servo med Arduino, denne gang styrer vi Servomotor ved hjælp af Arduino og Bluetooth.
Nødvendigt materiale
- Arduino UNO
- HC-05 eller HC-06 Bluetooth-modul
- Servomotor
- Roboremo-app fra Playstore
- Brødbræt
- Forbindelsesledning
HC-06 Bluetooth-modul
Bluetooth kan fungere i følgende to tilstande:
- Kommandotilstand
- Driftstilstand
I kommandotilstand vil vi være i stand til at konfigurere Bluetooth-egenskaberne som navnet på Bluetooth-signalet, dets adgangskode, driftsoverførselshastighed osv. Driftstilstanden er den, hvor vi vil være i stand til at sende og modtage data mellem PIC Microcontroller og Bluetooth-modulet. Derfor vil vi i denne vejledning kun lege med driftstilstanden. Kommandotilstanden overlades til standardindstillingerne. Enhedsnavnet er HC-05 (jeg bruger HC-06), og adgangskoden er 0000 eller 1234, og vigtigst af alt er standard baudhastighed for alle Bluetooth-moduler 9600.
Modulet fungerer på 5V forsyning, og signalstifterne fungerer på 3,3V, hvorfor der er en 3.3V regulator til stede i selve modulet. Derfor behøver vi ikke bekymre os om det. Ud af de seks ben bruges kun fire i driftstilstand. Stifttilslutningstabellen er vist nedenfor
S. nr | Pin på HC-05 / HC-06 | Pin-navn på MCU | Pin nummer i PIC |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 nd pin |
3 | Tx | RC6 / Tx / CK | 25 th pin |
4 | Rx | RC7 / Rx / DT | 26 th pin |
5 | Stat | NC | NC |
6 | EN (Aktiver) | NC | NC |
Se vores andre projekter for at lære mere om Bluetooth-modul HC-05 med andre mikrocontrollere:
- Bluetooth-styret legetøjsbil ved hjælp af Arduino
- Bluetooth-styret hjemmeautomatiseringssystem ved hjælp af 8051
- Stemmestyrede lys ved hjælp af Raspberry Pi
- Smart telefonstyret FM-radio ved hjælp af Arduino og Processing
- Interfacing Bluetooth-modul HC-06 med PIC-mikrocontroller
Tjek også alle Bluetooth-relaterede projekter her.
Kredsløbsdiagram
Kredsløbsdiagram for dette Arduino Bluetooth Servo Motor Control- projekt er angivet nedenfor:
Konfiguration af Roboremo-appen til styring af servo:
Trin 1: - Download Roboremo-appen fra Android Play Store, og installer den på din smartphone. Efter installationen vil du se appvinduet som vist i figur 1 og ved at klikke på knappen 'Menu' vil du se vinduet vist i figur 2 nedenfor:
Trin 2: - Klik derefter på forbindelsesknappen, og du vil se vinduet vist i figur 3 nedenfor, så skal du vælge ' Bluetooth RFCOMM', og så vil du være i stand til at forbinde dit HC-06 Bluetooth-modul med din Android-app 'Roboremo'.
Trin 3: - Efter tilslutning til HC-06 Bluetooth-modulet, kom tilbage til figur2-vinduet og klik derefter på ' rediger ui ' for at oprette brugergrænsefladen efter dit behov.
Når du klikker på 'rediger ui' , vil du igen se vinduet vist i figur 1 og derefter klikke et vilkårligt sted på skærmen for at se appvinduet som figur4 og vælg ' Knap ' for at få knapstrukturen.
Trin 4: - Når du har valgt knappen, får du en knapstruktur på skærmen til redigering. Du kan ændre størrelse og flytte strukturen hvor som helst på skærmen. For at indstille den værdi, der skal sendes ved klik via Bluetooth, har du nu 'indstillet trykhandling ' (som vist i figur 6) og indtast den værdi, du vil sende fra den pågældende knap. Ligesom sender vi '1' for at rotere servoen ved at trykke på 'Start' -knappen i Roboremo android-applikationen.
Du kan kontrollere alle værdier, der sendes ved at klikke på forskellige knapper, i tabellen angivet senere afsnit.
Trin 5: - Endelig har vi brugergrænseflade til at styre servomotoren ved hjælp af Smartphone.
Kode og forklaring
Den komplette kode til Arduino Control Servo Motor via Bluetooth er givet i slutningen.
Arduino har bibliotek til servomotorer, og det håndterer alle PWM-relaterede ting for at rotere servoen, du skal bare indtaste den vinkel, som du vil rotere, og der er funktion servo1.write (vinkel); som roterer servoen til den ønskede vinkel.
Så her starter vi med at definere biblioteket til servomotor, og software Serielt bibliotek bruges til at definere Rx og Tx-stiften.
#omfatte
I nedenstående kode initialiserer vi Arduino-benene til Rx og Tx og definerer variabler til servo og andre ting .
Servo myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int new1; Software Seriel bluetooth (TxD, RxD);
Nu, opsætning alle de variable og komponenter til indledende fase. Her har vi vedhæftet servo 9 th pin af Arduino og gjort udgangsstilling servo til 0 grader. Baudhastighed til seriel og Bluetooth-kommunikation er også indstillet til 9600.
ugyldig opsætning () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // start seriel kommunikation ved 9600bps bluetooth.begin (9600); }
I ugyldig sløjfefunktion kontrollerer Arduino de indgående værdier hele tiden og roterer servoen i henhold til den modtagne værdi fra smarttelefonen. Alle værdier modtages ved hjælp af seriel kommunikation.
Hvis værdien er 0, roterer servoen til 0 grader. Tilsvarende hvis vi sender 45, 90, 135 og 180 fra Bluetooth-applikationen, roterer servoen til henholdsvis 45, 90, 135 og 180 graders vinkel.
ugyldig sløjfe () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposition = value.toInt (); hvis (value.toInt () == 0) { Serial.println (servoposition); myServo.write (0); } hvis (value.toInt () == 45) { Serial.println (servoposition); myServo.write (45); } hvis (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } hvis (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } hvis (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Hvis vi sender værdien '1' ved at trykke på Start- knappen, vil servo rotere kontinuerligt, indtil der trykkes på stop- knappen. Her sender vi '2' ved at trykke på stop- knappen, som læses af Arduino, og den vil bryde mens løkken og servo stoppes.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (værdi); hvis (value.toInt () == 2) {Serial.println ("ÅÅÅ"); pause; }} servopos ++; forsinkelse (30); Serial.println (servopos); myServo.write (servopos); hvis (servopos == 180) {servopos = 0; pause;}}}}
Arbejde med servomotorstyring ved hjælp af Bluetooth:
I dette projekt styrer vi Servomotoren ved hjælp af en Android-applikation "Roboremo". I denne applikations interface har vi oprettet 5 knapper til at styre Servomotoren som forklaret tidligere. Funktionen af hver knap er angivet i nedenstående tabel:
S. nr. |
Knappenavn |
Afsendelse af værdi |
Beskrivelse |
1. |
Start |
1 |
Denne knap bruges til at begynde at dreje servoen fra 0⁰ til 180⁰. |
2. |
Hold op |
2 |
Denne knap bruges til at stoppe servoen når som helst. |
3. |
0⁰ |
0 |
Denne knap bruges til at dreje servoen til 0⁰. |
4. |
90⁰ |
90 |
Denne knap bruges til at dreje servoen til 90⁰. |
5. |
180⁰ |
180 |
Denne knap bruges til at dreje servoen til 180⁰. |
Så ved at trykke på disse knapper på din Android-app Roboremo , sendes dataene via smartphoneens Bluetooth til HC-06 Bluetooth-modul. Fra dette modtages HC-06-moduldata af Arduino, og Arduino roterer Servo i den vinkel, der er defineret i koden for den bestemte knap. Vi har også kodet til vinkel 45 og 135, men på grund af begrænsningen af Roboremo-appen kan du kun oprette 5 knapper, så vi sprang over to knapper.
Så dette er, hvordan du kan sende dataene fra Smartphone til Arduino ved hjælp af Bluetooth til at styre servoen trådløst. Dette kan bruges i mange applikationer som legetøjsbiler, robotter osv.