Programul de Licen ță: Ingineria Sistemelor [602744]

Facultatea de Automatică și Calculatoare

Programul de Licen ță: Ingineria Sistemelor

SISTEM DE UR MĂRIRE CU SENZORI PENTRU
UN ROBOT MOBIL AUTONOM

Proiect de diplomă

Victor -Emanuel PUTERITY

Conducător știin țific:
Șl. dr. i ng. Cristian Va șar

Timișoara,
Iunie 2015

2
Cuprins

Cuprins ……………………………………………………… …………… ……. …………………………2
Capitolul 1. Introducere ……………………………… ……… ……… …………. .….5
1.1. Introducere în roboti că..…………………………………………………… …………………. ……… ….5
1.2. Tipuri de motoare folosite în roboti că…………………………………….. …….. …………………… .7
1.2.1. Motoare de curent continuu (MCC) ………… …………………… ……… ………… ……………………………………7
1.2.2. Motoare servo………………………………………… ………….. ………………. ……….9
1.2.3. Motoare pas cu pas(MPP)…. ………………………… ……………… ……….…………10
1.3. Schema genera lă a roboților urmăritori……………… ………… ………………………….. …..……12
1.4. Tipuri de senzori……………… ……………………………………………… ……………. … ..………..13
1.4.1. Senzori de p roximitate…………………………………………… ……………. …… .……14
1.4.2. Senzori de t emperatu ră…………………………………………… …………. …… …………………………….…..15
1.4.3. Senzori de miș care…………………………………………… …………………. ………..15
1.4.4. Senzori foto reflexiv i…………………………………………… ………………. …… ………. …………………………….….16
1.5. Sisteme de depl asare……………………………………………… ………………. ……… ……………………………………….……..18
Capitolul 2. Fundamentare teoreti că.……..…… ………………….. …….… … ……………………………………………..20
2.1. Platforma Arduino UNO…………… ………………… ……………………… ………………………… 20
2.1.1. Informa ții gener ale despre Arduino……………………………… …………………. … ……….20
2.1.2. Placa de dezvoltare Arduino UNO………… …………………… ……………. …… …..……21
2.2. Noțiunea de microcontroler………………………………… ……………… …………… …………. .23
2.2.1. Arhitectura microcontro lerelor ……………………. …………. …………….. ……………… …………….23
2.2.2 . Microcontrolerul ATMega 328 p….………………………………… ……………. … ………24
2.3. Mediul de dezvoltare software Arduino…… ………………………… ………………….. ..…………..27
Capitolul 3. Specifica țiile și arhitect ura sistemului…… ………………… … …………………………………………………28
3.1. Func țiile sistemului ………… ……… ………………………………… ……………….. ………………28
3.2. Schema bloc a sistemului…… ……………………………………… ………………. ………… ……………29
3.3. Baza materia lă necesa ră realizarii/ testării sistemului…………………… …….. …………… …..….31
3.3.1. Senzor de di stanță………………………………………………………… ………… ……32

3
3.3.2. Driverul pent ru motoare……………………………………………… ……………. ……… ……..34
3.3.4. Motoare utilizate și modulul Bluetooth Mate……………….. ……………… …….. ……………………………………………………..37
3.3.5 . Etape de a samblare a robotului……………………………………… ……….. … ……….38
3.3.6 . Robotul final du pă asamblare……………………………………… ………… …………40
Capitolul 4. Proiectarea de detaliu…… ………… ……………. …………… ……42
4.1. Dezvoltarea softwar e a robotului……………….……………………… …………………. ……… ..42
4.1.1. Software -ul proiectului.. ………………………………………………………….. ………………………………………………………………………………… 43
4.2. Punerea în funcțiune a robotului………………………………………………… ………… ………46
4.2.1. Testarea s enzorilor …………………………………………… ………………….. ……….48
4.2.2. Testarea în regim de fun cționare a robotului…………… ………… …………… ……………………………………50
Capitolul 5. Aspecte privind realizarea pra ctică……………………………… ……………………………………………..51
5.1. Aspecte privind probleme întâmpinate și modul lor de rezolvare…… ……………………… .….51
5.1.1. Probleme întâmpinate privind componentele mecanice utilizate… …………….. ………………………………..51
5.1.2. Probleme întâmpinate privind alimentarea cu energie electri că……………………. ……52
5.1.3. Probleme întâmpinate privind senzorii utiliza ți………. ……………………….. ……… …………..52
Capitolul 6. Concluzii………………………………… ………………… ………….53
6.1. Ce s -a realizat………… …………………………………………… ……….. ………………………53
6.2. Direc ții de dezvol tare…………………………………………………… ………… ……… …………………………………………………………………………54
Bibliografie……………………… ……………………………………………… ……………………………………………………..…….55

4
Introducere

Progresul rapid al stiinței în domeniul automat icii, a condus recent la asteptă ri mari în
domeniul roboticii . Aplica țiile robo ților mobili î n diferite domenii precum: robo ți industriali, roboți
militari, robo ți de pază , robo ți medicali, robo ți care servesc la aplica țiile de gospodă rie, au ajuns
să fie aproape indispensabili în viața de zi cu zi. Opera țiunile de salvare de la locul accidentelor,
lucrări de inspec ție în medii periculoase și exploa tări terestre sunt doar cateva exemple de
sarcini mult p rea periculoase pentru oameni, dar un robot mobil, controlat de la distan ță a
încercat să execute toate aceste sarcini periculoase , el având un mare succes de reu șită.
Pentru că este încă grea dezvoltarea robo ților mobili autonomi, care să funcționeze bine
în condi țiile reale cu tehnologiile curente ale robo ților, un sistem în care robotul este controlat de
la distan ță de un operator uman , este momentan cea mai buna solu ție și în acela și timp cea mai
realis tă care să funcționeze foarte bine. Un av antaj al unui robot este capac itatea de a reali za
majoritatea sarcinilor care î i sunt încredin țate cu eficien ță spori tă în compara ție cu cea a
oamenilor.
Aceas tă lucrare i și propune să proiecteze, asambleze și să implementeze un robot
autonom, care are capacita tea de a urmă ri o persoana atri buită, pentru a ajuta în viața de zi cu
zi la transportatul obiectelor de uz casnic și nu numai. Testarea robo ților mobili se bazează pe
noțiunea de autonomie, adi că abilitatea unui robot de a îndeplini în siguran ță obiectivul propus
fară interven ția unui operator uman. Tehnica de urmă rire a persoanei atribuite, este o meto dă de
bază în domeniul senzorilor ataș ați în partea din fa ță a robotului, care detectează un sem nal
folosind diferite tipuri de tehnologii sensibile, cum ar fi: inductan ța electri că, câmpul magnetic,
frecven țe radio de identificare, undele infraroș u și altele. Pentru a naviga în siguran ță într-un
mediu interior sau exterior, robotul trebuie să urmă rească o traiectorie, în cazul de fa ță
traiectoria este da tă de persoana pe care o urmăreș te.
. Probleme pot apă rea în cazul senzorilor , care pot complica planificarea traiectoriei prin
incertitudinea lor și astfel robotul nu va fi capabil să iși ducă la bun sfar șit obiec tivul propus. În
realitate nu exis tă un mediu ideal în care robotul să nu întâmpine probleme, de exemplu: ro țile
alune că pe suprafa ța pe care trebuie să înainteze, bateriile se consu mă prea repede, apar
imperfec țiuni ale senzorilor, întâlnirea unor obstacole care nu s -au luat în calcul de la bun
început etc.

5
Capitolul 1. Introducere

1.1. Introducere în roboti că
Cuvântul “robot” este de origine slavă și se poate traduce prin: muncă, clacă sau muncă
silnică. Apari ția deasă a robo ților în film și literatură a atras aten ția știin ței asupra acestui tip de
mașini. Domeniul știin țific, care se ocupă de construc ția robo ților se numește robotică . Term enul
a fost folosit pentru prima dată în 1942 de Isaac Asimov în nuvela sa, “Runaround” . Un domeniu
general teoretic ști ințific, care se ocupă de robo ți, nu există. Acestea sunt mai ales subdomenii
ale informaticii . Isaac Asimov publi că în anul 1942 în nuvela “Runaround” trei legi: Legea 1 “Un
robot nu are voie să pricinuiască vreun rău unei fiin țe umane, sau, prin neinterven ție, să permită
ca unei fiin țe omenești să i se facă un rău ”, Legea 2 “Un robot trebuie să se supună ordinelor
date de către o fiin ță umană, atât timp cât ele nu intră în co ntradic ție cu Legea 1 ”, Legea 3 “Un
robot trebuie să -și protejeze propria existen ță, atât timp cât acest lucru nu intră în contradic ție cu
Legea 1 sau Legea 2 ”. [Bor10]
Un “robot” este este un operator mecanic sau virtual , artificial . Robotul este un sistem
compus din mai multe elemente: mecanică, senzori și actuatori precum și un mecanism de
direc ționare. Mecanica stabilește înfă țișarea robotului și mișcările posibile pe timp de
funcționare. S enzorii și acuatorii sunt întrebuin țați la interac țiunea cu mediul sistemului.
Mecanismul de direc ționare are grijă ca robotul să -și îndeplinească obiectivul cu succes,
evaluând de exemplu informa țiile senzorilor. Acest mecanism reglează motoarele și plani fică
mișcările care trebuiesc efectuate.
Tot “robot”, prescurtat “bot”, pot fi numite și programe le (software -ul) de calculator care
îndeplinesc automat anumite func ții sau opera țiuni. Astfel de robo ți sunt virtuali, și nu mecanici.
Robo ții sunt realiza ți mai ales prin combina ția disciplinelor: mecani că, electrotehni că și
informati că. Între timp s -a creat din legătura acestora, numi tă mecatroni că. Pentru realizarea de
sisteme autonome (care să găsească singure solu ții) este necesară legătura a cât mai multor
discipline de robotică , aici se pune accent pe legătura conceptelor de inteligen ță artificială . Cele
mai importante componente ale robo ților sunt senzorii, care permit mobilitatea acestora în mediu
și o dirijare câ t mai preci să. Un robot nu trebuie neapă rat să acționeze autonom, f apt pentru
care se face diferen ța între robo ți autonomi și teleghida ți. [Bor10]
Pe baza acestor caracteristici s -au definit genera țiile de robo ți: Genera ția 1 “roboți ce
acționeaza pe baza unui program flexibil prestabilit prin învățare direc tă”, Genera ția 2 “roboți cu

Capitolul 1. Introducere

6
un program flexibil prestabilit, ce se poate modifica pe baza informa țiilor furnizate de sistemul
senzorial ” și Genera ția 3 “roboți ce înglobează elemente de inteligen ță artificia lă”. [Bor10]
Un robot ur măritor este un robot proiectat să urmărească o anumi tă traietorie sau calea
deja prestabili tă de către utilizator. Traiectoriile pot fi foarte simple, de exemplu o linie pe o
podea sau mai complicate, de exemplu ur mărirea unui obiect în mișcare în care traiectoria se
modifi că în timp real. În scopul detec tării liniilor sau diferitelor obiecte statice sau aflate în
mișcare se folosesc anumite sisteme de detec ție, aceste sisteme pot varia de la un simplu circuit
ieftin de detectare a liniei, până la sisteme video scumpe folosite pentru detectar ea obiectelor
statice, respectiv în mișcare. Din punct de vedere industrial, robotul ur măritor de linie a fost
implementat în fabricile automate. În acest mediu aceș ti robo ți înlocuiesc operatorii umani care
transportau materiale sau care livrau produse de la un punct la altul, acolo unde liniile
transportatoare nu se puteau implementa din anumite motive .

Figura 1.1 . Schema bloc a unui robot industrial

Capitolul 1. Introducere

