UUNNIIVVEERRSSIITTAATTEEAA TTEEHHNNIICCĂĂ ddiinn CCLLUUJJ–NNAAPPOOCCAA [617193]

UUNNIIVVEERRSSIITTAATTEEAA TTEEHHNNIICCĂĂ ddiinn CCLLUUJJ–NNAAPPOOCCAA
FACULTATEA de INGINERIE ELECTRICĂ

COMANDA LA DISTANȚĂ A UNUI ROBOT MOBIL
CU TRANSMISIE VIDEO

I. ENUNȚUL TEMEI:
………………………………………………………..

II. CONȚINUTUL proiectului de diplomă
a) Piese scrise
b) Piese desenate
c) Anexe

III. LOCUL D OCUMENTĂRII:
…………………………………………………

IV. CONDUCĂTOR ȘTIINȚIFIC: Călin MĂRGINEAN

V. Data emiterii temei:

VI. Termen de predare: 10.07.2020

Conducător științific , Absolvent,
(funcția didactic ă, titlul științific,Călin MĂRGINEAN Mihaela -Diana HIRIPAN
(semnătura )

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 2

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 3

Declarație -angajament : De oarece acest proiect de diplomă nu ar fi putut fi finalizat fără
ajutorul membrilor departamentului de Mașini și Acționări Electrice și a echipamentelor de la
departament , mă angajez să public infor mațiile conținute în lucrare numai cu acordul scris al
conducătorului științific și al directorului de departament .

Data: 10.07.2020 Semnătura

Declarație : Subsemnatul Hiripan Mihaela -Diana declar că am întocmit prezentul proiect de
diplom ă prin eforturi proprii, fără nici un ajutor extern, sub îndrumarea conducătorului științific
și pe baza bibliografiei indicate de acesta.

Data: 10.07.2020 Semnătura

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 4

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 5

1. Introducere
1.1 Scopul lucrării
1.2 Scurt istoric
1.3 Clasificare genera lă a robotilor
2. Microcontrollere
2.1 Ce este un microcontroller?
2.2 Limbaje de programare
2.3 Criterii de alegere a unui microcontroller
3. Mediul de dezvoltare Arduino
4. Bluetooth
4.1 Versiuni de Bluetooth
5. Wi -fi
6. Proiectare si implementare
6.1 Descrierea compone ntelor hardware utilizate:
6.2 Componentele software
6.2.1 Aplicația mobile pentru control prin Bluetooth (Arduino Bluetooth Control)
6.2.2 Aplicația Arduino pentru comunicare Bluetooth
6.2.3 Aplicația mobile pentru control prin Wi -Fi
6.2.4 Aplicația Arduino pentru comunicare Wi -Fi
6.3 Mașina controlată prin modulul Bluetooth HC -05 din aplicația de pe telefon.
6.4Mașina comandată Wi -Fi cu ESP8266
7. Concluzii
8. Viitoare Îmbunătățiri
9. ANEXE
10. Bibliografie

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 6

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 7

1. Introducere

1.1 Scopul lucrări i

Această lucrare are ca scop dezvoltarea unui robot mobil care să se deplaseze în funcție de
comenzile primite din aplicația de pe smartphone.
În prima fază a lucrări i se arată comanda wireless prin mod ulul bluetooth HC -05 iar mai apoi
comandă Wi -Fi printr -un modul integ rat în plac a de dezvoltare NodeMCU ESP8266 și
transmisie video în timp real a traseului parcurs de robot, cu ajutorul camerei integrate din
smartphone.
Pentru deplasarea aces tuia se vor utiliza 4 motoare de curent continuu cu reductoare.

1.2 Scurt istoric

Datorită evoluției , oamenii au început să iși construiască diferite unelte pentru a -l ajuta și pentru
ai ușura munca și viața de zi cu zi.
Începând de la banala roata descoperită în urma cu mai bine de 5000 de ani sa ajuns astăzi la
mașinării complexe, car e-i permit sa iși gestioneze mai bine timpul.
Prima dată termenul de „robot” a fost utilizat de scriitorul ceh, Karel Čapek în piesa R.U.R, , în
anul 1920 .
În perioada Revoluției Industriale, atunci când era posib ilă utilizarea sistemelor meca nice
complexe și a energiei electrice a apărut conceptul de robot modern.
Primii roboți mobili au fost inventați de Wiliam Grey Walter în anii 1948 (Elmer) respectiv
1949 (Elsie) . Acestia erau capabili să urmărească o sursă de lumină și să evite obstacole.

Figura 1 .2.1 Robotul Elsie

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 8
Primul robot industrial a fost fabricat in 1938 si avea aspectul unei maca rale și u n singur motor
pentru acționare. Avea 5 grade de libertate.
Acest robot nu putea fi utilizat l a o diversitate mare de acțiuni dar, era capabil să așeze anum ite
obiecte în stive.
Primul robot programabil și operabil î n sistem digital a fost creat de George Devol î n 1954
primind numele de Unimate .
Unimate, a fost angajat pe linia de asamblare General Motors din 1961. Jobul său era acela de a
transporta piesel e turnate din linia de asamblare, astfel încât acestea să poată fi sudate pe
caroserii auto.
A fost primul robot modern folosit pentru a efectua munca care înainte era efectuată de oameni.
[1] [2]

Figura 1 .2.2 Robotul Unimate [3]
In anii 1960 apare robot ul Shakey, dezvoltat la Centrul de Inteligenta Artificialaal Institutu lui
de Cercetare Stanford.

Figura 1.2 .3 Robotul Shakey [4]

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 9 Pentru a se putea realiza sisteme autonome este necesară legarea mai multor disc ipline de
robotică, punând accent pe intel igența artificială sau neuroinf ormatică.
Cele mai importante componente ale roboților sunt senzorii, care permit mobilitatea acestora în
medi u și o dirijare cât mai precisă

1.3 Clasificare general ă a robotilor
În funcție de mediul în care robotul acționează:
– Roboți tereștri
– Roboti aerieni
– Roboti maritini
În funcț ie de utilizarea lor pot fi:
– Roboți industriali
– Roboți casnici
– Roboți de exploatare
– Roboți militari
– Roboți de companie
– Roboți de divertisment
Din punct de vedere al gradului de libertate:
– Robot fix
– Robot mobil
Din punct de v edere al interacțiunii om -robot:
– Roboți automati
– Roboți biotehnici
– Roboți interactive
[5]

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 10 2. Microcontrollere

2.1 Ce este un microcontroller?

General , un controler este o structură electronică pentru controlul ui unui proces sau,
mai general a unei interacțiuni caracteristice cu mediul exterior, fără să fie necesară intervenția
omului.
O altă definiție ar fi aceea că un microcontroler este un microcircuit care incorporează
o unitate centrală (CPU) și o memorie împreună cu alte resurse care ii permit interacțiunea cu
mediul exterior.
De asemenea se poate spune că un microcontroller este un calculator pe un singur chip
utilizat pentru implementarea operatiilor de control.
Primele controlere au fost realizate cu tehnologii analogice. Cele realizate pe baza
tehnicii numerică modernă au fost realizate i nițial pe baza logicii cablate (cu circuite integrate
numerice standard SSI și MSI ) și a electronici analogice complexe.
Apariția microprocesoarelor a dus la o reducere consistentă a costurilor, dimensiunilor,
consumului. Există și la ora actuală astfel de controlere realizate în jurul un or microprocesoare
cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.
Pe un singur chip se găsesc : oscilatorul, memoria (RAM, ROM, EEPROM),
numărătoare, blocuri analogice, interfețe de comunicați e și porturi de intrare -ieșire.
UCP – Unitatea Centrala de Prelucrare e ste cea care realizează extragere a instrucțiunilor din
mem oria de program și executarea acestora . Aceasta conține UAL – Unitatea Aritmetico Logică
care realizează diferite operații aritm etice și logice.
Fiecare cuvant se caracterizeaza printr -o locatie de memorie sau adresa.
Se impart in doua categorii:
❖ Volatile – datele se pierd la intreruperea alimentarii:
– DRAM (Dynamic Random Access Memory)
– SRAM (Static Random Access Memory)
❖ Nevolatile – utilizate pentru stocarea codurilor de program sau informațiilor care nu se
schimbă niciodata :
– ROM (Read Only Memory): se programeaza printr -un programator
– EPROM (sau UV -EPROM – Ultra Violet Erasable Programable ROM): Foloseste
unda ultraviolet care se aplica pentru stergere printr -o “fereastra” de pe cip

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 11 – OTP (‘one -time programmable’): practic este o memorie PROM identică intern
cu varianta EPROM, dar fără fereastra de cuarț pentru ștergere (deci și mai
ieftine)
– FLASH EPROM: este o soluție mai bună decâ t EPROM -ul propriu -zis atunci
când este necesar u n volum mare de memorie program.
– EEPROM -(Electrically Erasable Programmable ROM): destinată memorării unui
număr limitat de date care eventual trebuie modificate câteodată. Fiecare locati e
din program poate fi stearsă individual
– NOVRAM (RAM nevolatil) – realizat prin alimentarea locală prin baterie,
acumulatori a unui RAM CMOS atunci când este necesar un volum mare de
memori e. Este mult mai rapidă decât toate celelalte și nu are limită asupra
numărului de c icluri.

2.2 Limbaje de programare:

➢ Limbajul mașină și cel de asamblare

Limbajul mașină este singura formă de reprezentare a informației pe care un microcontroler
o "înțelege".
Această formă de repre zentare a informației nu este practică pentru cel car e programează ,
care va utiliza cel puțin un limbaj de as amblare, în care o instrucțiune are drept corespondent
o instrucțiune în limbaj mașină.
Un program în limbaj de asamblare este rapid și compact. Limbajul de asamblare este
primul care trebuie învățat, atunci când dori m să proiectăm o aplicație hard sau soft cu un
microcontroller, astfel se poate înțelege mai bine arhitectur a acestuia .

➢ Interpretere:

Un interpreter este o implementare a unui limbaj de nivel înalt . Acest limbaj este de fapt un
program care rulează pe o platformă de calcul de tip microcontroler. Caracteristic pentru
execuția unui program interpretat, este citirea și executarea secvențială a instrucțiunilor .
De fapt fiecare instrucțiune de nivel înalt este interpretată într -o secvență de instrucțiuni
mașină care se execută imediat.
Cele mai utilizate interpretere sunt cele pentru limbajele BASIC și FORTH

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 12 Marele avantaj al utilizării unui interpreter este dezvoltarea interactivă și incrementală a
aplicației: se scrie o porțiune de cod care poate fi testată imediat, instrucțiune cu
instrucțiune .
➢ Compilatoare:
Este u șor de programat și are viteză mare de execuție a codului . Pentru aceasta programul,
limbaj -ul de nivel înalt, este translatat direct în limbaj ma șină sau în limbaj de asamblare.
Codul mașină rezultat are dimensiuni relativ mari se execute direct de microcontroler. În
general codul generat poate fi optimizat( dimensiunea, timpul de executare). [14]

Figura 2.1.1. Structura interna a unui microcontroller [15]

Toate aplicațiile în care se utilizează microcontrolere fac parte din categoria așa
ziselor embedded systems ( sisteme încapsulate -integrate ).
Aceste dispozitive ‘inteligente’ le regăsim zi de zi în: telefoane, automobile ,
electrocasnice , sisteme de siguranță , jucării, elemente de control , electronice etc.
În industria de automobile, în anul 1999, un BMW seria 7 utiliza 65 de microcontrolere,
iar un Mercedes din clasa S utiliza 63 de microcontrolere.

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 13 2.3 Criterii de alegere a unui microcontroller

Când dorim sa achiziționăm un microcontroller trebuie sa luăm în calcul anumite astepte legaate
de:
✓ Costurile aferente aplicației:
✓ Timpul necesar dezvoltării acesteia :
✓ Caracterist icile fizice cum ar fi: viteza de calcul, memoria necesară, necesitatea unei
memorii externe, tipul de alimentare, numărul și felul intrărilor și/sau ieșirilor necesare:
analogice, digitale.
✓ Conectivitatea : resursele de comunicație necesare, tipuri de magi strale seriale,
conectivitate Ethernet, USB sau wireless (Bluetooth, Wi -Fi).
✓ Compatibilitate și posibilitatea de dezvoltarea ulterioară: ce tipuri de circuite se poate
interfața cât mai simplu: sisteme de afișare, senzori, elemente de comandă și execuție,
relee, motoare de cc, motoare pas cu pas, etc.
[16] [17] [18]

3. Mediul de dezvoltare Arduino

Proiectul Arduino a fost început la IDII, Italia. Atunci studenții foloseau
un microcontroler BASIC Stamp la un preț de 50 USD. În 2003, Hernando Barragán a creat
platforma de dezvoltare Wiring ca proiect de teză de master .
Scopul proiectului a fost de a c rea instrumente simple, cu costuri reduse pentru crearea de
proiecte digitale de către non -ingineri. Platforma de cablare consta dintr -o placă de circuit
imprimat (PCB) cu un microcontroler ATmega 168, un IDE bazat pe funcții de procesare și
bibliotecă pentru a se putea programa microcontrolerul cu ușurință. În 2005, Massimo B anzi,
împreună cu David Mellis, un alt student și David Cuartielles, au adăugat asistență pentru cel
mai ieftin microcontroller ATmega8 la Wiring. Au renunțat la acest proiect și l -au redenumit
Arduino . [19]
Companie open -source , Arduino, produce atât partea de hardware adică plăcuțe de
dezvoltare bazate pe microcontrol lere, cât și partea de software destinată func ționării și
programării lor .
Pe lângă microcontroller pe placă mai există și alte elem ente:
-tasta de reset

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 14 -o serie de intrări și ieșiri digitale . Acestea sunt numite în practică pini.
-o altă serie de pini, intrări analog ice.
-o altă serie de pini livrează curent, masa etc
-borna de alimentare
-borna USB(este folosită pentru a incarca programul în microcontroller și pentru alimentare) .
[20]

Plăcile Arduino sunt echipate în principal cu m icrocontrollere Atmel AVR, dar există și plăci
echipate cu microcontrollere de tip ARM, sau din familia x86.
Placa Arduino Mega 2560 este bazată pe microcontrollerul Atmel AVR ATMega2560, pe 8 biți.
Ea dispune de 54 de pini digitali pentru intrare/ieșire, și 16 pini pentru preluare de semnale
analogice. Unii pini pot avea funcție multiplă, constituind semnale pentru diferite interfețe de
comunicație (UART, SPI, I2C).
Microcontrollerul are o fre cvență de 16 MHz, alimentare prin cablul USB, sau poate fi
alimentată cu o sur să de tensiune continuă, de 7 -12 V, care poate furniza o intensitate a
curentului de minim 0.25 A. Alimentarea de la o sursă externă este necesară când placa trebuie
să alimenteze consumatoare mari, precum motoare, shield -uri GSM, etc. [21]

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 15

Figura 3.1. Pini plăcuței de dezvoltare Arduino Mega [22]

UART( Universal Asynchronous Receiver and Transmitter) p ermite Arduino -ul să
comunice serial cu alte dispositive .
ICSP (In-Circuit Serial Programming) – cu ajutorul său este primit pr ogramul.
Este compus din 6 pini:

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 16

Figura 3.2 Pini ICSP

I2C: I2C este un protocol de comunicare serial care folosește SCL (Serial Clock) și SDA
(Serial Data) pentru a primi și trimite date între două dispozitive. SCL este o linie de ceas
iar SDA este o linie de date .
Pini Analogici : În număr de 16 de la A0 – A15, de asemenea, pot acționa ca pini GPIO
(General Purpose Input Output).
Pini digitali: 54 de pini digitali de intrare / ieșire de la pinul 0 la 53. Cei 15 pini de la I / O
digitali sunt pinii PWM ( pulse width modulation ) numerotați de la D2 – D13 și D44 –
D46.
SPI-SCK: Este o interfață serială periferică . Este utilizat în mod frecvent de
microcontrol lere pentru a comunica rapid dispozitivele periferice. SCK este ceas serial.
MISO: Reprezintă ieșirea de tip Master In / Slave. Linia de slave este utilizată pentru a
trimite date către master.
MOSI: Reprezintă ieșirea master / intrarea slave . Linia MOSI transportă datele de la
Arduino la dispozitivele de control ale SPI. Linia de slave din MOSI este ut ilizată p entru
a trimite date către dispozitivele periferice .
SS(Slave Select): Este folosită de către master, acționează ca linie de activare. MISO,
MOSI și SS suportă comunicarea SPI.
IOREF( Input Output voltage REFerence ): Permite shield -urilor să verifice tensi unea de
funcționare (3.3V sau 5V) a plăcii. Acestea sunt conectate la placa Arduino.
Microcontrollerul funcționează cu tensiunea d e referință furnizată de IOREF.

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 17 – 5V: Pinul de 5V funcționează ca tensiunea reglată la ieșire de 5V.
– 3.3V: Pinul 3 .3V funcți onează ca t ensiunea reglată la ieșire de 3. 3 V.
– RX și TX:
– Vin: tensiunea de intrare atunci când se utilizează o sursă de alimentare externă.
[23]

4. Bluetooth

„Bluetooth” este o traducere în engleză a cuvântului scandinav Blåtand/Blåtann, cum era
supranumit regele viking Harald I al Danemarcei din sec. În limba română bluetooth s -ar traduce
„dinte albastru”.
Bluetooth este un standard care elimină cablajele între dispozitive facilitând atât
comunicațiile de date cât și pe cele vocale . Oferă posibilitatea implementării unor rețele ad -hoc
și a sincronizării între diverse dispozitive.
Tehnologia Bluetooth operează în gama de frecvență 2400 –2483.5 MHz pentru comunicațiile
globale nelicențiate, iar pentru domeniul Științific simedical frecvența de 2.4 GHz ( unde radio
de frecvența scurtă). Bluetooth folosește tehnologia numita „frequency -hopping spread
spectrum”. Datele transmise prin această tehnică sunt împărțite î n mai multe pache te, iar fiecare
pachet este transmis pe unul din cele 79 de canale . Fiecare canal are o lungime de banda de
1MHz. Prim ul canal începe la 2402MHz și continuă pana la 2480MHz.
Cu ajutorul tehnologiei wireless Bluetooth se pot face schimb de informații între diverse
dispozitive precum telefoane mobile, laptop -uri, calculatoare personale, imprimante, camere foto
și video dig itale sau console video prin unde radio cr iptate și de rază mica.
Pentru a comunica Bluetooth este necesar ca dispozitivele să se gasească în aceași rază de
acoperire.

4.1 Versiuni de Bluetooth:

➢ Bluetooth 1.0 și 1.0B – multe probleme tehnice
➢ Bluetooth 1.1 – Standardizat în 2002 sub IEEE 802.15 .1-2002 . Erorile găsite la versiunea
1.0B au fost reparate, s -a oferit suport pentru canale necriptate și sa adăugat un indicator al
puterii semnalului de transmisie.
➢ Bluetooth 1.2 – Standardizat în 2005 sub IEEE 802.15 .1-2005 . Aceasta versiune este
compa tibilă cu 1.1. Viteza de transm isiei a datelor a fost mărită la 721 kbps.

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 18 ➢ Bluetooth 2.0 – Această versiune este compatibilă cu versiunile 1.x. Principala îmbunătățire
este introducerea unei viteze de transmisie mai mari numite Enhanced Data Rate, care
permite o viteză de 3,2 Mbit/s.
➢ Bluetooth v3.0 – Versiunea 3.0 a fost adoptată în 2009. Bluetooth 3.0 îmbunătățe ște viteza
de transfer care a junge până la 24 Mbit/s (în teorie) . Saltul vitezei a fost posibilă datorită
introducerii unei legături 802.11. Îmbunătațirile nu se regăsesc și în cadrul unei conexiuni
cu un standard mai vechi datorită lipsei legăturii 802.11 în acele dispositive.
➢ Versiu nea 4.0 a tehnologiei Bluetooth Specification (numită Bluetooth Smart) a fost
adoptată la 30 iunie 2010. Aceasta include protocoalele Bluetooth High Speed și Blueto oth
Low Energy (BLE). Bluetooth Low Energy, cunoscut anterior sub numele de Wibree , este
un subset al tehnologiei Bluetooth v4.0, dest inat aplicațiilor de putere foarte scăzută destinat
să asigure un consum de energie și costuri considerabil reduse.
➢ Versiunea 4.1 – Versiune publicată în 2013.
➢ Versiunea 4.2 – Lansată pe 2 decembrie 2014 introduce caracteristici pentru IoT ( Internet of
Things ).
➢ Versiunea 5.0 – Această versiune a fost lansată în decembrie 2016. Noile sale caracteristici
se concentrează în principal pe tehnologia IoT. Bluetooth 5 vine cu trei îmbunătățiri majore
ale caracteristicilor comparativ cu versiunile anterioare:
• viteză de transfer de date dublă de la 1 Mbps la 2 Mbps și timpii de transmisie sunt reduși
la jumătate
• rază de acțiune de patru ori mai mare (în spațiu liber, raza de acți une a semnalelor
Bluetooth se așteaptă a depăși 1000 m utilizând același nivel de energie)
dimensiune de pachet de publicitate de opt ori mai mare. [24]
Emblema :

Figura 4.1 Emblema [25]

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 19

Figura 4.2 Model schemă de circuit a conectăr ii unui modul Bluetoo th HC -05 la o placă
Arduino Mega [26]

Exemplu de cod sursă pentru a permite comunicarea între placa Arduino și smartphone.
Pornirea si oprirea unui LED.
1. #define ledPin 7
2. stare int = 0 ;
3.
4. void setup ( ) {
5. pinMode ( ledPin , OUTPUT ) ;
6. digitalWrite ( ledPin , LOW ) ;
7. Serial. începe ( 38400 ) ; // Rata de comunicare implicită a modulului Bluetooth
8. }
9.
10. void loop ( ) {
11. if ( Serial. disponibil ( ) > 0 ) { // Verifică dacă datele provin din portul serial
12. stare = Serial. citiți ( ) ; // Cite ște datele din portul serial
13. }
14.
15. if ( starea == '0' ) {
16. digitalWrite ( ledPin , LOW ) ; // Opriți LED -ul
17. Serial. println ( "LED: OFF" ) ; // Trimiteți înapoi, la telefon, șirul „LED: ON”
18. stare = 0 ;
19. }
20. altfel if ( starea == '1' ) {
21. digitalWrite ( ledPin , HIGH ) ;
22. Serial. println ( "LED: ON" ) ;;
23. stare = 0 ;

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 20 24. }
25. }
Pașii:
• Se defineș te pinul unde este conectat LED -ul, în acest caz este pinul 7
• Se defineste și o variabilă în care vom stoca date le care provin de la smartphone (stare).
• Definim pinul LED ca ieșir e
• Se incepe cominicarea serial la 38400 baud rate, fiind rata de transfer implicită modului
de Bluethoot.
• În void loop se verifica daca sunt date disponibile pentru a fi citite cu ajutorul funcției
Serial.available ()
• Utilizând funcția Serial.read () vom c iti aceste date și le vom pune în variabila „stare”.

Dacă Arduino primește caracterul „0”, acesta va stinge LED -ul și va folosi serialul. funcția
println () pe care o va trimite înapoi la smartphone, prin portul serial, șirul „LED: OFF”.
Se resetează vari abila „stare” la 0 astfel încât cele două linii de mai sus să fie executate o singură
dată.
Variabila „stare” este întreagă, așa că atunci când primim caracterul „0” care provine de la
smartphone, valoarea reală a variabilei „stare” întregi este 48, car e corespunde caracterului „0”,
conform tabelul ASCII .
Dacă primește caracterul „1”, LED -ul se va aprinde, iar șirul „LED: ON” va fi returnat.

5. Wi -fi

Wi-Fi este numele unei tehnologii de comunicare fără fie, construite pe b aza standardelor
din familia IEEE 802.11 utilizate pentru realizarea de reț ele locale.
Rețelele Wi -Fi nu au nici o legătură fizica între transmițător și receptor deoarece folosește unde
radio pentru a transmi te informațiile la frecvențe de 2.4 GHz sau 5GHz.
Wi-Fi-ul în sine este folosit pentru conectarea la un router sau un punct de aces care furnizează
accesul la internet.

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 21 Un punct de acc es ia lățimea de bandă provenită de la un router și o “întinde” astfel încât multe
dispozitive să poată funcționa în rețea de la distanțe mai îndepărtate.
Wi-Fi este acceptat de multe aplicații și dispozitive, in clusiv console de jocuri video , telefoane
mobile, camera video, imprimante, electronice de consum, televizoare etc.

802.11 face parte dintr -o familie de standarde pentru comunicațiile în rețele locale, elaborate de
IEEE, și din care mai fac parte standarde pentru alte feluri de rețele, inclusiv standa rdul 802.3,
pentru Ethernet. Deoarece Ethernet era din ce în ce mai popular la jumătatea anilor 1990 noul
standard este compatibil cu acesta, din punctul de vedere al transmiterii pachetelor.

Aria de acoperire a unei rețele Wi -Fi standard poate ajunge până la 100 d e metri în aer liber.
Clădirile și alte materiale reflectă semnalul, plantele absorb radiațiile electromagnetice ceea ce
face ca majoritatea rețelelor Wi -Fi să fie mult mai restrânse. De obicei între 10 -35 metri.
Puterea antenei și frecvența(5 sau 2.4 GHz) pot afe cta, de asemenea, aria de acoperire a rețelei.
Frecvențele înalte au intervale efective mult mai scurte decât 2.4GHz. [27]

6. Proiectare si implementare
6.1 Descrierea componentelor hardware utilizate:
a) Placa de dezvoltare Arduino Mega

