- Potreben material
- Modul Bluetooth HC-06
- Shema vezja
- Konfiguriranje aplikacije Roboremo za nadzor servo:
- Koda in razlaga
- Delovanje servo motorja s pomočjo Bluetootha:
Uporaba servo motorja je za natančen nadzor pogosta pri robotiki. V tej vadnici vam bomo pokazali, kako brezžično uporabljati servo motor z Arduino UNO in napravo Android prek povezave Bluetooth. Servo smo že nadzorovali z Arduino, tokrat nadzorujemo servo motor z uporabo Arduino in Bluetooth.
Potreben material
- Arduino UNO
- Modul Bluetooth HC-05 ali HC-06
- Servo motor
- Aplikacija Roboremo iz trgovine Playstore
- Breadboard
- Priključna žica
Modul Bluetooth HC-06
Bluetooth lahko deluje v naslednjih dveh načinih:
- Ukazni način
- Način delovanja
V ukaznem načinu bomo lahko konfigurirali lastnosti Bluetooth, kot so ime signala Bluetooth, njegovo geslo, hitrost prenosa podatkov itd. Način delovanja je tisti, v katerem bomo lahko pošiljali in prejemali podatke med mikrokrmilnikom PIC. in modul Bluetooth. V tej vadnici se bomo torej poigravali samo z načinom delovanja. Ukazni način bo prepuščen privzetim nastavitvam. Ime naprave bo HC-05 (uporabljam HC-06), geslo pa bo 0000 ali 1234, najpomembneje pa bo privzeta hitrost prenosa podatkov za vse module Bluetooth 9600.
Modul deluje na napajanje 5V, signalni zatiči pa na 3.3V, zato je v samem modulu prisoten regulator 3.3V. Zato nam ni treba skrbeti. Od šestih zatičev bodo v načinu delovanja uporabljeni le štirje. Tabela povezav z zatiči je prikazana spodaj
S. Št | Pripnite na HC-05 / HC-06 | Ime pripnite na MCU | Številka PIN v PIC |
1. | Vcc | Vdd | 31 st zatič |
2. | Vcc | Gnd | 32 nd zatič |
3. | Tx | RC6 / Tx / CK | 25 TH zatič |
4. | Rx | RC7 / Rx / DT | 26 TH zatič |
5. | Država | NC | NC |
6. | SL (Omogoči) | NC | NC |
Oglejte si naše druge projekte, če želite izvedeti več o modulu Bluetooth HC-05 z drugimi mikrokrmilniki:
- Toy Car z nadzorom Bluetooth z uporabo Arduina
- Sistem za avtomatizacijo doma pod nadzorom Bluetooth z uporabo 8051
- Glasovno nadzorovane luči z uporabo Raspberry Pi
- FM radio, ki ga nadzira pametni telefon s pomočjo Arduina in obdelave
- Povezava modula Bluetooth HC-06 z mikrokrmilnikom PIC
Tukaj preverite tudi vse projekte, povezane z Bluetoothom.
Shema vezja
Shema vezja za ta projekt Arduino Bluetooth Servo Motor Control je podana spodaj:
Konfiguriranje aplikacije Roboremo za nadzor servo:
1. korak: - Prenesite aplikacijo Roboremo iz trgovine Android Play in jo namestite v pametni telefon. Po namestitvi boste videli okno aplikacije, kot je prikazano na sliki1, s klikom na gumb 'Menu' pa boste videli okno, prikazano na sliki 2 spodaj:
Korak 2: - Nato kliknite gumb za povezavo in videli boste okno, prikazano na sliki 3 spodaj, nato morate izbrati ' Bluetooth RFCOMM' in nato boste lahko svoj modul HC-06 povezali z vašo aplikacijo za Android 'Roboremo'.
Korak 3: - Po priključitvi na HC-06 Bluetooth modula se vrniti na figure2 okno in nato kliknite na " uredi ui " za ustvarjanje uporabniškega vmesnika glede na vaše potrebe.
Ko kliknete na "uredi uporabniški vmesnik" , boste spet videli okno, prikazano na sliki 1, nato pa kliknite kjer koli na zaslonu, videli boste okno aplikacije, kot je slika 4, in izberite " Gumb ", da dobite strukturo gumba.
4. korak: - Po izbiri gumba boste na zaslonu dobili strukturo gumbov za urejanje. Strukturo lahko spremenite in premaknete kjer koli na zaslonu. Zdaj za nastavitev vrednosti, ki jo želite poslati ob kliku prek Bluetootha, nastavite "pritisk na pritisk" (kot je prikazano na sliki 6) in s tega gumba vnesite vrednost, ki jo želite poslati. Tako kot pošiljamo '1' za vrtenje servo krmiljenja s pritiskom na gumb 'Start' v aplikaciji Roboremo android.
Vse vrednosti, ki jih pošljete s klikom na različne gumbe, lahko preverite v spodnji tabeli.
5. korak: - Na koncu imamo še uporabniški vmesnik za nadzor servo motorja s pametnim telefonom.
Koda in razlaga
Na koncu je podana celotna koda za Arduino Control Servo Motor prek Bluetootha.
Arduino ima knjižnico za servo motorje in za vrtenje servo upravlja vse stvari, povezane s PWM, vnesti morate le kot, pod katerega se želite vrteti, in obstaja funkcija servo1.write (angle); ki bo servo zasukal pod želeni kot.
Torej, tukaj začnemo z določitvijo knjižnice za servo motor in programska oprema Serijska knjižnica se uporablja za določanje Rx in Tx zatiča.
#include
V spodnji kodi inicializiramo zatiče Arduino za Rx in Tx, definiramo spremenljivke za servo in druge stvari .
Servo myServo; int TxD = 11; int RxD = 10; int servopozicija; int servopos; int new1; SoftwareSerial bluetooth (TxD, RxD);
Zdaj nastavite vse spremenljivke in komponente na začetno stopnjo. Tukaj smo priloženo servo na 9 th pin za Arduino in je začetni položaj servo 0 stopnjo. Hitrost prenosa podatkov za serijsko in Bluetooth komunikacijo je prav tako nastavljena na 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // začnemo serijsko komunikacijo s hitrostjo 9600 bps bluetooth.begin (9600); }
V funkciji void loop bo Arduino ves čas preverjal dohodne vrednosti in zasukal servo v skladu s prejeto vrednostjo iz pametnega telefona. Vse vrednosti bodo sprejete s pomočjo serijske komunikacije.
Če je vrednost 0, se bo servo zavrtil do 0 stopinj. Podobno, če iz aplikacije Bluetooth pošljemo 45, 90, 135 in 180, se bo servo zavrtel pod kotom 45, 90, 135 in 180 stopinj.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servopozicija = vrednost.toInt (); if (value.toInt () == 0) { Serial.println (servopozicija); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servopozicija); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servopozicija); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servopozicija); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servopozicija); myServo.write (180); }
Če vrednost "1" pošljemo s pritiskom na gumb Start, se bo servo neprekinjeno vrtelo, dokler ne pritisnemo gumba za zaustavitev . Tukaj pošiljamo '2' na pritisk gumba za zaustavitev , ki ga bo Arduino prebral in prekinil zanko while in servo bo ustavljen.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (vrednost); if (value.toInt () == 2) {Serial.println ("LLL"); odmor; }} servopos ++; zamuda (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; odmor;}}}}
Delovanje servo motorja s pomočjo Bluetootha:
V tem projektu nadzorujemo servo motor z uporabo aplikacije za Android »Roboremo«. V vmesniku te aplikacije smo ustvarili 5 gumbov za nadzor servo motorja, kot smo že pojasnili. Delovanje vsakega gumba je prikazano v spodnji tabeli:
Št. |
Ime gumba |
Vrednost pošiljanja |
Opis |
1. |
Začni |
1. |
S tem gumbom začnete servo vrteti od 0⁰ do 180⁰. |
2. |
Nehaj |
2. |
S tem gumbom zaustavite servo na kateri koli točki. |
3. |
0⁰ |
0 |
S tem gumbom vrtite servo na 0 to. |
4. |
90⁰ |
90 |
S tem gumbom zasukate servo na 90⁰. |
5. |
180⁰ |
180 |
S tem gumbom zavrtite servo na 180⁰. |
S pritiskom na te gumbe v aplikaciji Roboremo za Android bodo podatki poslani prek Bluetooth-a pametnega telefona na modul Bluetooth HC-06. Od tega modula HC-06 Arduino prejme podatke in Arduino zasuka servo pod kotom, določenim v kodi za posamezen gumb. Kodirali smo tudi za kot 45 in 135, vendar lahko zaradi omejitve aplikacije Roboremo ustvarite samo 5 gumbov, zato smo dva gumba preskočili.
Tako lahko podatke s pametnega telefona pošljete v Arduino z uporabo Bluetootha za brezžično krmiljenje servo-sistema. To se lahko uporablja v številnih aplikacijah, kot so avtomobili za igrače, roboti itd.