7
1.2. Tipuri de motoare folosite în roboti că
Există mai multe tipuri de motoare folosite în roboti că, dar cele mai des folosite în
industrie și în proiectele mai mici sunt ur mătoarele: Motoarele de curent continuu (prescurtat
M.C.C.), motorele servo și motoarele pas cu pas. În continuare se va explica mai a mănunțit
despre fiecare tip de motor și care sunt caracteristicile care ar putea ajuta la implementarea
proiectului.
1.2.1. Motoare de curent continuu(MCC)
Motorul electric de curent continuu (cu perii) este un motor electric cu comuta ție internă
care este alimentat de la o sursă de curent continuu . Moto rul de curent continuu converteș te
energia curentului electric continuu în energie mecani că.
Motoarele de curent continuu sunt printre cele mai ieftine motoare și sunt disponibile în
mai multe variante de viteză și de cuplu. Unele motoare se pot configura astfel încât să fie
compatibile pentru robo ții autonomi. Dezavantajul acestui tip de motor este că, nu exis tă nici un
control intern de feedback, ceea ce înseamnă că nu se stie cu foarte mare precizie viteza
motorului în timpul func ționarii. [***11,f]
Componentele din care este al cătuit un motor de curent continuu sunt:
– Carca să
– Stator
– Rotor
– Perii
– Colector sau comutator
– Rulmen ți
– Arbore

Figura 1.2.1 Motorul de curent continuu(MCC)

Capitolul 1. Introducere

8
Se va prezenta modul de func ționare al motoarelor de cur ent continuu. Statorul
generează câ mpul magnetic care înconjoa ră rotorul, acest câ mp poate fi generat în două
moduri: folosind ajutorul unor magne ți permanen ți sau folosind ajutorul unor spire de la
electromagne ți. Diferitele tipuri de motoare de curent continuu cu perii se disting prin construc ția
statorului sau a modului cum înfășurările bobinelor sunt con ectate la sursele de tensiune.
Rotorul, denumit și armătură este realizat din una sau mai multe înfașurări, câ nd aceste
înfășurări sunt alimentate cu tensiune ele produc c âmp magnetic. Polii magnetici ai rotorului vor
fi atra și de polii opu și genera ți de stator, producând miș carea rotorului. Deoarece viteza rotației
controlează trecerea curentului prin rotor, mecanisme speciale trebuie folosite pentru pornirea
motoarelor cu curent continuu. Când rotorul se află în repaus, el, efectiv, nu are nici o rezisten ță,
și dacă voltajul normal este aplicat, va trece un curent mare, ceea ce ar putea avaria periile
colectoare sau motorul. Mijloacele obișnuite pentru prevenirea acestor accidente este folosirea
în serie a unei rezistențe, la început, împreună cu rotorul, pentru a limita curentul până când
motorul începe să dezvolte un curent suficient. Pe parcurs ce motorul prinde viteză, rezistența
este redusă treptat, fie manual ori automat. Viteza cu care un motor cu curent continuu
funcționează, depinde de puterea câmp ului magnetic care acționează asupra rotorului, cât și de
curentul rotorului.
Mai exis tă motoare de curent continuu, mai performante numite motoare de curent
continuu fa ră perii (Figura 1.2.1.b ). Aceste motoare au bobinele pe stator, iar magne ții se af lă pe
rotor. Acest lucru facilitează rotirea motorului, acesta neavâ nd frecare ca la mot orul de curent
continuu obiș nuit (Figura 1.2.1.a) .

Figura 1.2.1.a . Motor de curent continuu cu
perii. Figura 1.2.1.b . Motor de c urent continuu fa ră perii.

Capitolul 1. Introducere

9
1.2.2. Motoare servo
După cum sugerează și numele, un motor servo este un servomecanism. Mai precis,
este vorba de un servomecanism buclă închisă care utilizează feedback -ul pozi ție pentru a
controla mișcarea și pozi ția finală. Intrarea pentru control este un semnal, fie analogic sau
digital, reprezentând pozi ția comandată de arborele de ieșire. [***11,f]
Motoarele servo sunt utilizate în sisteme închise de control buclă în care munca este
variab ila de control. Controler -ul dig ital de motor servo direcționează modul de funcționare a
motorului servo, prin trimiterea semnalelor , viteza coman dă la amplificator, care conduce
motorul servo. Un dispozitiv de feedback integral (resolver) sau dispozitive (encoder și
tahometru) sunt fie încorporate în motorul servo sau sunt montate la distanță, de multe ori pe
sarcina în sine. Acestea oferă poziția motorului servo și feedback -ul vitezei pentru ca operatorul
să poată compara cu profilul său de mișcare programa tă și să le utilizeaze pentru a modifica
semnalul viteza. Motoarele servo sunt dotate cu un profil de mișcare, care reprezin tă un set de
instrucțiuni programate în care operatorul definește în funcție de motorul servo termenii de timp,
de poziție și de viteza. Capacitatea motorului servo să se adapteze la diferențele dintre acest
profil de mișcar e și a semnalelor de feedback depinde foarte mult de tipul de control și
motoarele servo folosite. [***11 ,f]
Cele mai multe servom otoare moderne sunt proiectate ș i livrate în jurul unui modu l
controler dedicat de la acelaș i producător. Controlere le pot fi, de asemenea, dezvoltat e în jurul
microprocesoare lor pentru a reduce costul pentru aplica ții de volum mare.
Componentele din care este al cătuit un motor servo sunt: circuit de control,
poten țiometru, motor, carca să servo, unelte de ac ționare și arbore de ie șire (Figura 1.2.1.a).

Figura 1.2.2.a. Motorul servo

Capitolul 1. Introducere

10
1.2.3. Motoare pas cu pas (MPP)
Motorul pas cu pas este un convertor electromecanic care realizează transformarea unui
tren de impulsuri digitale într -o mișcare proporțională a axului său.
Mișcarea rotorului motorului pas cu pas constă din deplasări unghiulare discrete,
succesive, de mărimi egale și care reprezintă pașii motorului. Motorul pas cu pas mai prezintă
proprietatea de a putea intra în sincronism față de impulsurile de comandă chiar din stare a de
repaus, funcționând fără alun ecare iar frânarea se efectuează , de asemenea, fără ieșirea din
sincron ism. Datorită acestui fapt se asigură porniri, opriri și reversări bruște fără pierderi de pași
pe tot domeniul de lucru. [***11,f]
Motoarele pas cu pas sunt utilizate în aplicații de mică putere, caracterizate de mișcări
rapide, precise, repetabile cum a r fi: plotere x -y, unități de disc flexibil, deplasarea capului de
imprimare la imprimante, acționarea mecanismelor de orientare și presiune la robo ți, deplasarea
axială a elementelor sistemelor optice, mese de poziționare 2D, pentru mașinile de găurit etc.
Majoritatea motoarelor pas cu pas sunt bidirec ționale și permit accelerarea, frâ narea și
schimbarea rapi dă a sensului de rota ție fară pierderi de pa și, dacă semnalele de coman dă au o
frecven ță inferioa ră frecven ței limi tă corespunzatoare regimului respectiv de func ționare.
Din punct de vedere al construcției circuitului magnetic, motoarele pas cu pas sunt :
– Motoare pas cu pas cu reluctanță variabilă
– Motoare pas cu pas cu magnet permanent
– Motoare pas cu pas hibride.
Motorul pas cu pas cu reluctanță variabilă are atât statorul cât și rotorul prevăzute cu
dinți uniform distribuiți, pe din ții statorului fiind montate înfășurările de comandă. Rotorul este
pasiv. La alimentare a unei/unor faze statorice, rotorul se rotește, astfel încât liniile de câmp
magnetic să se închidă după un traseu de reluctanță minimă .
Motorul pas cu pas cu magnet permanent are dinții rotorului constituiți din magneți
permanenți și polii dispuși radial. Când se alimentează fazele statorului se gener ează câmpuri
magnetice, care interac ționează cu fluxurile magneților permanenți, dând naștere unor cupluri
de forțe, ce deplasează rotorul.
Motorul pas cu pas hibrid este o combinație a primelor două tipuri, îmbinând avantajele
ambelor și fiind varianta de MPP utilizată în marea majoritate a aplicațiilor.
În cazul unui MPP hibrid, rotorul este constituit dintr -un magnet permanent, dispus longitudinal,
la ale cărui extremități sunt fixate două coroane dințate din material feromagnetic. [***11,f]

Capitolul 1. Introducere

11

Figura 1.2.3.a. Motor pas cu pas cu reluctan ță variabi lă

Figura 1.2.3.b. Motor pas cu pas cu magnet permanent

Figura 1.2.3.c. Motor pas cu pas hibrid

Utilizarea motoarelor pas cu pas ofe ră următoarele avantaje:
– precizie și rezolu ție mărite
– porniri, frână ri și schimbă ri ale sensului de rota ție fară pierderi de pa și
– compatibilitatea cu sistemele numerice de coman dă
Utilizarea motoarelor pas cu pas au ur mătoarele dezavantaje:
– pasul de valoare fixă pentru motor dat
– randamentul energetic s căzut
– capacitatea limita tă în ceea ce priveș te ac ționarea unor sarcini cu iner ție mare

Capitolul 1. Introducere

12
1.3. Schema genera lă a robo ților ur măritori
În schema de mai jos este prezenta tă imaginea de ansamblu a unui robot autonom de
urmărire. Acesta este format din senzori pentru detectarea diferitelor obiecte cum ar fi: o
persoană , un scaun, un perete, etc. De asemenea în aceas tă sche mă se regăseș te și placa de
dezvoltare ( în acest caz Microcontroler -ul ATmega328, din platforma de dezvoltare Arduino )
legată la un calculator/laptop, care are ca scop procesarea de informa ții. [Mar12]
Informa ția este trimi să mai departe la blocul de control al motoarelor și acest bloc de
control al motoarelor va comanda motoarele: de curent continuu, pas cu pas și servo.

Figura 1.3.a. Schema bloc a unui robot autonom

Capitolul 1. Introducere

13
1.4. Tipuri de senzori
Denumirea senzorului provine din cuvântul latin „sensus”, care însemnă simț și înainte
de a fi adoptat pentru sisteme tehnice, a fost și este utilizat pentru a desemna capacitățile
organelor de simț ale oamenilor și ale organismelor vii, de a culege și prelucra informații din
mediul înconjurător și a le transmite creierului. În acest proces mărimile fizice, neelectrice, sunt
convertite în semnale electrice, pe ca re creierul le poate prelua și interpreta și pe baza cărora
coordonează acțiunile mușchilor. Modelul din biologie îl întâlnim, în mare măsură, la sistemele
mecatronice.
Senzorii încearcă să imite comportamentul uman (anumite componente umane – ochiul,
nasul, urechea), dar nu principiile de funcționare ale organelor de simț umane, încă insuficient
cunoscute.
Tipuri de senzori:
– Senzori vizuali: folosiți la camerele de luat vederi, roboți, or iunde se investighează o
scenă.
– Senzori tactili: în aplicații de p iele artificială.
– Senzori olfactivi și gustativi: în industria alimentară (unde se investighează calitatea
produselor), în industria petrolieră, în industria minieră (la sist emele de siguranță/
avertizare).
– Senzori auditivi: în industria multimedia, la sis temele de r ecunoaștere vocală.
– Senzori de temperatură.
În automatizare, informa ția calitativă/cantitativă măsurabi lă livrată de senzori, dupa o
eventua lă amplificare și prelucrare serveș te la controlul și reglarea sistemelor tehnice automate.

Figura 1.4.a. Diferite tipuri de senzori

Capitolul 1. Introducere