Figura 6.1.1 Arduino Mega 2560 [28]

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 22
b) Motor de curent continu u( DC Motor)

Figura 6.1.2. Motor de current continuu
Descriere:
Diametru roată: 65mm;
Reducție motor: 1:48;
Tensiune de alimentare motor: 3V – 6V DC;
Cuplu: 0.8 kg * cm;
RPM: 3V:125rpm, 5V:200rpm, 6V:230rpm;
Curent: 3V:60mA, 5V:10 0mA, 6V:120mA.
Motoarele clasice de curent continuu convertesc energia electrică în lucru mecanic. Viteza de
rotație este propoțională cu tensiunea de alimentare, iar direcția de rotație depinde de polaritate(
+VCC și Gnd).
Aceste motoare sunt prevăzute cu o cutie de viteze, reductor de turatie, cu rapoertul de 1:48,
adică pentru o rotație completa a axului extern se efectueaza de fapt 48 de rotații ale motorului
electric.
Pentru a produce mișcare este nevoie de o intesitate mare a curentului de aceea moto arelel nu pot
fi conectate direct la pini unui microcontroller fiind nevoie de utilizarea punților H.
Aceasta punte separă semnalele de comandă de circuitul de putere. Ele conțin 4 comutatoare, de
obicei tranzistori. [29]

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 23

