- Potrebný materiál
- Modul Bluetooth HC-06
- Schéma zapojenia
- Konfigurácia aplikácie Roboremo na ovládanie serva:
- Kód a vysvetlenie
- Fungovanie ovládania servomotora pomocou Bluetooth:
Používanie servomotora je v robotike bežné pre presné riadenie. Tu v tomto výučbe vám ukážeme, ako používať servomotor bezdrôtovo s Arduino UNO a zariadením Android cez pripojenie Bluetooth. Servo sme už ovládali pomocou Arduina, tentokrát riadime servomotor pomocou Arduina a Bluetooth.
Potrebný materiál
- Arduino UNO
- Modul Bluetooth HC-05 alebo HC-06
- Servo motor
- Aplikácia Roboremo z obchodu Playstore
- Nepál
- Pripojovací drôt
Modul Bluetooth HC-06
Bluetooth môže pracovať v nasledujúcich dvoch režimoch:
- Príkazový režim
- Prevádzkový režim
V príkazovom režime budeme schopní nakonfigurovať vlastnosti Bluetooth, ako je názov signálu Bluetooth, jeho heslo, prevádzková rýchlosť atď. Prevádzkový režim je režim, v ktorom budeme schopní odosielať a prijímať údaje medzi mikrokontrolérom PIC a modul Bluetooth. Preto sa v tomto výučbe budeme hrať iba s prevádzkovým režimom. Príkazový režim sa ponechá na predvolené nastavenia. Názov zariadenia bude HC-05 (používam HC-06) a heslo bude 0000 alebo 1234 a čo je najdôležitejšie, predvolená prenosová rýchlosť pre všetky moduly Bluetooth bude 9600.
Modul pracuje na 5V napájaní a signálne piny pracujú na 3,3V, preto je v samotnom module prítomný regulátor 3,3V. Preto si s tým nemusíme robiť starosti. Zo šiestich pinov budú v prevádzkovom režime použité iba štyri. Tabuľka pinových pripojení je uvedená nižšie
S.No | Pripnúť na HC-05 / HC-06 | Pripnúť názov na MCU | Pripnúť číslo na PIC |
1 | Vcc | Vdd | 31 st kolík |
2 | Vcc | Gnd | 32 nd kolík |
3 | Tx | RC6 / Tx / CK | 25 th kolík |
4 | Rx | RC7 / Rx / DT | 26 th pin |
5 | Štát | NC | NC |
6 | EN (Povoliť) | NC | NC |
V našich ďalších projektoch sa dozviete viac o Bluetooth module HC-05 s ďalšími mikrokontrolérmi:
- Bluetooth ovládané autíčko pomocou Arduina
- Bluetooth riadený domáci automatizačný systém využívajúci 8051
- Hlasom ovládané svetlá pomocou Raspberry Pi
- Inteligentný telefón ovládaný FM rádiom pomocou Arduina a spracovania
- Prepojenie modulu Bluetooth HC-06 s mikrokontrolérom PIC
Tu tiež skontrolujte všetky projekty spojené s bluetooth.
Schéma zapojenia
Schéma zapojenia tohto projektu Arduino Bluetooth Servo Motor Control je uvedená nižšie:
Konfigurácia aplikácie Roboremo na ovládanie serva:
Krok 1: - Stiahnite si aplikáciu Roboremo z obchodu Android Play a nainštalujte ju do svojho smartphonu. Po inštalácii uvidíte okno aplikácie zobrazené na obrázku 1 a kliknutím na tlačidlo „Menu“ uvidíte okno zobrazené na obrázku 2 nižšie:
Krok 2: - Potom kliknite na tlačidlo pripojiť a uvidíte okno zobrazené na obrázku 3 nižšie, potom musíte zvoliť „ Bluetooth RFCOMM“ a potom budete môcť pripojiť svoj modul Bluetooth HC-06 k aplikácii pre Android „Roboremo“.
Krok 3: - Po pripojení k modulu Bluetooth HC-06 sa vráťte späť do okna figúrky2 a potom kliknite na ' upraviť ui ' pre vytvorenie užívateľského rozhrania podľa vašich potrieb.
Keď kliknete na „upraviť ui“ , znova uvidíte okno zobrazené na obrázku 1, potom kliknite kamkoľvek na obrazovke, uvidíte okno aplikácie, ako je obrázok 4, a výberom tlačidla „ Button “ získate štruktúru tlačidiel.
Krok 4: - Po výbere tlačidla získate na obrazovke štruktúru tlačidiel, ktoré chcete upraviť. Môžete zmeniť veľkosť a presunúť štruktúru kamkoľvek na obrazovku. Teraz pre nastavenie hodnoty, ktorá sa má odoslať po kliknutí cez Bluetooth, máte „nastavenú akciu stlačenia“ (ako je znázornené na obrázku 6) a zadajte hodnotu, ktorú chcete odoslať z daného tlačidla. Rovnako ako odosielame „1“ na otáčanie serva stlačením tlačidla „Štart“ v aplikácii Roboremo pre Android.
Všetky hodnoty odosielané po kliknutí na rôzne tlačidlá môžete skontrolovať v nasledujúcej tabuľke.
Krok 5: - Nakoniec máme používateľské rozhranie na ovládanie servomotora pomocou smartphonu.
Kód a vysvetlenie
Celý kód pre riadiaci servomotor Arduino cez Bluetooth je uvedený na konci.
Arduino má knižnicu pre servomotory a zvláda všetky veci súvisiace s PWM na otáčanie serva, stačí zadať uhol, do ktorého sa chcete otočiť, a je tu funkcia servo1.write (uhol); ktorý natočí servo do požadovaného uhla.
Takže tu začíname definovaním knižnice pre servomotor a softvérová sériová knižnica sa používa na definovanie pinov Rx a Tx.
#include
V nasledujúcom kóde inicializujeme piny Arduino pre Rx a Tx, definujeme premenné pre servo a ďalšie veci .
Servo myServo; int TxD = 11; int RxD = 10; int servopozícia; int servopos; int nový1; SoftvérSériové rozhranie Bluetooth (TxD, RxD);
Teraz nastavte všetky premenné a komponenty do počiatočnej fázy. Tu sme pripojené servo 9 th čapu Arduino a tiež počiatočné polohu serva na 0 stupňov. Prenosová rýchlosť pre sériovú komunikáciu a komunikáciu Bluetooth bola tiež nastavená na 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // zahájiť sériovú komunikáciu rýchlosťou 9600 bps bluetooth.begin (9600); }
Vo funkcii void loop bude Arduino neustále kontrolovať prichádzajúce hodnoty a otáčať servomotorom podľa prijatej hodnoty z chytrého telefónu. Všetky hodnoty budú prijímané pomocou sériovej komunikácie.
Ak je hodnota 0, servo sa otočí o 0 stupňov. Podobne, ak pošleme 45, 90, 135 a 180 z aplikácie Bluetooth, servo sa otočí o 45, 90, 135 a 180 stupňov.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servopozícia = hodnota.toInt (); if (value.toInt () == 0) { Serial.println (servopozícia); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servopozícia); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servopozícia); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servopozícia); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servopozícia); myServo.write (180); }
Ak pošleme hodnotu '1' stlačením tlačidla Štart , potom sa servo bude otáčať nepretržite, kým nestlačíte tlačidlo zastavenia . Tu sme sa vysiela, 2 'pri stlačení STOP tlačidla, ktorá bude čítaná Arduino a to zlomí while slučku a servo sa zastaví.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (hodnota); if (value.toInt () == 2) {Serial.println ("YYY"); prestávka; }} servopos ++; oneskorenie (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Fungovanie ovládania servomotora pomocou Bluetooth:
V tomto projekte riadime servomotor pomocou aplikácie pre Android „Roboremo“. Ako bolo vysvetlené vyššie, v rozhraní tejto aplikácie sme vytvorili 5 tlačidiel na ovládanie servomotora. Fungovanie každého tlačidla je uvedené v nasledujúcej tabuľke:
S.No. |
Názov tlačidla |
Hodnota odosielania |
Popis |
1. |
Štart |
1 |
Toto tlačidlo sa používa na začatie otáčania serva od 0 ° do 180 °. |
2. |
Prestaň |
2 |
Toto tlačidlo slúži na zastavenie serva v ktoromkoľvek bode. |
3. |
0⁰ |
0 |
Toto tlačidlo sa používa na otočenie serva na 0 °. |
4. |
90⁰ |
90 |
Toto tlačidlo sa používa na otočenie serva o 90 °. |
5. |
180⁰ |
180 |
Toto tlačidlo sa používa na otočenie serva o 180 °. |
Stlačením týchto tlačidiel vo vašej aplikácii pre Android Roboremo teda budú dáta odoslané cez Bluetooth modul smartphone do HC-06 Bluetooth modulu. Z toho dáta modulu HC-06 prijíma Arduino a Arduino otáča servo pod uhlom definovaným v kóde pre príslušné tlačidlo. Tiež sme kódovali uhly 45 a 135, ale z dôvodu obmedzenia aplikácie Roboremo môžete vytvoriť iba 5 tlačidiel, takže sme dve tlačidlá preskočili.
Takto môžete posielať dáta zo smartphonu do Arduina pomocou Bluetooth na bezdrôtové ovládanie serva. To možno použiť v mnohých aplikáciách, ako sú autíčka, roboty atď.