14
1.4.1. Senzori de proximitate
Un senzor de proximitate emite adesea unde electromagnetice sau un fascicul de radia ții
electromagnetice și caută schimbări în mediul înconjurator, asemenea unui radar. El se
activează automat în timpul unui apel iar distanța la care poate depista un obiect este, în medie,
50mm. Senzorii de proximitate pot avea o mare fiabilitate și o viață lungă datorită lipsei de piese
mecanice și de contact fizic între senzor și obiectul simțit. Principiul de funcționare al senzorilor
de proximitate capacitivi diferă numai într -o mică măsură de funcționarea celor inductivi.
Deosebirea principală este că în locul bobinei se folosește un electrod de forma unei plăci
cilindrice. [***15,g]
Seria XL din M axSonar este o versiune de foarte mare performan ță ale telemetrului
sonar uș or de folosit de la Maxbotix. Seria XL a acestui senzor prezin tă rezolu ție mai mare, rază
mai mare, putere mai mare și calibrare mai buna atunci cand este comparat cu versiunea LV.
Senzorul furnizeaza citiri de înaltă acurate țe de la 0 la 765 cm (0 până la 25,1 picioare)
cu rezolu ție de 1 cm. Senzorul poate fi alimentat cu orice voltaj între 3,3 și 5V CC.
Informa ția despre raza de ac țiune poate fi cu leasă prin una din trei metode: analog, serial sau
PWM, toate fiind active în acela și timp. Ie șirea analogi că va produce un voltaj propor țional cu
distan ța măsurată, cu o senzitivitate de (Vcc/1024)V/cm. Interfata seria lă este simp lă și
formata tă RS-232, cu voltaje de la 0 la Vcc și setări de terminal 9600 -8-N-1. În sfarșit, pinul
PWM emite o reprezentare pe baza lățimii pulsului, a razei, cu un factor de sca lă de 58us/cm.

Figura 1.4.1.a . Senzor de proximitate c apacitiv Figura 1.4.1.b. Senzor de proximitate de tip
sonar

Capitolul 1. Introducere

15
1.4.2. Senzori de temperatu ră
Măsurarea temperaturii se bazează pe diferite fenomene și efecte fizice, în care
modificarea temperaturii determină modificări ale unor proprietăți sau caracteristici ale
materialelor cum ar fi : variația dimensiunilor geometrice, variația rezistenței electrice, apariția
unei tensiuni electromotoare de -a lungul joncțiunii a două metale, variația intensității radiaț iei
emise, variația frecvenței de rezonanță a unui cristal de cuarț etc. Acuratețea procesului de
măsurare a temperaturii este foarte importantă pentru cele mai multe aplicații de control a
diferitelor procese tehnologice. Când un senzor (sondă) este introdus într-un obiect sau plasat pe suprafața obiectului,
va exista un transfer de căldură între sondă și obiect: senzorul se va răci sau se va
încălzi. Același fenomen va apărea și în cazul transferului de energie termică sub formă de
radiație energetică în IR, senzorul va absorbi sau emite radiație IR în funcție de
temperatura corpului monitorizat. Orice senzor, indiferent de cât de mic este, va
perturba rezultatele măsurătorii și deci este o problemă majoră în a minimiza
erorile introduse de senzor și în a adopta o metodă optimă de măsurare. Există două
metode de procesare a semnalului în măsurătorile de temperatură: metoda
echilibrării și metoda predictivă. [***15,g]

Figura 1.4.2.a. Senzor de temperatu ră LM35 Figura 1.4.2.b. Senzor de temperatu ră industrial
cu protec ția capului

1.4.3. Senzori de miscare
Un senzor pasiv în infraroșu (senzor PIR) este un dispozitiv electronic care măsoară radia ția
infraroșie (IR) provenită de la obiecte aflate în câmpul său vizual. Aparent mișcarea este
detectată atunci când un corp cu o anumită temperatură (cum ar fi un om sau un animal) tre ce

Capitolul 1. Introducere

16
prin fa ța sursei infraroșu (adică un alt corp, obiect) cu o altă temperatură, cum ar fi un perete.
Acest lucru înseamnă că senzorul detectează căldura de la trecerea unui obiect prin câmpul de
acțiune al senzorului și acel obiect rupe câmpul pe care senzorul l -a determinat anterior ca fiind
“normal”. Orice obiect, chiar unul de aceeași temperatură ca și obiectele din jur va activa
senzorul PIR dacă corpul se deplasează în câmpul vizual al senzorulu i. [***15,g]
În prezent senzorii de miș care sunt util izați frecvent și sunt adeseori mont ați la ușile de la
supermarket sau la u șile de la benzinării etc. Senzorii de mișcare fac via ța mai uș oară
persoanelor care nu pot deschide o u șă, de asemenea un senzor de miscare asigu ră
secur itatea casei prin detectarea miș cării și activarea alarmei sonore sau aprinderea luminii de
exemplu.

Figura 1.4.3.a Senzor de miș care PIR

1.4.3. Senzori foto reflexivi
Un senzor este un dispozit iv care detectează sau măsoară unele condi ții sau proprie tăți
și înregistrează , indi că sau uneori răspunde la informa ția primi tă. Altfel spus, senzorii au func ția
de a converti un stimul într-un semnal măsurabil, cuprinzând atâ t traductorul, care transfor mă
mărimea de intrare în semnal electric util, câ t și circuite pentr u adaptarea și conver sia
semnalelor și eventual pentru prelucrarea și evaluarea informa țiilor. Stimulii pot fi mecanici,
termici, electromagnetici, acustici sau chimici, în timp ce semnalul măsurabil este de natu ră
electri că. [***15,g]
Un senzor optic, sau foto -ochi, este un dispozitiv folo sit pentru a detecta distan ța,
absen ța sau prezen ța unui obiect cu ajutorul unui transmi țător de lumină, de multe ori cu

Capitolul 1. Introducere

17
infraroșu, precum și un receptor fotoelectric. Senzorii optici sunt utiliza ți pe scară largă în
produc ția industrială. Există trei tipuri de func ționare diferite: opuse (prin fascicul), retro -reflexiv,
și simțul-proximi tății (difuză).
Un senzor optic autonom con ține optica, împreună cu component ele electronice. Este
nevoie doar de o sursă de aliment are. Senzorul efectuează propriile modu lări, demodu lări,
amplifi cări și comuta ții de ieșire. Niște senzori de sine stătăto ri oferă aceste op țiuni cum ar fi
contoare de control built -in. Datorită progresului tehnologic, senzori i fotoelectrici autonomi au
devenit din ce în ce mai mici .

Figura 1.4.3.a. Mod de func ționare senzor foto
reflexiv Figura 1.4.3.b. Senzor foto reflexiv (PS-45)

Senzorii foto reflexivi pot fi de mai multe feluri în funcție de foto detectoarele folosite. Acestea
pot fi:

Figura 1.4.3.c. LED -fototranzistor Figura 1.4.3.d. LED -fotodio dă

Figura 1.4.3.e. LED -fototiristor

Capitolul 1. Introducere

18
1.5. Sisteme de deplasare
Locomo ția robo ților este numele colectiv pentru diferitele metode care folosesc robo ți
pentru a se transporta din loc în loc. Deși robo ții cu ro ți sunt de obicei destul de eficien ți
energetic și simplu de controla t, alte forme de locomo ție pot fi mai potrivit e datori tă unei serii de
motive (de exemplu, traversează teren accidentat, se deplasează și interac ționează în medii
umane). În plus locomo ția robo ților, studiază robo ți bipezi și robo ți insecte ce pot avea un impact
benefic asupra biomecanici . [Gor13 ]
Un obiectiv major în ac est domeniu este, dezvoltarea capacită ților roboților pentru a
decide în mod autonom cum, când și unde să se miște. Cu toate acestea, coordonarea unui
număr mare de articula ții pot crea probleme pentru robo ți, chiar și sarcini simple , cum ar fi
urcarea s cărilor, este dificil de realizat .
Tipul de deplasare a unui robot ur măritor de obiecte sau persoane poate fi de mai multe
feluri. În funcție de alegerea metodei de deplasare, robotu l se va deplasa cu o mai mare
ușurință sau va întâmpina anumite dificul tăți la opriri sau la viraje, în funcție de sistemul de
deplasare ales.
Câteva exemple de sisteme de deplasare folosite în proiectele cu robo ți urmăritori:
– Robo ți cu 4 ro ți

Figura 1.5.a. Robot cu 4 ro ți fară servodirec ție cu
4 motoare separate Figura 1.5.b. Robot cu 4 ro ți cu servodirec ție

Capitolul 1. Introducere

19
– Robot cu 3 ro ți

Figura 1.5.c. Robot cu 3 ro ți, a III -a fiind roa tă de tip cărucior

Figura 1 .5.d. Robot cu 6 ro ți fară servodirec ție Figura 1.5.e. Robot cu 2 ro ți
În ceea ce privește eficien ța energetică pe suprafe țe plane, robo ții autonomi cu ro ți sunt
cei mai eficien ți. Acest l ucru se datorează faptului că o rulare ideală a roții (dar nu alunecarea)
nu pierde nici o energie. O roată care rulează la o anumită viteză nu are nevoie de valori de
intrare pentru a men ține viteza constan tă. Acest lucru este în contrast cu robo ții cu picioare (de
exemplu robo ți umanoizi) care suferă un impact cu solul, cand călcâi ul atinge suprafata plană și
are ca rezultat o pierdere de energie.

20
Capitolul 2. Fundamentare teoreti că

2.1. Platforma Arduino UNO
Arduino este o companie cu produse hardware și software, pentru proiect e de inginerie
electroni că. Utilizator i care proiectează și produc din kit-uri puse la dispozi ție de către Arduino,
pot construi dispozitive digitale și ob iecte interactive care pot sim ți și controla lumea fizică.
Plăcile Arduino pot fi achizi ționate preasamblate, sau kit -uri de genul “do it yourself”. În același
timp, informa țiile de proiectare și hardware -ul este disponibi l pentru cei care ar dori să-și
asambleze un Arduino de la zero. [Mcr11]
Proiectul se bazează pe o famil ie de modele de microcontrolere fabricate cu precădere
de SmartProjects din Italia și de asemenea, de o serie de al ți furnizori, folo sind diferite
microcontrolere Atmel AVR pe 8 biți sau procesoare ARM Atmel pe 32-biți. Aceste siste me oferă
seturi de pini digitali și analogici (I/ O) care pot fi conecta ți la diverse p lăci de extensie și alte
circuite. P lăcile sunt dotate cu interfe țe de comunica ții seriale, inc lusiv USB pe un ele modele,
pentru încărcare a programe lor de pe calculatoarele personale. Pentru programarea
microcontrolerelor, platforma Arduino oferă un mediu de dezvoltare integrat (IDE) pe baza
proiectului de procesare, care inc lude suport pentru limbajele de programare C și C ++ .
Primul Arduino a fost introdus în 2005. Liderii proiectului au încercat să ofere un mod
ușor și ieftin pentru pasiona ți, studen ți, și profesioniști pentru a crea dispozitive care
interac ționează cu med iul lor, folosind senzori și actuatori. Exemple comune pentru pasiona ții
începatori includ: robo ți simpli , termostate și detectoare de mișcare. [Mcr11]

2.1.1. Informa ții generale despre Arduino
În forma cea mai simp lă, o p lacă de dezvoltare Arduino poate fi considera tă ca un mic
computer căreia i se pot controla int rările și ieșirile. Arduino este cunoscu tă ca fiind o platformă
fizică sau integrată , ceea ce înseamnă că este un sistem interactiv și astfel prin utilizarea
hardware și software poate interac ționa cu mediul. [Lan13]
Placa de baza Arduino este al cătuită dintr-un microprocesor, un cristal sau un oscilator și
un regulator liniar de 5 vol ți. În funcție de tipul de Arduino, aceasta poate av ea și un conector
USB pentru a permite conectarea la calculatorul personal prin portul USB. De asemenea, placa
dispune de un anumit nu măr de pini pentru intrare (Input Pin) și pentru ie șire (Output Pin) prin
intermediul cărora se poate conecta la alte circ uite (senzori, led -uri, motoare, etc.).

Capitolul 2. Fundamentare teoretică