Figura 6.1.3. Schema unei punț i H [30]

Porțile S1 și S4 sunt conectate la un semnal de control comun iar S2 și S3 la un alt semnal de
control comun. Atunci când sunt deschise comutatoarele S1 și S4 motorul se va roti într -o
direcție, iar când sunt deschise comutatoarele S2 și S3 moto rul se va roti in direcția opusă.
Turația unui motor este dată de tensiunea aplicată acestuia, deoarece din microcontroller putem
genera doar semnale cuprinse între 0 și 5 V, pentru a varia turația folosim un semnal de tip
PWM( Pulse Width Modulation) apli cat pe pinii IN1 IN2 IN3 și IN4 ai driver -ului L298N
folosit.
Acest diver poate controla două motoare de curent continuu in acelaș timp. Pentru fiecare motor
există trei pini de control, EnA, IN1 si IN2 pentru motorul 1, iar pentru controlul motorului 2
EnB, IN3 și IN4.
c) Driver L298N

Figura 6. 1.4. Driver -ul L298N

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 24

Figura 6. 1.5. Diagrama unui driver -ul L298N

L298N este un circuit integrat monolitic de voltaj si curent mare, p untea H dublă este proiectată
să accepte nivele logice standard TTL pentru cont rol.
Poate fi folosit pentru controlul de relee, motoare de curent continuu sau pas cu pas. Fiecare
punte poate fi activată sau dezactivată independent de la pinii ENA, ENB. Modulul conț ine si un
circuit stabilizator de tensiune (5V) care permite funcționa rea la tensiuni mari.
Caracteristici tehnice:
-Tensiune de operare: pana la 40V
-Curent de operare: pana la 3A (25W in total)
-Curent mic de saturatie
-Protecție la supraîncingere
-Poate opera cu 2 motoare simultan
-Imunitate mare la zgomot: Nivel logic "0 " input pana la 1,5V
-Incorporat regulator de tensiune 78M05. Pentru evitarea defectarii acestui integrat, folositi o
sursa logica externa de 5 V, atunci cand tensiunea de alimentare depaseste 12 V.

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 25 Viteza unui motor cu curent continuu poate fi controlată prin variația tensiunii de intrare. O
tehnică obișnuită pentru a face acest lucru este utilizarea unui semnal PWM .

