- Material krävs
- HC-06 Bluetooth-modul
- Kretsschema
- Konfigurera Roboremo-appen för styrning av servo:
- Kod och förklaring
- Arbeta med servomotorstyrning med Bluetooth:
Att använda en servomotor är vanligt i robotik för exakt kontroll. Här, i denna handledning, kommer vi att visa dig hur du använder en Servomotor trådlöst med en Arduino UNO och en Android-enhet via Bluetooth-anslutning. Vi har redan kontrollerat servo med Arduino, den här gången kontrollerar vi Servomotor med Arduino och Bluetooth.
Material krävs
- Arduino UNO
- HC-05 eller HC-06 Bluetooth-modul
- Servomotor
- Roboremo-appen från Playstore
- Bakbord
- Anslutningskabel
HC-06 Bluetooth-modul
Bluetooth kan fungera i följande två lägen:
- Kommandoläge
- Driftläge
I kommandoläge kommer vi att kunna konfigurera Bluetooth-egenskaper som namnet på Bluetooth-signalen, dess lösenord, driftsöverföringshastighet etc. Driftläget är det där vi kommer att kunna skicka och ta emot data mellan PIC Microcontroller och Bluetooth-modulen. I denna handledning kommer vi därför bara att leka med driftläget. Kommandoläget lämnas till standardinställningarna. Enhetsnamnet kommer att vara HC-05 (jag använder HC-06) och lösenordet blir 0000 eller 1234 och viktigast av allt är standard baudhastigheten för alla Bluetooth-moduler 9600.
Modulen fungerar på 5V-matning och signalstiftet fungerar på 3,3V, varför en 3,3V-regulator finns i själva modulen. Därför behöver vi inte oroa oss för det. Av de sex stiften kommer endast fyra att användas i driftläge. Stiftanslutningstabellen visas nedan
S. nr | Stift på HC-05 / HC-06 | Fäst namn på MCU | Pin-nummer i PIC |
1 | Vcc | Vdd | 31 st stift |
2 | Vcc | Gnd | 32: e stift |
3 | Tx | RC6 / Tx / CK | 25: e stiftet |
4 | Rx | RC7 / Rx / DT | 26: e stiftet |
5 | stat | NC | NC |
6 | SV (Aktivera) | NC | NC |
Kolla in våra andra projekt för att lära dig mer om Bluetooth-modul HC-05 med andra mikrokontroller:
- Bluetooth-kontrollerad leksaksbil med Arduino
- Bluetooth-kontrollerat hemautomationssystem med 8051
- Röststyrda lampor med Raspberry Pi
- Smart telefonstyrd FM-radio med Arduino och Processing
- Gränssnitt Bluetooth-modul HC-06 med PIC-mikrokontroller
Kontrollera också alla Bluetooth-relaterade projekt här.
Kretsschema
Kretsschema för detta Arduino Bluetooth Servo Motor Control- projekt ges nedan:
Konfigurera Roboremo-appen för styrning av servo:
Steg 1: - Ladda ner Roboremo-appen från Android Play Store och installera den på din smartphone. Efter installationen ser du appfönstret som visas i figur 1 och genom att klicka på 'Meny' -knappen visas fönstret som visas i figur 2 nedan:
Steg 2: - Klicka sedan på anslutningsknappen så visas fönstret som visas i figur 3 nedan, sedan måste du välja ' Bluetooth RFCOMM' och sedan kan du ansluta din HC-06 Bluetooth-modul till din Android-app 'Roboremo'.
Steg 3: - När du har anslutit till HC-06 Bluetooth-modulen, kom tillbaka till figur2-fönstret och klicka sedan på " redigera ui " för att skapa användargränssnittet efter dina behov.
När du klickar på "redigera ui" kommer du igen att se fönstret som visas i figur 1 och klicka var som helst på skärmen för att se appfönstret som figur 4 och välj " Knapp " för att få knappstrukturen.
Steg 4: - När du har valt knappen får du en knappstruktur på skärmen att redigera. Du kan ändra storlek och flytta strukturen var som helst på skärmen. Nu, för att ställa in det värde som ska skickas vid klick via Bluetooth har du 'ställt in tryckåtgärd ' (som visas i figur 6) och skriver det värde du vill skicka från den specifika knappen. Liksom skickar vi '1' för att rotera servon genom att trycka på 'Start' -knappen i Roboremo android-applikationen.
Du kan kontrollera alla värden, skickas genom att klicka på olika knappar, i tabellen nedan.
Steg 5: - Slutligen har vi användargränssnitt för att styra servomotorn med hjälp av Smartphone.
Kod och förklaring
Den kompletta koden för Arduino Control Servo Motor via Bluetooth ges i slutet.
Arduino har bibliotek för Servomotorer och det hanterar alla PWM-relaterade saker för att rotera servon, du behöver bara ange vinkeln som du vill rotera till och det finns funktion servo1.write (vinkel); som roterar servon till önskad vinkel.
Så här börjar vi med att definiera biblioteket för Servomotor och Software Serial Library används för att definiera Rx och Tx-stift.
#omfatta
I koden nedan initialiserar vi Arduino-stiften för Rx och Tx och definierar variabler för servo och andra saker .
Servo myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int new1; Programvara Seriell Bluetooth (TxD, RxD);
Nu, installation alla variabeln och komponenter till inledningsskedet. Här har vi fäst servon vid Arduino 9: e stift och gjort servoens initiala position till 0 grader. Överföringshastighet för seriell och Bluetooth-kommunikation har också ställts in till 9600.
ogiltig installation () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // starta seriell kommunikation vid 9600bps bluetooth.begin (9600); }
I ogiltig slingfunktion kommer Arduino att kontrollera de inkommande värdena hela tiden och rotera servon enligt mottaget värde från smarttelefon. Alla värden kommer att tas emot med seriell kommunikation.
Om värdet är 0 roterar servon till 0 grader. På samma sätt om vi skickar 45, 90, 135 och 180 från Bluetooth-applikationen, kommer servon att rotera till 45, 90, 135 och 180 graders vinkel.
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); } om (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } om (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Om vi skickar värdet '1' genom att trycka på Start- knappen kommer servo att rotera kontinuerligt tills stoppknappen trycks in. Här skickar vi '2' genom att trycka på stoppknappen , som kommer att läsas av Arduino och den kommer att bryta medan loop och servo stoppas.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (värde); if (value.toInt () == 2) {Serial.println ("YYY"); ha sönder; }} servopos ++; fördröjning (30); Serial.println (servopos); myServo.write (servopos); om (servopos == 180) {servopos = 0; bryta;}}}}
Arbeta med servomotorstyrning med Bluetooth:
I det här projektet kontrollerar vi Servomotorn med en Android-applikation "Roboremo". I detta applikations gränssnitt har vi skapat fem knappar för att styra Servomotorn som förklarats tidigare. Funktionen för varje knapp ges i nedanstående tabell:
S.No. |
Knappens namn |
Skickar värde |
Beskrivning |
1. |
Start |
1 |
Denna knapp används för att börja rotera servon från 0⁰ till 180⁰. |
2. |
Sluta |
2 |
Denna knapp används för att stoppa servon när som helst. |
3. |
0⁰ |
0 |
Denna knapp används för att rotera servon till 0⁰. |
4. |
90⁰ |
90 |
Denna knapp används för att rotera servon till 90⁰. |
5. |
180⁰ |
180 |
Denna knapp används för att rotera servon till 180⁰. |
Så genom att trycka på dessa knappar i din Android-app Roboremo skickas data via smarttelefonens Bluetooth till HC-06 Bluetooth-modul. Från det att HC-06-modulen tas emot av Arduino och Arduino roterar Servo i den vinkel som definieras i koden för den specifika knappen. Vi har också kodat för vinkel 45 och 135, men på grund av begränsningen av Roboremo-appen kan du bara skapa 5 knappar, så vi hoppade över två knappar.
Så det här är hur du kan skicka data från Smartphone till Arduino med Bluetooth för att styra servon trådlöst. Detta kan användas i många applikationer som leksaksbilar, robotar etc.