21
2.1.2. Placa de dezvoltare Arduino UNO
Arduino Uno este o pla că cu un microcontroler bazat pe ATmega328. Placa Arduino
UNO are 14 pini digitali de intrare/ ieșire (dintre care 6 pot fi utilizate ca ieșiri PWM), 6 intrări
analogice, un oscilator ceramic de 16 MHz, o conexiune USB, o mufă pentru alimentare , un
antet ICSP și un buton de resetare. Placa de dezvolate Arduino UNO conține tot c e este
necesar pentru a sus ține un microcontroler, se conectează pur și simplu la un computer cu un
cablu USB. [***10,a]
Arduino Uno diferă de toate p lăcile precedente pentru că nu utilizează cip -ul FTDI USB la
serial. În schimb, este dotat cu Atmega16U2 (Atmega8U2 până la versiunea R2), p rogramat ca
un convertor USB la serial.
Arduino Uno poate fi alimenta tă prin intermediul conexiunii USB sau cu o sursă de
alimentare externă. Sursa de alimentare este selecta tă automat.
Surse de alimentare externe pot veni fie de la un adaptor AC/DC sau de la o baterie.
Firele de la baterie pot fi introdus e în GND și Vin.
Placa poate opera pe o sursă externă de la 6 până la 20 de vol ți. Dacă placa este
alimenta tă cu m ai pu țin de 7V , pinul de 5V poate furniza mai pu țin de 5 volți și placa poate fi
instabil ă. Dacă utiliza ți mai mult de 12V, regul atorul de tensiune se poate su praîncălzi și
deteriora placa, i ntervalul recomandat este de 7 -12 vol ți. [***15,g]

Figura 2.1.2.a. Placa de dezvoltare Arduino UNO R3

Capitolul 2. Fundamentare teoretică

22
Fiecare dintre cei 14 pini digitali de pe Arduino Uno pot fi utiliza ți ca intra re sau ieșire,
folosind func țiile pinMode (), digitalWri te() și digitalRead(), pinii funcționează la 5 vol ți. Fiecare pin
poate oferi sa u primi un maxim de 40 mA și au o rezisten ță intern ă (deconectată implicit ) de 20 –
50 kohmi. În plus, unii pini au func ții specia lizate:
Serial: 0 (RX) și 1 (TX), sunt folosi ți pentru a primi (RX) și transmi te (TX) date seriale
TTL. Aceș ti pini sunt conecta ți la pinii corespunzătoari cip -ului ATmega8U2 USB-to-TTL.
Întrerupe rile externe: 2 și 3, acești pini pot fi configura ți pentru a declanșa o întrerupere la o
valoare scăzută, o margine în creștere sau în scăd ere, sau o modificare a valorii, folosind funcția
attachInterrupt().
PWM: 3, 5, 6, 9, 10, și 11. Furnizarea de 8 -biți cu ieșire PWM, folosind func ția
analogWrite ().
SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Aceș ti pini sprijină comunicare a SPI
folosind biblioteca SPI.
LED: 13. Există un program incorporat conectat la pin -ul digital 13. Atunci când pin -ul are
valoarea ridicată, led -ul este ap rins, atunci când pinul este low, led-ul este oprit. [Mar11]
Placa Arduino Uno are 6 int rări analogice, etichetate de la A0 până la A5, fiecare dintre
ele oferă 10 de bi ți de rezolu ție (de exemplu, 1024 valo ri diferite). În mod implicit ele măsoa ră de
la GND la 5 vol ți, deși este pos ibil să se schimbe capătul de sus a gamei lor, folosind pin -ul
AREF și func ția analogReference().

Figura 2.1.2.b. Schema P lăcii Arduino UNO R3

Capitolul 2. Fundamentare teoretică

23
2.2. No țiunea de microcontroler
Privind evolu ția istori că a opera ției de coman dă a unui proces putem contur a imaginea
unui microcontrol er. Un contro ler este un sistem folosit pentru a comanda și a prelua s tări de la
un proces sau un aspect al mediului înconjurător. La început un contro ler era un echipament de
mari dimensiuni. Dupa apari ția micropr ocesoarelor dimensiunile contro lerelor s -au redus.
Procesul de miniaturizare a continuat, toate co mponentele necesare unui contro ler au
fost integrate pe acela și cip. S-a născut ast fel calculatorul pe un singur c ip specializat pentru
imple mentarea opera țiilor de control, acesta este mi crocontro ler-ul. Un microcontro ler este un
circuit realizat pe un singur c ip care con ține tipic: unitatea centra lă, generatorul de tact, memoria
volati lă (RAM), memoria nev olatilă (ROM/PROM/EPROM/EEPROM), dispozitive I/O seriale și
paralele, controller de întreruperi, controller DMA, nu mărătoare/temporizatoare (timer s),
covertoare A/D și D/A și periferice.
Prețul unui microcontroler este redus din cauza canti tăților mari în care se fabri că. Preț ul
mic al microcontroler -ului aduce cu sine și micșorarea preț ului sistemelor de control (se
micșorează inclusiv costul proiec tării).
Diferenț ele dintre micropr ocesor și unitatea centra lă a microcontroler -ului se atenuează
în timp. Astfel, marii constructo ri de procesoare au realizat niște circuite care s -ar putea numi
super -microcontrol ere, așa cum sunt Motorola 68EC300, INTEL 386EX sau IBM PowerPC
403GB, care sunt m icrocalcu latoare pe un singur c ip.

2.2.1. Arhitectura microcontrolerelor
Arhitectura unui microcontroler definește atributele sistemului așa cum sunt ele văzute
de un programator în limbaj de asa mblare. Deoarece un microcontro ler este u n caz particular de
calculator (calculator specializat pentru operații I /O, realizat pe un singur c ip) acesta este
compus di n cele cinci elemente de bază: unitate de intrare, unitate de memorie, unitate
aritmetică și logică, unitate de control și unitate de ieșire.
Unitatea de control împreună cu unitatea aritmetică și logică compun împreună unitatea
centrală de prelucrare (U CP). Unitățile de intrare și ieșire vor fi tratate împreună și vor fi referite
prescurtat ca sistem I/O. Blocurile componente ale microcontroler -ului sunt legate între ele
printr -o magistrală internă (bus). Magistrala vehiculează semnale de adresă, de date și semnale
de control. Mărimea acestor magistrale constituie una dintre caracteristicile cele mai importante
ale unui microcontroler . Prin magistra la de adrese , unitatea centrală de prelucrare (UCP)
selectează o locație de memorie sau un dispozitiv I/O, i ar pe magistra la de date se face
schimbul de informație între unitatea centra lă de prelucrare ( UCP ) și memorie sau dispozitivele

Capitolul 2. Fundamentare teoretică

24
I/O. Între unitatea centra lă de prelucrare și memorie sunt transferate atât date cât și instrucțiuni.
Acestea se pot transfera pe o singură magistrală de date sau pe magistrale de date diferite

Figura 2.2.1.a. Schema bloc a unui microcontroler

2.2.2. Microcontrolerul ATMega 328 p
AVR este un microcontroler pe 8 bi ți care are la baza un nucleu RISC cu arhitectura
Harvard, care a fost dezvoltat de către Atmel AVR în 1996. A fost una dintre primele familii de
microcontrolere care a utiliza t memoria flash pe c ip pentru depozitare a programul ui, spre
deosebire de o singură programare pe ROM , EPROM, sau EEPROM folosit de alte
microcontrolere la momentul respectiv. [***15,j]
Microcontrolerul ATMega face parte din familia microcontrolerelor AVR. Aceste
microcontrolere sunt utilizate în aplica ții simple cum ar fi: controlul motoarelor, controlul fluxului
de informa ție prin portul USB, aplica ții din domeniul automotive (controlul aprinderii motorului,
climatizare, diagnoză, sisteme de alarmă, etc.) , în aparatu ră electrocasnică (mașini de spălat,
frigidere, cuptoare cu micround e, aspiratoare), controlul accesului de la distanta și multe alte
exemple. Pe baza acestui nucleu firma Atmel a dezvoltat mai multe familii de microcontrolere cu
diferite structuri de memorie și de interfeț e I/O, destinate diferitelor clase de aplica ții. [***15,j]

Capitolul 2. Fundamentare teoretică

25
Familia de procesoare AVR pe 8 bi ți au ur mătoarele caracteristici:
– Arhitectura RISC
– 32 de registre de lucru pe 8 bi ți
– Multiplicator hardware
– Arhitectura Harvard a spa țiului (memorie interna: 16 kocte ți program flash, 1 koctet
data SRAM, 521 octe ți data EEPROM)
– Frecventa de lucru poate fi controla tă prin software de la 0 la 16 MHz
– Procesoarele sunt prevazute cu o ga mă largă de dispozitive I/O și de periferice
incorporate
– Timer programabil cu circuit de prescalare
– Surse de întrerupere interne și externe
– Timer de ur mărire cu oscilator independent
– Interfata JTAG (standardul IEEE 1149.1 Compliant)
– 6 moduri de operare Sleep și Power Down pentru economisirea energiei
– Oscilator integrat RC
– Densitate mare a codului și compatibilitate integra lă a codului între membrii familiei
– Procesoarele sunt disponibile în capsule variate, de la circuite cu 8 pini la procesoare
de 68 de pini

Figura 2.2.2.a. Microcontroler -ul ATmega328p

Capitolul 2. Fundamentare teoretică

26
Microcontrolerele din familia AVR folosesc o arhitectura RISC care permite execu ția
celor mai multe instruc țiuni într-un singur ciclu de tact, ceea ce duce la imbuna tățirea
performanț ei de 10 ori fa ță de procesoarele conven ționale (de exemplu, Intel 8051) care
opereaza la aceia și frecven ță. [***15,j]
Specific arhitecturii Harvard, procesoarele folosesc spa ții de memorie și magistrale de
acces separate pentru coduri și date. Toate procesoarele au memoria de program de tip flash
integrata. Memoria de program poate fi programa tă “in site” adi că fară scoaterea din sistem,
ceea ce permit e efectuarea rapi dă de upgrade -uri în programe. Programarea se poate face în
doua moduri: serial și paralel. Procesoarele au memorie de date intregra tă de tip RAM pentru
variabile și memorie de tip EEPROM pentru stocarea constantelor. Nu mărul mare de registre
interne (32 de registre de 8 bi ți) specifice procesoarelor RISC permit stocarea variabilelor în
interiorul procesorului, reducand astfel timpul de acces. În acest fel creș te viteza de execu ție a
programelor. [***15,j]
Prezenț a unor blocuri inter ne ca: porturi, timere, uni tăți de comunica ție USART, TWI și
SPI, module PWM (Pulse Width Modulation), convertoare A/D, comparatoare analogice,
rezistoare pull -up, oscilatoare interne; permit utilizarea acestor microcontrolere într-o gamă largă
de aplica ții. Instruc țiunile acestei famili de microcontrolere au fost proiectate pentru a reduce
dimensiunea unui program scris în limbaj C sau în limbaj de asamblare. Posibilitatea programarii
memoriei Flash și a memoriei EEPROM, face ca aceste microcontrolere să aibă, o largă utilizare
datori tă costului mic de dezvolate a unei aplica ții prin re ducerea timpului de proiectare.

Figura 2.2.2.b Reprezentarea pinilor pentru microcontrolerul ATmega328p

Capitolul 2. Fundamentare teoretică

27
2.3. Mediul de dezvoltare software Arduino
Mediul de dezvoltare integrat Ardui no (IDE) este o aplica ție de tip platfor mă scrisă în
limbajul de programare Java și derivă din mediu l de dezvoltare interactiv pentru limbajul de
programare , de prelucrare și din proiectele de cablare. Acesta este conc eput pentru a introduce
programarea pentru nou-veniți, care nu sunt familiariza ți cu dezvoltarea software. Acest mediu
include un editor de cod cu diferite caracteristici cum ar fi : eviden țierea sintaxei, potrivirea
acoladelor și indentare automa tă și este, de asemenea capabil să întocmeas că și să încarce
programele prin apasarea unui singur clic k. Un program sau un cod scris în mediul de
dezvoltare Arduino se numeste "schi ța". [Ban14]

Figura 2.3.a. Mediul de programare Arduino
Mediu de programare simplu și clar. Mediul de programare Arduino este ușor de utilizat
pentru începatori , iar pentru utilizatorii avansa ți este exact cat trebuie de avansat . Este foarte
ușor de folos it pentru oricine are experiență de programare în orice l imbaj.
Limbajul folosit este o varian tă simplifica tă de C/C++, ameliora tă cu diverse biblioteci
specifice platformei Arduino. Software -ul Arduino rulează pe sistemele de operare Windows,
Macintosh OS X, și Linux, însă cele mai multe sisteme cu microcontrolere sunt limitate la
platforma Windows. [Ban14]