PWM este o tehnică în care valoarea medie a tensiunii de intrare este ajustată prin trimiterea
unei serii de impulsuri ON -OFF. Tensiunea m edie este proporțională cu lățimea impulsurilor
cunoscute sub denumirea de Duty Cycle (ciclu de funcționare) . Cu cât ciclul de funcționare este
mai mare, cu atât tensiunea medie aplicată motorului continuu este este mai mare și viteză creste
implicit la ciclul de funcționare mai mic, tensiunea medie aplicată motorului continuu scade deci
viteză este mică . [31]

Figura 6. 1.6. PWM [32]

d) Modul Bluetooth HC -05

Figura 6. 1.7. Modului Blu etooth HC -05 [33]

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 26
Aceste modul este utilizat pentru comunicare fără fir între Arduino si alte dispozitive. HC 05
poate avea o configurație Master sau Slave. În mod implicit starea este Slave.
Pentru a schimba starea din Slave în Master sau invers poate fi configurat doar de AT
COMMANDS .
Modulul Bluetooth HC -05 este f olosit pentru a trimite date către Arduino si diverse dispozitive,
pentru control și/sau comunicare. Este bazat pe modularea 3Mbps Bluetooth V2.0 + EDR (rata
îmbunătățită a datelor) cu un receptor radio de 2,4 GHz și bandă de bază.

