- Nepieciešams materiāls
- HC-06 Bluetooth modulis
- Ķēdes shēma
- Roboremo lietotnes konfigurēšana servo kontrolei:
- Kods un skaidrojums
- Servomotora vadības darbība, izmantojot Bluetooth:
Servomotora izmantošana robotizācijā ir izplatīta precīzai kontrolei. Šajā apmācībā mēs parādīsim, kā bezvadu režīmā izmantot servomotoru ar Arduino UNO un Android ierīci, izmantojot Bluetooth savienojumu. Mēs jau kontrolējām servo ar Arduino, šoreiz mēs kontrolējam servomotoru, izmantojot Arduino un Bluetooth.
Nepieciešams materiāls
- Arduino UNO
- HC-05 vai HC-06 Bluetooth modulis
- Servo motors
- Roboremo lietotne no Playstore
- Maizes dēlis
- Savienojošais vads
HC-06 Bluetooth modulis
Bluetooth var darboties šādos divos režīmos:
- Komandas režīms
- Darbības režīms
Jo Komandu režīmā , mēs varēsim konfigurēt Bluetooth īpašības, piemēram, nosaukumu Bluetooth signālu, tā parole, darbības bodu ātrums uc Darba režīms ir viens, kurā mēs varēsim sūtīt un saņemt datus starp PIC Microcontroller un Bluetooth moduli. Tāpēc šajā apmācībā mēs spēlējamies tikai ar darbības režīmu. Komandu režīmā tiks atstāti noklusējuma iestatījumi. Ierīces nosaukums būs HC-05 (es izmantoju HC-06), un parole būs 0000 vai 1234, un vissvarīgāk noklusējuma datu pārraides ātrums visiem Bluetooth moduļiem būs 9600.
Modulis darbojas ar 5V barošanu, un signāla tapas darbojas ar 3.3V, tāpēc pašā modulī ir 3.3V regulators. Tāpēc mums par to nav jāuztraucas. No sešiem tapām tikai četri tiks izmantoti darbības režīmā. Adatu savienojuma tabula ir parādīta zemāk
S.No | Piespraužiet HC-05 / HC-06 | Piespraust vārdu MCU | PIN numurs 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 | Valsts | NC | NC |
6 | EN (iespējot) | NC | NC |
Pārbaudiet mūsu citus projektus, lai uzzinātu vairāk par Bluetooth moduli HC-05 ar citiem mikrokontrolleriem:
- Bluetooth kontrolēta rotaļlietu automašīna, izmantojot Arduino
- Bluetooth kontrolēta mājas automatizācijas sistēma, izmantojot 8051
- Balss vadāmas gaismas, izmantojot Raspberry Pi
- Viedtālrunis kontrolē FM radio, izmantojot Arduino un apstrādi
- Saskarnes Bluetooth modulis HC-06 ar PIC mikrokontrolleru
Šeit pārbaudiet arī visus ar Bluetooth saistītos projektus.
Ķēdes shēma
Šī Arduino Bluetooth servomotora vadības projekta shēmas shēma ir sniegta zemāk:
Roboremo lietotnes konfigurēšana servo kontrolei:
1. solis: - lejupielādējiet lietotni Roboremo no Android Play veikala un instalējiet to viedtālrunī. Pēc tā instalēšanas jūs redzēsiet lietotnes logu, kā parādīts 1. attēlā, un, noklikšķinot uz pogas Izvēlne , jūs redzēsiet logu, kas parādīts 2. attēlā:
2. solis: - Pēc tam noklikšķiniet uz pogas Savienot , un jūs redzēsiet logu, kas parādīts zemāk 3. attēlā, tad jums jāizvēlas ' Bluetooth RFCOMM', un tad jūs varēsiet savienot savu HC-06 bluetooth moduli ar savu Android lietotni 'Roboremo'.
3. solis: - Pēc savienojuma izveidošanas ar HC-06 bluetooth moduli atgriezieties 2. attēla logā un pēc tam noklikšķiniet uz “ edit ui ”, lai izveidotu lietotāja saskarni atbilstoši jūsu vajadzībām.
Noklikšķinot uz “edit ui”, jūs atkal redzēsiet logu, kas parādīts 1. attēlā, pēc tam noklikšķiniet uz jebkuras vietas ekrānā, kurā redzēsit lietotnes logu, piemēram, 4. attēlu, un atlasiet pogu, lai iegūtu pogas struktūru.
4. solis: - Pēc pogas izvēles ekrānā tiks parādīta pogas struktūra, kuru rediģēt. Varat mainīt struktūras lielumu un pārvietot to jebkurā ekrāna vietā. Tagad, lai iestatītu vērtību, kas jānosūta, noklikšķinot caur Bluetooth, esat iestatījis nospiešanas darbību (kā parādīts 6. attēlā) un ierakstiet vērtību, kuru vēlaties nosūtīt no šīs konkrētās pogas. Tāpat kā servo pagriešanai, nosūtot “1”, nospiežot pogu “Sākt” Roboremo android lietojumprogrammā.
Vēlāk esošajā tabulā varat pārbaudīt visas vērtības, kas tiek sūtītas, noklikšķinot uz dažādām pogām.
5. solis: - Visbeidzot, mums ir lietotāja saskarne, lai vadītu servomotoru, izmantojot viedtālruni.
Kods un skaidrojums
Pilnīgs Arduino Control Servo Motor via Bluetooth kods ir norādīts beigās.
Arduino ir servo motors bibliotēka, un tā apstrādā visas ar PWM saistītās lietas, lai pagrieztu servo. Jums vienkārši jāievada leņķis, līdz kuram vēlaties pagriezties, un ir funkcija servo1.write (leņķis); kas pagriezīs servo vēlamajā leņķī.
Tātad šeit mēs sākam, definējot servo motora bibliotēku, un programmatūras sērijas bibliotēka tiek izmantota, lai definētu Rx un Tx tapu.
# iekļaut
Zemāk esošajā kodā mēs inicializējam Rx un Tx Arduino tapas, definējot mainīgos servo un citām lietām .
Servo myServo; int TxD = 11; int RxD = 10; int servopozīcija; int servopos; int jauns1; SoftwareSerial bluetooth (TxD, RxD);
Tagad iestatiet visus mainīgos un komponentus sākotnējā posmā. Šeit mēs ir pievienots servo pie 9 th pin no Arduino un veicis sākotnējo stāvokli servo līdz 0 grādu. Arī sērijveida un Bluetooth sakaru pārraides ātrums ir iestatīts uz 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Sērijas sākums (9600); // sākt sērijveida sakarus ar ātrumu 9600bps bluetooth.begin (9600); }
Ar tukšumu cilpas funkciju, Arduino tiks pārbaudot ienākošos vērtības visu laiku un pagriezt servo atbilstoši saņemto vērtību no Smart tālruni. Visas vērtības tiks saņemtas, izmantojot sērijas sakarus.
Ja vērtība ir 0, servo pagriezīsies līdz 0 grādiem. Līdzīgi, ja mēs nosūtīsim 45, 90, 135 un 180 no Bluetooth lietojumprogrammas, servo pagriezīsies attiecīgi līdz 45, 90, 135 un 180 grādu leņķim.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servopozīcija = value.toInt (); if (vērtība.toInt () == 0) { Serial.println (servopozīcija); myServo.write (0); } if (vērtība.toInt () == 45) { Seriālā.println (servopozīcija); myServo.write (45); } if (vērtība.toInt () == 90) { Serial.println (servopozīcija); myServo.write (90); } if (vērtība.toInt () == 135) { Seriālā.println (servopozīcija); myServo.write (135); } if (vērtība.toInt () == 180) { Seriālā.println (servopozīcija); myServo.write (180); }
Ja mēs nosūtīt vērtību '1', nospiežot pogu Sākt , tad servo nepārtraukti griežas, līdz tiek nospiesta apturēšanas poga. Šeit mēs nosūtām "2" uz nospiežot stop pogu, kas tiks nolasīt ar Arduino, un tā būs pārtraukums kamēr cilpa, un servo tiks pārtraukta.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (vērtība); if (vērtība.toInt () == 2) {Seriālā.println ("GGG"); pārtraukums; }} servopos ++; kavēšanās (30); Serial.println (servopos); myServo.write (servopos); ja (servopos == 180) {servopos = 0; pārtraukums;}}}}
Servomotora vadības darbība, izmantojot Bluetooth:
Šajā projektā mēs kontrolējam servomotoru, izmantojot Android lietojumprogrammu “Roboremo”. Šīs lietojumprogrammas saskarnē mēs esam izveidojuši 5 pogas, lai vadītu servomotoru, kā paskaidrots iepriekš. Katras pogas darbība ir norādīta zemāk esošajā tabulā:
S.No. |
Pogas nosaukums |
Nosūta vērtību |
Apraksts |
1. |
Sākt |
1 |
Šo pogu izmanto, lai sāktu servo pagriešanu no 0⁰ līdz 180⁰. |
2. |
Apstājies |
2 |
Šo pogu izmanto, lai jebkurā brīdī apturētu servo. |
3. |
0⁰ |
0 |
Šo pogu izmanto, lai servo pagrieztu uz 0⁰. |
4. |
90⁰ |
90 |
Šo pogu izmanto, lai servo pagrieztu uz 90⁰. |
5. |
180⁰ |
180 |
Šo pogu izmanto, lai servo pagrieztu uz 180⁰. |
Tātad, nospiežot šīs Android lietotnes Roboremo pogas, dati caur viedtālruņa Bluetooth tiks nosūtīti uz HC-06 Bluetooth moduli. No tā HC-06 moduļa datus saņem Arduino, un Arduino pagriež servo leņķī, kas noteikts konkrētās pogas kodā. Mēs esam kodējuši arī 45. un 135. leņķi, taču Roboremo lietotnes ierobežojuma dēļ jūs varat izveidot tikai 5 pogas, tāpēc mēs izlaist divas pogas.
Tātad šādi jūs varat nosūtīt datus no viedtālruņa uz Arduino, izmantojot Bluetooth, lai bezvadu vadītu servo. To var izmantot daudzās lietojumprogrammās, piemēram, Rotaļu automašīnas, roboti utt.