28
Capitolul 3. Specifica țiile și arhitectura sistemului

3.1. Func țiile sistemului
Pentru o bună implementare a codului a trebuit realiza tă o diagram a de stări. În cadrul
acestui proiect m -am gândit că robotul urmăritor poate trece prin șase stări (de la S0 până la
S5). În continuare se vor enume ra stările:
S0 – Oprit (Robotul este oprit, nu este alimentat)
S1 – Pornit (Robotul este alimentat)
S2 – Repaus (Robotul s tă pe loc și nu fac e nimic pentru aproximativ o secundă , apoi
începe căutarea persoanei )
S3 – Căutare (Robotul caută persoana )
S4 – Urmărire (După gasirea persoane , robotul o urmăreste până o pierde)
S5 – Staționare (Da că persoana se oprește, atunci se opreș te și robotul)
Dacă robotul a ajuns în starea de ur mărire, iar persoana dispare între timp , acesta va
intra din nou în starea de căutare.
Dacă robotul a ajuns în starea de căutare și persoana nu este gasi tă într-un minut,
robotul se va întoarce în starea de repaus și apoi va intra din nou în starea de căutare.

Figura 3.1.a. Diagrama de s tări a robotului ur măritor

Capitolul 3. Specificațiile și arhitectura sistemului
29

Figura 3.1.b. Modul de func ționare a procesului

3.2. Schema bloc a sistemului
O posibilitate ar fi fost utilizarea unei camere video pentru detec ția persoanei atribuite ,
dar aceas tă soluție a fost respin să deoarece procesarea de imagini este un task complex și
necesi tă resurse hardware speciale cum ar fi un mini calculator (Raspber yPi sau BeagleBone).
Chiar și cu aceste resurse viteza de detec ție, respectiv actualizarea, pozi ției este mult
mai mi că decat cea a unor senzori infraro șii.

Capitolul 3. Specificațiile și arhitectura sistemului
30
Un neajuns în folosirea senzorilor infraro șii este acela că nu ofe ră informa ții despre
culoare, respectiv forma obiectului ur mărit, dar unul dintre avantajele folosir i senzorului infraroș u
este acela că, viteza de detec ție este foarte ridica tă.
Aceas tă secțiune cuprinde o descriere genera lă a întregii arhitecturi hardware și a
modulelor ce o compun. Scopul ei este de a introduce cititorul în modularizarea genera lă a
arhitecturii și de a-i oferi o descriere de nivel înalt.

Figura 3.2.a. Schema bloc a sistemului(robotul ur măritor)

Capitolul 3. Specificațiile și arhitectura sistemului
31
3.3. Baza materia lă necesa ră realiză rii/tes tării sistemului
Pentru realizarea acestui proiect, mai ales partea practi că am avut nevoie de numeroase
piese pentru a construi robotul ur măritor. Cea mai buna varian tă pe care am gă sit-o, a fost
aceea de a comanda piesele online de pe un site spe cializat în comercializarea componentelor
electrice și electronice necesare construirii unui robot.
Site-ul pe care am căutat componentele este www.robofun.ro , unde am gă sit toate
componentele necesare. Dupa ce am pus comanda on -line componentele au ajuns a doua zi. În
momentul în care am primit componentele necesare am putut începe lucrul la partea practi că
prin construirea șasiului, testarea senzorilor de distan ță și punerea în funcțiune a motoarelor.

Figura 3.3.a. Componentele necesare realizarii/tes tării sistemului

Capitolul 3. Specificațiile și arhitectura sistemului
32
Lista de componente numerotate (Figura 3.3.a.):
– 1. Universal Plate 210×160 mm
– 2,3. Universal Arm Set
– 4. Universal Plate 2 Set 60×160 mm
– 5. Ro ți 70×8 mm
– 6. Ball Caster 19,5 mm
– 7,8. Motor electric micro metal 50:1 HP
– 9,10. Suport motor micro extins
– 11. Conector roa tă motor 5 mm
– 12,13. Cutie 6 baterii AA / R6
– 14. USB Battery Pack – 1000 mAh
– 15. Cablu senzori 3 fire
– 16. Senzor de distan ță Sharp (10 -80 cm)
– 17. Conector Bluetooth Mate Sil ver pentru Arduino ( 2-10 metri)
– 18. Driver Motoare L298 versiunea 2, tip shield

3.3.1. Senzor de distan ță
Există 3 tipuri de senzori, fiecare eficace pe o anumi tă zona din punct de vedere al
distanț elor măsurate : senzor de apropiere, eficient pentru măsurători între 3 cm și 40 de cm, senzor
de depă rtare medie, eficient între 10 cm și 80 cm, și senzor de depă rtare, eficient între 15 cm și 150
cm. [***15,i]

Figura 3.3.1.a. Senzorul de distan ță Sharp GP2Y0A21YK (10cm – 80cm )

Capitolul 3. Specificațiile și arhitectura sistemului
33
Senzorul utilizat în acest proiect, este un senzor eficient între 10 și 80 cm. Senzorul de
distan ță Sharp GP2Y0A21YK (10cm – 80cm) este un senzor care măsoară distanța cu acurat ețe
de la 10 până la 80 de cm. Dispozitivul dispune de 3 pini, doi dintre ei fiind pini de alimenta re
(GND și Vcc), iar cel de -al treilea fiind pinul care dă indica ții asupra distanț ei. Senzorul dă
indica ții asupra distanț ei prin valori cuprinse între 0 – 1024, pentru distanț ele mai mici de 40 cm
va ge nera valori strict mai mici decât 600, iar pentru distanț e între 40 și 80 cm va genera valori
mai mari decat 600.
El este format dintr -un emi țător infraroșu care emite lumină în spectrul infraroș u,dacă
există un obiect în fața acestuia lumina se reflec tă de obiect și este recepta tă de către receptorul
infraroș u și în funcție de intensitatea luminii reflectate senzorul ofe ră la ieșire o tensiune
analogică .
În funcție de tensiune a de la ie șire se poate calcula distan ța, cunoscâ nd caracteristica de
transfer a senzorului. [***15,i]

Figura 3.3.1.b. Senzorul de distan ță
Sharp GP2Y0A21YK (10cm – 80cm)
văzut din spate Figura 3.3.1.c. Caracteristica de transfer a senzorului
de distan ță Sharp GP2Y0A21YK (10cm – 80cm)

Capitolul 3. Specificațiile și arhitectura sistemului
34
3.3.2. Driverul pentru motoare
Driver -ul de motoare este utilizat pentru controlul motoarelor de curent continuu
folosind Arduino .
Arduino este capabil să scoa tă pe porturile lui o putere foarte mi că, total insu ficien tă
pentru a învârti un motor. Da că vom conecta un motor electric direct la un port Arduino, cel mai
probabil vom ob ține arderea procesorului din placa Arduino.
Ca să nu se întample acest lucru, avem nevoie de un amplificator de putere, care să ia
putere din sursa de alimentare (baterie, de exemplu), și să o transmi tă motoarelor aș a cum ii
coman dă Arduino. Acest amplificator poar tă numele generic de "driver de motoare".
Există o multitudine de drivere de motoare , diferenț a majo ră între ele fiind câ t de mul tă
putere pot conduce (câ t de puternice pot fi motoarele pe care le pot controla). Driver -ul din
aceas tă secțiune este bazat pe integratul L298, fiind un driver de nivel mediu din punct de
vedere al puterii conduse. Poate controla motoare care necesi tă cel mult 2 Amperi. [***14,b]

Figura 3.3.2.a. Driver motoare L298 versiunea 2, tip shield
În acest proiect am ales Driverul de motoare L298 versiunea 2. Este un integrat care
conține două punți H pentru controlulu l a 2-a motoare de current continuu care poate suporta
vârfuri de până la 4A și operare continuă de 2A cu răcire adecva tă.
Aceasta este construit cu ajutorul tranzistorilor de tip BJT prin urmare exis tă o cădere de
tensiune pe ac eștia de până la 2V , prin urmare căldura care trebuie disipata este destul de
mare.

Capitolul 3. Specificațiile și arhitectura sistemului
35
Driver -ul se conecteaza la placa Arduino folosind 4 pini digitali (3, 5, 6, 9), aceș tia se
introduc direct în pinii p lăcii Arduino. Produsul se prezin tă sub forma shield -ului Arduino complet
asamblat (Figura 3.3.2.a.), la care se adaugă o serie de elemente de conectare, care nu sunt
montate pe pla că în mod obiș nuit.
Utilizarea acestui shield are numeroase func ționalita ți suplimentare. Prin utilizarea
acestui shield se pot alimenta senzorii (5V) direct din el, folosind cei 6 conectori care ofe ră
conexiune direc tă la 5V și cei 6 conectori care ofe ră conexiune direc tă la GND. [***14,b]

Figura 3.3.2.b. Conectarea motoarelor și senzorului la shield

De asemenea o al tă funcționalitate intresan tă a shield -ului este că, permite conectarea
unui Bluetooth Mate la placa Arduino într-un mod foarte simplu. Pe shield exis tă deja un
conector dedicat cu 6 pini, care a fost special gandit și proiectat pentru modulul Bluetooth Mate .
Tot ce trebuie facut este ca modulul Bluetooth Mate să fie introdus în pinii mamă ai shield -ului,
există și o conexiune SoftwareSerial pe pinii digi tali 2 și 4.

Figura 3.3.2.c Bluetooth Mate conectat la driver -ul L298

Capitolul 3. Specificațiile și arhitectura sistemului
36
Pentru alimentarea motoarelor, trebuie avu tă mare grija, deoarece conectarea direc tă la
placa Arduino poate duce la arderea acesteia. Alimentarea shield -ului se face prin pinii cu surub
VIN și GND. Shield -ul se alimenteaza în funcție de necesi tățile motoarelor. Da că motoarele
accep tă o tensiune de cel mult 9V atunci se poate utiliza o cutie cu 6 baterii . Tensiunea tota lă a
bateriilor este de 9V , dar driver -ul consu mă intern între 2.5 și 4.5V. În acest mod, pe motor,
ajunge o tensiune cuprin să între 4.5V și 6.5V, suficient cat să iși îndepli neas că funcția fară să se
ardă. [***15,g]
Pentru placa Arduino, se poate alege folosirea unei alte surse de tensiune (cutie de
baterii, LIPO, etc), sau se poate alege folosirea acele iași surse de tensiune care se foloseș te și
pentru motoa re. Este recomanda tă folosirea u nei alte surse de tensiune. Dacă se foloseș te o
singu ră sursă de tensiune, atunci câ nd bateriile se descar că prea mult, placa Arduino se poate
reseta sau senzorii pot genera semnale eronate din cauză că, motoarele necesi tă un curent
prea mare cand pornesc sau cand i și schimbă sensul de rota ție.
Pentru a folosi două surse de tensiune, shield -ul se alimenteaza folosind pinii VIN și
GND (cei cu ș urub, partea fronta lă), iar placa Arduino se alimentează fie pe mufa rotun dă, de
exemplu folosind un cablu de alimentare împreună cu o cutie de 6 baterii , sau al tă modalitate
(de exemplu direct prin pinii ma mă GND și VIN).

Figura 3.3.2.d. Alimentarea driver -ului folosind doua surse

Pentru a folosi o singu ră sursă de tensiune (Figura
3.3.2.e din stanga), se poate cupla jumper -ul de
culoare mov pe shield. În acest fel, tensiunea aplica tă
pe pinul cu ș urub VIN ajunge direct prin jumper pe
pinul VIN (ma mă) din placa Arduino. Se poate opri
placa Arduino apoi prin deconectarea jumper -ului.