Specificații tehnice:

Tensiune de alimentare: 3,6 – 6V;
Consum curent: maxim 30mA;
Pinii I / O compatibili cu 3,3 V;
Comunică serial UART;
Baudrat: 9600 -460800 bps;
Distanța de transmisie până la 10m;
Putere de transmisie: + 4dBm;
Sensibilitate la recepție: -80dBm.
Descriere pi ni:

1. EN/ KEY Se fo loseste pentru a aduce modulul î n modul de comandă AT.
2. VCC Se conectează la 5V (sau 3.3V).
3. GND Pinul de masă.
4. TXD Acest pin se conecteaza la pinul RXD al microcontrollerului. Transmite date seriale.
5. RXD Se va conecta la pinul TXD al micr ocontrolerului.
6. Stare Indică daca modulul este conectat sau nu.

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 27

Figura 6. 1.8. Modul de conectare a pinilor de la HC -05 la Arduino [34]
NodeMCU ESP Lua WI -FI 8266 CP2102

Figura 6.1.9. Placă de dezvoltare NodeMCU ESP8266 [35]
Caracteristici tehni ce:
• Voltaj: 3.3V.
• Wi-Fi Direct (P2P), soft -AP.
• Consum curent: 10uA ~ 170mA.
• Memorie flash atașabilă: maxim 16MB (normal 512K).
• Protocolul TCP / IP integrat.
• Procesor: Tensilica L106 pe 32 de biți.
• Viteza procesorului: 80 ~ 160MHz.
• RAM: 32K + 80K.
• GPIO: 17 (multiplexate cu alte funcții).
• Analogic la digital: 1 intrare cu rezoluție de 1024 pas.
• Putere de ieșire : + 19,5 dBm în modul 802.11b
• Suport 802.11: b / g / n.
• Conexiuni maximale concurente TCP: 5

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 28 [36]

Figura 6.1.10. Chipul ESP -12E și antena de 2.4 GH z

Placa de dezvoltare echipează modulul ESP -12E care conține cip ul ESP8266 cu microprocesor
RISC Tensilica Xtensa® 32 -bit LIS106, care funcționează la frecvența de ceas reglabilă de la 80
până la 160 MHz și suportă RTOS.
Este dotat cu memorie Flash de 128 KB RAM și 4 MB pentr u stocarea de programe și date.
Acesta nu poate doar să se conecteze la o rețea WiFi ci și să i nteracționeze cu internetul, de
asemenea poate configura și o reț ea proprie, permițând conectarea altor dispozitive direct la el .
Acest luc ru face ca NodeMCU -ul ESP8266 să fie și mai versatil.
Acest modul necesita tensiune de funcționare între 3V -3,6V de aceea placa conține un regulator
de tensiune LDO pentru a menține tensiunea constanta la 3.3V. Poate furniza până la 600MA.
Ieșirea regulat orului este divizată pe una din fe țele plăcii și notată ca 3,3V, a cest pin poate fi
utilizat pentru a furniza e nergie pentru componentele periferice .

Figura 6.1.11 Regulatorul de tensiune încorporat pe placă

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 29
Modulul NodeMCU ESP8266 este aplimentat prin intermediul micro USB -ului de la placă.
ESP8266 NodeMCU are în total 17 pi ni GPIO.
Acești pini pot fi alocați la tot felul de periferice, inclusiv:
• Canal ADC – Un canal ADC pe 10 biți.
• Interfața UART – este utilizată pentru a încărca serial codul.
• Ieșiri PWM – pentru LED -uri sau pentru controlul motoarelor.
• Interfață SPI, I2C & I2S – Interfață SPI și I2C pentru a conecta tot felul de senzori și
periferice.
• Interfață I2S – Interfață I2S dacă doriți să adăugați sunet la proiectul dvs. [37]

