- Potřebný materiál
- Modul Bluetooth HC-06
- Kruhový diagram
- Konfigurace aplikace Roboremo pro ovládání serva:
- Kód a vysvětlení
- Práce s řízením servomotoru pomocí Bluetooth:
Použití servomotoru je v robotice běžné pro přesné ovládání. Tady v tomto tutoriálu vám ukážeme, jak bezdrátově používat servomotor s Arduino UNO a zařízením Android přes připojení Bluetooth. Servo jsme již ovládali pomocí Arduina, tentokrát ovládáme servomotor pomocí Arduina a Bluetooth.
Potřebný materiál
- Arduino UNO
- Modul Bluetooth HC-05 nebo HC-06
- Servomotor
- Aplikace Roboremo z Playstore
- Nepájivá deska
- Připojovací vodič
Modul Bluetooth HC-06
Bluetooth může pracovat v následujících dvou režimech:
- Příkazový režim
- Pracovní režim
V příkazovém režimu budeme moci konfigurovat vlastnosti Bluetooth, jako je název signálu Bluetooth, jeho heslo, přenosová rychlost atd. Provozní režim je režim, ve kterém budeme moci odesílat a přijímat data mezi mikrokontrolérem PIC a modul Bluetooth. Proto v tomto tutoriálu budeme hrát pouze s operačním režimem. Příkazový režim bude ponechán na výchozí nastavení. Název zařízení bude HC-05 (používám HC-06) a heslo bude 0000 nebo 1234 a co je nejdůležitější, výchozí přenosová rychlost pro všechny moduly Bluetooth bude 9600.
Modul pracuje na 5V napájení a signální piny pracují na 3,3V, proto je v modulu samotný regulátor 3,3V. Proto si s tím nemusíme dělat starosti. Ze šesti kolíků budou v provozním režimu použity pouze čtyři. Tabulka připojení kolíků je uvedena níže
S.No | Připnout na HC-05 / HC-06 | Připnout název na MCU | Číslo PIN v 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 | Stát | NC | NC |
6 | EN (Povolit) | NC | NC |
Podívejte se na naše další projekty a dozvíte se více o modulu Bluetooth HC-05 s dalšími mikrokontroléry:
- Bluetooth řízené autíčko pomocí Arduina
- Bluetooth řízený domácí automatizační systém využívající 8051
- Hlasově ovládaná světla pomocí Raspberry Pi
- Rádio FM ovládané chytrým telefonem pomocí Arduina a zpracování
- Propojení modulu Bluetooth HC-06 s mikrokontrolérem PIC
Zde také zkontrolujte všechny projekty související s bluetooth.
Kruhový diagram
Schéma zapojení pro tento projekt Arduino Bluetooth Servo Motor Control je uvedeno níže:
Konfigurace aplikace Roboremo pro ovládání serva:
Krok 1: - Stáhněte si aplikaci Roboremo z obchodu Android Play a nainstalujte ji do svého smartphonu. Po instalaci se zobrazí okno aplikace, jak je znázorněno na obrázku 1, a kliknutím na tlačítko „Nabídka“ uvidíte okno zobrazené na obrázku 2 níže:
Krok 2: - Poté klikněte na tlačítko pro připojení a uvidíte okno zobrazené na obrázku 3 níže, poté musíte vybrat „ Bluetooth RFCOMM“ a poté budete moci připojit svůj modul Bluetooth HC-06 k aplikaci pro Android „Roboremo“.
Krok 3: - Po připojení k modulu Bluetooth HC-06 se vraťte zpět do okna figury2 a poté klikněte na ' upravit ui ' pro vytvoření uživatelského rozhraní podle vašich potřeb.
Když kliknete na „upravit ui“ , znovu uvidíte okno zobrazené na obrázku 1, poté klikněte kamkoli na obrazovce a uvidíte okno aplikace, jako je obrázek 4, a vyberte „ Tlačítko “, abyste získali strukturu tlačítek.
Krok 4: - Po výběru tlačítka získáte na obrazovce strukturu tlačítka, kterou chcete upravit. Můžete změnit velikost a přesunout strukturu kamkoli na obrazovku. Nyní pro nastavení hodnoty, která se má odeslat po kliknutí přes Bluetooth, máte „nastavit akci stisknutí“ (jak je znázorněno na obrázku 6) a zadejte hodnotu, kterou chcete odeslat z daného tlačítka. Stejně jako posíláme „1“ pro otáčení serva stisknutím tlačítka „Start“ v aplikaci Roboremo pro Android.
Všechny hodnoty odeslané po kliknutí na různá tlačítka můžete zkontrolovat v následující tabulce.
Krok 5: - Konečně máme uživatelské rozhraní pro ovládání servomotoru pomocí smartphonu.
Kód a vysvětlení
Na konci je uveden kompletní kód pro servomotor Arduino Control přes Bluetooth.
Arduino má knihovnu pro servomotory a zpracovává všechny věci související s PWM pro otáčení serva, stačí zadat úhel, do kterého chcete otáčet, a je zde funkce servo1.write (úhel); který natočí servo do požadovaného úhlu.
Tady tedy začínáme definováním knihovny pro servomotor a pro definování pinů Rx a Tx se používá softwarová sériová knihovna.
#zahrnout
V níže uvedeném kódu inicializujeme piny Arduino pro Rx a Tx, definujeme proměnné pro servo a další věci .
Servo myServo; int TxD = 11; int RxD = 10; int servopozice; int servopos; int nový1; Software Sériové rozhraní Bluetooth (TxD, RxD);
Nyní nastavte všechny proměnné a komponenty do počáteční fáze. Zde jsme připojeny servo 9 th čepu Arduino a také počáteční polohu serva na 0 stupňů. Přenosová rychlost pro sériovou komunikaci a komunikaci Bluetooth byla také nastavena na 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // zahájit sériovou komunikaci rychlostí 9600 bps bluetooth.begin (9600); }
Ve funkci void loop bude Arduino neustále kontrolovat příchozí hodnoty a otáčet servem podle přijaté hodnoty ze smartphonu. Všechny hodnoty budou přijímány pomocí sériové komunikace.
Pokud je hodnota 0, servo se otočí o 0 stupňů. Podobně pokud pošleme 45, 90, 135 a 180 z aplikace Bluetooth, servo se otočí do úhlu 45, 90, 135 a 180 stupňů.
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); } if (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Pokud pošleme hodnotu '1' stisknutím tlačítka Start , pak se servo bude otáčet nepřetržitě, dokud nebude stisknuto tlačítko stop . Zde posíláme „2“ po stisknutí tlačítka stop , které přečte Arduino a rozbije smyčku while a servo bude zastaveno.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (hodnota); if (value.toInt () == 2) {Serial.println ("YYY"); přestávka; }} servopos ++; zpoždění (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Práce s řízením servomotoru pomocí Bluetooth:
V tomto projektu řídíme servomotor pomocí aplikace pro Android „Roboremo“. V rozhraní této aplikace jsme vytvořili 5 tlačítek pro ovládání servomotoru, jak bylo vysvětleno výše. Fungování každého tlačítka je uvedeno v následující tabulce:
Č. |
Název tlačítka |
Odesílání hodnoty |
Popis |
1. |
Start |
1 |
Toto tlačítko slouží k zahájení otáčení serva od 0⁰ do 180⁰. |
2. |
Stop |
2 |
Toto tlačítko slouží k zastavení serva v jakémkoli bodě. |
3. |
0⁰ |
0 |
Toto tlačítko se používá k otočení serva na 0 °. |
4. |
90⁰ |
90 |
Toto tlačítko se používá k otočení serva o 90 °. |
5. |
180⁰ |
180 |
Toto tlačítko se používá k otočení serva o 180 °. |
Stisknutím těchto tlačítek ve vaší aplikaci pro Android Roboremo budou data odeslána prostřednictvím modulu Bluetooth smartphonu do modulu Bluetooth HC-06. Od té doby přijímá data modulu HC-06 Arduino a Arduino otáčí Servo pod úhlem definovaným v kódu pro konkrétní tlačítko. Také jsme kódovali úhel 45 a 135, ale z důvodu omezení aplikace Roboremo můžete vytvořit pouze 5 tlačítek, takže jsme přeskočili dvě tlačítka.
Takto můžete posílat data ze smartphonu do Arduina pomocí Bluetooth a bezdrátově ovládat servo. To lze použít v mnoha aplikacích, jako jsou autíčka, roboty atd.