Capitolul 3. Specificațiile și arhitectura sistemului
37
3.3.4. Motoare utilizate și modulul Bluetooth Mate
Motoarele 1 și 2 sunt Motoare electrice micro metal 50:1 HP. Specifica țiile lor sunt:
dimensiuni (23.87 x 9.90 x 11.93 mm), Ax (3 mm diametru în diametru și 9.27 mm în lungime),
tensiunea de alimentare (6V), curent (100 mA – fară sarcină , 1.6A – blocat), cuplu (1.4 Kg/cm) și
viteza (625 RPM)
Acestea sunt motoare de current continuu cu perii care sunt dotate cu reductor pentru
controlul mai usor al robotului și cuplu mai mare. [***15,g]

Figura 3.3.4.a. Motor electric micro metal 50:1
HP Figura 3.3.4.b. Dimensiunile motorului și piesele
din componenta acestuia

Modulul bluetooth utilizat este Conectorul Bluetooth Mate Silver pentru Arduino (clasa 2, 10
metri). Acest modem Bluetooth func ționeaza excelent cu Arduino. Este foarte simplu de utilizat
(pur și simplu datele scrise pe pinii RX/TX sunt disponibili la receptor), din acest punct de vedere
putem considera ca și cum pinii RX/TX sunt conecta ți prin fire obiș nuite între emiță tor și
receptor. Acesta poate fi configurat uș or în modul Bluetooth master sa u slave. [***15,g]

Figura 3.3.4.c. Conectorul Bluetooth Mate silver (clasa 2, 10 metri)

Capitolul 3. Specificațiile și arhitectura sistemului
38
3.3.5 . Etape de asamblare a robotului
Pentru realizarea șasiului am folosite mai multe set -uri, dar nu toate piesele din fiecare
set. Șasiul principal , adică porțiunea pe care stau majoritatea componentelor face parte din,
Universal Plate 210×160 mm, am mai folosit și componente din Universal Arm Set pentru
porțiunea din fa ță unde sunt monta ți senzorii și nu în ultimul râ nd am mai utilizat Universal Plate
2 Set 60×1 60 mm, pentru doua a șa zise “garduri” care să țina componentele ce vor urma să fie
instalate impreună câ t mai compacte.

Figura 3.3.5.a. Universal Plate 210×160 mm ,
șasiul principal utilizat Figura 3.3.5.b. Universal Plate 2 Set 60×160
mm

Pentru partea mobi lă a robotului ur măritor, am utilizat un set de Ro ți 70×8 mm și un Ball
Caster 19,5 mm și la roți am ata șat direct motoarele fa ră a fi nevoie de conector de roa tă-motor.

Figura 3.3.5.c. Ro ți 70×8 mm Figura 3.3.5.d. Ball Caster 19,5 mm

Capitolul 3. Specificațiile și arhitectura sistemului
39
În continuare voi prezenta cateva etape de asamblare . Pentru început am ata șat
suporturile de motor în partea din fa ță și am aș ezat motoarele la locul lor, în interiorul
suporturilor. Am ata șat o grin dă lunga, pentru ca mai tarziu să pot fixa ball caster -ul de aceas tă
grindă, în partea din spate a șasiului. Am încercat și atașarea unui senzor de distan ță doar
pentru a v edea cum urmează să poziționez și restul senzorilor care urmează să fie folosi ți.

Figura 3.3.5.e. Partea mecani că inițială (dedesubt)

În continuare am ata șat firele motoarelor și aparătoarele pentru restul componentelor
care vor fi utilizate în acest proiect.

Figura 3.3.5.f. Partea mecani că inițială cu
firele la motoare ata șate (dedesubt) Figura 3.3.5.g. Partea mecani că inițială cu
aparătoarele ata șate

Capitolul 3. Specificațiile și arhitectura sistemului
40
3.3.6. Robotul final dupa asamblare
Asamblarea nu a durat foarte mult, deoarece am ș tiut de la început cu m aș dori să arate
robotul final. Astfel dupa construirea șasiului și atașarea motoarelor și roților, a mai rămas să
atașez o cutie transparen tă din plastic .
În aceas tă cutie, care ar mai putea fi numi tă și “cutia toraci că” a robotului de ur mărire,
am aș ezat placa de dezvoltare Arduino deasupra ei și am ata șat Driver -ul pentru motoare L298.
De asemenea pentru alime ntare am folosit doua cutii a câ te 6 baterii AA de 1.5V, una din ele
fiind pentru alimentarea shield -ului, iar cealal tă fiind pentru alimentarea p lăcii de dezvoltare
Arduino.

Figura 3.3.6.a . Robotul de ur mărire (vazut de sus)

În partea din fa ță a șasiului am ata șat senzorii de distan ță Sharp, am folosit 3 senzori:
unul pe mijloc, iar ceilal ți doi orienta ți în stanga și în dreapta. Deasupra senzorului de distan ță
din mijloc am ata șat un senzor de lumina TSL235R, pentru o “vedere” mai buna a luminii pe
care t rebuie să o capteze și să o măsoare.
Cutia de protec ție pentru componente este prevă zută cu numeroase orificii prin care
firele de la senzori și firele de la motoare ajung la placa de dezvoltare Arduino și respectiv la
driver -ul pentru motoare L298. Pentru conectarea senzorilor la Arduino am folosit cablu senzor
cu 3 fire, pentru conectarea motoarelor la shield am folosit fire conexiune ta tă-tată, iar pentru
conectarea shield -ului și plăcii Arduino la alime ntare am folosit conectori baterie 9V.

Capitolul 3. Specificațiile și arhitectura sistemului
41

Figura 3.3.6.b. Robotul de ur mărire (partea fronta lă)

Am folosit programul Fritzing pentru schema electroni că. Fritzing este o ini țiativă de
hardware open -source, care face obiectele electronice accesibile ca material de crea ție pentru
oricine.

Figura 3.3.6.c. Schema electroni că a robotului de ur mărire

42
Capitolul 4. Proiectarea de detaliu

4.1. Dezvoltarea software a robotului
Pentru dezvoltarea software a robotului de ur mărire am folosit m ediul de dezvoltare
integrat Ardui no (IDE). Înainte de a începe scrierea codului sur să pentru robot a trebuit să fac
măsurători pentru senzorii de distan ță Sharp și pentru senzorul de lum ina TSL235R pentru a ști
cu ce valori urmează să lucrez.
De asemenea pentru miș carea robotului a trebuit să testez puterea mo toarelor, pentru o
alimentare câ t mai preci să și a mai trebuit testa tă mișcarea de rota ție a motoarelor, pentru a
stabili câ nd robotul urmăritor trebuie să ruleze cu spatele și când trebuie să ruleze cu faț a.
În continuare am realizat o sche mă a arhitecturii software pentru, o mai buna vizualizare
a sistemelor folosite în cadrul acestui proiect.

Figura 4.1.a. Schema arhitecturii software

Schema arhitecturii software (Figura 4.1.a.) funcționează în felul ur mător: SAD (Sistem Afi șare
Date) preia valorile de la senzori pentru afi șare, APD (Algoritm Procesare Date) preia valorile d e
la senzorii de distan ță și lumină pentru procesar e, după ce algoritmul a facut procesarea
necesa ră trimite semnale, care mai departe sunt transformate în tensiuni pentru SCM (Sistem
Control Motoare) care are rolul de a controla miscarea robotului urmaritor. Toate aceste sisteme
alcătuiesc schema arhitect urii software.

Capitolul 4. Proiectarea de detaliu
43
S.A.D. (Sistem Afi șare Date)
Resurse: UART (Universal asynchronous receiver/transmitter )

S.C.S. (Sistem Citire Senzori)
Resurse: ADC (Analog to Digital Converter)

A.P.D. (Algoritm Procesare Date)
Resurse: CPU

S.C.M. (Sistem Control Motoare)
Resurse: Motor1 și Motor2

4.1.1. Software -ul proiectului “Sistem de ur mărire cu senzori pentru un
robot mobil autonom ”
Software -ul proiectului a fost scris pe baza arhitecturii hardware (Figura 4.1.a.). În cadrul
codului sur să s-au folosit numeroase func ții.
Func țiile folos ite, au rolul de a: controla miș carea motoarelor, citirea și afișarea valorilor
senzorilor de distan ță Sharp, citirea și afișarea valorilor sezorului de lumină TSL235R, etc.
Func ția pentru controlul motoar elor: void go(int stanga, int dreapta)
Aceas tă funcție are doi parametri cu valori întregi, primul parametru (stâ nga) reprezin tă
valoarea care trebuie introdu să pentru controlarea motorului Motor1 adi că motorul din stâ nga,
respectiv al doilea parametru (dreapta) reprezin tă valoarea care trebuie introdu să pentru
controlarea motorului Motor2 adi că motorul din dreapta. Func ția fiind void nu returneaza nimic,
ea se poate apela oriunde în programul principal , apelul func ției trebuie să fie o valoare din
intervalul închis [ -255,255].
Valorile ce se gă sesc în intervalul mai sus men ționat reprezin tă viteza pe care Motor1,
respectiv Motor2 poate să o atinga. Valoarea maxi mă 255, înseamnă că motorul este acceler at
la maxim pentru mersul cu faț a, respectiv valoarea mini mă -255 înseamnă că motorul este
accelerat la maxim în sens invers pentru mersul cu spatele și valoarea 0, înseamnă că motorul
este în starea de repaus adi că oprit.
Func ția foloseș te pentru scriere analogWrite() , deoarece controlul motoarelo r se face cu
ajutorul pinilor PWM, care aju tă la miș carea robotului ur măritor și de asemenea miș carea în față
sau în spate este mai “lina”.

Capitolul 4. Proiectarea de detaliu
44
Cate va metode de apel pentru func ția void go(int stanga, int dreapta)
– go(255,255); înseamnă că, robotul ur măritor va merge cu viteză maxi mă înainte.
– go(-255,-255); înseamnă că, robotul ur măritor va merge cu viteză maxi mă înapoi.
– go(0,0); înseamnă că, robotul ur măritor va rămane pe loc.
– go(-255,255); înseamnă că, robotul ur măritor se va învartii cu viteză maxi mă înspre
stânga.
– go(255, -255); însemnă că, robotul ur măritor se va învartii cu viteză maxi mă înspre
dreapta.
– go(100,255); înseamnă că, robotul ur măritor va lua un viraj înspre stâ nga.
– go(255,100); înseamnă că, robotul ur măritor va lua un viraj înspre dreapta.

Func ția pentru citirea și afișarea valorilor senzorului de lumină : int readLumina()
Aceas tă funcție nu are niciun parametru, ea aju tă la citirea și afișarea valorilor dig itale pe
care senzorul de lumină le trimite prin intermediul lui Pin2, din Portul D, al p lăcii de dezvoltare
Arduino Uno R3.
Senzorul de lumină TSL235R furnizează un semnal dreptunghiular a cărui frecvență
variază cu intensitatea luminoa să recep ționată (se măsoară în µW/cm2). Așadar se foloseș te
funcția millis() din mediul de dezvoltare Arduino pentru cronometrare a milise cundelor de câ nd
placa A rduino a început să funcționeze, pentru a aju ta la calcularea frecvenței. După ce
frecvenț a a fost calcula tă, aceasta trebuie transforma tă în intensitatea luminoasă , pentru
aceas tă conversie am folosit formula din documenta ția senzo rului de lumină TSL235R. Formula
folosi tă este: intesitatea luminoa să = (frecventa + 50) / 100, acel “50” este utilizat pentru a
aproxima mai bine valoarea intensi tății luminoase.
În urma calculelor fo losite pentru conversia frecvenț ei în intensitate luminoa să, func ția
readLumina() va returna valoarea intensi tății luminoase, nota tă cu “lumina”, oda tă la 50ms.
Aceas tă funcție se foloseș te în programul principal, valoarea returna tă de func ție fiind
salva tă într-o variabi lă numi tă “lumina”, care este folosi tă mai departe în program.
Func ția pentru citirea și afișarea valorilor senzorului de distan ță: int SharpIR()
Aceas tă funcție pentru citirea și afișarea valorilor senzorului de distan ță Sharp se
găseș te în biblioteca <SharpIR.h> din mediul de dezvoltare Arduino, aceas tă funcție este
impar țită în 3 func ții mai mici, fiecare dintre ele avâ nd rolul ei. [***10,c]
Func ția SharpIR::SharpIR(int pin, int medie, int toleran ta, int modelSenzor) este func ția
principală care are ca parametrii de intrare: pin, medie, toleranta, modelSenzor. Pin este
parametrul care reprezin tă pin-ul analogic care face parte din PortC, unde trebuie legat senzorul