Figura 6.1.12 Pinii GPIO ai Modului NodeMCU ESP8266 [38]
Singurul lucru de care trebuie să avem grijă este că pinii NodeMCU sunt numerotați diferit
față de notațiile GPIO interne ale ESP8266, așa cum se arată în figura de mai sus. De
exemplu, pinul D3 al NodeMCU es te asociat cu pinul 0 al GPIO intern al ESP8266.
Pinii GPIO pot fi fie pin de intrare, fie pin de ieșire. Un singur pin poate acționa ca PWM /
UART / SPI.
Comunicația serială :
Pe placa există un convertor CP2102 USB -to-UART care transformă semnalul USB în serial
și permite computerului să programeze și să comunice cu cipul ESP8266.

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 30

Figura 6.1.13. Convertorul CP2102

Modulul ESP8266 NodeMCU are în total 30 de pini.

Figura 6.1.14 Totalitatea pinilo NodeMCU ESP8266.

NodeMCU SPI cu Arduino IDE

SPI(interf ața serială periferică) este un protocol de conectare a interfeței magistralei.
Interfața SPI foloseșt e patru fire pentru comunicare de aceea mai este cunoscut ă și sub numele de
protocol de comunicare serială cu patru fire.
SPI este un protocol complet de comunicare master -slave duplex, înseamnând că doar un singur
master și un singur slave pot comunica în magistrala de interfață în același timp.
Dispozitivele activate SPI funcționează în două moduri de bază : SPI Master Mode și SPI Slave
Mode.

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 31 Dispozitivul master este responsabi l pentru inițierea comunicării, generând Serial Clock p entru
transfer sincron de date și poate gestiona mai multe dispoziti ve slave din magistrală , selectându –
le pe rând.
NodeMCU bazat pe ESP8266 are SPI hardware cu patru pini disponi bili pentru comunicarea SPI
(SD1, CMD, SD0, CLK) .

Figura 6.1.15 Pini SPI [39]

NodeMCU I2C cu Arduino IDE

I2C (Inter -Integrated Circuit) este protocolul de conec tare a interfeței seriale a magistralei .
Pentru comunicare sunt necesare doua fire . Acest e două fire sunt SDA (date seriale) și SCL (ceas
serial).
I2C este un protocol de comunicare bazat pe confirmare, adică transmițătorul verifică dacă datele
sunt primite cu succes de către receptor.
I2C lucrează în două moduri:
• Modul Master
• Modul Slave
SDA este utilizat pentru schimbul de date intre master si slave iar SCL este utilizat pentru ceasul
sincron dintre dispozitivul master și c el slave.
Dispozitivul master pentru a putea iniția comunicarea cu dispozitivul slave are nevoie de adresa
acestuia.
Modu lul NodeMCU are disponibili pini GPIO pentru comunicarea I2C.
Datorită funcționalității interne pe ESP -12E nu putem folosi toți pini GPIO pentru comunicare
I2C, de aceea trebuie făcute teste înainte.

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 32 6.2 Componentele software

Partea software a acestui proie ct constă în două aplicații Arduino IDE, una pentru
comunicarea Bluetooth pe placa Arduino Mega, iar una pentru comunicare Wi -Fi pe placa
NodeMCU ESP8266.
Pe lângă aplicatiile dezvoltate in Arduino, mai există doua aplicații pe mobile una pentru
fiecare comunicație.

6.2.1 Aplicația mobile pentru control prin Bluetooth (Arduino Bluetooth Control)
Această aplicație se găsește în Magazin Play. Este nevoie doar de configurarea butoanelor
din aplicație.

Figura 6.2.1.1 Interfața aplicatie control HC -05

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 33

Figura 6.2.1.2 Configurarea butoanelor

6.2.2 Aplicația Arduino pentru comunicare Bluetooth

