Lucrare de licent ,a [608342]
Universitatea"Aurel Vlaicu\ din Arad
Facultatea de Inginerie
Programul de studiu: Automatic a s,i Informatic a Aplicat a
Lucrare de licent ,a
Coordonator:
Prof. dr. Corina Mnerie
Absolvent: [anonimizat] a Moale
Iulie 2017
Universitatea"Aurel Vlaicu\ din Arad
Facultatea de Inginerie
Programul de studiu: Automatic a s,i Informatic a Aplicat a
Lucrare de licent ,a
Work in progress…
Coordonator:
Prof. dr. Corina Mnerie
Absolvent: [anonimizat] a Moale
Iulie 2017
Cuprins
1 Introducere 2
1.1 Obiectivul lucr arii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Prezentarea aplicat ,iei 4
2.1 Arhitectura constructiv-funct ,ional a . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Module utilizate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Microcontroler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Senzor pentru m asurarea a distant ,ei . . . . . . . . . . . . . . . . . 6
2.2.3 Senzor de urm arire a unei traiectorii . . . . . . . . . . . . . . . . . 8
2.2.4 Amplicator pentru motoare . . . . . . . . . . . . . . . . . . . . . . 11
2.2.5 Circuit H Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.6 Modul bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.7 Alimentarea sistemului . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Model matematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Model matematic al motorului de curent continuu . . . . . . . . . . 20
2.3.2 Model cinematic diferent ,ial . . . . . . . . . . . . . . . . . . . . . . 22
2.3.3 Modelarea 3D a robotului . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Algoritmi de conducere pentru robot . . . . . . . . . . . . . . . . . . . . . 32
2.4.1 Algoritm pentru detectarea s ,i evitarea obstacolelor . . . . . . . . . 32
3 Rezultate experimentale 34
4 Concluzii 35
1
Capitolul 1
Introducere
1.1 Obiectivul lucr arii
Obiectivul acestei lucr ari este conceperea unei aplicat ,ii care cuprinde realizarea con-
structiv a a unui robot act ,ionat de dou a motoare de curent continuu care s a e condus
prin intermediul unei pl aci arduino(microcontroler incorporat) cu diferit ,i algoritmi de
comand a s ,i control:
1. Algoritm pentru detectarea s ,i evitarea obstacolelor prin intermediul c aruia robotul
va capabil s a navigheze singur prin mediul ^ nconjur ator,
2. Algoritm pentru urm arirea unei traiectorii, traiectorie reprezentat a de o linie
neagr a,
3. Algoritm care ^ i permite robotului s a ajung a dintr-un punct ^ n altul,
4. Algoritm pentru rezolvarea unui labirint. Acest algoritm este o dezvoltare la algo-
ritmul pentru urm arirea unei traiectorii,
5. Algoritm pentru control vocal.
^Intruc^ at robotul cont ,ine mai mult ,i algoritmi, am creat o aplicat ,ie pentru smarthphone,
mai exact pentru platforma android ^ n care utilizatorul are posibilitatea s a aleag a tipul
de algoritm pentru robot prin intermediul unor butoane. De asemenea tot prin butoane
utilizatorul va putea s a comande robotul manual. Pentru a face aplicat ,ia mai atractiv a
am adaugat o funct ,ie prin care robotul poate comandat s ,i vocal prin creearea unui
vocabular care cont ,ine c^ ateva cuvinte pe care robotul s a le recunoasc a.
Pentru algoritmii de control am ad augat c^ ate un regulator pentru optimizarea aces-
tora. O bun a comparat ,ie ^ ntre un alogoritm de control far a regulator s ,i un algoritm de
2
Moale Bogdan Ionic a Lucrare de licent a
control cu regulator se va putea observa la algoritmul pentru urm arirea unei traiectorii.
Pentru exemplicarea mis ,c arii robotului ^ n diferite scenarii, am creeat o schem a ^ n pro-
gramul matlab simulink bazat a pe modelul matematic care arat a cum se schimb a pozit ,ia
robotului.
Design-ul robotului se poate face ^ n orice program care permite modelare grac a. Eu
am ales SolidWorks deoarece acest program este foarte r asp^ andit ind folosit chiar s ,i ^ n
industrie.
Transferul de informat ,ie dintre aplicat ,ie s,i robot se realizeaz a prin intermediul comunicat ,iei
bluetooth. Am ales aceast a comunicat ,ie deoarece este foarte r asp^ andit a ind accesibil a
oricui, iar pret ,ul pentru implementarea unei astfel de comunicat ,ii pentru robot este redus.
Lucrarea este structurat a ^ n patru capitole.
^In capitolul doi se prezint a toate informat ,iile necesare despre cum se poate construi
robotul respectiv. Se prezint a ^ n detaliu ecare pies a component a s ,i conectarea corect a a
acestora, modelul matematic care ^ i permite robotului s a se mis ,te, modelul matematic al
motorului de curent continuu, modelarea 3D a robotului utiliz^ and programul SolidWorks
precum s ,i descrierea algoritimilor de control.
Capitolul trei este destinat rezultatelor experimentale pentru ecare algoritm ^ n parte,
precum s ,i implementarea unui regulator pentru aces ,tia. Algoritmii sunt testat ,i ^ n prima
faz a sub form a de script cu ajutorul unui simulator realizat pentru programul matlab
apoi sunt implementat ,i pe platforma arduino. Nu tot ,i algoritmii vor implementat ,i, de
exemplu algoritmul care ^ i permite robotului s a ajung a dintr-un punct ^ n altul nu va
implementat deoarece se aseam an a cu cel pentru urm arirea unei traiectorii.
Ultimul capitol, capitolul patru cont ,ine concluziile nale precum s ,i ce solut ,ii se pot
aduce pentru ^ mbun at at ,irea performant ,ei aplicat ,iei respective.
3
Capitolul 2
Prezentarea aplicat ,iei
2.1 Arhitectura constructiv-funct ,ional a
^In acest capitol se vor prezenta p art ,ile componente s ,i cum pot conectate acestea
astfel ^ ncat robotul s a e funct ,ional, modelele matematice care ^ i permit robotului s a se
mis,te comandat de placa arduino s ,i dou a motoare de curent continuu, precum s ,i modelarea
3D a robotului s ,i diferit ,i algoritmi de control.
La programarea unui robot trebuie luat ^ n considerare faptul c a mediul ^ nconjur ator
este ^ n plin a schimbare. Se poate programa un robot care s a se comporte perfect ^ ntr-un
mediu cunoscut, dar atunci c^ and acesta va ajunge ^ ntr-un mediu total necunoscut nu v-a
s,ti ce s a fac a. Principala metod a pentru a combate acest lucru este ca robotul s a s ,tie ce
se ^ nt^ ampl a ^ n jurul lui s ,i s a se adapteze la mediul ^ nconjur ator. Acest lucru se poate
realiza prin folosirea senzoriilor.
Scopul pentru care robotul a fost realizat este folosirea lui ca s ,i aplicat ,ie de laborator
pentru exemplicarea modului de funct ,ionare al algoritmului de reglare automat a folo-
sind un regulator PID(proport ,ional-integrativ-derivativ) precum s ,i important ,a utiliz arii
acestuia.
Domeniile ^ n care se folosesc astfel de robot ,i ca s ,i principiu de funct ,ionare pot destul
de vaste:
1. Medicin a: robot pentru transportul pacientului cu handicap, robot pentru trans-
portul diferitelor necesit ati ale pacient ,iilor,
2. Industrie: robot pentru transportul diferitelor materiale grele,
3. Gospod arie: robot pentru supravegherea locuint ,ei, robot pentru cur at ,are locuint , a,
4
Moale Bogdan Ionic a Lucrare de licent a
4. Robot pentru cercetarea s ,i culegerea informat ,iilor din diferite zone periculoase
omului, cum ar o zon a foarte afectat , a de radiat ,ii.
Aplicat ,ia realizat a reprezint a un robot alc atuit din: microcontroler implementat, sen-
zori pentru calcularea distant ,ei, senzori pentru urm arirea unei linii, dou a motare de curent
continuu, driver pentru motoare, dou a rot ,i care permit robotului s a se mis ,te, o platform a
pe care se monteaz a toate aceste componente, o roat a mai mic a care se monteaz a ^ n spate,
un modul bluetooth s ,i o surs a de alimentare(baterii).
2.2 Module utilizate
2.2.1 Microcontroler
Placa arduino aleas a pentru acest a aplicat ,ie este Arduino uno deoarece ofer a performant ,ele
dorite ind foarte us ,or de folosit. Este bazat a pe microcontrolerul ATMega328P care
funct ,ioneaz a la o tensiune de 5V. Are 14pini digitali dintre care 6 pini pot folosit ,i
pentru modularea ^ n l at ,ime a impulsuriilor(Pulse Width Modulation), iar primii doi pini
sunt pinii de transmisie s ,i recept ,ie pentru comunicarea serial a, 6 pini analogici, o muf a
USB pentru conectarea la calculator, o muf a pentru alimentarea pl acii direct de la priz a
sau de la o surs a extern a cum ar bateriile, s ,i un buton de resetare. ^In ceea ce prives ,te
memoria, arduino uno are 32 Kilobytes pentru stocarea programului s ,i2 Kilobytes de
memorie RAM(Random Access Memory). [8]
Programarea pl acii arduino este foarte simpl a ^ ntruc^ at se realizez a cu ajutorul limba-
jului de programare C/C++. Odat a scris, programul se ^ ncarc a pe plac a s ,i va r am^ ane
acolo p^ an a la ^ nlocuirea lui, adic a se foloses ,te calculatorul doar la scrierea s ,i vericarea
programului, apoi nu mai este nevoie de calculator pentru rularea acelui program deoarece
acesta se a
a deja ^ n memoria pl acii s ,i se poate rula ori de c^ ate ori placa este alimentat a.
O reprezentare cu toate elementele componente ale pl acii arduino se prezint a ^ n -
gura 2.1. Pinii care permit modularea ^ n l at ,ime a impulsuriilor sunt notat ,i cu simbolul
. De asemenea aces ,ti pini pot folosit ,i normal ca pini digitali. Se poate observa c a
placa arduino cont ,ine un pin pentru alimentarea la 3.3V ^ ntruc^ at unele componente nu
funct ,ioneaza la o tensiune de 5V, s,i atunci ele sunt alimentate la 3.3V.
Pentru scrierea unui program compatibil cu placa arduino ^ nt^ ai trebuie instalat un
driver care ^ i permite pl acii s a comunice cu calculatorul prin USB. Acest driver se g ases ,te
5
Moale Bogdan Ionic a Lucrare de licent a
Figura 2.1: Placa de dezvoltare Arduino UNO
pe site-ul ocial Arduino s ,i difer a ^ n funct ,ie de placa aleas a.
Odat a instalat driver-ul, mai este nevoie de mediul de programare Arduino IDE . Acesta
este compatibil cu windows, mac, linux s ,i permite scrierea, vericarea, s ,i ^ nc arcarea pro-
gramelor pe plac a. [2]
2.2.2 Senzor pentru m asurarea a distant ,ei
Senzorii de distant , a sunt folosit ,i ^ n robotic a s ,i ^ n numeroase sisteme de automatizare
pentru capacitatea lor de a detecta un obstacol precum s ,i pentru determinarea distant ,ei
p^ an a la obstacol. Exist a mai multe tipuri de senzori pentru m asurarea distant ,ei, dar cei
mai des utilizat ,i sunt senzorii cu in
aros ,u s,i cei cu ultrasunete.
Senzorul pentru detectarea distant ,ei cu in
aros ,u are ^ n construct ,ia sa un led in
aros ,u
s,i un receptor in
aros ,u. Led-ul emite o raz a luminoas a, atunci c^ and raza luminoas a
emis a de led ^ ntalnes ,te un obstacol, receptorul(fototranzistor) capteaz a raza re
ectat a
de obstacolul respectiv. Distant ,a pan a la obstacol se poate determina t ,in^ and cont de
unghiul de re
exie. [13]. Un avantaj al senzoriilor cu in
aros ,u este faptul c a sunt foarte
rapizi ^ n m asurarea distant ,ei, dar consum a mult curent, s ,i performant ,ele lor sunt afectate
de lumin a deoarece acest tip de senzori functioneaz a doar ^ n spectrul in
aros ,u. Lumina
solar a de exemplu cont ,ine mai multe tipuri de unde printre care si undele in
aros ,ii. Din
6
Moale Bogdan Ionic a Lucrare de licent a
aceast a cauz a receptorul detecteaz a razele in
aros ,u indierent dac a acestea provin de la
led sau de la lumina solar a.
Unii senzori pot detecta doar dac a se a
a sau nu un obstacol ^ n raza de act ,iune ^ n
care opereaz a s ,i nu pot detecta s ,i disatant ,a p^ an a la obstacol, ^ n aceast a categorie intr a
senzorii digitali care se bazeaz a pe principiul de funct ,ionare prin in
aros ,u. Alt ,i senzori
funct ,ioneaz a ^ ntr-o raz a foarte mic a de act ,iune cum ar 2-10cm , sunt analogici, s ,i ca
urmare pot m asura, distant ,a p^ an a la obstacol.
Senzorii cu ultrasunete [10] folosesc undele sonore pentru m asurarea distant ,ei pan a
la un obiect. Sunt alc atuit ,i dintr-un emit , ator care produce o und a sonor a la o anumit a
frecvent a nedetectat a de urechea uman a, s ,i un detector care poate capta unda respectiv a.
Pentru a putea m asura distant ,a p^ an a la obstacol trebuie s a se ^ nregistreze timpul trecut
din momentul ^ n care unda sonor a este produs a de emit ,ator, s ,i timpul ^ n care unda se
^ ntoarce la detector.
Cunosc^ and viteza aprozimativ a a sunetului prin aer: 344m/s se poate calcula distant ,a
p^ an a la obstacol astfel:
dist=344t
2(2.1)
unde t reprezint a timpul total parcurs de unda sonor a.
Unda sonor a traverseaz a de dou a ori distant ,a p^ an a la obstacol, s ,i abia apoi este de-
tectat a de senzor. Odat a traverseaz a de la emit , ator c atre obstacol, apoi de la obstacol
c atre detector. Pentru a
area distant ,ei corecte se ^ mparte distant ,a total a la 2, as ,a cum
se prezint a ^ n ecuat ,ia 2.1. Aces ,ti senzori prezint a avantajul preciziei, nu sunt in
uent ,at,i
de lumin a, funct ,ioneaz a ^ ntr-o raz a mult mai mare dec^ at senzorii cu in
aros ,u, dar sunt
mai lent ,i.
Pentru proiectul de fat , a cea mai bun a variant a este senzorul cu ultrasunete HC-05
(Figura 2.2) deoarece robotul trebuie s a poat a detecta at^ at obstacole a
ate la distant , a
scurt a, c^ at s ,i obstacole a
ate la distant ,a mai mare,de exemplu peste 150cm ^In cazul
senzoriilor cu in
aros ,u robotul are nevoie de doi astfel de senzori: unul pentru distant ,e
scurte s ,i altul pentru distant ,e mai mari deoarece aces ,tia funct ,ioneaz a grupat ,i pe raza de
act,iune ^ n care opereaz a, de exemplu 5cm,10cm ,3cm-40cm ,20cm-150cm .Senzorul ales
are o raz a de act ,iune de la 2cm p^ an a la 400cm , este alimentat la o tensiune de 5Vs,i un
curent de 12mA , av^ and un unghi de m asurare de 15.
7
Moale Bogdan Ionic a Lucrare de licent a
Figura 2.2: Conectarea senzoriilor cu ultrasunete
Conectarea senzorului la placa arduino se face astfel: pinul notat cu num arul 1din
gura al aturat a se conecteaz a la 5V, pinul notat cu numarul 2este emit , atorul s ,i primes ,te
comand a numeric a de la pinul digital 8de pe placa arduino, pinul cu num arul 3este
detectorul, acesta se conecteaz a la pinul digital 7, iar pinul cu num arul 4este masa, s ,i
se conecteaz a la portul GND . Emit , atorul s ,i detectorul pot conectat ,i la oricare dintre
pinii digitali de pe placa arduino, except ,ie f ac^ and piniul 0s,i pinul 1care sunt recept ,ie
respectiv transmisie pentru comunicarea serial a.
Unele tipuri de senzori pentru detectarea distant ,ei prin intermediul ultrasunetelor au
doar trei pini pentru conectarea la microcontroler, pinul emit atorului s ,i detecorului ind
multiplexat ,i. Ambele variante ofer a performant ,e bune, singurul lucur care difer a este
programarea lor.
2.2.3 Senzor de urm arire a unei traiectorii
Aces ,ti senzori se folosesc atunci c^ and robotul trebuie s a e capabil s a urm areasc a o
anumit a traiectorie. ^In cadrul acestei aplicat ,ii calea va reprezentat a de o linie neagr a.
Senzorii recomandat ,i pentru urm arirea liniei sunt senzorii cu in
aros ,u deoarece distant ,a
dintre linie s ,i senzor este foarte mic a, iar precizia trebuie s a e mare. Principiul de
funct ,ionare este cumva asem an ator senzoriilor cu in
aros ,u pentru detectarea obstacolelor,
aces ,tia ind compus ,i dintr-o fotodiod a in
aros ,u s,i un fototranzistor in
aros ,u. C^ and
se aplic a o tensiune senzoriilor, fotodioda emite lumin a in
aros ,ie, aceast a lumin a este
re
ectat a ^ napoi c atre fototranzistor. Cu c^ at fototranzistorul capteaz a mai mult a lumin a
8
Moale Bogdan Ionic a Lucrare de licent a
, cu at^ at tensiunea de ies ,ire scade.
Se pune problema dac a un singur senzor este sucient pentru urm arirea liniei. Folosind
un singur senzor robotul va foarte imprecis cu privire la pozit ,ionarea pe linie, iar s ,ansele
pentru g asirea liniei ^ n cazul ^ n care robotul iese de pe ea sunt foarte mici, deci r aspunsul
este nu, un singur senzor nu este ^ ndeajuns.
Figura 2.3: Senzori urm arire linie
Se folosesc bare de astfel de senzori format ,i din 2,3p^ an a la 8senzori cu in
aros ,u
aranjat ,i ^ n linie cu o anumit a distant , a x a ^ ntre ei (Figura 2.3). Folosind mai mult ,i
senzori vom avea mai multe m asur atori s ,i mai mult control.
Senzorul din gura 2.3 are 8perechi de leduri cu in
aros ,u numerotate S1,S2…S8
as,ezate la o distant , a de 9,51mm unul de cel alalt, ceea ce face ca acest senzor s a e foarte
bun pentru urm arirea liniei. Funct ,ioneaz a la o tensiune de 3.3V – 5V s,i un curent de
100mA . Pentru a avea un consum de curent c^ at mai redus perechile de leduri sunt legate
^ n serie. Senzorul este controlat de un tranzistor mosfet(metal{oxide{semiconductor eld-
eect transistor), cu rolul de a opri ledurile care nu sunt folosite de pe bara cu senzori
pentru reducerea consumului de curent.
Fiecare senzor are un condensator. Pentru a putea folosi senzorul, nodul de ies ,ire
trebuie ^ nc arcat prin aplicarea unei tensiuni la pinul de ies ,ire al nodului respectiv. Se
folosesc pinii de pe placa arduino ca s ,i surs a de tensiune, se ^ ncarc a ecare condensator
asociat senzorului respectiv, iar apoi se m asoar a timpul de desc arcare prin fototranzistor.
Cu c^ at timpul de desc arcare este mai mic, cu at^ at re
exia este mai bun a. Aceast a metod a
de m asurare se poate aplica pe majoritatea microcontrolerelor care permit citirea paralel a
a senzoriilor.
Senzorii cu in
aros ,u pentru urm arirea liniei se g asesc ^ n dou a variante: senzori digitali
9
Moale Bogdan Ionic a Lucrare de licent a
s,i senzori analogici. Cei digitali dau la ies ,irea acestora valoarea logic a 1dac a detecteaz a
linia, sau valoarea logic a 0dac a linia nu este detectat a s ,i pot face distinct ,ie ^ ntre supraft ,e
de culoare alb a s ,i neagr a, deci pot urm ari o linie neagr a pe un fond alb, iar distant ,a
maxim a la care poate detecta linia este 9.5mm .
Senzorii analogici dau la ies ,irea lor o valoare apropiat a de 1000 atunci c^ and detecteaz a
perfect linia, s ,i valori mult mai mici atunci c^ and nu detecteaz a linia. Acest lucru se
^ nt^ ampl a deoarece suprafat ,a de culoare neagr a re
ect a put ,in, iar cea alb a re
ect a mai
mult. Senzorii analogici pot face distint ,ie de culori, deci pot urm ari de exemplu o linie
albastr a pe un fond alb. Distant ,a maxim a la care senzorii analogici pot detecta linia este
de6mm .
Din totalul de 8senzori se folosesc doar 6. Pentru legarea senzoriilor la orice micro-
controler este nevoie de o baret a de 11pini care trebuie lipit a pe senzori. Conectarea la
placa arduino se face conform gurii 2.4.
Figura 2.4: Conectarea senzoriilor pentru urm arirea liniei
Conform gurii 2.4 se conecteaz a pinul Vcc la o tensiune de 5Vpe placa arduino,
GND este masa s ,i se conecteaz a la GND pe arduino. Senzorul notat S2este controlat de
pinul 2 s ,i se conecteaz a la pinul analog A0,S3se conecteaz a la pinul analog A1de pe
placa arduino, S4se conecteaz a la A2,S5se conecteaz a la A3,S6se conecteaz a la A4,
s,i ^ n cele din urm a S7se conecteaz a la A5.
Este important de remarcat faptul c a legarea senzoriilor trebuie s a se fac a ^ n ordinea
precizat a. Astfel senzorul cel mai din st^ anga este S7, iar cel mai din dreapta S2. Acest
10
Moale Bogdan Ionic a Lucrare de licent a
lucru conteaz a la programarea senzoriilor pentru urm arirea liniei. De asemenea aces ,ti
senzori au protect ,ie dac a alimentarea acestora este f acut a gres ,it.
2.2.4 Amplicator pentru motoare
Robotul se misc a cu ajutorul a dou a motoare de curent continuu. Aceste motoare au
o tensiune nominal a de 6Vs,i un curent nominal de 200mA .^In ceea ce prives ,te viteza
motoarelor, aceasta ajunge la 100 rotat ,ii/minut . Tensiunea pe care o ofer a platforma
arduino este direct proport ,ional a cu sursa de alimentare. Daca aliment am placa arduino
cu3.3V ies,irea de pe pini va de aproximativ 3.3V, dac a aliment am la 5V, ies ,irea va
ajunge undeva aproape de 5Vs,i as,a mai departe.
Platforma arduino ar avea destul a tensiune pentru motoarele respective. Dar exist a
totus ,i o problem a s ,i anume: motoarele au nevoie de 200mA , placa arduino alimentat a
la5Vofer a doar 40mA , total insucient pentru a putea ^ nv^ arti motoarele. Dac a se
conecteaz a motoarele direct la arduino, exista o s ,ans a destul de mare ca placa respectiv a
s a se ard a.
Rezolvarea acestei probleme este simpl a, se foloses ,te as ,a numitul driver de motor(amplicator) .
Acest driver de motor nu face altceva dec^ at s a ia puterea din baterii sau din orice alt a
surs a de alimentare s ,i s a o transfere la motoare. Alegerea driverului de motor se face ^ n
funct ,ie de puterea pe care poate s a o conduc a driverul respectiv.
Pentru acest proiect se alege un amplicator care poate s a comande motoare de 2A,
mai mult dec^ at sucient pentru performant ,a aplicat ,iei. Se alege un amplicator de 2A
^ ntruc^ at motoarele se pot schimba oric^ and cu unele mai puternice.
Controlul vitezei motoarelor are un rol determinant^ n funct ,ionarea corect a a robotului.
Aceasta poate realizat ^ n mai multe metode:
1. Modicarea vitezei prin modicarea tensiunii de alimentare cu ajutorul unei rezistent ,e
variabile
2. Cu ajutorul semnalului modul arii ^ n l at ,ime a impulsuriilor
^In cazul primei metode tensiunea de alimentare este de 6V(U), curentul motorului
far a sarcin a este de 100mA (I). Cunosc^ and aceste valori se aplic a legea lui Ohm pentru a
determina valoarea rezistent ,ei din circuit.
U=IR!R=U
I(2.2)
11
Moale Bogdan Ionic a Lucrare de licent a
R=6V
0:1A= 60
(2.3)
Rezistent ,a variabil a din circuit se seteaz a ^ n funct ,ie de viteza motoarelor dorit a. Dac a
dorim ca motoarele s a funct ,ioneze la jum atate din viteza lor atunci valoarea rezistent ,ei
va de 120
. C^ and pornim circuitul prima dat a, valoarea rezistent ,ei v-a setat a pe
0
, apoi ^ ncepem s a m arim aceast a valoare. Cu c^ at sarcina cres ,te cu at^ at motoarele se
vor ^ nv^ arti mai ^ ncet. La repornirea circuitului valoarea rezistent ,ei trebuie setat a din nou
pe0
. Dac a rezistent ,a nu se seteaz a pe 0
exist a s ,ansa ca motoarele s a nu porneasc a
sau s a se ^ nv^ art a foarte ^ ncet. Acest lucru se ^ nt^ ampl a deoarece motoarele au nevoie de
mult mai mult a putere atunci c^ and pornesc, iar rezistent ,a ia o parte din aceast a putere,
deoarece orice component a nou a adaugat a ^ n circuit va consuma energie din sursa de
alimentare. Metoda prezentat a pentru controlul vitezei motoarelor funct ,ioneaz a dar nu
este una ecient a, ^ nc a un motiv ^ n plus pentru a folosi un driver de motor.
Motoarele de curent continuu sunt foarte populare ^ n robotic a s ,i sunt foarte us ,or de
folosit. Dac a aliment am un motor direct de la baterie acesta se v-a ^ nv^ arti. Pentru
schimbarea sensului de rotat ,ie pur s ,i simplu invers am conexiunea de la baterie, rul care
este la plus ^ l punem la minus s ,i invers.
Amplicatorul pentru motor ales poate controla viteza motoarelor prin intermediul
modul arii ^ n l at ,ime a impulsurilor(PWM), precum s ,i sensul de rotat ,ie a acestora cu aju-
torul unui circuit numit H Bridge f ara a nevoie s a se inverseze conexiuniile.
A doua metod a de control al vitezei motoarelor o reprezint a semnalul modul arii ^ n
l at,ime a impulsuriilor(PWM). Acesta are multe ^ ntrebuint , ari pentru c a ne permite s a
control am diferite tipuri de dispozitive electrice, ^ n acest caz controlul vitezei motoarelor.
Dac a aliment am un motor cu impulsuri de tensiune ^ ntre 0-6V motorul se comport a ca
s,i cum ar primi o tensiune constant a undeva ^ ntre 0-6V , mai exact 3V.[11]
^In gura 2.5 se prezint a un exemplu de modelare ^ n l atime a impulsurriilor. Perioada
reprezint a timpul total dintre dou a impulsuri, adic a c^ at timp tensiunea se a
a la valoarea
cea mai ^ nalt a(^ n acest caz 6V) s,i c^ at timp la valoarea cea mai joas a.
12
Moale Bogdan Ionic a Lucrare de licent a
Figura 2.5: Exemplu PWM
ttotal=tOn+tOff (2.4)
ttotal= 1s+ 1s= 2s (2.5)
Cunosc^ and aceste valori se poate calcula ciclul de funct ,ionare, pe care ^ l vom nota C F.
Acesta arat a c^ at timp din perioad a semnalul a fost la valoarea cea mai ^ nalt a( 6V). De
obicei acest ciclu de funct ,ionare se reprezint a ^ n procente.
CF=tOn
ttotal= 0:5(dutycycle ) (2.6)
CF= 0:5100 = 50% (2.7)
Tensiunea care trece prin motor este dat a de ecuat ,ia 2.8:
U=50
1006V= 3V (2.8)
^In exemplul dat(gura 2.5) la un ciclu de funct ,ionare de 50% am obt ,inut o tensiune de
3V, adic a motorul se va ^ nvarti la jum atate din viteza lui total a. Un ciclu de funct ,ionare
de25% ar ^ nsemna c a din perioada total a un sfert din timp semnalul va la 6V, iar restul
timpului semnalul va la 0V. Ciclul de funct ,ionare este direct proport ,ional cu tensiunea
13
Moale Bogdan Ionic a Lucrare de licent a
care trece prin motor, cu c^ at ciclul de funct ,ionare este mai mare, cu at^ at s ,i tensiunea va
mai mare.
Dup a cum s-a putut observa la metoda regl arii vitezei motoarelor prin introducerea
unei rezistent ,e variabile ^ n circuit pot exista pierderi de energie dac a valoarea acestei
rezistent ,e nu este setat a la 0
la repornirea circuitului. Modularea ^ n l at ,ime prezint a
avantajul elimin arii acestor pierderi, deoarece permite controlul asupra tensiunii prin re-
glarea ciclului de funct ,ionare. Driverele de motoare folosesc aceast a metod a pentru con-
trolul vitezei, iar pentru inversarea sensului de rotat ,ie se foloseste circuitul H Bridge .
2.2.5 Circuit H Bridge
^In mod normal pentru a putea inversa sensul de rotat ,ie al motorului alimentarea tre-
buie s a e inversat a , cu alte cuvinte trebuie inverstat a direct ,ia curentului prin circuit. H
Bridge este un circuit permite inversarea sensului de rotat ,ie al unui motor, far a intervent ,ia
uman a pentru schimbarea conexiuniilor. [1]
Pentru exemplicarea principiului de funct ,ionare al circuitului H Bridge se foloses ,te
un singur motor de curent continuu. Realizarea s ,i simularea circuitului se realzieaz a ^ n
programul proteus.
Acest circuit se prezint a ^ n gura 2.6 s ,i este alc atuit din dou a tranzistoare NPN, dou a
tranzistoare PNP, un motor de curent continuu, rezistent ,e, doua ^ ntrerup atoare s ,i patru
diode.
Figura 2.6: Circuit H bridge realizat ^ n proteus
^Intrerup atorul 1 controleaz a tranzisotarele Q1 s ,i Q2 iar ^ ntrerup atorul 2 controleaz a
14
Moale Bogdan Ionic a Lucrare de licent a
tranzistoarele Q3 s ,i Q4. Atunci c^ and ^ ntrerup atorul 1 este ^ nchis, tranzistorul Q1 devine
activ deoarece este de tip PNP s ,i are nevoie de o tensiunea joas a pentru a porni, iar
tranzistorul Q2 r am^ ane inactiv deoarece este de tip NPN s ,i are nevoie de un potent ,ial
mare la baz a pentru a porni. Din moment ce ^ ntrerup atorul 2 este deschis tranzistorul
Q4 va activ s ,i Q3 inactiv, calea curentului ind de la tranzistorul Q1 la Q4, ceea ce
determin a ca motorul s a se ^ nv^ art a ^ n sens invers acelor de ceasornic.
Se consider a acum cazul al doilea ^ n care ^ ntrerup atorul 2 este ^ nchis s ,i ^ ntrerup atorul 1
este deschis, tranzistoarele Q2 s ,i Q3 vor active, iar tranzistoarele Q1 s ,i Q4 vor inactive.
Acest fapt determin a inversarea c aii curentului, s ,i anume de la Q3 la Q2 iar motorul se va
^ nv^ arti ^ n sensul acelor de ceasornic. Daca ambele ^ ntrerup atoare sunt ^ nchise respectiv
deschise ^ n acelas ,i timp atunci motorul nu se va ^ nv^ arti a
^ andu-se ^ n condit ,ia de fr^ an a.
^Intrerup ator1 ^Intrerup ator2 Q1 Q2 Q3 Q4 Sens rotat ,ie
0 0 1 0 1 0 Fr^ an a
0 1 0 1 1 0 Sensul acelor de ceasornic
1 0 1 0 0 1Sens invers acelor de ceasornic
1 1 0 1 0 1 Fr^ an a
Tabela 2.1: Tabelul de adev ar al circuitului H Bridge [16]
^In practic a lucruriile sunt put ,in mai complicate. C^ and motoarele sunt deconectate de
la sursa de alimentarea acestea continu a s a se ^ nv^ art a o anumit a perioad a de timp sub
propria lor inert ,ie. Atunci c^ and motorul se ^ nv^ arte far a o surs a de tensiune se produce un
fenomen numit opusul induct ,iei electromagnetice.
Legea lui Faraday ne arat a cum se produce fort ,a electromotare prin interact ,ionarea
unui c^ amp magnetic cu un circuit electric, fenomen numit induct ,ie electromagentic a. [15]
Un motor poate folosit s ,i ca generator. Motorul are bobine care se ^ nv^ art ^ n jurul
unui c^ amp magnetic, iar legea lui Faraday ne spune c a o bobin a care se ^ nv^ arte ^ n jurul
unui c^ amp magnetic produce o fort , a electromotoare. Aceast a fort ,a se mai numes ,te si
opusul induct ,iei electromagnetice deoarece se opune tensiunii deja aplicate motorului s ,i
reduce curentul care trece prin bobine, adic a curentul circul a ^ n doua direct ,ii.[3]
15
Moale Bogdan Ionic a Lucrare de licent a
Fort ,a electromotare poate produce o serie de probleme microcontrolerului s ,i pieselor
componente. Pentru a rezolva problema respectiv a se folosesc diode ^ n circuitul H Bridge
care permit trecerea curentului doar ^ ntr-o singur a direct ,ie.
Conectarea driverului pentru motor se prezinta ^ n gura 2.7 s ,i este realizat a ^ n pro-
gramul proteus.
Figura 2.7: Conectarea driverului de motor la platforma arduino
Driverul are 4 intr ari IN1, IN2, IN3, IN4 , acestea se conecteaz a la platforma arduino
astfel: IN1 se conecteaz a la portul digital 3 de pe platforma arduino, IN2 se conecteaz a
la portul digital 5, IN3 se conecteaz a la portul digital 6 s ,iIN4 se conecteaz a la portul
digital 9.
Pe l^ ang a aceste intr ari driverul mai are 2 pini pentru controlul vitezei motoarelor ENA ,
ENB care se conecteaz a la 5Vs,i doi pini pentru controlul sensului de rotat ,ieSENSA ,
SENSB care sunt conectate la GND .
Ies,irile driverului se conecteaz a dup a cum urmeaz a:
-OUT1 -motor1
-OUT2 -motor1
-OUT3 -motor2
-OUT4 -motor2
16
Moale Bogdan Ionic a Lucrare de licent a
Intr ariile IN1,IN2controleaz a motorul 1, iar intr ariile IN3,IN4controleaz a motorul2.
Majoritatea driverelor de motoare folosesc doar 2 pini pentru modularea ^ n l at ,ime a im-
pulsuriilor. Driverul prezentat foloses ,te 4 astfel de pini. Acest lucru ajut a la programarea
robotului, ^ n sensul c a nu va trebui scris foarte mult cod pentru controlul motoarelor.
^In practic a driverul pentru motoare este mult mai us ,or de conectat ^ ntruc^ at pinii
acestuia se ^ ng direct ^ n porturile platformei arduino, iar conexiuniile sunt gata f acute.
Tot ce r am^ ane de f acut este conectarea motoarelor la driver s ,i alimentarea acestuia cu
o surs a extern a. Conectarea unei componente noi se realizeaz a direct prin porturiile
driverului.
2.2.6 Modul bluetooth
^In scopul conducerii robotului de la distant ,a, cu ajutorul unui smarthphone, am echi-
pat robotul cu un port bluetooth. Robotul primes ,te comenzi de pe smartphone prin
intermediul unei aplicat ,ii create ^ n acest sens pentru platforma android, comunicat ,ia re-
aliz^ andu-se prin bluetooth.
Exist a dou a module principale de bluetooth : master s ,i slave. Modulul slave este
cel care primes ,te informat ,ia iar master cel care o trimite. Cu ajutorul unui modul slave
robotul poate doar s a primeasc a comenzi de pe orice smartphone cu condit ,ia ca acesta s a
ruleze android s ,i aplicat ,ia pentru controlul robotului s a e instalat a.
Dac a dorim ^ ns a ca robotul s a s ,i transmit a informat ,ie ^ napoi atunci avem nevoie
de un modul master-slave. Transmiterea informat ,iei de la robot la dispozitivul de co-
mand a(smarthphone) este extrem de important a pentru vericarea programului de con-
trol al robotului deoarece vom s ,ti tot timpul ce secvent , a din cod se execut a s ,i ce decizie
a luat robotul.
Folosind un modul master-slave atunci c^ and robotul primes ,te comenzi acesta se v-a
comporta ca slave, iar smartphone-ul va master. Roluriile se inverseaz a atunci c^ and
robotul trimite informat ,ii pe smartphone deoarece comunicarea a doua module bluetooth
se face ^ ntodeauna de la master la slave s ,i niciodat a invers.
Un modul bluetooth master-slave se reprezint a ^ n gura 2.8. Acesta funct ,ioneaz a la
o tensiune de 5Vs,i un curent de aproximativ 35mA atunci c^ and transmite sau primes ,te
informat ,ie.^In ceea ce prives ,te distant ,a aceasta poate ajunge p^ an a la 10m.
17
Moale Bogdan Ionic a Lucrare de licent a
Figura 2.8: Modul bluetooth master-slave HC-05
Rata de transfer ne arat a c^ at de repede se transmite informat ,ia. Modulul prezentat
are o rat a implicit a de transfer de 9600 biti pe secund a . Aceast a rat a poate schimbat a
^ n funct ,ie de performant ,ele dorite. Pentru proiectul din aceast a lucrare rata de transfer
implicit a este sucient a. Dac a m arim aceast a valoare este posibil s a obt ,inem o instabilitate
^ n cadrul comunicat ,iei.
Conectarea modulului la platforma arduino se poate realiza prin dou a metode. Prima
metod a const a^ n folosirea piniilor 0 s ,i 1 de pe platforma arduino, iar conectarea modulului
bluetooth se face astfel : transmisia(TXD) de la modul se conecteaz a la pinul 0(recept ,ie-
RX) de pe placa arduino, respectiv recept ,ia(RXD) de la modul se conecteaz a la pinul 1
de pe placa arduino(transmisie-TX).
Folosind aceast a metod a de ecare dat a c^ and ^ nc arc am un program nou pe placa,
pinul 0 s ,i pinul 1 trebuie s a e deconectat ,i, adic a modulul bluetooth trebuie deconectat
de la placa arduino. Dac a nu deconect am aces ,ti pini ^ nc arcarea programului va es ,ua cu
un mesaj de eroare. [12]
A dou a metod a reprezint a folosirea libr ariei SoftwareSerial. Aceast a libr arie ne permite
conectarea piniilor transmisie(TXD), s ,i recept ,ie(RXD) ai modulului bluetooth la oricare
doi pini digitali de pe placa arduino. Libr aria respectiv a se g ases ,te gratuit pe internet.
[12]. Folosind aceast a metod a nu mai este nevoie ca de ecare dat a c^ and ^ nc arc am un
program pe plac a s a deconect am modulul bluetooth.
18
Moale Bogdan Ionic a Lucrare de licent a
2.2.7 Alimentarea sistemului
Alimentarea sistemului se poate face prin dou a metode. Prima metod a const a ^ n
alimentarea ^ ntregului sistem de la o singur a surs a de alimentare. A doua metod a repre-
zint a conectarea separat a a platformei arduino s ,i a driverului de motor, adic a este nevoie
de dou a surse de alimentare, una pentru arduino s ,i senzori iar cealalt a pentru driver s ,i
motoare. Evident c a ambele metode prezint a avantaje s ,i dezavantaje.
Presupun^ and ca robotul se alimenteaza cu baterii, prima metod a prezint a avantajul
c a ocup a un spat ,iu mai mic pe platforma robotului. Dezavantajul este c a bateriile se
vor desc arca destul de repede s ,i vor trebui ^ nlocuite, deoarece prin folosirea bateriilor
desc arcate exist a riscul ca valorile citite de senzori s a e eronate ceea ce face ca sistemul
s a devin a instabil.
Aliment^ and platforma arduino separat de driver s ,i de motoare prezint a avantajul c a
bateriile nu se vor consuma asa repede, s ,i nu exist a riscul ca senzorii s a citeasc a valori
eronate. Dezavantajul ar spat ,iul ocupat de baterii, de asemena mai multe baterii
^ nseamn a mai mul a greutate pentru robot.
Este de remarcat faptul c a driverul are un jumper. Acest jumper trebuie s a r am^ an a
conectat dac a alimentarea ^ ntregului sistem se face de la o singur a surs a. ^In momentul ^ n
care alimentarea se realizeaz a separat, acest jumper trebuie deconectat.
2.3 Model matematic
Pentru descrierea comportamentului robotului atunci c^ and acesta se a
a ^ n mis ,care
este nevoie de un model matematic care s a fac a acest lucru. Aproape tot ce ne ^ nconjoar a
poate modelat matematic, de la un simplu motor p^ an a la organele interne ale omului,
deoarece p^ an a la urm a organele sunt subsisteme, care conectate ^ ntre ele formeaz a un
sistem mai mare, si anume corpul uman.
Modelul matematic are un rol crucial ^ n proiectarea de regulatoare(controlere) pentru
sistemul ^ n cauz a deoarece ofer a toate informat ,iile necesare pentru ca proiectarea acestui
controler s a se^ ncadreze^ n cerint ,ele impuse. De exemplu proiectarea unui controler pentru
un scaun cu rotile act ,ionat de motoare care s a ajute persoana cu handicap s a se mis ,te
mai repede trebuie facut a cu mare precizie astfel ^ nc^ at atunci c^ and persoana respectiva
d a comanda de oprire a scaunului acesta trebuie s a se opreasc a instant. Acest lucru se
19
Moale Bogdan Ionic a Lucrare de licent a
poate realiza prin modelarea sistemului respectiv s ,i prin obt ,inerea unui model matematic
precis. Evident ca acest sistem este in
uent ,at de mai mult ,i factori cum ar greutatea
persoanei s ,i viteza de deplasare.
^In robotic a trebuie ^ nt ,eles sistemul care formeaz a robotul s ,i abia apoi se pot programa
diferit ,i algoritmi de control pentru robot. Cel mai comun model matematic pentru robot ,i
este modelul cinematic diferent ,ial. [14].^Inainte de prezentarea modelului cinematic
al robotului, se prezint a modelul matematic al motorului de curent continuu, deoarece
mis,carea robotului se realizeaz a cu ajutorul motoarelor s ,i trebuie ^ nteles prima dat a cum
funct ,ioneaz a motorul.
2.3.1 Model matematic al motorului de curent continuu
Motorul de curent continuu este des folosit ^ n sistemele mecanice, acesta se foloset ,e
de energia electric a pentru a produce energie mecanic a [4]. Un motor de curent continuu
este compus dintr-un stator s ,i un rotor care cont ,ine bobine. Atunci c^ and se alimenteaz a
motorul, prin rotorul acestuia trece un curent s ,i astfel se produce un c^ amp magnetic.
Conform legii lui Faraday [15], datorit a bobinelor care se^ nv^ art^ n jurul c^ ampului magnetic
se produce o fort , a electromagnetic a s ,i ca urmare rotorul motorului ^ ncepe s a se roteasc a.
Motoarele sunt folosite aproape ^ n toate aplicat ,iile mecanice din jurul nostru, cele de
putere mare se folosesc ^ n industrie, de exemplu: dispozitive pentru ridicarea anumitor
materiale grele, la trenuriile electrice, la automobil, s ,.a.m.d.
Motoarele de putere mai mic a se folosesc cel mai des ^ n robotic a pentru a permite
robot ,iilor s a se mis ,te. Indiferent c a este vorba despre robot ,i p as ,itori, robot ,i zbur atori,
robot ,i pe rot ,i sau s ,enile, motoarele nu lipsesc din sistemul lor mecanic, deoarece far a
motoare mis ,carea lor nu ar posibil a.
Deoarece motoarele de curent continuu sunt foarte r asp^ andite exist a mai multe tipuri
de astfel de motoare. Aceste tipuri se clasic a ^ n funct ,ie de conexiuniile dintre ^ nf as ,urarea
statoric a s ,i ^ nf asurarea rotoric a [17]:
1.Excitat ,ie separat a
2.Autoexcitat ,ie
a.Excitat ,ie serie
b.Excitat ,ie paralel a
20
Moale Bogdan Ionic a Lucrare de licent a
c.Excitat ,ie mixt a(compus a)
3.Cu magnet ,i permanent ,i
Motorul de curent continuu cu excitat ,ie separat a are^ nf as ,urarea statoric a s ,i^ nf as ,urarea
rotoric a separate, ind conectate la dou a surse de tensiune, o surs a pentru ^ nf as ,urarea
statoric a s ,i o surs a pentru ^ nf asurarea rotoric a.
Motorul cu autoexcitat ,ie are ^ nf as ,urarea rotoric a s ,i ^ nf as ,urarea statoric a conectate la
aceeas ,i surs a de tensiune. Aceast a conexiune ^ ntre stator s ,i rotor se poate face ^ n serie
sau ^ n paralel. Dac a conexiuniile se realizeaz a s ,i ^ n serie s ,i ^ n paralel atunci motorul se
numes ,te motor de curent continuu cu excitat ,ie mixt a.
Motorul de curent continuu cu magnet permanent este foarte des folosit ^ n sistemele
de act ,ionare electrice [4]. Acesta este construit la fel ca s ,i celelalte motoare de curent
continuu, iar principiul de funct ,ionare este aceelas ,i. Statorul este alc atuit dintr-un cilindru
de metal, iar ^ n interiorul acestui cilindru sunt as ,ezat ,i magnet ,ii[17], cu alte cuvinte
statorul este alc atuit din magnet permanent. Aceste tipuri de motoare se folosesc la
aplicat ,iile unde este nevoie de putere mai mic a, de exemplu: la prototipuriile de robot ,ii
cu act ,ionare diferent ,ial a, la majoritatea juc ariilor care cont ,in motoare, la unit atiile optice
s,i multe altele.
^In gura 2.9 se prezint a schema echivalent a a unui motor de curent continuu:
Figura 2.9: Schema echivalent a a motorului de curent continuu(dup a [4])
Ecuat ,iile care descriu circuitul din gura 2.9 sunt urm atoarele [4] [6] :
Cm=kmi (2.9)
e=ke!=ked
dt(2.10)
21
Moale Bogdan Ionic a Lucrare de licent a
Cm=kmi=Cf!+Jdw
dt(2.11)
u=e+Rmi+Lmdi
dt(2.12)
Ecuat ,ia 2.9 reprezint a ecuat ,ia cuplului electromagnetic, ecuat ,ia 2.10 reprezint a fort ,a
contraelectromotoare, ecuat ,ia 2.11 reprezint a ecuat ,ia p artii mecanice, iar ecuat ,ia 2.12 re-
prezint a ecuat ,ia p artii electrice, unde : ueste tensiunea cu care se alimenteaz a motorul,
Rmreprezint a rezistent ,a statorului, Lmreprezint a inductant ,a electric a a ^ nf as ,ur arii,ieste
curentul care trece prin motor, !este viteza unghiular a, Jreprezint a momentul de inert ,ie
al rotorului, kmrespectivkesunt constante a cuplului respectiv a fort ,ei contraelectromo-
toare iarCfeste coecient de frecare.
Aplic^ and transformata Laplace pe ecuat ,iile 2.9-2.12, se obt ,ine:
kmi(s) =s(Js+Cf) (2.13)
(Lms+Rm)i(s) =u(s) kes!(s) (2.14)
Intrarea ^ n sistemul prezentat mai sus este tensiunea u, iar ies ,irea este viteza unghiu-
lar a, astfel, consider^ and constanta cuplului kms,i constanta fort ,ei contraelectromotoare ke
ind egale se poate scrie funct ,ia de transfer a sistemului sub forma :
Hmotor =!(s)
u(s)=K
(Lms+Rm)(Js+Cf) +K2(2.15)
2.3.2 Model cinematic diferent ,ial
Modelul cinematic permite studierea mis ,c arii robotului f ara a lua ^ n considerare fort ,ele
care afecteaz a aceast a mis ,care. Robotul se mis ,c a cu ajutorul a dou a rot ,i care sunt
act,ionate de motoare. Fiecare roat a poate act ,ionat a individual ^ n sensul acelor de
ceasornic sau invers acelor de ceasornic. Exist a c^ ateva cazuri pentru mis ,carea robotului:
-ambele rot ,i sunt act ,ionate ^ n aceelas ,i sens s ,i cu aceeas ,i vitez a, mis ,carea robotului va
pe direct ,ia ^ nainte sau ^ napoi
22
Moale Bogdan Ionic a Lucrare de licent a
-o roat a este act ,ionat a ^ ntr-un sens iar cealalt a roat a ^ n sens opus, robotul se va ^ nv^ arti
pe loc
-doar roata din st^ anga este act ,ionat a, direct ,ia robotului va spre dreapta
-doar roata din dreapta este act ,ionat a, direct ,ia robotului va spre st^ anga
Modelul diferent ,ial este unul dintre cele mai simple modele care ofer a posibilitatea
mis,c arii robotului pe sol, s ,i este folosit la robot ,ii unde costul proiect arii este mai mic. Un
robot care utilizeaz a modelul diferent ,ial este alc atuit doar din dou a rot ,i montate pe un
suport, ecare roat a este controlat a de un motor separat.
Procesul de ^ ntelegere a mis ,c ariilor unui robot ^ ncepe cu procesul de descriere a
contribut ,iei pe care o are ecare roat a pentru realizarea mis ,c arii robotului.
^In gura 2.10 este prezentat un model cinematic diferent ,ial. ICC(Instantaneous Center
of Curvature) este un punct numit centrul curbei instantanee sau centrul de rotat ,ie.
Acesta este punctul dup a care robotul se rotes ,te.
Figura 2.10: Model Diferent ,ial (dup a [9]
)
Pentru a schimba traiectoria robotului, viteza rot ,iilor trebuie s a varieze s ,i astfel punc-
tul de rotat ,ie se schimb a. Viteza unghiular a !^ n jurul centrului de rotat ,ie trebuie s a e
aceeas ,i pentru ambele rot ,i, astfel se pot scrie urm atoarele ecuat ,ii[9]:
Vd=!(Rd+L
2) (2.16)
Vs=!(Rd L
2) (2.17)
23
Moale Bogdan Ionic a Lucrare de licent a
unde L este distant ,a dintre rot ,iile robotului m asurat a din centrul acestora, Vds,iVs
sunt vitezele rot ,iilor din dreapta respectiv din st^ anga s ,iRdeste raza curbei sau distant ,a
m asurat a din punctul de rotat ,ie p^ an a la mijlocul platformei robotului. ^In unele modele
diferent ,iale ^ n loc de raza curbei se ia ^ n considerare raza rot ,i. Ambele variante sunt
corecte, iar ^ n nal se obt ,ine aceelas ,i model matematic.
Dac aVd=Vs, atunci viteza unghiular a !=0 s ,iR=1iar robotul se mis ,c a ^ n linie
dreapt a. C^ and vitezele rot ,iilor sunt opuse Vs= Vd, raza curbei Rd=0, iar robotul
se rotes ,te pe loc. Ultimul caz pentru mis ,carea robotului este atunci c^ and Vd6=Vs, ^ n
aceast a situat ,ie va exista rotat ,ie dup a roata din dreapta( Vd= 0) respectiv roata din
st^ anga(Vs= 0).
Cunosc^ and ecuat ,iile pentru vitezele rot ,iilor(ecuat ,ia 2.16 s ,i ecuat ,ia 2.17) se poate cal-
cula raza curbei Rds,i viteza unghiular a ![7]:
Rd=L
2Vd+Vs
Vs Vd(2.18)
!=(Vd Vs)
L(2.19)
Figura 2.11: Pozit ,ie Robot
^In gura 2.11 este reprezentat un robot ^ n cadrul referint ,ei globale(X,Y) s ,i ^ n cadrul
referint ,ei locale(Xm,Ym). Referint ,a global a este spat ,iul total ^ n care robotul are posi-
bilitatea s a se mis ,te, de exemplu acest spat ,iu poate reprezentat de un p atrat sau un
cerc. Referint ,a local a reprezint a mis ,carea robotului la orice moment din timp ^ n interio-
rul referint ,ei globale. Robotul se a
a init ,ial la locat ,iaXps,iYps,i urmeaz a o direct ,ie care
24
Moale Bogdan Ionic a Lucrare de licent a
formeaz a un anumit unghi cu axaXa referint ,ei globale. C^ and robotul ^ ncepe s a se
mis,te, referint ,a local a se mis ,c a odat a cu el, deci unghiul este defapt unghiul care se
formez a ^ ntre axa Xma referint ,ei locale s ,i axaXa referint ,ei globale.
Pentru specicarea pozit ,iei robotului, trebuie stabilit a o leg atur a^ ntre referint ,a global a
s,i referint ,a local a. Robotul are posibilitatea s a se mis ,te ^ n interiorul referint ,ei globale, dar
nu trebuie s a dep as ,easc a aceast a referint , a. Punctul Pdin gura 2.11 se a
a la mijlocul
centrului de greutate al platformei robotului, s ,i reprezint a pozit ,ia robotului. Aceast a
pozit ,ie este specicat a de coordonatele XPs,iYPs,i de diferent ,a unghiular a dintre cadrul
referint ,ei globale s ,i cadrul referint ,ei locale. Conform celor spuse se poate deni pozit ,ia
robotului [14]ca un vector ce cont ,ine 3 elemente:
P=2
6664XP
YP
3
7775!Pv=2
6664x_
y_
_3
7775(2.20)
Dac a se derivez a ecuat ,ia 2.20(P) atunci se va obt ,ine tot un vector cu 3 elemente( Pv),
reprezent^ and viteza robotului ^ n cadrul referint ,ei globale.
Mis ,carea robotului este limitat a, ^ n sensul c a acesta nu are un mecanism pentru
direct ,ie. As ,adar atunci c^ and ^ n calea robotului apare o curb a, acesta trebuie s a se roteasc a
cu un anumit unghi(conform guri 2.10) pentru a capabil s a treac a de curba respectiv a.
Acest comportament poate descris de matricea ortogonal a pentru rotat ,ie[14]:
MR() =2
6664cos() sin() 0
sin() cos() 0
0 0 13
7775(2.21)
MR( ) =2
6664cos() sin() 0
sin() cos() 0
0 0 13
7775(2.22)
Dac a unghiul este pozitiv sensul de rotat ,ie al robotului va invers acelor de
ceasornic(ecuat ,ia 2.21), iar dac a unghiul este negativ sensul de rotat ,ie al robotului
va ^ n sensul acelor de ceasornic(ecuat ,ia 2.22). Cunosc^ and expresia vitezei rot ,ii din
dreaptaVd, respectiv rot ,ii din st^ anga Vss,i matricea de rotat ,ie se poate aproxima locat ,ia
centrului curbei instantanee(ICC din gura 2.10) [9]care se noteaz a ^ n formul a cu C:
25
Moale Bogdan Ionic a Lucrare de licent a
C=h
x Rdsin()y+Rdcos()i
!Cx=x Rdsin();Cy=y+Rdcos() (2.23)
Conform gurii 2.10 pozit ,ia robotului la timpul t+ tva :
2
6664x_
y_
_3
7775=2
6664cos(!t) sin(!t) 0
sin(!t) cos(!t) 0
0 0 13
77752
6664x Cx
y Cy
3
7775+2
6664Cx
Cy
!t3
7775(2.24)
Ecuat ,ia 2.24 descrie comportamentul robotului atunci c^ and acesta se rotes ,te ^ n jurul
centrului de rotat ,ie(ICC) cu o anumit a raz a Rds,i vitez a unghiular a !.^Intruc^ at acest a
expresie nu este foarte clar a exist a dou a metode pentru rezolvare. Prima metod a const a
^ n ^ nlocuirea lui Cxs,iCyapoi se calculeaz a matriciile respective. A doua metod a care
este s ,i cea aplicat a reprezint a integrarea ecuat ,iei s ,i astfel se vor obt ,ine ecuat ,iile care arat a
unde se a
a robotul la orice moment din timp [9]:
8
>>>>>><
>>>>>>:x(t) =Zt
0VRcos[(t)]dt
y(t) =Zt
0VRsin[(t)]dt
(t) =Zt
0!(t)dt(2.25)
Viteza total a a robotului este egal a cu media celor dou a rot ,i:VR=Vd+Vs
2.^Inlocuind
expresia vitezei totale VR^ n ecuat ,ia 2.25 se obt ,ine:
8
>>>>>><
>>>>>>:x(t) =1
2Zt
0Vd+Vscos[(t)]dt
y(t) =1
2Zt
0Vd+Vssin[(t)]dt
(t) =Zt
0!(t)dt(2.26)
^In calculul integralelor s-a considerat cazul particular cu valori constante pentru Vds,i
Vspentru o anumit a perioad a de timp. ^In cazul ^ n care viteza variaz a dup a o anumit a
lege, calculul acestor integralelor se poate reface.
Cunosc^ and expresia vitezei unghiulare(ecuat ,ia 2.19) se poate ^ nlocui ^ n expresia lui
s,i astfel se poate calcula integrala respectiv a:
26
Moale Bogdan Ionic a Lucrare de licent a
(t) =Zt
0Vd Vs
Ldt=Vd Vs
LZt
01dt=Vd Vs
Lt (2.27)
Dup a ce s-a calculat (t), se ^ nlocuies ,te ^ n ecuat ,ia 2.26 pentru a obt ,ine rezultatul lui
x(t) s,iy(t) adic a pozit ,ia robotului la orice moment din timp :
8
>>>>><
>>>>>:x(t) =L
2Vd+Vs
Vd Vssin(Vd Vs
Lt)
y(t) = L
2Vd+Vs
Vd Vscos(Vd Vs
Lt) +L
2Vd+Vs
Vd Vs
(t) =Vd Vs
Lt(2.28)
Deriv^ and ecuat ,ia 2.28 se obt ,ine urm atorul model matematic [7]:
8
>>>>><
>>>>>:dx
dt=R
2(Vs+Vd)cos()
dy
dt=R
2(Vs+Vr)sin()
d
dt=R
L(Vr Vs)(2.29)
Modelul matematic rezultat (ecuat ,ia 2.29) este modelul diferent ,ial al robotului. Acesta
este mai put ,in folosit la proiectarea de regulatoare(controlere) deoarece cont ,ine viteza
rot,iilor (Vrs,iVd) iar diferitele tipuri de robot ,i au un design diferit, folosesc motoare
diferite s ,i rot ,i mai mici sau mai mari. Ca urmare aces ,ti parametri( Vds,iVs) trebuie
mereu schimbat ,i, s,i din aceast a cauz a modelul prezentat este folosit doar la implementarea
programului pentru robot. As ,adar modelul diferent ,ial nu se poate folosi direct. Acesta
trebuie folosit ^ n combinat ,ie cu derivata ecuat ,iei 2.25:
8
>>>>><
>>>>>:x_ =VRcos()
y_ =VRsin()
_ =!(2.30)
Ecuat ,ia 2.30 reprezint a defapt viteza robotului pe axa x respectiv pe axa y s ,i unghiul
cu care acesta se rotes ,te. Pentru vericarea ecuat ,iei se consider a =
2.^In acest caz
robotul se va mis ,ca cu viteza VRpe axa y s ,i se rotes ,te 90.
2.3.3 Modelarea 3D a robotului
Design-ul robotului este destul de important deoarece are un impact asupra performant ,ei
acestuia. De exemplu robot ,ii utilizat ,i ^ n lupte sumo trebuie s a aib a o platform a sucient
27
Moale Bogdan Ionic a Lucrare de licent a
de mare astfel ^ nc^ at ecare senzor s ,i ecare parte component a sa e protejat a pentru a
evita defectarea acestora la ciocnirea cu alt ,i robot ,i. Dac a acest lucru nu este asigurat
atunci exist a riscul foarte mare ca aparit ,ia defect ,iuniilor s a aib a loc ^ n circuitul robotului.
Pe de alt a parte robot ,ii pentru urm arirea unei linii au o platform a mai mic a, motoare
mai rapide s ,i rot ,i cu diametrul mai mic pentru a capabili s a urm areasc a linia c^ at mai
repede.
Cunosc^ and toate p art ,iile componente ale robotului, primul pas const a ^ n realizarea
unei platforme care s a poat a ment ,ine toate aceste componente. La proiectarea platformei
trebuie s a se t ,in a seama de obiectivul lucr arii s ,i anume realizarea unui robot care poate
controlat manual sau prin diferit ,i algoritmi de control(urm arira unie traicetorii, detectarea
s,i evitarea obstacolelor) Platforma respectiv a(gura 2.12) s ,i toate p art ,iile robotului se
realizeaz a ^ n programul SolidWorks.
Figura 2.12: Platforma pentru robot(mm)
Urm atorul pas este prinderea motoarelor de platforma robotului(gura 2.13). Acest
lucru se realizeaz a cu un suport pentru motoare creat ^ n acest sens. Prinderea suportului
se face cu s ,urub s ,i piulit ,a de 3mm .
28
Moale Bogdan Ionic a Lucrare de licent a
Figura 2.13: Montarea motoarelor pe platforma robotului
^In continuare exist a problema alegeri rot ,iilor. Roata cu diametrul mai mare traver-
seaz a o distant ,a mai mare cu ecare revolut ,ie dec^ at roata cu diametrul mai mic, dar cu
c^ at roata este mai mare cu at^ at aceasta va pune mai multa greutate motorului s ,i astfel
scad rotat ,iile pe minut(RPM) [5]
Dimensiunea corect a a rot ,ii este foarte important a. Pe de-o parte dac a roata este
foarte mic a aceasta se va roti foarte repede, dar robotul se va deplasa foarte ^ ncet deoarece
distant ,a parcurs a la o revolut ,ie este foarte mic a. Pe de alt a parte dac a roata este foarte
mare robotul va foarte lent deoarece motoarele nu sunt capabile s a ^ nv^ art a o roat a
foarte mare(vezi subcapitolul 2.2.4). As ,adar pentru alegerea c^ at mai corect a a rot ,iilor
urm atoarele ecuat ,ii trebuie luate ^ n considerare: [5]
V=!R (2.31)
F=CM
R(2.32)
-V- viteza cu care se depleaseaz a roata
-!- viteza unghiular a
-R- raza
-F- fort ,a exercitat a de roat a pe o anumit a suprafat , a
-CM- cuplul motorului
29
Moale Bogdan Ionic a Lucrare de licent a
Conform ecuat ,iei 2.32 pentru a m ari fort ,a exericitat a de roat a raza trebuie mics ,orat a
sau cuplul motorului trebuie m arit.
Figura 2.14: Roat a castor^In gura 2.15 este reprezentat a roata folo-
sit a de robot. Aceasta are o raz a de 32.5mm s,i o
l at,ime de 26mm sucient pentru performant ,ele
impuse. Robotul folos ,ete dou a astfel de rot ,i
act,ionate de motoare pentru deplasarea ^ n me-
diul ^ nconjur ator, dar mai este nevoie de ^ nc a o
roat a numit a roat a castor(gura 2.14) care are
rolul de a sust ,ine platforma robotului la aceelas ,i
nivel. Roata castor nu este act ,ionat a de motor,
aceasta se rotes ,te^ n funct ,ie de pozit ,ia robotului
s,i nu afecteaz a deplasarea acestuia.
Figura 2.15: Roata robotului
Ultimul pas const a ^ n asamblarea rot ,iilor s ,i a p art ,iilor componente. Rot ,iile se montez a
pe axele motoarelor iar senzorii, driverul de motoare s ,i microcontrolerul se atas ,eaz a de
platforma robotului.
30
Moale Bogdan Ionic a Lucrare de licent a
Figura 2.16: Reprezentarea 3D a robotului
Senzorii cu in
aros ,u pentru urm arirea liniei se monteaz a pe platforma robotului cu
ajutorul distant ,ierelor. Distant ,a dintre platforma s ,i sol este de aproximativ 43mm , o
distant ,a mult prea mare ca senzorii s a poat a detecta linia. Robotul nu este special pro-
iectat pentru urm arirea liniei, dar poate ^ ndeplini aceast a funct ,ie destul de us ,or. Din
acest motiv se folosesc distant ,ierele de 40mm , astfel ^ ntre senzori s ,i suprafat ,a pe care se
a
a linia r am^ ane o distant ,a de aproximativ 3mm , sucient a pentru ca senzorii s a poat a
detecta linia.
Senzorul cu ultrasunete are un unghi destul de mic ^ n care poate detecta obstacolele
^ n calea robotului, din aceast a cauz a senzorul este montat pe un servomotor. Acesta are
rolul de a deplasa senzorul ^ n st^ anga s ,i ^ n dreapta cu un unghi de 90. Astfel senzorul
poate detecta s ,i obstacole laterale, s ,i nu doar obstacolele a
ate ^ n fat ,a robotului.
Placa arduino nu trebuie s a fac a contact cu platforma robotului deoarece platforma
cont ,ine s ,uruburi s ,i piulit ,e care la contactul cu arduino ar putea produce un scurtcircuit.
Pentru evitarea acestei probleme se folosesc distant ,iere de 6mm ^ ntre arduino s ,i platforma
robotului.
31
Moale Bogdan Ionic a Lucrare de licent a
2.4 Algoritmi de conducere pentru robot
Un robot este o mas ,in arie care poate ^ ndeplini anumite sarcini cu sau far a intervent ,ia
uman a s ,i este alc atuit as ,a cum am v azut anterior dintr-o parte mecanic a s ,i o parte
computat ,ional a care reprezint a programarea robotului, adic a instruct ,iuniile de cod [10].
Mediul ^ nconjur ator este ^ n plin a schimbare. Pentru ca robotul s a e capabil s a s ,tie
ce se ^ ntampl a ^ n jurul lui s ,i s a se adapteze mediului este nevoie de folosirea senzoriilor
prezentat ,i anterior.
Primul pas care trebuie ^ ndeplinit este asamblarea robotului asa cum s-a prezentat ^ n
capitoulul modelarea 3D. Al doilea pas este conectarea corect a pieselor componente s ,i a
senzoriilor utilizat ,i. Odat a ^ ndeplinit ,i aces ,ti doi pas ,i se obt ,ine un robot funct ,ional care
pentru moment nu s ,tie s a fac a nimic.
Pentru ca robotul s a e capabil s a ^ ndeplineasc a anumite sarcini acesta trebuie progra-
mat astfel ^ nc^ at s a poat a ^ ndeplini obiectivul propus s ,i anume: s a e capabil s a navigheze
singur prin mediul ^ nconjur ator, lucru care se poate realiza cu algoritmul pentru detec-
tarea obstacolelor, sa poat a urm ari o anumit a traiectorie cu ajutorul algoritmului pentru
urm arirea unei linii, s a recunoasc a anumite cuvinte prin intermediul algoritmului pentru
control vocal s ,i s a e capabil s a ias a dintr-un labirint. ^Intruc^ at robotul va cont ,ine mai
mult ,i algoritmi selectarea sarcinii pe care robotul trebuie s a o ^ ndeplineasc a se realizeaz a
cu ajutorul unei aplicat ,ii create ^ n acest sens pentru platforma android.
2.4.1 Algoritm pentru detectarea s ,i evitarea obstacolelor
Algoritmul pentru detectarea obstacolelor nu ar trebui s a lipseasc a din sarciniile pe
care un robot le poate ^ ndeplini. Acesta permite robotului s a navigheze singur printr-
un mediu cunoscut sau necunoscut prin detectarea s ,i evitarea obstacolelor cu ajutorul
senzoriilor cu ultrasunete.
Principiul de funct ,ionare al acestui algoritm se bazeaz a pe citirea continu a a distant ,ei
prin intermediul senzorului cu ultrasunete. Se stabiles ,te o distant ,a critic a de exemplu 15
cm. Aceast a distant ,a critic a fat ,a de obstacol este distant ,a la care robotul va trebui s a i-a
o decizie pentru a putea evita obstacolul respectiv.
^Intruc^ at senzorul cu ultrasunete este montat pe un servomotor, se creeaz a o funct ,ie ^ n
instruct ,iuniile de cod care rotes ,te servomotorul^ n st^ anga s ,i^ n dreapta oferind posibilitatea
32
Moale Bogdan Ionic a Lucrare de licent a
senzorului s a calculeze distant ,a s,i ^ n lateral nu doar pe direct ,ia ^ nainte. Servomotorul are
un unghi de rotat ,ie de 180, dar ind un servomotor mai ieftin nu va putea atinge unghiul
de 0s,i180. Astfel se seteaz a ca unghiul de 80s a e unghiul central ^ n care senzorul
detecteaz a obstacolele pe direct ,ia ^ nainte. Unghiul de rotat ,ie pentru direct ,ia din dreapta
va de 70fat,a de unghiul central(80 70= 10), respectiv pentru direct ,ia din st^ anga
de 70fat,a de unghiul central(80+ 70= 150).
De ecare dat a c^ and robotul ajunge la distant ,a critic a fat ,a de obstacol acesta se va
opri s ,i va merge un timp foarte scurt pe direct ,ia ^ napoi. Acest pas este necesar pentru
a oferi robotului posibilitatea de ^ ntoarcere f ara a lovi obstacolul detectat. Urm atorul
pas este calcularea distant ,ei laterale. Servomotorul rotes ,te senzorul ^ n st^ anga respectiv
^ n dreapta s ,i se ^ nregistreaz a distant ,a p^ an a la cel mai apropiat obstacol din st^ anga s ,i din
dreapta. Ultimul pas este compararea distant ,elor laterale s ,i luarea unei decezii de c atre
robot. Dac a distant ,a din st^ anga este mai mare dec^ at cea din dreapta atunci robotul va
merge pe direct ,ia din st^ anga iar dac a distant ,a din dreapta este mai mare dec^ at cea din
st^ anga atunci robotul va merge pe direct ,ia din dreapta.
33
Capitolul 3
Rezultate experimentale
34
Capitolul 4
Concluzii
35
Bibliografie
[1]Al Williams .Microcontroller projects using the Basic Stamp . Focal Press, 2 edition,
2002. link.
[2]Arduino Software(IDE) . link.
[3]Boston University . Applications of electromagnetic induction. Iulie 1999. link.
[4]Corina Anca Mnerie .Solut ,ii pentru conducerea unor procese optomecatronice cu
aplicat ,ii ^ n domeniul biomedical . PhD thesis, Universitatea Politehnica Timis ,oara,
2015.
[5]David Coyle . Optimizing robot wheel diameter. Ianuarie 2011. link.
[6]D.Marchewka . andM.Pitek . Wheeled mobile robot modeling aspects. Technical
report, AGH University of Science and Technology Faculty of Electrical Engineering.
[7]Dr. Magnus Egerstedt .Control of Mobile Robots-Module 2: Mobile Robots .
Georgia Tech, School of Electrical and Computer Engineering.
[8] W. Durfee . Arduino microcontroller guide. Technical report, University of Minne-
sota, 2011. link.
[9]G.Dudek . and M.Jenkin .Computational Principles of Mobile Robotics . Cambri-
dge University Press, Octombrie 2010.
[10]Kirti Bhagat .Sayalee Deshmukh .Shraddha Dhonde .Sneha Ghag . Obs-
tacle avoidance robot. International Journal of Science, Engineering and Technology
Research (IJSETR) , 5:439{442, februarie 2016. link.
[11]Mohamed Allsubaiie . Algorithms for maze solving robot. Technical report, Man-
chester Metropolitan University, Martie 2013. link.
36
Moale Bogdan Ionic a Lucrare de licent a
[12]Radu-Nicolae Pietraru .10(zece) proiecte cu arduino . Bucuresti, 2015.
[13]Robofun . Arduino s ,i robotic a- senzori distant , a. link.
[14]Roland Siegwart . and Illah R. Nourbakhsh . Introduction to autonomous
mobile robots. 2004. link.
[15] M.N.O Sadiku .Elements of Electromagnetics , page 386. 4 edition, 2001.
[16]V. Jaseem . H bridge motor driver theory and practical circuit using transistors.
Iunie 2012. link.
[17] Pagin a web. Types of dc motor. link.
37
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Lucrare de licent ,a [608342] (ID: 608342)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