Capitolul 4. Proiectarea de detaliu
45
de distan ță ca să se poată citi valori. Medie este parametrul care reprezin tă, valoarea a cate citiri
să efectueze senzorul de distan ță pană să se calculeze o medie a acelor valori. Toleranț a
reprezin tă parametrul care arată cât de apropia tă să fie o valoare citită de senzorul de d istan ță
față de valoarea preceden tă. ModelSenzor este parametrul care reprezin tă modelul senzorului
de distan ță folosit. [***14,e]
Func ția SharpIR::cm() este func ția care citeș te valorile tensiunilor date de senzorul de
distan ță și face conversia lor în centimetri. Se citeș te cu func ția analogRead() ; valoarea da tă de
senzor . Dupa ce se citeș te valoarea senzorului se face conversia în centimetri i folosind formula
care se gaseș te în documenta ția senzorului de distan ță Sharp GP2Y0A21YK , în continuare se
prezin tă formula folosi tă : distant a = 27.728 * pow(volt/1000, -1.2045), unde “distanta” reprezin tă
valoar ea pană la obiect în centimetri, pow() ; este func ția de ridicare la putere și “volt” este
tensiunea da tă de către senzor. Func ția retur nează valoarea în centimetri a distanț ei de la
senzor până la obiect.
Func ția SharpIR::distance() ; este func ția care face me dia aritmeti că a valorilor returnate
de func ția cm() ; în funcție de valoarea parametrului “toleranta” și în funcție de valoarea
parametrului “medi e” din func ția principa lă SharpIR();.
În programul principal din mediul de dezvoltare Arduino cu ajutorul func ției SharpIR() se
decla ră parametrii care se folosesc pentru cei 3 senzorii de distan ță, adi că pinul aferent
senzorului , media, tolerant a și modelul senzorului. Valorile senzorilor se returnează folosind
expresia sharp.distance(); .[***10,c]
Func ția pentru recep ționarea semnalului infraroș u: int telecomanda() .
Aceas tă funcție este folosi tă pentru de codificarea unui semnal infraroș u furnizat de o
telecoman dă TV. După ce se decodifi că semnalul recep ționat de receptorul IR cu ajutorul
funcției decode(&results); acesta este returnat de func ția principa lă ca o valoare întreagă .
Valoarea întreagă , returna tă de către func ția int telecomanda() este folosi tă pentru
pornirea/oprirea senzorului de lumina TSL235R. Pornirea și oprirea senzorului de lumina are ca
scop controlarea robotului ur măritor, deoarece în programul principal miscarea robotului este
condi ționată de valoarea da tă de acest senzor. Astfel da că senzorul de lumină este oprit, atunci
robotul ur măritor s tă pe loc, respectiv da că senzorul de lumină este pornit robotul va ur mări
obiectul/persoana cu cea mai puterni că sursă de lumină . [***14,d]
Parametrii care se folosesc în afara func țiilor precizate mai sus se decla ră global și se
inițializeaza cu 0 pentru a nu fi probleme în cazul apari ției unor valori întamp lătoare.

Capitolul 4. Proiectarea de detaliu
46
4.2. Punerea în funcțiune a robotului
Pentru ca robotul ur măritor să fie pus în funcțiune și să funcționeze între parametrii
optimi trebuie să îndeplineas că cateva condi ții absolut necesare.
Prima condi ție este ca, legaturile dintre senzori (distan ță Sharp, lumina TSL325R și
receptorul IR) și placa de dezvoltare Arduino UNO R3, respectiv driver -ul de motoare L298 să
fie cor ect realizate. Firele care leagă alimentarea și masa senzorilor să fie bine verificate înainte
de alimentarea robotului ur măritor, iar firele care conectează ieșirile senzor ilor să fie conectate
la pinii aferen ți.
Pinii aferen ți senzorilor de distan ță Sharp sunt: A0, A2, A4 (Figura 4.2.a.) . Acești pini fac
parte din PortulC a l plăcii de dezvoltare Arduino UNO și sunt pinii analogici, care pot doar să
recep ționeze semnal de la senzori.
Pinul aferent senzorului de lumină TSL325R este PD2 (Figura 4.2.a.) . Acest pin face
parte din PortulD a l plăcii de dezvoltare Arduino UNO și este un pin digital, care recep ționează
semnal de la senzor.
Pinul aferent receptorului infraroș u IR este 11 (Figura 4.2.a.) . Acest pin face parte din
PortulB al p lăcii de dezvoltare Arduino UNO și este un pin digital, care recep ționează semnal de
la senzor.
Dupa ce s -a făcut verificarea legatu rilor pentru senzori, urmează verificarea legaturilor
pentru cele doua motoare: Motor1 și Motor2. Motoarele se leagă la driver -ul de motoare L298 cu
mare aten ție deoarece, da că legaturile sunt facute invers motoarele vor func ționa în sens opus.
Controlul motoarelor se face prin inter mediul driver -ului de motoare L298 care folosește
pinii : 3, 5, 6, 9. Aceș ti pini generează semnal de tip PWM pentru un control mai “lin” al
motoarelor. Pinii 3, 5, 6 fac parte din PortulD al p lăcii de dezvoltare Arduino UNO, respectiv pinul
9 face parte d in PortulB al p lăcii de dezvoltare Arduino UNO. Pinii 3 și 5 sunt pinii aferen ți pentru
Motor2, adi că motorul din dreapta, respectiv pinii 6 și 9 sunt pinii aferen ți pentru Motor1, adi că
motorul din stâ nga.
Alimentarea p lăcii de dezvoltare Arduino UNO R3 se realizează folosind o cutie care
supor tă 6 baterii AA de 1.5V (adi că echivalentul a 9V). Aceas tă cutie de baterii se conectează
cu ajutorul unui conector de baterie 9V la jack -ul de putere al p lăcii Arduino UNO. Alimentarea
optimă a plăcii de dezvoltare Arduino trebuie să fie între 7V și 12V deoarece, da că alimentarea
este de numai 5V exis tă o posiblitate ca placa Arduino UNO să nu func ționeze în parametri
optimi și senzorii alimenta ți direct la ea să furnizeze valori gre șite. Pentru ace st proiect mai
există și posibilitatea folosirii unui acumulator USB Baterry Pack, în cazul în care senzorii nu

Capitolul 4. Proiectarea de detaliu
47
sunt alimenta ți de la placa Arduino UNO, deoa rece acest acumulator furnizează o tensiune de
doar 5.5V, dar acumulatorul este mai stabil fa ță de cele 6 baterii AA de 1.5V.
Alimentarea driver -ului de motoare L 298 se realizează folosind o cutie care supor tă 6
baterii AA de 1.5V (adi că echivalentul a 9V). Aceas tă cutie de baterii se conectează cu ajutorul
unui cablu conector de baterie 9V. C onect orul de baterie 9V se leagă la pinii VIN și GND ai
driver -ului de motoare L298. Senzorii folosi ți în acest proiect se alimentează folosind conectorii
oferiți de driver -ul de motoare L298, aceș ti conectori sunt nota ți cu: 5V și GND.
De asemenea trebuie să fim aten ți, cand driver -ul de motoare L298 este ata șat la placa
de dezvoltare Arduino UNO și alimentarea se realizează folosind doua surse de tensiune
independente (una pentru driver și cealal tă pentru Arduino) , jumper -ul de culoare albast ră
trebuie trebuie să fie neaparat deconectat, în caz contrar cele doua surse vor debita curent una
în cealal tă.

Figura 4.2.a. Diagrama pinilor pentru Arduino UNO R3

Capitolul 4. Proiectarea de detaliu
48
4.2.1. Testarea senzorilor
Testarea senzorilor de distan ță Sharp, de lumina TSL235R și a receptorului IR
TSOP31238 , nu s-a realizat în regim de func ționare.
Pentru testare a fost necesa ră citirea valorilor aferente fie cărui senzor și să se afiș eze în
Serial Monitor, folosind comanda Serial.println(); din mediul de dezvoltare Arduino.
Pentru început s -au testat senzorii de distan ță Sharp, pentru verificarea func ționarii lor în
modul desc ris de către furnizor în documenta ție. Testarea s -a realizat folosind o coa lă de hartie
de culoare albă , deoarece raportul de reflexie este de 90% fa ță de alte obiecte care au raportul
de reflexie mai mic de 90% (Figura 4.2.1.a.) .
Următorul pas a fo st testarea senzorului de lumină TSL235R, pentru verificarea
funcționarii lui în modul descris de către furnizor în documenta ție. Testarea s -a realizat pentr u
început într-un mediu cu intensitatea luminii ambiante foarte s căzută (becul stins pe timp de
noapte), dupa care s -a considerat cazul al II -lea în care, s-a testat senzorul de lumină într-un
mediu cu intensitatea luminii ambiante mai ridica tă (pe timp de zi, cu becul stins), în cazul al III –
lea testarea s -a realizat într-un mediu cu intensitatea luminii ambiante mai ridica tă (pe timp de zi
cu becul aprins) decâ t în cazul al II -lea și un ultimul caz s -a folosit o sur să puterni că de lumină
(lanternă cu lumina alba) pentru verificarea valorilor maxime obtenabile (Figura 4.2.1.a.) .

Figura 4.2.1.a. Monitorul serial din mediu l de dezvoltare Arduino (IDE) cu valorile senzorilor de
distan ță Sharp și lumina TSL235R

Capitolul 4. Proiectarea de detaliu
49
Ultima testare a fost realiza tă pentru receptorul IR TSOP31238, pentru verificarea
funcționarii lui în modul descris de către furnizor în documenta ție. Testarea s -a realizat folosind
o telecoman dă TV care avea rolul de a trimite semnal către receptor . Semnalul recep ționat de
către receptorul IR trebuia decodat. În urma deco dării semnalului, s -au ob ținut două valori la
apasarea unui si ngur buton, o valoare reprezentâ nd protocolul teleco menzii TV, iar cealal tă
valoare reprezentâ nd codul butonului apă sat (Figura 4.2.1.b.) .
Dacă butonul se ține apă sat primele d ouă valori vor fi ca cele din figura de mai jos
(Figura 4.2.1.b.) și mai apare o a treia valoare care reprezin tă un alt cod al butonului respectiv.
Fiecare buton are asociate doua coduri, dar pentru acest proiect s -a folosi t doar primul aparut.
Protocolul reprezin tă o valoare specifi că unei companii produ cătoare de
telecomenzi/televizoare, în cazul nostru am ob ținut “1”. Valoarea ob ținută fiind protocolul specific
compa niei NEC (Companie japoneză produ cătoare de produse ele ctronice ). [***15,h]

Figura 4.2.1.b. Monitorul serial din mediu l de dezvoltare Arduino (IDE) cu valorile receptorului IR
TSOP31238

Capitolul 4. Proiectarea de detaliu
50
În urma tes tării senzorilor de distan ță Sharp și lumină TSL235R am realizat ur mătorul
tabel de valori:

Distanț a(cm) Intervalele de valori ob ținute la testarea
senzorilor(Lumină TSL235R și Distan ță Sharp)
Lumină
TSL235R Distan ță Sharp
mijloc Distan ță Sharp
stanga Distan ță Sharp
dreapta

25
[200,300 ]
[22,27]
[21,27]
[21,26]

30
[140,210]
[28,34]
[27,34]
[27,33]

40
[90,140]
[38,44]
[37,42]
[37,43]

50
[40,80]
[47,54]
[46,55]
[46,55]

