- Nødvendig materiale
- HC-06 Bluetooth-modul
- Kretsdiagram
- Konfigurere Roboremo-appen for å kontrollere servo:
- Kode og forklaring
- Arbeid med servomotorstyring ved hjelp av Bluetooth:
Å bruke en servomotor er vanlig i Robotics for presis kontroll. Her, i denne opplæringen, skal vi vise deg hvordan du bruker en Servomotor trådløst med en Arduino UNO og en Android-enhet via Bluetooth-tilkobling. Vi har allerede kontrollert servo med Arduino, denne gangen styrer vi Servomotor ved hjelp av Arduino og Bluetooth.
Nødvendig materiale
- Arduino UNO
- HC-05 eller HC-06 Bluetooth-modul
- Servo motor
- Roboremo-app fra Playstore
- Brettbrett
- Koblingsledning
HC-06 Bluetooth-modul
Bluetooth kan fungere i følgende to moduser:
- Kommandomodus
- Driftsmodus
I kommandomodus vil vi være i stand til å konfigurere Bluetooth-egenskapene som navnet på Bluetooth-signalet, passordet, driftsoverføringshastigheten osv. Driftsmodusen er den der vi vil være i stand til å sende og motta data mellom PIC Microcontroller og Bluetooth-modulen. Derfor vil vi i denne opplæringen bare leke med driftsmodus. Kommandomodus vil bli overlatt til standardinnstillingene. Enhetsnavnet vil være HC-05 (jeg bruker HC-06) og passordet vil være 0000 eller 1234, og viktigst av alt er standard baudrate for alle Bluetooth-moduler 9600.
Modulen fungerer på 5V forsyning, og signalpinnene fungerer på 3,3V, og det er derfor en 3,3V regulator i selve modulen. Derfor trenger vi ikke bekymre oss for det. Av de seks pinnene vil bare fire brukes i driftsmodus. Pin-tilkoblingstabellen er vist nedenfor
S. nr | Pin på HC-05 / HC-06 | Pin-navn på MCU | Pin-nummer i PIC |
1 | Vcc | Vdd | 31 st tapp |
2 | Vcc | Gnd | 32 nd tapp |
3 | Tx | RC6 / Tx / CK | 25 th tapp |
4 | Rx | RC7 / Rx / DT | 26 th tapp |
5 | Stat | NC | NC |
6 | EN (Aktiver) | NC | NC |
Sjekk våre andre prosjekter for å lære mer om Bluetooth-modul HC-05 med andre mikrokontrollere:
- Bluetooth-kontrollert lekebil ved hjelp av Arduino
- Bluetooth-kontrollert hjemmeautomatiseringssystem ved bruk av 8051
- Stemmestyrte lys med Raspberry Pi
- Smarttelefonstyrt FM-radio ved hjelp av Arduino og Processing
- Grensesnitt Bluetooth-modul HC-06 med PIC-mikrokontroller
Sjekk også alle Bluetooth-relaterte prosjekter her.
Kretsdiagram
Kretsskjema for dette Arduino Bluetooth Servo Motor Control- prosjektet er gitt nedenfor:
Konfigurere Roboremo-appen for å kontrollere servo:
Trinn 1: - Last ned Roboremo-appen fra Android Play Store og installer den på smarttelefonen din. Etter at du har installert den, ser du appvinduet som vist i figur 1, og ved å klikke på 'Meny' -knappen vil du se vinduet vist i figur 2 nedenfor:
Trinn 2: - Klikk deretter på tilkoblingsknappen og du vil se vinduet vist i figur 3 nedenfor, så må du velge ' Bluetooth RFCOMM' og deretter vil du kunne koble HC-06 Bluetooth-modulen din til Android-appen din 'Roboremo'.
Trinn 3: - Etter å ha koblet til HC-06 Bluetooth-modulen, kom tilbake til figur2-vinduet, og klikk deretter på " rediger brukergrensesnitt " for å opprette brukergrensesnittet etter behov.
Når du klikker på 'rediger brukergrensesnitt' , vil du igjen se vinduet som vises i figur 1, og deretter klikke hvor som helst på skjermen for å se appvinduet som figur 4 og velg ' Knapp ' for å få knappestrukturen.
Trinn 4: - Etter å ha valgt knappen vil du få en knappestruktur på skjermen for å redigere. Du kan endre størrelse og flytte strukturen hvor som helst på skjermen. Nå, for å stille inn verdien som skal sendes ved å klikke via Bluetooth, har du 'satt trykkhandling ' (som vist i figur 6) og skriver inn verdien du vil sende fra den aktuelle knappen. På samme måte sender vi '1' for å rotere servoen ved å trykke på 'Start' -knappen i Roboremo android-applikasjonen.
Du kan sjekke alle verdiene, ved å klikke på forskjellige knapper, i tabellen gitt senere.
Trinn 5: - Endelig har vi brukergrensesnitt for å kontrollere servomotoren ved hjelp av smarttelefon.
Kode og forklaring
Den komplette koden for Arduino Control Servo Motor Via Bluetooth er gitt på slutten.
Arduino har bibliotek for Servomotorer og det håndterer alle PWM-relaterte ting for å rotere servoen, du trenger bare å angi vinkelen du vil rotere til, og det er funksjon servo1.write (vinkel); som vil rotere servoen til ønsket vinkel.
Så her begynner vi med å definere biblioteket for servomotor og programvare Seriell bibliotek brukes til å definere Rx og Tx pin.
#inkludere
I koden nedenfor initialiserer vi Arduino-pinnene for Rx og Tx, og definerer variabler for servo og andre ting .
Servo myServo; int TxD = 11; int RxD = 10; int-posisjonering; int servopos; int new1; Programvare Seriell Bluetooth (TxD, RxD);
Sett nå opp alle variablene og komponentene til startfasen. Her har vi festet til servo ved ni th tapp av Arduino og utført den første posisjon av servo til 0 grader. Baudrate for seriell og Bluetooth-kommunikasjon er også satt til 9600.
ugyldig oppsett () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // start seriell kommunikasjon ved 9600 bps bluetooth.begin (9600); }
I ugyldig sløyfefunksjon vil Arduino sjekke innkommende verdier hele tiden og rotere servoen i henhold til mottatt verdi fra smarttelefonen. Alle verdiene vil bli mottatt ved hjelp av seriell kommunikasjon.
Hvis verdien er 0, vil servoen rotere til 0 grader. Tilsvarende hvis vi sender 45, 90, 135 og 180 fra Bluetooth-applikasjonen, vil servoen rotere til henholdsvis 45, 90, 135 og 180 graders vinkel.
void loop () { if (bluetooth.available ()) { Strengverdi = bluetooth.readString (); servoposisjon = value.toInt (); if (value.toInt () == 0) { Serial.println (servoposisjon); myServo.write (0); } hvis (value.toInt () == 45) { Serial.println (servoposisjon); myServo.write (45); } hvis (value.toInt () == 90) { Serial.println (servoposisjon); myServo.write (90); } hvis (value.toInt () == 135) { Serial.println (servoposisjon); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposisjon); myServo.write (180); }
Hvis vi sender verdien '1' ved å trykke på Start- knappen, vil servo rotere kontinuerlig til stopp- knappen trykkes. Her sender vi '2' ved å trykke på stoppknappen , som vil bli lest av Arduino, og den vil bryte mens løkken og servoen vil bli stoppet.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (verdi); hvis (value.toInt () == 2) {Serial.println ("ÅÅÅ"); gå i stykker; }} servopos ++; forsinkelse (30); Serial.println (servopos); myServo.write (servopos); hvis (servopos == 180) {servopos = 0; pause;}}}}
Arbeid med servomotorstyring ved hjelp av Bluetooth:
I dette prosjektet styrer vi Servomotoren ved hjelp av en Android-applikasjon "Roboremo". I dette applikasjonens grensesnitt har vi opprettet 5 knapper for å kontrollere servomotoren som forklart tidligere. Arbeidet til hver knapp er gitt i tabellen nedenfor:
S.No. |
Knappens navn |
Sender verdi |
Beskrivelse |
1. |
Start |
1 |
Denne knappen brukes til å begynne å rotere servoen fra 0⁰ til 180⁰. |
2. |
Stoppe |
2 |
Denne knappen brukes til å stoppe servoen når som helst. |
3. |
0⁰ |
0 |
Denne knappen brukes til å rotere servoen til 0⁰. |
4. |
90⁰ |
90 |
Denne knappen brukes til å rotere servoen til 90⁰. |
5. |
180⁰ |
180 |
Denne knappen brukes til å rotere servoen til 180⁰. |
Så, ved å trykke på disse knappene på Android-appen din Roboremo , blir dataene sendt via smarttelefonens Bluetooth til HC-06 Bluetooth-modul. Fra det mottas data fra HC-06 av Arduino, og Arduino roterer Servo i vinkelen som er definert i koden for den aktuelle knappen. Vi har også kodet for vinkel 45 og 135, men på grunn av begrensningen av Roboremo-appen kan du bare opprette 5 knapper, så vi hoppet over to knapper.
Så dette er hvordan du kan sende dataene fra smarttelefon til Arduino ved hjelp av Bluetooth for å kontrollere servoen trådløst. Dette kan brukes i mange applikasjoner som lekebiler, roboter etc.