- Material necesar
- Modulul HC-06 Bluetooth
- Diagrama circuitului
- Configurarea aplicației Roboremo pentru controlul servo-ului:
- Cod și explicație
- Funcționarea controlului servomotorului utilizând Bluetooth:
Utilizarea unui servomotor este obișnuită în robotică pentru un control precis. Aici, în acest tutorial vă vom arăta cum să utilizați un servomotor fără fir cu un Arduino UNO și un dispozitiv Android prin conexiune Bluetooth. Am controlat deja servo cu Arduino, de data aceasta controlăm Servo Motor folosind Arduino și Bluetooth.
Material necesar
- Arduino UNO
- Modul Bluetooth HC-05 sau HC-06
- Servo motor
- Aplicația Roboremo din Playstore
- Breadboard
- Sârmă de conectare
Modulul HC-06 Bluetooth
Bluetooth poate funcționa în următoarele două moduri:
- Mod de comandă
- Mod de operare
În modul de comandă vom putea configura proprietățile Bluetooth, cum ar fi numele semnalului Bluetooth, parola acestuia, rata de funcționare, etc. Modul de operare este cel în care vom putea trimite și primi date între microcontrolerul PIC. și modulul Bluetooth. Prin urmare, în acest tutorial vom juca doar cu modul de operare. Modul Comandă va fi lăsat la setările implicite. Numele dispozitivului va fi HC-05 (folosesc HC-06) și parola va fi 0000 sau 1234 și cel mai important, rata de transmisie implicită pentru toate modulele Bluetooth va fi 9600.
Modulul funcționează pe o sursă de 5V, iar pinii de semnal funcționează pe 3,3V, prin urmare un regulator de 3,3V este prezent în modul în sine. Prin urmare, nu trebuie să ne îngrijorăm. Din cei șase pini, doar patru vor fi folosiți în modul de operare. Tabelul de conectare a pinului este prezentat mai jos
S. Nu | Pin pe HC-05 / HC-06 | Pin nume pe MCU | Numărul PIN în PIC |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 nd pin |
3 | Tx | RC6 / Tx / CK | Al 25- lea pin |
4 | Rx | RC7 / Rx / DT | Al 26- lea pin |
5 | Stat | NC | NC |
6 | EN (Activați) | NC | NC |
Verificați celelalte proiecte pentru a afla mai multe despre modulul Bluetooth HC-05 cu alte microcontrolere:
- Mașină de jucărie controlată prin Bluetooth folosind Arduino
- Sistem de automatizare la domiciliu controlat prin Bluetooth care utilizează 8051
- Lumini controlate prin voce folosind Raspberry Pi
- Radio FM controlat prin telefon inteligent folosind Arduino și Procesare
- Interfațarea modulului Bluetooth HC-06 cu microcontrolerul PIC
De asemenea, verificați aici toate proiectele legate de bluetooth.
Diagrama circuitului
Diagrama circuitului pentru acest proiect Arduino Bluetooth Servo Motor Control este prezentată mai jos:
Configurarea aplicației Roboremo pentru controlul servo-ului:
Pasul 1: - Descărcați aplicația Roboremo din Android Play Store și instalați-o în smartphone. După instalare, veți vedea fereastra aplicației așa cum se arată în figura 1 și făcând clic pe butonul „Meniu” veți vedea fereastra prezentată în figura 2 de mai jos:
Pasul 2: - Apoi faceți clic pe butonul de conectare și veți vedea fereastra prezentată în figura 3 de mai jos, apoi trebuie să selectați „ Bluetooth RFCOMM” și apoi veți putea să vă conectați modulul Bluetooth HC-06 cu aplicația dvs. Android „Roboremo”.
Pasul 3: - După conectarea la modulul bluetooth HC-06 reveniți la fereastra figure2 și apoi faceți clic pe „ editați ui ” pentru a crea interfața cu utilizatorul în funcție de nevoile dvs.
Când faceți clic pe „editați ui”, veți vedea din nou fereastra prezentată în figura 1, apoi faceți clic oriunde pe ecran, veți vedea fereastra aplicației precum figura 4 și selectați „ Buton ” pentru a obține structura butonului.
Pasul 4: - După selectarea butonului, veți obține o structură de butoane pe ecran pentru editare. Puteți redimensiona și muta structura oriunde pe ecran. Acum, pentru setarea valorii care trebuie trimise, faceți clic pe Bluetooth, ați „setat acțiunea de apăsare” (așa cum se arată în figura 6) și tastați valoarea pe care doriți să o trimiteți din acel buton. De exemplu, trimitem „1” pentru rotirea servo-ului apăsând butonul „Start” din aplicația Roboremo pentru Android.
Puteți verifica toate valorile, fiind trimise făcând clic pe diferite butoane, în tabelul dat mai târziu.
Pasul 5: - În sfârșit, avem interfață utilizator pentru a controla servomotorul folosind Smartphone.
Cod și explicație
Codul complet pentru Arduino Control Servo Motor Via Bluetooth este dat la sfârșit.
Arduino are o bibliotecă pentru servomotoare și gestionează toate lucrurile legate de PWM pentru a roti servo, trebuie doar să introduceți unghiul în care doriți să rotiți și există funcția servo1.write (unghi); care va roti servo la unghiul dorit.
Deci, aici începem prin definirea bibliotecii pentru servomotor și software-ul Biblioteca serială este utilizată pentru definirea pinului Rx și Tx.
#include
În codul de mai jos, inițializăm pinii Arduino pentru Rx și Tx, definind variabile pentru servo și alte lucruri .
Servo myServo; int TxD = 11; int RxD = 10; int servopozitie; int servopos; int nou1; Software Serial bluetooth (TxD, RxD);
Acum, configurați toate variabila și componentele la etapa inițială. Aici ne - am atașat servo la 9 - lea PIN al Arduino și a făcut poziția inițială de servo la 0 grade. Rata de transmisie pentru comunicațiile seriale și Bluetooth a fost, de asemenea, setată la 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // porniți comunicarea în serie la 9600bps bluetooth.begin (9600); }
În funcția de buclă nulă , Arduino va verifica valorile primite tot timpul și va roti servo în funcție de valoarea primită de pe telefonul inteligent. Toate valorile vor fi primite folosind Comunicarea Serială.
Dacă valoarea este 0, servo se va roti la 0 grade. În mod similar, dacă trimitem 45, 90, 135 și 180 din aplicația Bluetooth, servo se va roti la un unghi de 45, 90, 135 și respectiv 180 de grade.
bucla void () { if (bluetooth.available ()) { Valoarea șirului = bluetooth.readString (); servopoziție = 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); }
Dacă trimitem valoarea „1” apăsând butonul Start, atunci servo se va roti continuu până când butonul de oprire este apăsat. Aici trimitem „2” apăsând butonul stop , care va fi citit de Arduino și va întrerupe bucla while și servo-ul va fi oprit.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (valoare); if (value.toInt () == 2) {Serial.println ("AAA"); pauză; }} servopos ++; întârziere (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Funcționarea controlului servomotorului utilizând Bluetooth:
În acest proiect, controlăm Servo Motor folosind o aplicație Android „Roboremo”. În interfața acestei aplicații, am creat 5 butoane pentru a controla motorul Servo, așa cum am explicat mai devreme. Funcționarea fiecărui buton este dată în tabelul de mai jos:
S.Nr. |
Nume buton |
Valoare de trimitere |
Descriere |
1. |
start |
1 |
Acest buton este utilizat pentru a începe rotirea servo-ului de la 0⁰ la 180⁰. |
2. |
Stop |
2 |
Acest buton este utilizat pentru a opri servo-ul în orice punct. |
3. |
0⁰ |
0 |
Acest buton este utilizat pentru a roti servo la 0 to. |
4. |
90⁰ |
90 |
Acest buton este utilizat pentru a roti servo la 90⁰. |
5. |
180⁰ |
180 |
Acest buton este utilizat pentru a roti servo la 180⁰. |
Deci, prin apăsarea acestor butoane pe aplicația dvs. Android Roboremo , datele vor fi trimise prin modulul Bluetooth al smartphone-ului către modulul Bluetooth HC-06. Din acel modul HC-06, datele sunt primite de Arduino, iar Arduino rotește Servo la unghiul definit în cod pentru butonul respectiv. De asemenea, am codificat unghiurile 45 și 135, dar datorită limitării aplicației Roboremo, puteți crea doar 5 butoane, așa că am omis două butoane.
Deci, așa puteți trimite datele de pe Smartphone către Arduino folosind Bluetooth pentru a controla servo-ul fără fir. Acest lucru poate fi utilizat în multe aplicații, cum ar fi mașinile de jucărie, roboții etc.