4.2.2. Testarea în regim de func ționare a robotului
Testarea în regim de func ționare s -a putut realiza dupa ce s -au facut verifi cările
necesare (specificate în subcapitolul 4.2) . În urma verifi cărilor a fost incă rcat codul sur să în
placa de dezvoltare Arduino UNO R3.
După verifi cările necesare par ții hardware și verificarea codului sur să, s-a pornit
alimentarea robotului ur măritor. În urma alimen tării robotului ur măritor s -au testat senzorii de
distan ță și lumină în regim de func ționare. De asemenea, s -au testat și motoarele pentru a
verifica viteza opti mă cu care robotul ur măritor trebuie înainteze. În urma testelor am realizat că,
este nevoie de o vit eza de cel pu țin 150 din maximul de 255 pentru a înainta, datori tă greutății
componentelor utilizate.

51
Capitolul 5. Aspecte privind realizarea practi că

5.1. Aspecte privind probleme întâmpinate și modul lor de rezolvare
Probleme au apă rut de -a lungul întregului proces de realizare practi că, datori tă
componentelor mecanice utilizate, alimen tării utilizate, senzorilor utiliza ți, etc.

5.1.1. Probleme întâmpinate privind componentele mecanice utilizate
Probleme privind componentele mecanice , au apă rut în momentul în care s -a încercat
atașarea de șasiu a suporturilor d e motoare Micro Extins. Dimensiunile suporturilor Micro Extins,
nu coincideau cu cele de pe site -ul produ cătorului, astfel a fost necesa ră forțarea suporturilor de
motoare pent ru a putea fi ata șate la șasiu (Figura 5.1.1.a.) .
De asemenea părțile neizolate ale firelor care leagă motorul din stâ nga și motorul din
dreapta de driver -ul pentru motoare, se atingeau și robotul func ționa în mod eronat. Problema a
fost rezolva tă prin achiziți onarea unor fire conexiune ta tă-tată. Aceste fire erau foarte bine
izolate și problema s -a rezolvat.

Figura 5.1.1.a. Suportul Micro Extins dupa ce a fost fortat pentru ata șarea la șasiu

Capitolul 5. Aspecte privind realizarea practică
52
5.1.2. Probleme întâmpinate privind alimentarea cu energie electri că
Probleme privind alimentarea utiliza tă în cadrul acestui proiect. Datori tă costurilor mai
reduse am achizi ționat două cutii pentru 6 baterii AA de 1.5V. Bateriile utilizate în momentele
testării erau de calitate inferioa ră, astfel robotul ur măritor rămanea fa ră energie dupa
aproximativ o o ră de teste.
De asemenea datori tă descărcării treptate a bateriilor motoarele nu mai func ționau între
parametrii optimi și astfel , de exemplu la apelul func ției go(150,150) (descri să în subcapitolul
4.1.1) robotul ur măritor nu se deplasa drept, el luâ nd un mic viraj înspre stâ nga/dreapta.
Aceas tă problem ă a fost rezolva tă achizi ționand un acumulator USB Baterry Pack de 5.5V
pentru placa de dezvoltare Arduino și de asemenea pentru cutia de 6 baterii s -au folosit baterii
superioare din punct de vedere al cali tății.

5.1.3. Probleme întâmpinate privind senzorii utiliza ți
Probleme privind senzorii utiliza ți în cadrul acestui proiect. Cea mai mare proble mă a
fost, cea a senzorului de lumina TSL235R, nefiind un senzor profesional de calitate superioa ră,
au apă rut probleme la citirea valorilor din senzor. Astfel, da că se folosea u n del ay(1000);
(întarziere de 1 s) la transmiterea valorilor, senzorul func ționa între parametri optimi, cu câ t
funcția delay(); primea valori mai s căzute, senzorul de lumină TSL235R transmitea valori
eronate (de exemplu valori negative).
Problema a fost rezolva tă doar par țial, deoarece dupa s căderea la delay(50); (întarziere
de 0.05s ) senzorul transmite valori normale, dar la o intensitate prea pu ternică a luminii,
senzorul de lumină se blocheaza total și nu mai transmite date până când intensitatea luminii nu
scade.

53
Capitolul 6. Concluzii

6.1. Ce s -a realizat
În cadrul proiectului de diplo mă “Sistem de ur mărire cu senzori pentru un robot mobil
autonom”, s-a realizat un robot ur măritor, care este capabil să urmărească o persoana pe baza
unei surse de lumina mai mari decâ t cea a mediului înconju rător. Robotul ur măritor a fost
asamblat și programat de la zero. În faza de proiectare este bine ca robotul să fie prevazut cu
măsuri de siguran ță pentru a evita lovirea senzorilor de obstacole ( măsuri de siguran ță fizice).
Amplasarea diferitelor componente pe structura robotului este esen țială din punct de
vedere al pla sării acestora. Amplas area bateriilor, care furnizează energia pentru motoarele de
curent continuu, trebuie realiza tă cat mai în centrul suprafetei șasiului deoarece, da că greutatea
nu este distribui tă în mod egal pe cele două roți, robotul ur măritor va avea o devia ție de la
traiectorie. Cu cât viteza robotului este mai mare, cu atâ t este dezechilibrul mai mare deoarece
acesta este influențat in mod direct de viteza de deplasare.
Suprafața pe care se deplasează robotul ur măritor, are un efect important a supra
depla sării acestuia. Străbaterea unei suprafa țe prea moi (pamâ nt ud, covor, etc.) în care robotul
să se afunde, determină robotul ur măritor să necesite o putere mai mare furniza tă de către
motoarele de curent continuu. De asemenea o suprafa ță prea fină sau lucioa să (gresie, parchet
laminat, gheață etc.) face ca robotul ur măritor să se deplaseze prea repede sau să alunece și
astfel rezultâ nd în pierderea persoanei atribuite pentru ur mărire sau chiar tamponarea cu diferite
obstacole.
Robotul ur măritor a fos t echipat cu un senzor de lumină TSL235R pentru a putea face
distinc ția între obiecte și persoana atribui tă pentru ur mărire, pe baza unei s urse de lumina emise
de persoană . Valorile furnizate de către senzorul de lumina TSL234 trebuie să fie mai mari
decâ t cele furnizate de mediul înconju rător pentru a începe ur mărirea. Persoana atribui tă pentru
urmarire are nevoie de o sur să de lumina ata șată în partea de jos a piciorului drept. În cadrul
acestu i proiect s -a folosit o lanternă cu lumina galbenă .
Robotul ur măritor a mai fost echipat și cu senzori de distan ță Sharp pe baza cărora,
robotul ur măritor să fie capabil, să păstreze o anumi tă distan ță față de persoana ur mărită și să
evite ciocnirea cu alte obiecte din mediul înconju rător. Amplasarea senzorilor de distan ță Sharp
este esen țială deoarece, da că se amplasează senzorii laterali mult prea spre interior, atunci
robotul ur măritor ar putea să piardă din “vedere” persoana atribui tă pentru ur mărire în cazul în
care aceasta se deplasează spre stâ nga sau spre dreapta.

Capitolul 6. Concluzii
54
De asemenea s -a folosit și un receptor de semna l IR, pentru utilizarea unei telecomenzi
TV, telecomanda TV are rolul de a porni sau de a opri senzorul de lumină , moment în care
robotul ur măritor s e opreș te, deoarece întreg sistemul de ur mărire este condi ționat de valo rile pe
care senzorul de lumina TSL235R le furnizează .
Perioada de citire a senzorilor și implicit perioada de e șantionare a algoritmului de
reglare este esen țială. O perioa dă prea mare pentru citire, ar putea duce la pierderea persoanei
care trebuie ur mărită, deoarece informa ția este actualiza tă prea tarziu. O perioa dă de citire prea
mică face ca robotul să nu mai fie stabil, acesta începâ nd să “tremure”.
Datori tă dificulta ții întâmpinate în utilizarea unui modul Bluetooth Mate pentru controlul
prin intermediul unei aplica ții de pe smart phone, s -a ales în locul acestuia utilizarea unei
telecomenzi TV care să faciliteze pornirea și oprirea robotul ur măritor. Problema a aparut
deoarece sistemul de operare al telefonului este iOS și nu permite simpla conectare la modulul
Bluetooth , decâ t prin intermediul unor aplica ții costisitoare .

6.2. Direc ții de dezvoltare
Ideea de la care a pornit acest proiect a fost aceea de a ajuta oamenii, la treburile
casnice și nu numai.
Robotul de ur mărire ar putea fi echipat cu un buzzer și se poate implementa pentru a -l
transforma într-o alar mă pe baza senzorului de lumină . Astfel da că lumina din încăpere atinge o
anumi tă intensitate, buzzer -ul să scoa tă un zgomot strident . Alarma se va putea opri folosind
telecoman da TV, adi că implicit oprirea senzorului de lumina.
Pe viitor ac est robot ur măritor ar putea fi echipat cu moto are mult mai puternice , șenile și
un coș special pentru a ajuta la transportarea bagajelor , astfel reducând efortul omului, care nu
mai este obligat să își transporte singur bagajele .
Acest robot de ur mărire se poate echipa cu un modul Bluetooth Mate conectat la driver –
ul pentru motoar e și o came ră video pentru a putea fi controlat de la distan ță printr -o aplica ție
Android de pe un smartphone. Scopurile de a controla robotul de ur mărire de la distan ță ar
putea fi nenu mărate, de exemplu: verific area une i anumite arii a locuinț ei pe timp de zi/noapte în
vederea asigu rării securita ții acesteia , transportarea de obiecte dintr -o încăpere în alta, etc.
Pentru ca robotul de ur mărire să fie mai autonom , el se va putea încărca prin intermediul
unui încărcător wireless. Încărcătorul wireless ar trebui să fie echipat cu o sur să de lumină
puterni că și robotul ur măritor să detecteze singur des cărcarea bateriei. Des cărcarea bateriei va
trebui să declanș eze de plasarea robotului în locul în care, intensitatea luminii este cea mai
mare. Aceas tă încărcare wireless s e va face prin intermediul unor bobine.

55
Bibliografie

[Ban14] Massimo Banzi, Michael Shiloh Publisher: Maker Media, Inc Final Release Date:
December (2014), Getting Started With Arduino 3 rd Edition.
[Bor10] Theodor Borangiu, Alexandru Dumitrache, Florin Daniel Anton, (2010),
Programarea roboților .
[Gor13] Andreas Goransson and David Cuartielles, Wiley/Wrox December (2013),
Arduino Open Accesory.
[Lan13] David Lang, Maker Media, Inc August (2013), Zero to Maker.
[Mar11] Michael Margolis, December (2011), Arduino Cookbook.
[Mar12] Michael Margolis, Maker Media, Inc, October (2012), Make an Arduino Controlled
Robot.
[Mcr11] Michael Mcroberts, January (2011), Beginning Arduino.
[***10 ,a] *** (2010) , Carte Arduino pentru începatori (tradu să în limba romana).
[***14 ,b] *** November (2014), Tutorial – L298 Dual Motor Controller Module ,
http://tronixlabs.com/news/tutorial -l298n -dual-motor -controller -module/ .
[***10 ,c] *** (2010), Installing Aditional Arduino Libraries ,
http://www.ardui no.cc/en/Guide/Libraries.
[***14 ,d] *** January (2014), Arduino Remote Control Tutorial , http://www.build -electronic –
circuits.com/arduino -remote -control/.
[***14 ,e] *** January (2014), SharpIR, http://playground.arduino.cc/Main/SharpIR .
[***11,f] *** December (2011), Comanda motorului pas cu pas ,
http://www.robotics.ucv.ro/flexform/aplica ții/m1/ .
[***15 ,g] *** January (2015), RoboFun , http://www.robofun.ro/.
[***15 ,h] *** March (2015), How to use IR remotes with Arduino ,
http://www.instructables.com/id/The -Easiest -Way-to-Use-Any-IR-Remote/ .
[***15 ,i] *** January (2015), Senzor de distan ță Sharp GP2Y0A21YK(10 -80),
http://www.robofun.ro/s enzor_sharp_%20GP2Y0A21YK
[***15 ,j] *** January (2015), ATMEL 8 -BIT MICROCONTROLLER WITH
4/8/16/32KBYTES IN -SYSTEM PROGRAMMABLE FLASH DATASHEET.

Similar Posts