Se definesc pini iar în void setup se seteaza pini ca ieșire. Aceasta se rulează o singura data.
În continuare se setează rata de transfer. Se verifică dacă se p oate efectua transmisia, dacă este
disponibil se citește variabila “t”. În funcție de caracterul care este trimis din aplicație către
Arduino, mașinuța se mișcă înainte, înapoi, virează la stânga sau dreapta.
De exemplu pentru secvența de cod de mai jos, p rin apăsarea butonulul căruia i -am atribuit
caracterul “F”, mașinuța va merge înainte.

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 34
void loop() {
if(Serial.available()){
t = Serial.read();
Serial.println(t);
}

if(t == 'F'){ // Toate motoarele se rotesc inainte
digitalWrite(10,HI GH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
analogWrite(9, 255);
analogWrite(3, 255);
}

6.2.3 Aplicația mobile pentru control prin Wi -Fi
Pentru comunicarea Wi -Fi am creat o aplicatie în Blynk. app
Ce este Blynk?
Blynk e ste o companie de tehnologie care dezvoltă infrastructu ra pentru IoT(Internet of
Things).
Poate controla hardware -ul de la distanță, poate afișa datele senzorilor, poate stoca date,
vizualiza etc.
Blynk acceptă platforme hardware precum Arduino, Raspberry Pi, ESP8266 și alte placi de
microcontrolere . Suportă conexiuni de tip Ethernet, Wi -Fi, Bluetooth, Cellular și Serial.
Aplicația Blynk permite crearea unei interfețe pentru proiectele dvs. folosind dive rse
widg eturi. [40]
Pentru a crea aceastră aplicație este nevoie de instalarea biblioteca pentru Arduino IDE.
Aceasta stabilește comunicarea între placa și aplicația Blynk.
Există 3 moduri de a include această librărie:
1. Utilizarea managerului de bibliotecă încorporat în Arduino IDE
2. Instalarea bibliotecii Bly nk ca fișier ZIP în Arduino IDE
3. Instalați manual Blynk Library

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 35
Am ales prima variant ă. Din Sketch -Include Library -Manager Libraries.
Se caută Blynk, se selecteaza versiunea dorită apoi se instalează.[41]

Figura 6.2.3.1 Instalarea Biblioteci Blynk

Deoarece în acest proiect folosesc NodeMCU bazat pe esp8266 este necesar sa instalez si
biblioteca pentru acest modul.

Din meniul File alegem Preferences apoi în Additional Boards Manager URLs adăugam:
https://arduino.esp8266.com/stable/package_esp8266com_index.json . Apoi deschidem Boards
Manager din Tools și instalăm esp8266. [42]

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 36

Figura 6.2.3.2 Aplicatia Blynk pentru controlul Wi -Fi

V0-V7 sunt pini virtuali cu ajutor ul cărora se trimit date de la microcontroller la aplicația Blynk
și înapoi.
În acest caz se trimit date din aplicatie către microcontroller.
Când apasăm unul din butoane, aplicația Blynk trimite “1”, cand butonul nu este apăsat atunci
are valoarea “0”. A tunci c ând valoarea “1” este trimisă se execute funcția aferentă fiecărui buton.
De exemplu când este activat V0 mașinuța se va deplasa înainte.
În partea de jos se regăsește widget -ul pentru video streaming. Pe smartphonul montat pe robot
se instalează ap licația RTSP Camera Server. Se deschide aplicția și se fac setările de video și
audio dorite. Pe ecran se va afișa IP -ul smartphone -ului. Acesta se va scrie în setarea ferestrei

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 37 dedicată pentru video streaming din aplicația Blynk care rulează pe smartphon ul de pe care se
efectuează comenzile. În imaginea de mai jos este ilustrat acest lucru.

Figura 6.2.3.3 IP

După efectuarea celor enumerate mai sus, se dă start la streaming și se poate începe explorarea.
Astfel putem controla robotul dintr -o altă încap ere, pe aria de acoperire a rețelei Wi -Fi, putem
verifica în prealabil traseul parcurs și putem evita eventualele obstacole.

6.2.5 Aplicația Arduino pentru comunicare Wi -Fi

Se începe prin includerea bibliotecilor necesare funcționării, cea pentru modulul
esp82 66 si cea pentru aplicația Blynk.
Se defines pinii și doua constant care ne ajută la reglarea vitezei apoi se defines pini ca
ieșire.
În acest cod, există 8 pini virtuali, acestia nu am semnificație fizică, ei sunt niște funcții
care se apelează când este nevoie.
De exemplu în secvența de cod de mai jos, dacă pinul virtual V0 setat în aplicatia Blynk
are valoarea 1, adică este ON, se executa funcția iar mașinuța se va deplasa înainte cu
viteza maximă.

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 38
BLYNK_WRITE(V0) {
int button = param.asInt();
if (button == 1) {
Serial.println("Înainte");
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HIGH);
digitalWrite(IN_1,HIGH);
digitalWrite(IN_2,LOW);
digitalWrite(IN_3,HIGH);
digitalWrite(IN_4,LOW);

}
else {
Serial.println ("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digitalWrite(IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 39 6.3 Mașina controlată prin modulul Bluetooth HC -05 din aplicația de pe
telefon.

După asamblarea kit -ului am montat toate componentele electronice am făcut conexiunile
necesare între motoarele de cc, driver -ul L298N, modulul Bluetooth HC -05 și placa Arduino
Mega, apoi am încărcat codul cu RX0 și TX0 deconectate de la pl acă, deoarece dacă rămân
conectate se riscă arderea circuitului. După ce sa încărcat codul se conectează RX -ul de la HC –
05 la TX0 -ul de la Arduino și TX la RX0.

Figura 6.3.1 Mașinuța controlată Bluetooth( HC -05)

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 40
6.4 Mașina comandată Wi -Fi cu ESP8266 cu transmisie video în timp real

Figura 6.4.1 Mașina con trolată Wi -Fi (NodeMCU ESP8266)

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 41 7. Concluzii

În această lucrare se descrie modul de implementare a unui robot mobil, comandat la distanță, cu
o placă Arduino și interfața de comandă wireless de pe un telefon folosind comunicarea
Bluetooth și cu o placă NodeMCU ESP8266 comunicarea Wi -Fi din aplicația creată în Blynk.
Robot ul mobil comandat la distanță este capabil să preia informații din aplicațiile mobile
executând mișcar e și cu ajutorul camerei din smartphone -ul atașat robotului, acesta transmite
video în timp real.
Acest robot reperzintă o implementare practică a câtorva noțiuni dobândite în facultate.
Limitările acestui robot sunt legate de dist anța la care poate fi co mandat, aproximati v 10 metri la
comanda Bluetooth, iar la cea Wi -Fi între 10 -35 de metri plus durata de viață a bateriilor de
alimentare și bateria smartphonului.

8. Viitoare îmbunătățiri

Acest robot are multe posibile îmbunătățiri.
În primul rând achizit ionarea unei camera dedicate pentru a ușura robotul și pentru o mai bună
susținere, pentru a evita desprinderea smartphonului de suport când robotul efectuează mișcări
mai bruște.
Montarea unor senzori de exemplu de temperatură, umiditate etc pentru a avea o cunoaștere mai
amplă a mediului în care acționează robotul.

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 42 9. ANEXE

ANEXA 1 Codul Arduino pentru comunicare Bluetooth

#define ENA 3
#define ENB 9
#define IN_1 10
#define IN_2 11
#define IN_3 12
#define IN_4 13
char t;

void setup() {
pinMode (13,OUTPUT); //motoare stanga inainte
pinMode(12,OUTPUT); //motoare stanga inapoi
pinMode(11,OUTPUT); //motoare dreapta inainte
pinMode(10,OUTPUT); //motoare dreapta inapoi
pinMode(9,OUTPUT);
pinMode(3,OUTPUT);

Serial.begin(9600); //rata de t ransfer

}

void loop() {
if(Serial.available()){
t = Serial.read();
Serial.println(t);
}

if(t == 'F'){ // Toate motoarele se rotesc inainte
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 43 digitalWrite(13,LOW) ;
analogWrite(9, 255);
analogWrite(3, 255);
}

else if(t == 'B'){ // Toate motoarele se rotesc inapoi
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
analogWrite(9, 155);
analogWrite(3, 155);
}

else if(t == 'L'){ //STANGA (motoarele din dreapta se rotec inainte iar cele din partea stanga
nu se rotesc)
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
analogWrite(9, 255);
analogWrite(3, 255) ;
}

else if(t == 'R'){ //DREAPTA (motoarele din stranga se rotec inainte iar cele din partea
dreapta nu se rotesc)
digitalWrite(13,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(10,HIGH);

analogWrite(9, 255);
analogWrit e(3, 255);

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 44 }

else if(t == 'S'){ //STOP (toate motoarele se opresc)
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
}
delay(10);
}

ANEXA 2 Codul pentru control Wi -Fi

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "RRJQrL86VFPQtsyvB0xyLPwh8SxVQadb"; //Auth Token primit de la Blynk

char ssid[] = "DIGI -02116956"; //Credențialele de la Wi -Fi
char pass[] = "tXU91EUw";

// Definim pini L298N -ESP8266

#define IN_1 D8 //MotorA1
#define IN_2 D4 //MotorA2
#define IN_3 D6 //MotorB1
#define IN_4 D3 //MotorB2

#define ENA D7 //ENA
#define ENB D5 //ENB

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 45
int speedCar = 800; // 400 – 1023.
int speed_Coeff = 3;
// SETUP
void setup()
{
// Configurăm pini ca ieșire
pinMode(ENA, OUTPUT);
pinMode(IN_1, OUTPUT);
pinMode(IN_2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN_3, OUTPUT);
pinMode(IN_4, OUTPUT);

digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);

// Inceperea comunică ri seriale
Serial.begin(9600);

// Conectarea la Blynk
Blynk.begin(auth, ssid, pass);
}

// Înainte
BLYNK_WRITE(V0) {
int button = param.asInt();
if (button == 1) {
Serial.println("Înainte");
digitalWrite(ENA,HIGH);
digitalWrite(ENB, HIGH);

digitalWrite(IN_1,HIGH);

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 46 digitalWrite(IN_2,LOW);
digitalWrite(IN_3,HIGH);
digitalWrite(IN_4,LOW);

}
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digitalWrite(IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}

// Stânga
BLYNK_WRITE(V1) {
int button = param.asInt();
if (button == 1) {
Serial.println("Viraj stânga");
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HI GH);

digitalWrite(IN_1,LOW);
digitalWrite(IN_2,HIGH);
digitalWrite(IN_3,HIGH);
digitalWrite(IN_4,LOW);

}

else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 47 digitalWrite(IN_1,LOW);
digitalWrite(IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}

//Dreapta
BLYNK_WRITE(V2) {
int button = param.asInt();
if (button == 1) {
Serial.println("Viraj dreapta");
digitalWrite(ENA,HIGH);
digitalWrite(ENB, HIGH);

digitalWrite(IN_1,HIGH);
digitalWrite(IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,HIGH);

}
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digitalWrite(IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}

// Înapoi
BLYNK_WRITE(V3) {

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 48 int button = param.asInt();
if (button == 1) {
Serial.println("Înapoi");
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HIGH);

digitalWrite(IN_1,LOW);
digitalWrite(IN_2,HIGH);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,HIGH);

}
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digita lWrite(IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}
//Înapoi DREAPTA
BLYNK_WRITE(V4) {
int button = param.asInt();
if (button == 1) {
digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
analogWrite(ENA, speed Car);
digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar/speed_Coeff);
}
else {
Serial.println("Stop");

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 49 digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digitalWrite (IN_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}
//Înapoi STANGA
BLYNK_WRITE(V5) {
int button = param.asInt();
if (button == 1) {
digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar /speed_Coeff);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
analogWrite(ENB, speedCar);
}
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digitalWrite(I N_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}
//Înainte DREAPTA
BLYNK_WRITE(V6) {
int button = param.asInt();
if (button == 1) {

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 50 digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
analogWrite(ENA, speedCar );

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
analogWrite(ENB, speedCar/speed_Coeff);
}
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);
digitalWrite(I N_2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}
//Înainte STANGA
BLYNK_WRITE(V7) {
int button = param.asInt();
if (button == 1) {
digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
analogWrite(ENA, speedCar/ speed_Coeff);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
analogWrite(ENB, speedCar);
}
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN_1,LOW);

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 51 digitalWrite(IN _2,LOW);
digitalWrite(IN_3,LOW);
digitalWrite(IN_4,LOW);
}
}

void loop()
{
Blynk.run();
}

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 52 10. Bibliografie

[1] https ://www.irobot.ro/noutati/cei -mai-importn%C8%9Bi -robo%C8%9Bi -din-istorie –
partea -1.html

[2] ILIESCU MIHAIELA, ISTORIA ȘI FILOSOFIA ROBOȚILOR INDUSTRIALI

[3] https://www.google.com/search?q=unimate&sxsrf=ALeKk00uexsavqz2UZhT –
ePMUWiKlNYiLA:1582658504122&source=lnms&tbm=isch&sa=X &ved=2ahUKEwiP9cCvt
u3nAhXIQRUIHd7kCS0Q_AUoAXoECB8QAw&biw=1366&bih=625#imgrc=61ufPyOeL6l5
UM

[4]https://www.google.com/search?q=Shakey&sxsrf=ALeKk01u6tjKqkpThQ_eT1bgEX40ie42
Gg:1582658697511&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjV39yLt –
3nAhWKUBUIHaIXB_YQ_AUoAXoECBUQAw&biw=1366&bih=6 25#imgrc=0jTlIuwsBHj
eQM

[5]http://old.unitbv.ro/Portals/31/Sustineri%20de%20doctorat/Rezumate2014/TarulescuRadu.p
df

[6] https://en.wikipedia.org/wiki/Microcontroller#Programming_environments

[7]https://hobbytronica.ro/wp -content/uploads/2015/03/Figura -1.-Structura -simplificata -a-unui-
microcontroller -Hobbytronica.jpg

[8]http://robotics.ucv.ro/carti/MC/c1.pdf

[9]https://ro.wikipedia.org/wiki/Microcontroler

[10]https://www.scritub.com/stiinta/informatica/Notiunea -de-microcontroller -De95575.php

[11]https://en.wikipedia.org/wiki/Arduino

COMANDA LA DISTANȚĂ A UNUI ROBOT

Pagina 53 [12]https://electronic -club.com/arduino -prezentare/

[13]https://biblioteca.utcluj.ro/files/carti -online -cu-coperta/336 -3.pdf

[14]https://www.javatpoint.com/arduino -mega -pinout

[15]https://ro.wikipedia.org/wiki/Bluetooth

[16]https://www.brandsoftheworld.com/logo/bluetooth -3

[17]https://howtomechatronics.com/tutorials/arduino/arduino -and-hc-05-bluetooth -module –
tutorial/

[18]https://en.wikiped ia.org/wiki/Wi -Fi

[19]https://s12emagst.akamaized.net/products/17874/17873942/images/res_46a2a76309644a8b
33b84be9e49eb7d5_full.jpg

[20]http://users.utcluj.ro/~rdanescu/pmp -lab09.pdf

[21]https://www.mikroelectronica.ro/wp -content/uplo ads/2011/06/h -bridge.png

[22]https://ardushop.ro/ro/electronica/84 -l298n -punte -h-dubla -dual-h-bridge -motor –
dcsteppe.html

[23]http://eproject -jo.blogspot.com/2012/01/dc -motor -bidirectional -speed -control.html

[24]https://techze ero.com/sensors -modules/bluetooth -module -hc-05/

[25]https://electrosome.com/hc -05-serial -bluetooth -module/

[26]https://cdn.shopify.com/s/files/1/0672/9409/products/NodeMCU_ESP8266_de velopment_
board_1024x1024.jpg?v=1464135546

Titlu PROIECT DE DIPLOMĂ / LUCRARE DE DIZERTAȚIE
Pagina 54 [27]https://c leste.ro/catalog/product/view/id/69/s/model -nodemcu -lua-wifi-esp8266 –
cp2102/?gclid=CjwKCAjwxLH3BRApEiwAqX9arU0jY4tVmj22AEY8Ia8xjRSHCKBFPYfL
mzvtV8Gl8pDcRBvUwVY5MhoCjdcQAvD_BwE

[28]https://lastminuteengineers.com/esp8266 -nodemcu -arduino -tutorial/

[28]https://www.electronicwings.com/nodemcu/nodemcu -gpio-with-arduino -ide

[30]https://www.electronicwings.com/nodemcu/nodemcu -spi-with-arduino -ide

[31]http://docs.blynk.cc/#intro -how-blynk -works

[32]https://intercom.help/blynk/en/articles/512105 -how-to-install -blynk -library -for-arduino -ide

[33]https://github.com/esp8266/arduino

Similar Posts