- Reikalinga medžiaga
- HC-06 „Bluetooth“ modulis
- Grandinės schema
- „Roboremo“ programos konfigūravimas valdant servo:
- Kodas ir paaiškinimas
- Servo variklio valdymas naudojant „Bluetooth“:
„Servo“ variklio naudojimas yra įprastas robotams, norint tiksliai valdyti. Čia, šioje pamokoje, parodysime, kaip belaidžiu būdu naudoti „ Servo“ variklį su „Arduino UNO“ ir „Android“ įrenginiu per „Bluetooth“ ryšį. Mes jau valdėme servo valdymą su „Arduino“, šį kartą mes valdome servo variklį naudodami „Arduino“ ir „Bluetooth“.
Reikalinga medžiaga
- „Arduino UNO“
- „HC-05“ arba „HC-06“ „Bluetooth“ modulis
- Servo variklis
- „Roboremo“ programa iš „Playstore“
- Bandomoji Lenta
- Jungiamasis laidas
HC-06 „Bluetooth“ modulis
„Bluetooth“ gali veikti šiais dviem režimais:
- Komandos režimas
- Veikimo režimas
Į komandinį režimą galėsime konfigūruoti "Bluetooth" savybes, pavyzdžiui, "Bluetooth" Signalo pavadinimas, jo slaptažodį, operacinė Baud norma ir tt Darbo režimas yra toks, kuriame galėsime siųsti ir gauti duomenis tarp IPS mikrokontrolerio ir „Bluetooth“ modulį. Taigi šioje pamokoje žaisime tik su darbo režimu. Komandos režimas bus paliktas numatytiesiems nustatymams. Įrenginio pavadinimas bus HC-05 (aš naudoju HC-06), o slaptažodis bus 0000 arba 1234, o svarbiausia numatytasis visų „Bluetooth“ modulių perdavimo greitis bus 9600.
Modulis veikia esant 5 V įtampai, o signalo kaiščiai veikia prie 3,3 V, todėl pačiame modulyje yra 3,3 V reguliatorius. Taigi mes neturime dėl to jaudintis. Iš šešių kaiščių tik keturi bus naudojami darbo režimu. Kaiščių sujungimo lentelė parodyta žemiau
S.No | Prisekite ant HC-05 / HC-06 | Prisegti pavadinimą MCU | PIN kodas PIC |
1 | Vcc | Vdd | 31 -asis kaištis |
2 | Vcc | Gnd | 32 -asis kaištis |
3 | Tx | RC6 / Tx / CK | 25 -asis kaištis |
4 | Rx | RC7 / Rx / DT | 26 -asis kaištis |
5 | Valstija | NC | NC |
6 | EN (įjungti) | NC | NC |
Peržiūrėkite kitus mūsų projektus ir sužinokite daugiau apie „Bluetooth“ modulį HC-05 su kitais mikrovaldikliais:
- „Bluetooth“ valdomas žaislinis automobilis, naudojant „Arduino“
- „Bluetooth“ valdoma namų automatikos sistema naudojant 8051
- Balso valdomos šviesos naudojant „Raspberry Pi“
- Išmanusis telefonas valdomas FM radijas, naudojant „Arduino“ ir apdorojimą
- „Bluetooth“ modulio HC-06 sąsaja su PIC mikrovaldikliu
Čia taip pat patikrinkite visus su „Bluetooth“ susijusius projektus.
Grandinės schema
Šio „ Arduino“ „Bluetooth“ servo variklio valdymo projekto schema pateikta žemiau:
„Roboremo“ programos konfigūravimas valdant servo:
1 žingsnis: - Atsisiųskite „Roboremo“ programą iš „Android Play“ parduotuvės ir įdiekite ją į savo išmanųjį telefoną. Įdiegę pamatysite programos langą, kaip parodyta 1 paveiksle, ir spustelėdami mygtuką „Meniu“ pamatysite langą, parodytą 2 paveiksle:
2 žingsnis: - Tada spustelėkite prisijungimo mygtuką ir pamatysite žemiau 3 paveiksle parodytą langą. Tada turėsite pasirinkti „ Bluetooth RFCOMM“ ir tada galėsite prijungti „HC-06“ „Bluetooth“ modulį su „Android“ programa „Roboremo“.
3 žingsnis: - Po prijungimo prie HC-06 Bluetooth modulis grįžti į figure2 langą ir tada spustelėkite " redaguoti ui " kurti vartotojo sąsaja pagal jūsų poreikį.
Spustelėję „redaguoti naudotojo sąsają“ , vėl pamatysite langą, parodytą 1 paveiksle, tada spustelėkite bet kurią ekrano vietą ir pamatysite programos langą, pvz., 4 paveikslą, ir pasirinkite „ Mygtukas “, kad gautumėte mygtuko struktūrą.
4 žingsnis: - Pasirinkę mygtuką, ekrane gausite mygtuko struktūrą, kurią galėsite redaguoti. Galite pakeisti struktūros dydį ir perkelti ją bet kurioje ekrano vietoje. Dabar, norėdami nustatyti vertę, siunčiamą spustelėjus per „Bluetooth “, nustatėte paspaudimo veiksmą (kaip parodyta 6 paveiksle) ir įveskite vertę, kurią norite siųsti iš to konkretaus mygtuko. Panašiai kaip „Servo“ sukimui siunčiame „1“, paspausdami „Start“ mygtuką „Roboremo android“ programoje.
Vėliau pateiktoje lentelėje galite patikrinti visas vertes, siunčiamas spustelėjus skirtingus mygtukus.
5 žingsnis: - Galiausiai turime vartotojo sąsają, kad galėtume valdyti servo variklį naudodami „Smartphone“.
Kodas ir paaiškinimas
Pabaigoje pateikiamas visas „ Arduino Control Servo Motor Via Bluetooth“ kodas.
„Arduino“ turi „Servo Motors“ biblioteką ir ji tvarko visus su PWM susijusius dalykus, kad pasuktumėte servo. Jums tereikia įvesti kampą, kuriuo norite pasukti, ir yra funkcija servo1.write (kampas); kuris pasuks servo norimu kampu.
Taigi, mes pradedame apibrėždami „Servo“ variklio biblioteką ir „Software Serial“ biblioteka naudojama apibrėžiant Rx ir Tx kaiščius.
# įtraukti
Žemiau pateiktame kode mes inicijuojame „Rdu“ ir „Tx“ „Arduino“ kaiščius, apibrėždami servo ir kitų dalykų kintamuosius .
Servo „myServo“; int TxD = 11; int RxD = 10; int servoposition; int servopos; int naujas1; „SoftwareSerial bluetooth“ (TxD, RxD);
Dabar nustatykite visus kintamuosius ir komponentus pradiniame etape. Čia mes pritvirtinome servo padėkliuką prie 9 -ojo „Arduino“ kaiščio ir nustatėme pradinę servo padėtį iki 0 laipsnių. Serijinio ir „Bluetooth“ ryšio perdavimo sparta taip pat nustatyta iki 9600.
negaliojanti sąranka () { int pos = 0; „myServo.attach“ (9); „myServo.write“ (0); Serijos pradžia (9600); // pradėti nuoseklųjį ryšį 9600bps bluetooth.begin (9600); }
„ Tuščios linijos“ funkcijoje „Arduino“ visą laiką tikrins gaunamas vertes ir pasuks servo pagal gautą išmaniojo telefono vertę. Visos vertės bus gautos naudojant nuoseklųjį ryšį.
Jei vertė yra 0, servo pasuks iki 0 laipsnių. Panašiai, jei iš „Bluetooth“ programos siųsime 45, 90, 135 ir 180, servo pasuks atitinkamai 45, 90, 135 ir 180 laipsnių kampu.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposition = value.toInt (); if (reikšmė.toInt () == 0) { Serial.println (servoposition); „myServo.write“ (0); } if (reikšmė.toInt () == 45) { Serial.println (servopozicija); „myServo.write“ (45); } if (reikšmė.toInt () == 90) { Serial.println (servopozicija); „myServo.write“ (90); } if (reikšmė.toInt () == 135) { Serial.println (servopozicija); „myServo.write“ (135); } if (reikšmė.toInt () == 180) { Serial.println (servoposition); „myServo.write“ (180); }
Jei nusiųsime reikšmę „1“ paspausdami mygtuką Pradėti, servo serveris sukasi nuolat, kol bus paspaustas sustabdymo mygtukas. Čia mes siunčiame '2' ant paspausdami Stop mygtuką, kuris bus perskaityti Arduino ir bus pertrauka , o linijos ir pagalbiniai bus sustabdytas.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (vertė); if (reikšmė.toInt () == 2) {Serial.println ("YYY"); pertrauka; }} servopos ++; vėlavimas (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; pertrauka;}}}}
Servo variklio valdymas naudojant „Bluetooth“:
Šiame projekte mes valdome „ Servo Motor“ variklį naudodami „Android“ programą „Roboremo“. Šios programos sąsajoje mes sukūrėme 5 mygtukus servo varikliui valdyti, kaip paaiškinta anksčiau. Kiekvieno mygtuko veikimas pateiktas žemiau esančioje lentelėje:
S.No. |
Mygtuko pavadinimas |
Siunčiama vertė |
apibūdinimas |
1. |
Pradėti |
1 |
Šis mygtukas naudojamas norint pasukti servo nuo 0⁰ iki 180⁰. |
2. |
Sustabdyti |
2 |
Šis mygtukas naudojamas servo sustabdymui bet kuriame taške. |
3. |
0⁰ |
0 |
Šis mygtukas naudojamas servo pasukimui į 0⁰. |
4. |
90⁰ |
90 |
Šis mygtukas naudojamas servo pasukimui į 90⁰. |
5. |
180⁰ |
180 |
Šis mygtukas naudojamas servo pasukimui į 180⁰. |
Taigi, paspaudus šiuos „Android“ programos „ Roboremo“ mygtukus , duomenys bus perduodami per išmaniojo telefono „Bluetooth“ į „HC-06 Bluetooth“ modulį. Iš to „HC-06“ modulio duomenis gauna „Arduino“, o „Arduino“ pasuka „Servo“ kampu, nurodytu konkretaus mygtuko kode. Mes taip pat užkodavome 45 ir 135 kampus, tačiau dėl „Roboremo“ programos apribojimo galite sukurti tik 5 mygtukus, todėl praleidome du mygtukus.
Taigi tokiu būdu galite siųsti duomenis iš „Smartphone“ į „Arduino“ naudodami „Bluetooth“, kad valdytumėte servo valdymą belaidžiu būdu. Tai gali būti naudojama daugelyje programų, pavyzdžiui, žaisliniai automobiliai, robotai ir kt.