Licentagainarcristian [625233]
UNIVERSITATEA „LUCIAN BLAGA ” DIN SIBIU
FACULTATEA DE INGINERIE
SPECIALIZAREA:MECATRONICĂ
ULBS
Universitatea „Lucian Blaga ” din Sibiu
LUCRARE DE LICENȚĂ
Coordonator științific:
CONF .DR.ING. ILIE-OCTAVIAN POPP
Absolvent: [anonimizat]
2019
Universitatea „ Lucian Blaga ” din Sibiu
Facultatea de Inginerie
Departamentul de Mașini și Echipamente Industriale
Specializarea Mecatronică
Construcția unui robot mobil
Coordonator științific: Conf.dr.ing. Ilie POPP
Absolvent: [anonimizat]
2019
1
Cuprins
Capitolul 1 – Mecatronica și robotica ………………………….. ………………………….. ………………………….. …. 4
1.1 Introducere în mecatronică ………………………….. ………………………….. ………………………….. ………. 4
1.2 Introducere în robotică ………………………….. ………………………….. ………………………….. …………….. 7
1.3 Tema proiectului ………………………….. ………………………….. ………………………….. ……………………… 8
Capitolul 2 – Roboți mobili ………………………….. ………………………….. ………………………….. ………………… 9
2.1 Introducere în roboții mobili ………………………….. ………………………….. ………………………….. ……… 9
2.2 Clasificarea roboților mobili ………………………….. ………………………….. ………………………….. …….. 10
2.3 Utilizarea roboților mobili ………………………….. ………………………….. ………………………….. ……….. 11
2.4 Caracteristici comune roboților mobili ………………………….. ………………………….. …………………. 12
2.5 Structura roboților mobili ………………………….. ………………………….. ………………………….. ……….. 13
2.6 Exemple de roboți mobili ………………………….. ………………………….. ………………………….. ………. 14
Capitolul 3 – Prezentarea elementelor componente ………………………….. ………………………….. ………. 19
3.1 Robotul mobil proiectat: Robotix ………………………….. ………………………….. ………………………….. 19
3.2 Elemente componente ………………………….. ………………………….. ………………………….. ……………. 20
3.3 Placa de dezvoltare Arduino ………………………….. ………………………….. ………………………….. ……. 23
3.3.1 Exemple de plăci Arduino ………………………….. ………………………….. ………………………….. …. 24
3.3.2 Pla ca Arduino UNO ………………………….. ………………………….. ………………………….. ………….. 29
3.4 Microcontrolerele ………………………….. ………………………….. ………………………….. ………………….. 36
3.5 Motoare de curent continuu ………………………….. ………………………….. ………………………….. ……. 44
3.6 Senzorul infraroșu ………………………….. ………………………….. ………………………….. ………………….. 49
3.7 Servomotorul ………………………….. ………………………….. ………………………….. ………………………… 54
Capitolul 4 – Construcția robotului mobil ………………………….. ………………………….. …………………….. 55
4.1 Asamblarea robotului mobil ………………………….. ………………………….. ………………………….. ……. 55
4.2 Conectarea senzorului infraroșu ………………………….. ………………………….. ………………………….. . 61
4.3 Conectarea motoarelor de curent continuu ………………………….. ………………………….. …………… 63
4.4 Conectarea servomotorului ………………………….. ………………………….. ………………………….. …….. 65
4.5 Schema cablajului robotului ………………………….. ………………………….. ………………………….. …….. 65
2
Capitolul 5 – Programarea robotului ………………………….. ………………………….. ………………………….. … 66
5.1 Programarea plăcii Arduino ………………………….. ………………………….. ………………………….. …….. 66
5.2 Schema bloc, diagrama flux și programul robotului ………………………….. ………………………….. … 71
Concluzii finale ………………………….. ………………………….. ………………………….. ………………………….. .. 75
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. …….. 76
3
Rezumat
În cadrul lucrării de diplomă prezint proiectarea unui robot mobil , Robotix, de tip
ʺobstacle -avoiding robotʺ . Lucrarea este structurată în cinci capitole, fiecare la rândul său
fiind divizat în subcapitole, în final am precizat concluziile finale și bibliografia.
În cadrul primului capitol am prezentat o introducere în dome niul mecatronicii și al
roboticii.
În cel de -al doilea capitol am prezentat introducerea, utilizarea, clasificarea și structur a
roboților mobili dar și mai multe tipuri de roboți mobili precum: AIRAT2, Pololu 3pi și Inex
POP-Bot Standard.
În capitolul trei este prezentat r obotul proiect at de mine și elementele componente ale
acestuia.
Capitolul patru prezintă modul de asamblare al robotului mobil Robotix incluzând
conectarea servomotorului și a senzorului de distanță .
În capitolul cinci am introdus schema bloc, diagrama flux și programul propriu -zis pe care
îl utilizează robotul împreună cu concluziile finale ale acestei lucrări.
Summary
In this paper I present the study and the projection of a mobile robot, type ʺ obstacle –
avoiding robotʺ. The thesis is structured in five chapters.
In the first chapter I have presented the introduction in the field of mechatronics and
robotics.
In the second chapter I have presented the introduction, utility, classification , the
structure of mobile robots and different kinds of mobile robots like: AIRAT2, Pololu 3pi,
Inex POP -Bot Standard .
In the third chapter there are enummerated the components I used for my robot with
screenshots from SolidWorks 2017.
The fourth chapter presents the steps of assemblying every single component of the
mobile robot .
In the final chapter you can find a step -by-step programming tutorial as well as the
block scheme, flow chart and the code that the mobile robot follows. At the end of it there are
the final conclusions and the bibliography.
4
CAPITOLUL 1: Mecatronica și r obotica
1.1 Introducere în mecatronică
Denumirea de mecatronică a fost concepută de către un inginer al firmei japoneze Yaskawa
Electric și protejată până în anul 1982 ca marcă a acestei firme. Se referă la complectarea
funcțiilor îndeplinite de partea mecanică cu o parte de senzoristică și componente electronice.
În prezent termenul definește o știință inginerească interdisciplinară, care, bazându -se pe
îmbinarea armonioasă a elementelor din construcția de mașini, electrotehnică și informatică,
își propune să îmbunătățească performanțele și funcționarea sistemelor tehnice.
Mecatro nica este definită ca fiind: “ integrarea sinergetică a ingineriei mecanice cu
controlul electronic și cel inteligent cu calculatoare în proiectarea și fabricația produselor și
proceselor”
Diagrama din Fig. 1.1 ilustrează noțiunea de mecatronică :
Clasificarea sistemelor
O imagine asupra diversității și complexității în mecatronică se poate observa din
clasificarea următoare:
Secțiunea A – Sisteme mecatronice, incluzând vehiculele mecatronice, motoare și
mașini mecatronice, trenuri mecatronice;
Secțiunea B – Componente mecatronice, cu temele dispozitive și actuatori
mecatronici și lagăre magnetice;
Secțiunea C – Roboți și mașini pășitoare, roboți mecatronici, sisteme robotice mobile;
Fig.1.1 Noțiunea de mecatronică [1]
5
Fig.1.2 Schema bloc a unui sistem mecatronic[2] Secțiunea D – Proiectarea sistemelor mecatronice – a avut ca centre de greutate:
modelarea și identificarea, instrumente software;
Secțiunea E – Controlul automat al sistemelor mecatronice, s -a concentrat asupra
metodelor de control, a controlului mișcării și vibrați ilor și a sistemelor mecatronice
pentru detectarea și diagnosticarea erorilor .[1]
Conceptul de sistem mecatronic
Un sistem mecatronic este un sistem tehnic care integrează, î ntr-o configurație flexibilă,
componente mecanice, electronice și de comandă cu sisteme numerice de calcul, pentru a
genera un control al mișcărilor, pentru obținerea unor multitudini de funcții. Diagrama bloc a
unui sistem mecatronic este prezentată în Fig. 1.2:
O altă clasificare împarte sistemele mecatronice în:
o sisteme mecatronice convenționale;
o sisteme micro -mecatronice;
o sisteme nano -mecatronice.
6
Fig.1.3 Concept mecatronic [2]
În cea de -a două clasificare apare un element nou și anume sistemele nano -mecatronice.
Sistemele nano -mecatronice sunt studiate cu ajutorul unor concepte și teorii diferite, cum ar fi
mecanica cuantică și nano -electromencanica.
O a treia clasificare este din punct de vedere al caracteristicilor comportamentale a
sistemului me catronic, și se împart în:
Sisteme mecatronice automate;
Sisteme mecatronice inteligente;
Rețele mecatronice inteligente.
Sistemele mecatronice automate au capacitatea de auto -reglare fiind capabile să comunice
cu mediul exterior și să manevreze materiale ș i energie. Toate aceste capacită ți le permite să
reacționeze la schimbările din mediul exterior. Majoritatea sistemel or aparțin acestei
categorii.
Sistemele mecatronice inteligente sunt capabile să realizeze un scop impus în condiții de
incertitudine. Sistemele inteligente pot atinge un scop specificat î ntr-un mod imprevizibil spre
deosebire de sistemul automat care sunt previzibile deoarece sunt programate astfel. Sunt
înzestrate cu un înalt sistem de flexibilitate, fiind capabile să reacționeze la diversele
schimbări bruște din mediu.
7
1.2 Introducere în r obotică
Fig. 1.4 Roboți umanoizi
Unul din cele mai importante aspecte în evoluția ființei umane este folosirea uneltelor
care să simplifice munca fizică. În această categorie se înscriu și roboții, ei ocupând totuși o
poziție privilegiată datorită complexității lor.
Noțiunea de robot datează de peste 4 mii de ani. Omul și -a imaginat dispozitive
mecanizate, inteligente care să preia o parte însemnată din efortul fizic depus. Astfel a
construit jucării automate și mecanisme inteligente sau și -a imaginat roboții în desene, cărți,
filme "SF" etc.
Revoluția info rmatică a marcat saltul de la societatea industrializată la societatea
avansată informatizată generând un val de înnoiri în tehnologie și în educație. Acest lucru a
dus și la apariția roboților.
Termenul "robot" a fost folosit in 1920 de cehul Karel Capek într-o piesă numită
"Robotul universal al lui Kossum". Ideea era simplă: omul face robotul după care robotul
ucide omul. Multe filme au continuat să arate că roboții sunt mașinării dăunătoare și
distrugătoare.
Revoluția informatică a marcat saltul de la so cietatea industrializată la societatea
avansată informatizată generând un val de înnoiri în tehnologie și în educație permițând
realizarea de roboți.
Roboții oferă beneficii substanți ale muncitorilor, industriilor ș i implicit țărilor. În
situația folosiri i în scopuri pașnice, roboții industriali pot influența pozitiv calitatea vieții
oamenilor prin înlocuirea acestora în spații periculoase, cu condiții de medii dăunătoare
omului, cu condiții necunoscute de exploatare etc.
8
1.3 Tema proiectului
Această lucrare se concentrează pe proiectarea , descrierea, utilizarea și program area
robotului mobil Robotix de tip ʺobstacle -avoiding robotʺ .
Am realizat proiectarea întregului ansamblu robot în pachetul CAD al programului
SolidWorks ( versiunea 2017).
Robotul este dotat cu două motoare de cur ent continuu și cutie de viteze Tamiya,
senzor infraroșu de distanță SHARP, servomotor SG -90, placă de programare Arduino UNO,
driver motoare L298N pentru controlul motoarelor de cu rent continuu , două baterii Duracell
de tip AA , un ball -caster și două roți motrice .
Robotul mobil Robotix are abilita tea de a evita orice ob stacol. Î n momentul în care
sesizează un obstacol acesta își schimbă direcția de deplasare.
9
CAPITOLUL 2: Roboți mobili
2.1 Introducere în roboți i mobili
Robotul mobil este un sistem complex care poate efectua diferite activități într -o
varietate de situații specifice lumii reale. El este o combinație de dispozitive echipate cu
servomotoare și senzori (aflate sub controlul unui sistem ierarhic de calcul) ce operează într –
un spațiu real, marcat de o serie de proprietăți fizice (de exemplu gravitația care influențează
mișcarea tuturor roboților care funcționează pe pământ) și care trebuie să planifice miș cările
astfel încât robotul să poată realiza o sarcină în funcție de starea inițială a sistemului și în
funcție de informația apriori existentă, legată de mediul de lucru.
Succesul în îndeplinirea acestor sarcini depinde atât de cunoștințele pe care robotu l le
are asupra configurației inițiale a spațiului de lucru, cât și de cele obținute pe parcursul
evoluției sale.
Problemele specifice ce apar la roboții mobili ar fi următoarele: evitarea impactului cu
obiectele staționare sau în mișcare, determinarea poz iției și orientării robotului pe teren,
planificarea unei traiectorii optime de mișcare.
În cazul unui sistem robotic automat distribuit pozițiile spațiale sunt de o extremă
importanță și de ele depinde îndeplinirea scopurilor dorite și funcționarea întreg ului sistem.
Cu alte cuvinte, robotul trebuie să fie capabil să -și planifice mișcările, să decidă automat ce
mișcări să execute pentru a îndeplini o sarcină, în funcție de aranjamentul momentan al
obiectelor din spațiul de lucru.
Planificarea mișcărilor nu constă dintr -o problemă unică și bine determinată, ci dintr –
un ansamblu de probleme dintre care unele sunt mai mult sau mai puțin variante ale
celorlalte.
Evitare a coliziunii cu obstacole fixe sau mobile (de exemplu alți roboți mobili) aflate
în spațiul d e lucru al robotului se poate face prin mai multe metode: realizarea unei apărători
mecanice care prin deformare oprește robotul, folosirea senzorilor care măsoară distanța până
la obstacolele de pe direcția de deplasare, folo sirea senzorilor de proximitat e sau folosirea
informațiilor corelate de la mai multe tipuri de senzori.
Localizarea obiectelor se poate realiza și prin contact fizic, dar acesta impune restricții
asupra vitezei de mișcare a structurii manipulate. Contactul fizic dintre robot și obiecte le din
mediu generează forțe de reacțiune care modifică starea robotului. Vitezele mari de lucru fac
ca efectele dinamice ale unui contact fizic cu obstacole sau obiecte manipulate să fie riscante
(pot duce la deteriorarea obiectelor sau a robotului).
10
Navi garea robotului este posibilă și fără o determinare a poziției și orientării față de
un sistem de coordonate fix, dar această informație este utilă pentru sisteme de comandă a
mișcării. Dintre metodele de navigație mai des utilizate se pot menționa: măsura rea
numărului de rotații făcute de roțile motoare, folosirea de acceleratoare și giroscoape,
geamanduri electromagnetice instalate în teren, semnalizatoare pasive sau semipasive de tip
optic sau magnetic. [9]
2.2 Clasificarea roboților mobili
Roboții mobili se clasifică astfel:
În funcție de dimensiuni: macro, micro și nano -roboți;
În funcție de mediul în care acționează: roboți tereștri – se deplasează pe sol,
roboți subacvatici – în apă, roboți zburători – în aer, roboți extratereștri – pe
solul altor plan ete sau în spațiul cosmic;
În funcție de sistemul care le permite deplasarea în mediul în care acționează
există de exemplu pentru deplasarea pe sol:
1. roboți pe roți sau șenile
2. roboți pășitori: bipezi, patrupezi, hexapozi, miriapozi;
3. roboți târâtori: care imită mișcarea unui șarpe, care imită mișcarea unei
râme etc.;
4. roboți săritori, care imită deplasarea broaștelor, cangurilor etc.;
5. roboți de formă sferică (se deplasează prin rostogolire) etc .
Fig. 2.1 Exemple de roboți mobili [11]
11
2.3 Utilizarea roboților mobili
Utilizările pentru care au fost, sunt și vor fi concepuți roboții mobili sunt dintre cele
mai diverse. Mulți roboți din zona micro își găsesc utilizarea în medicină, fiind capabili să se
deplaseze de -a lungul vaselor și tu burilor corpului omenesc, în scopul investigațiilor,
intervențiilor chirurgicale, dozării și distribuirii de medicamente etc. La fel de spectaculoase
sunt și multe utilizări ale macro -roboților:
În domeniul industrial, agricol, forestier: în domeniul industrial roboții mobili sunt
reprezentați de AGV -uri (Automated -Guided Vehicles), vehicule pe roți, cu ghidare
automată, care transportă și manipulează piese, constituind o alternativă flexibilă la benzile
de montaj; în agricultură există tractoare și ma șini agricole fără pilot, capabile să execute
singure lucrările pe suprafețele pentru care au fost programate; în domeniul forestier roboții
mobili pot escalada copacii înalți;
În domeniul militar: este luată în considerare de către armata americană perspe ctive
înlocuirii soldaților combatanți cu roboți, pentru a reduce riscul pierderilor umane în luptă;
roboți mobili de cele mai ingenioase și robuste configurații sunt aruncați în clădi ro și incinte
din zone de conflict, în scopuri de investigare și chiar a nihilare a inamicului;
Fig. 2.2 Sistem Integrat Telecomandat pentru Deminare [9]
În domeniul utilităților publice: una dintre cele mai utile și economice utilizări ale
roboților mobili o reprezintă inspectarea conductelor de combustibili gazoși și lichizi și a
12
canalelor de canalizare. De exemplu rețeaua de canalizare a Germaniei însume ază 400.000
km, iar inspectarea și curățirea acesteia presupune costuri de 3,6 Euro pe metru. Numai 20%
din conducte sunt accesibile, iar utilizarea roboților poate reduce costurile cu un sfert.
În domeniul distractiv și recreativ: sunt roboții -jucării, r oboții pentru competiții
În domeniul serviciilor: Există posibilități deosebit de largi de implementare.
Sunt roboți pentru: deservirea bolnavilor în spitale; ajutorarea persoanelor bătrâne sau
cu diferite handicapuri; ghidarea și informarea publicului în muzee ; aspirarea și curățirea
încăperilor; spălarea geamurilor și a pereților clădirilor;
În domeniul securității: Multe operații de inspectare și dezamorsare a unor obiecte și
bagaje suspecte sunt executate de roboți;
În domeniul operațiilor de salvare: Roboții salvatori (Rescue robots) sunt utilizați în
operațiile de salvare a victimelor unor calamități: cutremure, incendii , inundații.
2.4 Caracteristici comune roboților mobili
Roboții mobili au următoarele caracteristici comune:
1. structura mecanică este un lanț cinematic serie sau paralel respectiv tip “master –
slave”;
2. sistemul de acționare utilizat este electric pentru sarcini mici și medii și hidraulic
pentru sarcini mari;
3. sistemul senzorial utilizează senzori interni (de turație, poziție, efort) la nivelul
articulațiilor, senzori externi (camere TV) pentru scanarea mediului și senzori de
securitate( de proximitate, de prezență cu ultrasunete);
4. sistemul de comandă este ierarhizat, de obicei multiprocesor;
5. limbajele de programare utilizate sunt preluate de la roboții staționari. [9]
13
2.5 Structura roboților mobili
Structura roboților mobili (RM) corespunde arhitecturii generale a roboților, având două
părți:
A. Structura mecanică, respectiv manipulatorul, care determină performanțele
tehnice;
Structura mecanică a roboților mobili este formată din:
sistemul de locomoție (pe șenile sau roți), prin care se asigură deplasarea
robotului pe o suprafață de lucru (în cadrul unei autonomii sporite);
sistemul de manipulare, care asigură poziționarea și orientarea organului de
lucru.
Robotul mobil în procesul de deplasare pe o anum ită traiectorie este caracterizat prin
3 funcți i:
1. funcția de locomoție;
2. funcția de percepție -decizie;
3. funcția de localizare;
B. Structura electronică, r espectiv de comandă -control, care condiționează
calitatea performanțelor.
Roboții mobili pot fi dotați cu cameră video sau alți senzori de percepere al mediului
în care activeaz ă. Memoria robotului conținută î n microcontroler înmagazinează cunoștințele
necesare localizării tuturor segmentelor de traseu posibile.
Indiferent de generația robotului, probleme complexe apar la realizarea structurii
mecanice de volum, greutate și cost reduse, la transmiterea mișcării și adaptarea la structura
mecanică a motoarelor electrice și hidraulice, la proiectarea mâinilor mecanice pentru a apuca
obiecte de diferite forme. Referitor la structura electronică, posibilitățile actuale permit
folosirea a câte unui microprocesor pentru comanda fiecărui grad de mobilitate, precum și a
altor microprocesoare specializate pentru tratarea semnalului senzorial. Robotul mobil
interacționează cu mediul înconjurător prin structura sa mecanică, asigurând astfel
deplasarea, poziționarea și orientarea organului de execuție. [10]
14
2.6 Exemple de roboți mobili
A. Robotul AIRAT2
Fig. 2.3 Robotul AIRAT2 [12]
AIRAT 2 este un robot micro -mouse care folosește un procesor CPU 8051. AIRAT 2
folosește senzori pentru a o recepta când se întoarce înapoi. Placa CPU folose ște o placă
JS8051 -A2. Placa JS8051 -A2 este foarte bine construită. Folosește res urse externe de putere
cum ar f i LCD, ADC, douǎ ceasuri externe, auto -Flash scriere și altele.
AIRAT 2 utilizează șase senzori oferindu -i astfel posibilitatea de a se de plasa pe
diagonală. Un simula tor PC este prevăzut,oferindu -i posib ilitatea utilizatorului de a înțelege
mai bine nivelul î nalt de căutare algoritmică a mo use-ului. Codul sursă C este implementat
astfel încât programat orul poate dezvolta mai ușor al goritmi care pot fi test ați cu ajutor ul unui
simulator ș i apoi implementat mouse -ului.
În plus, LCD, comunicație serială, controlul mouse -ului precum și alte funcții sunt
furnizate sub formă de librarie și fiș iere sursă. Pentru cei ce vor să învețe mouse -ul la un nivel
înalt, AIRAT2 furnizeaz ă un mediu excelent de dezvoltare, teste algoritmice, precum și multe
altele.
AIRAT 2 a apă rut pe coperta publicației franceze „MICROS&ROBOTS”.
15
Caracteristici ale robotului AIRAT2:
– capabil de reglare proprie; învață din mers;
– folosește 6 senzori dând u-i posibilita tea de a se deplasa pe diagonală ;
– ușor de asamblat/dezasamblat;
– port de reîncărcare;
– instrucții de asamblare și manual al utilizatorului;
– include un simulator PC pentru accelerarea dezvoltării;
– librării, coduri sursă C;
– AIRAT2 baterie (NiMh -450).
Fig. 2.4 Bateria robotului AIRAT2 [12]
16
B. Robotul Pololu 3pi
Fig. 2.5 Robotul Pololu 3pi [13]
Robotul pololu 3pi este o platformă mobilă de înaltă performanță care conține două
motoare cu cutie de viteze, 5 senzori de reflexie, un LCD 8×2, un buzzer și trei butoane, toate
conectate la un microcontroler programabil Atmega328. Capabil de viteze până la 1 m/s, 3 pi
este un excelent prim, pentru începători curajoși și un perfect al doilea robot pentru cei care
vor să avanseze de la roboți neprogramabili.
Robotul 3 pi este proiectat pentru a excela în competiții precum urmărirea liniei sau
rezolvarea labi rintelor. Are dimensiuni mici (diametru: 9.5 cm, greutate 83 g fără baterii) și îi
trebuie decât 4 baterii de tip AAA, în timp ce un sistem de alimentare unic pune în funcțiune
motoarele la o tensiune constantă de 9.25 v, tensiune independentă de cea a niv elului de
încărcare. Regulatorul d e tensiune îi permite lui 3pi să ajungă la viteze de până la 1 m/sec, în
timp ce face viraje și înt oarceri precise, care nu variază cu tensiunea bateriei.
Robotul 3pi este o platformă excelentă pentru persoane cu experien ță în programare C
care vor să învețe robotica și este o distracție în orice moment pentru cei care vor să î nvețe
programare C. Inima robotului este un microcontrol er Atmel ATmega328P care rulează la o
frecvență de 20 MHz alături de un program de 32 KB, 2 KB de memorie RAM si 1KB de
memorie EEPROM. Popularul compilator GNU C/C++ funcționează perfec t cu 3pi, Atmel
AVR Studio oferă un spațiu de dezvoltare confortabil și un set de librării interesante oferite
17
de Pololu ș i realiz area interfațării cu componentel e se face foarte ușor. 3pi este de asemenea
compatibil cu plăcile de dezvoltare Arduino.
Imaginile de mai jos identifică componentele cele mai importante ale robotului.
Fig. 2.6 Vedere de sus a robotului Pololu 3pi [13]
Fig. 2.7 Vedere de jos a robotului Pololu 3pi [13]
18
C. Robotul Inex POP -Bot Standard
Fig. 2.8 Robotul Inex POP -Bot Standard [14]
POP-BOT are un driver pentru două motoare de curent continuu. Viteza și direcția
motoarelor se poate controla din software -ul robotului , deoarece sunt controlate de că tre
PWM (Pulse Width Module).
Robotul conține și un modul microcontroler POP -168. POP -168 este o placă flexibilă
care nu are componente ascunse și permite o dezvoltare completă a caracteristicilor cu
ajutorul unelte lor standard AVR, cum ar fi IAR C/C++,MikroElektronikaMikro BASIC/
MikroPascal pentru AVR ș i de asemenea uneltele open -source WINAVR: AVRGCC pentru
Windows.
Un display LCD permite vizualizarea activității microcontrolerului. Modulul LCD are
nevoie decât de un pin de intrare/ieșire, +5v și masa pentru a funcționa. Pentru a comunica cu
microcontrolerul, modulul LCD are nevoie decât de simple comenzi de ieșire.
Alte părți componente ale robotului:
Placa de control a robotului RBX -168 cu suport de 4 baterii AA
Modul de butoane cu cablu JST
Senzor de distanță infraroșu GP2D120
Placa cu senzori de reflexie
Roti de cauciuc
Ball-caster
Placa de plastic de 80×60 cm [14]
19
CAPITOLUL 3: Prezen tarea elementelor componente
3.1 Robotul mobil proiectat : Robotix
Fig. 3.1 Robotul mobil Robotix
Robotul are abilitatea de a evita orice obstacol. În momentul în care sesizează un
obstacol acesta își schimbă direcția de deplasare.
Componenta de bază a robotului o constituie placa Arduino UNO pe care este prezent
microcontrolerul Atmel ATMEGA328 împreună cu diferite circuite auxiliare de interfață cu
diferite medii printre care enumerăm circuitul integrat L298 N cu rol de punte H ce
îndeplinește rolul de amplificare al semnalului de la pinii microcontrolerului și ac ționare de
putere a motoarelor de curent continuu și circuitul integrat TL499 care are rol de stabilizator
de tensiune. Pe lângă aceasta mai avem două motoare de curent continuu , un sen zor infraroșu
de distan ță Sharp GP2D120 și alte componente mecanice car e utilizează ca mediu de
programare limbajul C ++.
Robotul este conceput pe două roți motrice din plastic cu membrană de cauciuc iar pe
placa de bază se mai găsește o sferă cu rol de echil ibrare. Pentru a înnobila partea electronică
robotul a fost dotat cu un senzor de distanță cu infraroșu Sharp care determină distanța până
la un anumit obstacol . Pentru ca senzorul Sharp să se poată mișca acesta este montat pe un
servomotor SG-90.
20
3.2 Elemente componente:
-Placă de bază ( șasiu )
Fig. 3.2 Placă de bază
Fig. 3.3 Desen de execuție reper "Placă de bază"
21
-Cutie de viteze Tamiya 70168 cu 2 motoare de cu rent continuu
Fig. 3.4 Cutie de viteze Tamiya 70168 [17]
-Placă Arduino UNO -Driver motoare L298N
Fig. 3.5 Placă Arduino UNO Fig. 3.6 Driver motoare
-Ball caster -Senzor infr aroșu de distanță Sharp
Fig. 3.7 Ball Caster [19] Fig. 3.8 Senzor de distanță [18]
22
-Servomotor SG-90 – 2 roți
Fig. 3.9 Servomotor Fig. 3.10 Roți
– Suport baterii AAA – 2 baterii Duracell A A
Fig. 3.11 Suport baterii [20] Fig. 3.12 Baterii Duracell AA
-Plăcuță de susținere a senzorului ( material: poliamidă)
Fig. 3.13 Reper "Plăcuță senzor"
23
Fig. 3.14 Desen de execuție reper:"Plăcuță senzor"
3.3 Placa de dezvoltare Arduino
Componenta de bază a robotului o constituie placa Arduino UNO.
Arduino este o platformă de procesare open -source, bazată pe software și hardware
flexibil și simplu de folosit. Constă într -o platformă de mici dimensiuni (6.8 cm / 5.3 cm – în
cea mai des intâlnită variantă) construită în jurul unui procesor de sem nal și este capabilă de a
prelua date din mediul înconjurător printr -o serie de senzori și de a efectua acțiuni asupra
mediului prin intermediul luminilor, motoarelor, servomotoare lor, și alt or tipuri de
dispozitive mecanice. Procesorul este capabil să rul eze un cod scris într -un limbaj de
programare care este foarte similar cu limbajul C++.
Ce este cu adevărat interesant este ecosistemul dezvoltat in jurul Arduino . Vorbim
aici atât despre com unita tea care este foarte activă , cât și despre numărul impresionant de
dispozitive create special pentru Arduino.
Câteva exemple de senzori disponibili – senzori de distanță (capabili să măsoare de la
câțiva centimetri până la 7 -9 metri), senzori de sunet , senzori de câmp electromagnetic,
24
senzori de fum, senzori de tip GPS, senzori de tip giroscopic, senzori de flux lichid (ca cei
folosiți la pompele de benzină), senzori de temperatură, senzori de monoxid de carbon,
senzori de lumină, senzori capabili să detecteze doar o anumită culoare, senzori de prezență,
senzori de umiditate, senzori de nivel pe ntru lichid, senzori capabili să măsoare concentraț ia
de alcool în aerul expirat. Pentru a efectua a cțiuni asupra mediului înconjură tor, există o largă
varietate de motoare, servomotoare, motoare pas cu pas, led-uri, actuatoare. Ca și
conectivitate, există di sponibile componente capabile să conecteze Arduino la rețeaua
Ethernet (“Ethernet Shield”), componente pentru rețea wireless, componente capabile să
realizeze conectare a pe rețeaua de date GSM / 3G , sau componente de tip XBEE utile pentru
a realiza comunicații de tip personalizat.
Platforma Arduino este disponibilă într -o serie de variante, fiecare cu diferite
capabilități și dimensiuni. [21]
3.3.1 Exemple de plăci Arduino
A. Arduino Uno – Aceasta este cea mai recentă placă de dezvoltare de la
Arduino. Se conectează la computer prin intermediul cablului USB standard A -B și conține
tot ceea ce ai nevoie pentru a p rograma și utiliza placa. Aceste ia i se po t adăuga o v arietate de
Shield-uri (pl ăci cu caracteristici speciale, specifice unor tipuri de aplicații). Este similar cu
Duemilanove, dar are un chip diferit USB -to-serial – ATMega8U2, și cu un design nou de
etichetare pentru a identifica mai ușor intrările și ieșir ile.
Fig. 3.15 Placa de dezvoltare Arduino UNO [21]
B. Mega 2560 – versiune a modelului Mega lansat cu Uno, această versiune dispune
de Atmega2560, care are de două ori mai mult spațiu pentru memorie, și folosește 8U2
ATMega pentru comunicare USB -to-serial.
25
Fig. 3.16 Placa de dezvoltare Arduino Mega2560
C. Mini – Aceasta este cea mai mică placă de dezvolt are de la Arduino.
Aceasta funcționează bine î ntr-un breadboard sau pentru aplicații în care spațiul este limitat.
Se conectează la calculator prin intermediul unui cablu mini USB Adapter.
Fig. 3.17 Placa de dezvoltare Arduino Mini
D. Nano – O placă de dezvoltare compactă proiectată pentru utilizarea pe un
breadboard. Nano se conectează la computer utilizând un cablu USB Mini -B.
Fig. 3.18 Placa de dezvoltare Arduino Nano
E. Duemilanove – Arduino D uemilanove este o platformă de procesare bazată
pe microcontrolerul ATmega168 sau ATmega328 . Are 14 pini de intrări/ieșiri digitale.
LED: 13. Există un LED încorporat în placă, conectat la pinul 13. Cand valoarea pe
pin este HIGH, LED -ul este aprins, când valoare a este LOW, LED -ul este stins.
Placa Arduino UNO are 6 intrări analogice, denumite de la A0 la A5, fiecare oferă o
rezoluție de 10 biți. Implicit, ieșirile măsoară de la masa la 5v, deși este posibil ca limita
superioară să fie sch imbat ă cu ajutorul pinului AREF și funcția analogReference ().
26
Fig. 3.19 Placa de dezvoltare Arduino Duemilanove
F. LilyPad – Proiectat pentru aplicații ușor de implementat pe materiale
textile, acest microcontroler poate fi cusut pe țesătură și are o culoare atrăgătoare, mov.
Fig. 3.20 Placa de dezvoltare Arduino LilyPad
G. Fio – Proiectată pentru aplicații fără fir. Acest a are inclusă o priză dedicată
pentru un modul radio Wi -Fi XBee, un conector pentru o baterie Li -Polymer și circuite
integrate de încărcare a bateriei.
Fig. 3.21 Placa de dezvoltare Arduino Fio
27
H. Pro – Acestă placă de dezvoltare este concepută pentru utilizatorii avansați care
doresc să încorporeze această placă într -un proiect: este mai ieftin decât un Diecimila și ușor
de alimentat la o baterie, dar necesită componente suplimentare și asamblare.
Fig. 3.22 Placa de dezvoltare Arduino Pro
I. Pro Mini – Ca Pro, Pro Mini este conceput pentru utilizatorii avansați care au
nevoie de un cost scăzut, plăci de dezvoltare mici și care sunt dispuși să facă ceva lucru
suplimentar pentru a o putea utiliza în proiecte.
Fig. 3.23 Place de dezvoltare Arduino Pro Mini
J. Serial – Este o placă de dezvoltare, care utilizează ca interfață un RS232 (COM) la
un calculator pentru programare sau de comunicare. Acestă placă este ușor de asamblat, chiar
ca un exerc ițiu de învățare .
28
Fig. 3.24 Placa de dezvoltare Arduino Serial
K. Serial Single Sided – Acestă placă de dezvoltare este concepută pentru a fi gravată
și asamblată de mână. Este puțin mai mare decât Duemilanove, dar este compatibilă cu toate
shield -urile Arduino.
Fig. 3.25 Placa de dezvoltare Arduino Serial Single Sided
29
3.3.2 Placa Arduino UNO
Fig. 3.26 Elementele componente ale plăcii Arduino UNO
A. Prezentare generală
Arduino Uno este o placă de procesare bazată p e microcontro lerul ATmega328. Are
14 pini de intrări \ieșiri digitale (din care 6 pot fi utilizate ca ieșiri PWM), 6 intrări analogice,
un cristal oscilator de 16 MHz, o conexiune USB, o mufă de alimentare, un ICSP, și un
buton de resetare. Aceasta conține tot ceea ce este necesar pentru a ajuta la f uncționarea
microcontrolerului; pur și simplu conectați la un computer cu un cablu USB sau alimentați la
un adaptor AC -DC sau baterie pentru a începe.
Uno diferă de toate plăcile precedente, în sensul că nu folosește chip driver FTDI
USB la un serial. În schimb, este dotat cu Atmega8U2 programat ca și convertor USB.
"Uno" înseamnă unu în limba italiană și este numită pentru a marca lansarea viitoare a
Arduino 1.0. Uno și versiunea 1.0 vor fi versiunile de referință Arduino, pentru a avansa. Uno
este ultima dintr -o serie de plăci Arduino USB, și modelul de referință pentru platforma
Arduino. [21]
30
B. Caracteristici
Tabelul 1
Microcontroler ATmega328
Tensiunea de funcționare 5V
Tensiune de intrare
(recomandat) 7-12V
Tensiune de intrare (limite) 6-20V
Digital I / O Pins 14 (din care 6 prevăd PWM de ieșire)
Analog Input Pins 6
DC curent pe I / O Pin 40 mA
Actuale pentru Pin 3.3V DC 50 mA
Flash Memory 32 KB (ATmega328), din care 0.5 Kb utilizate de
bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Viteza de ceas 16 MHz
C. Alimentare
Arduino Uno poate fi alimentat prin intermediul conexiunii USB sau cu o sursă de
alimentare externă. Sursa de alimentare este selectată automat.
Sursele externe de alimentare (non -USB) pot fi, fie un adaptor AC -DC sau
baterie. Adaptorul poate fi conectat printr -un conector de 2.1mm cu centru -pozitiv în mufa de
alimentare de pe placă. Traseele de la baterie pot fi introduse în pinii GND și V -in ai
conectorului de alimentare.
Placa poate funcțion a cu o sursă externă de 6 -20 volți. Dacă este alimentată cu mai
puțin de 7V, atunci pinul de 5V scoate o tensiune mai mică de 5V și placa poate deveni
instabilă. Dacă se utilizează mai mult de 12V, regulatorul de tensiune se poate supraîncălzi și
deteriora placa. Intervalul recomandat este de 7 -12 volți. [22]
31
Pinii de putere sunt după cum urmează:
V-IN. Tensiunea de intrare la placa Arduino atunci când folosește o sursă de
alimentare externă (spre deosebire de 5 volți de conexiune USB sau o altă sursă de
energie regulată). Se poate alimenta prin acest pin sau dacă este folosită alimentarea
prin conectorul de alimentare atunci tensiunea poate fi accesată din acel pin.
5V. Tensiunea de alimentare folosită pentru microcontroler și alte componente de pe
placă. Aceasta poate veni fie din pinul V -IN printr -un regulator de tensiune
încorporat, sau să fie furnizată de către USB sau o altă sursă de tensiune de 5v .
3V3. O tensiune de 3.3V generată de către regulatorul de pe placă.
GND. Pinii de masă.
D. Memoria
ATmega328 are 32 KB (cu 0,5 KB utilizate pentru bootloader). Ea are, de asemenea,
2 KB de SRAM și 1 KB de EEPROM (care poate fi citit și scris cu biblioteca EEPROM ).
E. Intrări și ieșiri
Fiecare din cei 14 pini digitali pot fi utilizați ca intrare sau ieșire, folosind
funcțiile pinMode () , digitalWrite () , și digitalRead () . Aceștia funcționează la 5
volți. Fiecare pin poate oferi sau primi un maxim de 40 mA și are un rezistor de siguranță
(deconectat implicit) de 20 -50 kOhms. În plus, unii pini au funcții particulare:
Serial: 0 (RX) și 1 (TX). Folosit pentru a primi și transmite date seriale TTL. Acești
pini sunt conectați la pinii corespunzători ai cipului ATmega8U2 USB -TTL;
Întreruperile externe: 2 și 3. Acești pini pot fi conf igurați pentru a declanșa o
întrerupere pe o valoare scăzută, o limită crescătoare sau descrescătoare, sau o
schimbare în valoare.
PWM: 5, 6, 9, 10, și 11. Oferă o ieșire PVM de 8 biți cu funcția analogWrite () .
SPI:10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK) . Acești pini suportă comunicația SPI
folosind biblioteca SPI .
LED: 13. Există un LED încorporat în placă, conectat la pinul 13. Când valoarea pe
pin este HIGH, LED -ul este aprins, când valoare este LOW, LED -ul este stins.
Placa Arduino UNO ar e 6 intrări analogice, denumite de la A0 la A5, fiecare oferă o
rezoluție de 10 biți. Implicit, ieșirile măsoară de la masa la 5V, deși este posibil ca limita
superioară să fie schimbată cu ajutorul pinului AREF și funcția analogReference (). În plus,
unii pini au funcționalități specializate:
I2C:A 4 (SDA) și A 5 (SCL). Suportă comunicare I2C folosind librăria Wire.
32
Mai există câțiva pini pe placă:
AREF. Tensiune de referință (numai de la 0 la 5V) pentru intrările analogice. Folosit
cu funcț ia analogReference().
Reset. Aduce linia la zero pentru a reseta microcontrolerul . De obicei folosit pentru a
adăuga un buton de reset Shield -urilor care blochează acțiunea celui de pe placă.
F. Harta pinilor – ATMega 328
Fig. 3.27 Descrierea pinilor microcontrolerului ATMega328 [23]
G. Comunicația
Arduino UNO are câteva posibilități de comunicare cu un calculator, o altă placă
Arduino sau un alt microcontroler. Microcontrolerul ATmega328 furnizează comunicație
serială UART TTL (5V) care este disponibilă pe pinii digitali 0(RX) și 1(TX). Un
microcontroler ATmega8U2 direcționează comunicația serială către USB și apare ca un port
serial virtual în software -ul de pe calculator. Firmware -ul microcontrolerului folosește
driverele standard ale portului USB al calculatorului și nu este nevoie de un driver din
exterior. Software -ul Arduino este prevăzut cu o fereastră care permite preluarea și trimiterea
de date de tip text de la placa Arduino. LED -urile corespunzătoare semnalelor RX și TX de
pe placă vor pâlpâi când informația este trimisă prin portul USB către cipul serial prin
intermediul unei conexiuni USB cu calculatorul (dar nu pentru comunicația serială de pe pinii
0 și 1).
O bibliotecă a programului (SoftwareSerial ) permite comunicația serială pentru
oricare dintre pinii plă cii.
33
Microcontrolerul ATmega328 suportă, de asemenea comunicație I2C (DST) și
SPI. Software -ul Arduino include o bibliotecă de conexiuni (wire library) pentru a simplifica
utilizarea portului I2C .
H. Programare
Arduino UNO poate fi programată cu software -ul Arduino. Selectați "Arduino
Uno din meniul Tools Board (în conformitate cu microcontrolerul de pe placă).
Microcontrolerul ATmega328 de pe placa Arduino Uno vine cu un program de butare
(bootloader ) care vă permite încărcarea unui program nou fără a utiliza un compilator
extern. Acesta comunică folosind protocolul STK500 original.
Se poate evita, de asemenea, bootloader –ul și, microcontrolerul se poate programa
prin ICSP (In -Circuit Serial Progra mming).
Codul sursă al Firmware –ul microcontrolerului ATmega8U2 este disponibil, el este
încărcat cu un program de butare DFU care poate fi activat cu ajutor ul unui jumper de pe
spatele plă cii, ATmega8U2 fiind resetat. Apoi se pot folosi programele Atmel ’s FLIP
(Windows) sau DFU (Mac si Linux) pentru a încărca un nou firmware. [27]
I. Resetarea automată (Software)
Pentru a nu fi nevoie de resetarea manuală, înainte de încărcarea unui program,
Arduino Uno este proiectată astfel încât îi permite sa fie resetată de către software, atunci
când este conectată la calculator. Una dintre liniile de control a funcționării hardware (DTR)
a microcontro lerului ATmega8U2 este conectată la linia de reset al microcontrolerului
ATmega328 printr -un condensator de 100 n anofarad. Atunci când această linie este activată,
linia de reset este activă suficient de mult timp pentru a reseta microcontrolerul. Software -ul
Arduino folosește această capacitate pentru a vă permite să încărcați un cod prin simpla
apăsare a butonului de încărcare din mediul de programare Arduino. Acest lucru înseamnă că
bootloader -ul are o perioadă scurtă de pauză.
Această configurare are alte implicații. Când Uno este conectată fie la un computer pe
care rulează fie un sistem de operare Mac OS X sau Linux, aceasta se resetează de fiecare
dată când o conexiune este realizată între ea și software (prin USB). Pentru următoarele
jumătăți de secundă aplicația bootloaderul rulează pe Uno. Deși este programat să ignore date
necorespunzătoare (adică nimic în afară de o încărcare a noului Cod), se vor intercepta primii
biți din datele trimise către placă după ce conexiunea este deschisă.
Uno conține un traseu care poate fi înterupt pentru a dezactiva resetarea automată.
Zonele de pe fiecare parte a traseului î nterupt pot fi lipite pentru a activa din nou resetarea
34
automată. Traseul este denumit ”RESET_EN”. O altă modalitate de a dezactiva resetarea
automată este prin a conecta un rez istor de 110 ohm între linia de 5V și linia de reset.
J. Protecția la suprasarc ină a portului USB
Arduino Uno are o siguranță resetabilă care protejează porturile USB ale
computerului de scurtcircuit și suprasarcină. Deși majoritatea calculatoarelor au protecție
internă proprie, siguranța oferă o protecție suplimentară. Dacă un curen t mai mare de 500 mA
trece prin portul USB, siguranța va întrerupe în mod automat conexiunea până la îndepărtarea
suprasarcini i sau scurtcircuitului.
K. Caracteristici fizice
Lungimea și lățimea maximă a plăcii este de 6.8 cm respective 5.3 cm, cu conector ul
USB și conectorul de alimentare care ies din dimensiunile plăcii. Patru orificii de șurub care
permit plăcii să fie atașată la o suprafață sau carcasă. Observați că distanța dintre pinii 7 și 8
este de 160 mm.
Fig. 3.28 Dimensiunile plăcii Arduino UNO [28]
35
L. Schema electrică
Fig. 3.29 Schema electrică a plăcii Arduino UNO [29]
36
3.4 Microcontrolere le
Circumstanțele în care ne găsim astăzi în domeniul microcontrolerelor și -au avut
începuturile în dezvoltarea tehnologiei circuitelor integrate. Această dezvoltare a făcut
posibilă înmagazinarea a sute de mii de tranzistoare într -un singur cip. Aceasta a fost o
premiză pentru producția de microprocesoare, și primele calculatoare au fost făcute prin
adăugarea perifericelor ca memor ie, linii intrare -ieșire, timer i și altele. Următoarea creștere a
volumului capsulei a dus la crearea circuitelor integrate. Aceste circuite integrate conțin atâ t
procesorul cât și per ifericele. Așa s -a întamplat când primul cip conținând un microcalculator,
sau ce va deven i cunoscut mai târziu ca microcontroler a luat ființă. [5]
Ce este un microcontroler?
La modul general un controler ("controller" – un termen de origine anglo -saxonă, cu
un domeniu de cuprindere foarte larg) este, actualmente, o structură electronică destin ată
controlului unui proces sau, mai general, unei interacțiuni caracteristice cu mediul exterior,
fără să fie necesară intervenția operatorului uman. Primele controlere au fost realizate în
tehnologii pur analogice, folosind componente electronice discret e și/sau componente
electromecanice (de exemplu relee). Cele care fac apel la tehnica numerică modernă au fost
realizate inițial pe baza logicii cablate (cu circuite integrate numerice standard SSI și MSI ) și
a unei electronici analogice uneori complexe, motiv pentru care "străluceau" prin dimensiuni
mari, consum energetic pe măsură și, nu de puține ori, o fiabilitate care lăsa de dorit.
Apariția și utilizarea microprocesoarelor de uz general a dus la o reducere consistentă
a costurilor, dimensiunilor, con sumului și o îmbunătățire a fiabilității. Există și la ora actuală
o serie de astfel de controlere de calitate, realizate în jurul unor microprocesoare de uz
general cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.
Pe măsură ce procesul de m iniaturizare a continuat, a fost posibil ca majoritatea
componentelor necesare realizării unei astfel de structuri să fie încorporate (integrate) la
nivelul unui singur microcircuit (cip). Astfel că un microcontroler ar putea fi descris ca fiind
și o soluț ie a problemei controlului cu ajutorul a unui singur circuit.
Legat de denumiri și acronime utilizate, așa cum un microprocesor de uz general este
desemnat prin MPU (MicroProcessor Unit), un microcontroler este, de regulă, desemnat ca
MCU, deși semnificația inițială a acestui acronim este MicroComputer Unit.
O definiție, cu un sens foarte larg de cuprindere, ar fi aceea că un microcontroler este
un microcircuit care încorporează o unitate centrală (CPU) și o memorie împreună cu resurse
care îi pe rmit interacțiunea cu mediul exterior .
37
Resursele integrate la nivelul microcircuitului ar trebui să includă , cel puțin,
următoarele componente:
a. o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem
b. o memorie locală tip ROM/PROM/EPR OM/FLASH și eventual una de tip RAM
c. un sistem de întreruperi
d. I/O – intrări/ieșiri numerice (de tip port paralel)
e. un port serial de tip asincron și/sau sincron, programabil
f. un sistem de timere -temporizatoare/numărătoare programabile
Este posibil ca la acestea să fie adăugate, la un preț de cost avantajos, caracteristici
specifice sarcinii de control care trebuie îndeplinite:
g. un sistem de conversie analog numerică (una sau mai multe intrari analogice)
h. un sistem de conversie numeric analogic și/sau ieșiri PWM (cu modulare în durată)
i. un comparator analogic
j. o memorie de date nevolatilă de tip EEPROM
k. facilități suplimentare pentru sistemul de temporizare/numărare (captare și
comparare)
l. un ceas de gardă (timer de tip watchdog)
m. facilități pentru optimizarea consumului propriu
Un microcontroler tipic mai are, la nivelul unității centrale, facilități de prelucrare a
informației la nivel de bit, de acces direct și ușor la intrări/ieșiri și un mecanism de prelucrare
a întreruperilor rapid și eficient.
Utilizarea unui microcontroler constituie o soluție prin care se poate reduce dramatic
numărul componentelor electronice precum și costul proiectării și al dezvoltării unui produs.
OBSERVAȚIE : Utilizarea unui microcontroler, oricât de evoluat, nu elimină unele
componente ale interfeței cu mediul exterior (atunci când ele sunt chiar necesare): subsisteme
de prelucrare analogică (amplificare, redresare, filtrare, protecție -limitare), elemente pentru
realizarea izolării galvanice (optocupl oare, transformatoare), elemente de comutație de putere
(tranzistoare de putere, relee electromecanice sau statice). [5]
Unde sunt utilizate microcontrolerele?
Toate aplicațiile în care se utilizează microcontrolere fac parte din categoria așa
ziselor sist eme încapsulate -integrate (“embedded systems”), la care e xistența unui sistem de
calcul î ncorporat este transparentă pentru utilizator.
38
Pentru că utilizarea lor este de foarte dese ori sinonimă cu ideea de control
microcontrolerele sunt utilizate masiv în robotică și mecatronică. Conceptul de mecatronică
este până la urmă indisolubil legat de utilizarea microcontrolerelor .
Automatizarea procesului de fabricație -producție este un alt mare beneficiar: CNC
Computerised Numerical Controls – comenzi numerice pentru mașinile unelte, automate
programabile – PLC, linii flexibile de fabricație, etc.). Indiferent de natura procesului
automatizat sarcinile specifice pot fi eventual distribuite la un mare număr de microcontrolere
integrate într -un sistem unic prin int ermediul uneia sau mai multor magistrale. Printre multele
domenii unde utilizarea lor este practic un standard industrial se pot menționa: în industria de
automobile (controlul aprinderii/motorului, climatizare, diagnoză, sisteme de alarmă, etc.), în
așa z isa electronică de consum (sisteme audio, televizoare, camere video și videocasetofoane,
telefonie mobilă, GPS -uri, jocuri electronice, etc.), în aparatura electrocasnică (mașini de
spălat, frigidere, cuptoare cu microunde, aspiratoare), în controlul mediu lui și climatizare
(sere, locuințe, hale industriale), în industria aerospațială, în mijloacele moderne de măsurare
– instrumentație (aparate de măsură, senzori și traductoare inteligente), la realizarea de
periferice pentru calculatoare, în medicină.
„Johnnie” (figura 3.30) un robot umanoid destul de simplu, construit la Universitatea
Tehnică din Munchen în 1998, utilizează 5 microcontrolere, conectate prin intermediul unei
magistrale CAN la un calculator PC. „Alpha” un alt robot umanoid (fotbalist ca dest inație)
dezvoltat la Universitatea din Freiburg utilizează, intr -o variantă a sa, 11 microcontrolere
conectate similar. Un număr foarte mare de microcontrolere sunt folosite și de așa zisele
jucării inteligente, din care „capetele de serie” cele mai cunosc ute sunt cei doi roboți, unul
canin și altul umanoid: AIBO (figura 3.31) și ASIMO (figura 3.32). ASIMO folosește 26 de
microcontrolere numai pentru controlul individual al celor 26 de elemente de acționare
inteligente (motoare). Tot în ca tegoria roboților umanoizi intră și QRIO sau HOAP -1. Roboții
respectivi sunt produși în serie, unii dintre ei chiar la un preț „accesibil”. [6]
Ca un exemplu din industria de automobile (automotive industry), unde numai la
nivelul anului 1999, un BMW seria 7 utiliza 65 de mi crocontrolere, iar un Mercedes din clasa
S utiliza 63 de microcontrolere.
Practic, deși am prezentat ca exemple concrete numai sisteme robotice și mecatronice,
este foarte greu de găsit un domeniu de aplicații în care să nu se utilizeze microcontrolerele.
39
Fig. 3.32 -ASIMO -[6]
Fig. 3.30 -Johnnie -[6]
Fig. 3.31 -AIBO -[6]
40
Modele de microcontrolere
A. Microcontrolerul PIC
Microcontrolerele PIC au fost dezvoltate de firma americană Microchip, la începutul
anilor `90. Faptul remarcabil pentru care a putut cuceri un important segment din piața de
microcontrolere a fost modalitatea simplă de înscriere a programului (serială, necesită doar
trei fire), memoria program conținută în aceeași capsulă, noua tehnologie CMOS de realizare
(deci consum redus) și prețul relativ scăzut.
Aproape toate microcontro lerele PIC există în două versiuni, și anume:
– "Windowed", marcate cu sufixul "JW" pe capsulă (Ex. 12C509 -04/JW). Aceste chip -uri se
folosesc la dezvoltarea de aplicații deoarece permit ștergerea programului și reînscrierea lui,
de mai multe ori. Ștergere a programului se face prin expunerea chip -ului la raze ultraviolete.
Capsula are prevă zută pe partea de sus o fereastră din sticlă de cuarț prin care pot pă trunde
razele ultraviolete.
– "OTP" (One Time Programab le), cele programabile o singură dată. Funcți onal și tehnologic
sunt identice cu cele "windowed", doar că nu au prevă zută fereastr a de cuarț, deci programul
odată înscris nu mai poate fi șters. Deci o aplicație gata dezvoltată și î ncercată cu o versiune
"windowed" poate fi multiplicată pentru producț ie de serie în capsule "OTP" care sunt de
câteva ori mai ieftine.
Aceste două ver siuni, Windowed și OTP sunt realizate în tehnologie CMOS -EPROM.
Fig.3. 33 Denumirea pinilor unui microcontroler PIC 12F675 [7]
41
Fig. 3.34 Numerotarea pinilor unui microcontroler PIC 16F675 [7]
B. ATMega 16
ATmega 16 este un microcontroler CMOS de 8 – biți de mic ă putere bazat pe
arhitectură RISC -AVR îmbunătățită.
Dispune de un set de 131 instrucțiuni și 32 de regiștri de uz general. Cele 32 de
registre sunt dire ct adresabile de Unitatea Logică Aritmetică (ALU), permiț ând accesarea a
două registre independente într -o singură instrucțiune. Se obține astfel o eficiență sporită î n
execuție (de până la zece or i mai rapide decât microcontro lerele convenționale CISC).
ATmega16 este un microcontroler RISC pe 8 biți realizat de firma Atmel.
Caracteristicile principale ale acestuia sunt:
-16KB de memorie Flash reinscripțibilă pentru stocarea programelor
-1KB de memorie RAM
-512B de memorie EEPROM
-două numărătoare/temporizatoare de 8 biți
-un numărător/temporizator de 16 biți
-conține un convertor analog – digital de 10 biți, cu intrări multiple
-conține un comparator analogic
-conține un modul USART pentru comunicație serială (port serial)
-dispun e de un cronometru cu oscilator intern
-oferă 32 de linii I/O organizate în patru porturi (PA, PB, PC, PD).
42
Fig. 3.35 Descrierea pinilor microcontrolerului ATMega16 [7]
C. Microcontrolerul ATmega 328
ATMega328 cu Arduino boot loader (Uno). Acest microcontro ler permite să utilizarea
programelor Arduino în proiectul dumneavoastră fără să utilizați o placă Arduino. Pentru a
putea funcționa cu Arduino IDE acest microcontroller are nevoie de un cristal extern de 16
Mhz sau de un rezonator, de o sursa de alimentare de 5V și de o conexiune serială. [39]
Fig. 3.36 Microcontrolerul ATMega328 [39]
Memoria
ATmega328 are 32 KB (cu 0,5 KB utilizați pentru bootloader). Ea are, de asemene a, 2
KB SRAM și 1 KB de EEPROM.
43
Specificații tehnice
Tabelul 2
Microcontroler ATmega328p -pu
Familia de microcontrolere Atmega
Tip interfață I2C, SPI USART
Dimensiune nucleu 8 biți
Voltajul de intrare (limitare) 1.8V -5.5V
Pini digitali I/O 23 (din care 6 pot fi folosiț i ca PWM)
Număr intrări ADC 6
Oscilator de tip intern, extern
Numar de contoare 3
Formă capsule PDIP
Temperatura de operare -40 ° C la +85 ° C
DC Curent pentru pinii de I/O 40 mA
DC Curent pentru pinul de 3.3V 50 mA
Memoria 32 KB din care 8 KB utilizaț i de bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 20 MHz
Periferice ADC, Comparator, RTC, Timer, PWM
Set de instrucțiuni Arhitectură ISC
44
3.5 Motoare de curent continuu
Fig. 3. 37 Motor de curent continuu [30]
Un motor electric (sau ele ctromotor) este un dispozitiv care transformă energia
electrică în energie mecanică. Transformarea inversă, a energiei mecanice în energie
electrică, este realizată de un generator electric. Nu există diferențe de principiu
semnificative între cele două tipuri de mașini electrice, același dispozitiv putând îndeplini
ambele roluri în situații diferite.
Principiul de funcționare: Majoritatea motoarelor electrice funcționează pe baza
forțelor electromagnetice ce acționează asupra unui conductor parcurs de curent electric aflat
în câmp magneti c. Există însă și motoare electrostatice construite pe baza forței Coulomb și
motoare piezoelectrice.
Motoarele electrice pot fi clasificate după tipul curentului electric ce le parcurge:
Motor de curent continuu
Motor de curent alternativ
Motor de inducție (asincron)
Motor sincron
Elemente constructive: indiferent de tipul motorului, acesta este construit din două
părți componente: stator și rotor. Statorul este partea fixă a motorului, în general exterioară,
ce include carcasa, bornele de alimentar e, armătura feromagnetică statoric și înfășurarea
statorică. Rotorul este partea mobilă a motorului, plasată de obicei în interior. Este format
dintr -un ax și o armătură rotorică ce susține înfășurarea rotorică. Între stator și rotor există o
porțiune de a er numită intrefier ce permite mișcarea rotorului față de stator. Grosimea
intrefierului este un indicator important al performanțelor motorului. [30]
45
Fig. 3. 38 Elementele componente ale motorului de curent continuu [31]
Motorul de curent continuu a fost inventat în 1873 de Zénobe Gramme prin
conectarea unui generator de curent continuu la un generator asemănător. Astfel, a putut
observa că mașina se rotește, realizând conversia energiei electrice absorbite de la generator.
Motorul de curent continuu are pe stator polii magnetici ș i bobinele polare concentrate
care creează câmpul magnetic de excitație. Pe axul motorului este situat un colector ce
schimbă sensul curentului prin infășurarea rotorică astfel încât câmpul magnetic de excitație
să exercite în permanență o forță față de rotor.
În funcție de modul de conectare a înfășurării de excitație motoarele de curent
continuu pot fi clasificate în:
motor cu excita ție independentă – unde înfășurarea statorică și înfășurarea rotorică
sunt conectate la două surse separate de tensiune;
motor cu excitație paralelă – unde înfășurarea statorică și înfășurarea rotorică sunt
legate în paralel la ace eași sursă de tensiune
motor cu excitație serie – unde înfășurarea statorică și î nfășurarea rotorică sunt
legate în serie
motor cu excitație mixtă – unde înfășurarea statorică este divizată în două
înfășurări, una conectată în paralel și una conectată în serie.
Înfășurarea rotoric ă parcursă de curent va avea una sau mai multe perechi de poli
magnetici echivalenți. Rotorul se deplasează în câmpul magnetic de excitație până când polii
rotorici se aliniază în dreptul polilor statorici opuși. În același moment, colectorul schimbă
sensu l curenților rotorici astfel încat polaritatea rotorului se inversează și rotorul va continua
deplasarea până la următoarea aliniere a polilor magnetici. [32]
Capac
Perii colectoare
Rotor
Carcasă Stator
Ax
Bucșă
46
Pentru acționări electrice de puteri mici și medii, sau pentru acționări ce nu necesită
câmp magne tic de excitație variabil, în locul înfășurărilor statorice se folosesc magneți
permanenți.
Turația motorului este proporțională cu tensiunea aplicată înfășurării rotorice și invers
proporțională cu câmpul magnetic de excitație. Turația se reglează prin va rierea tensiunii
aplicată motorului până la valoarea nominală a tensiunii, iar turații mai mari se obțin prin
slăbirea câmpului de excitație. Ambele metode vizează o tensiune variabilă ce poate fi
obținută folosind un generator de curent continuu (grup War d-Leonard), prin înserierea unor
rezistoare în circuit sau cu ajutorul electronicii de putere (redresoare comandate, choppere).
Cuplul dezvoltat de motor este direct proporțional cu curentul electric prin rotor și cu
câmpul magnetic de excitație. Reglarea turației prin slăbire de câmp se face, așadar, cu
diminuarea cuplului dezvoltat de motor. La motoarele serie același curent străbate înfășurarea
de excitație și înfășurarea rotorică. Din această considerație se pot deduce două caracteristici
ale motoarelor serie: pentru încărcări reduse ale motorului, cuplul acestuia depinde de
pătratul curentului electric absorbit; motorul nu trebuie lăsat să funcționeze în gol pentru că în
acest caz valoarea intensității curentului electric absorbit este foarte redusă și implicit câmpul
de excitație este redus, ceea ce duce la ambalarea mașinii până la autodistrugere.
Motoarele de curent continuu cu excitație serie se folosesc în tracțiunea electrică
urbană și feroviară (tramvaie, locomotive).
Schimbarea sensului de rotație se face fie prin schimbarea polarității tensiunii de
alimentare, fie prin schimbarea sensului câmpului magnetic de excitație. La motorul serie,
prin schimbarea polarității tensiunii de alimentare se realizeaza schimbarea sensului ambelor
mărimi și sensul de rotație rămâne neschimbat. Așadar, motorul serie poate fi folosit și la
tensiune alternativă, unde polaritatea tensiunii se inversează o dată în decursul unei perioade.
Un astfel de motor se numește motor universal și se folosește în aplicații ca snice de puteri
mici și viteze mari de rotație (aspirator, mixer). [32]
Fig. 3.39 Motor de curent continuu [32]
47
Alegerea motorului de curent continuu :
Pentru alegerea motorului am luat în considerare următoarele aspecte:
Masa robotului: m = 0,52 kg
Diametrul exterior al roții: d = 55 mm
Masa unei roții: m r = 0,02 kg
Numărul roților: n = 2
Coeficientul de frecare dintre roată și podea: µ = 0,03
Randamentul mecanismului: η = 0, 95
Înclinația maximă a podelei: α = 15⁰
Viteza de operare a robotului: v = 20 m/min
Timp de accelerație : t = 3 s
Acuratețea frânării: Δl = 30 mm
Coeficient de siguranță : Ks= 1,75
Calculul momentului de inerție :
(
) (
)
(
) (
)
Calculul vitezei necesare :
(
( ))
(
( ))
Calculul cuplului de accelerație:
(
( ))
(
)
48
Calculul cuplului de încărcare :
( )
( )
( )
( )
Calculul cuplului total necesar :
( )
( )
Calculul acurateții de oprire necesar e:
(
)
(
)
În urma calculelor efectuate am ales folosirea unei cutii de viteze Tamiya 75026 care are
în componență două motoare de curent continuu cu perii. Tensiunea de comandare
recomandată a acest ora este de 3V iar specificațiile oferte de producător sunt următoarele:
Dimensiuni: 19 x 16 x 12 mm
Greutate: 11g
No-load speed @ 3V: 10500 rpm
No-load current @ 3V: 100 mA
Stall current @ 3V: 1.1 A
Stall torque @ 3V: 0,002 N*m
49
3.6 Senzorul infraroșu
Fig. 3. 40 Senzorul infraroșu [34]
Senzorii sunt dispozitive care pot măsura diferite proprietăți ale mediului precum:
temperatura, distanța, rezistența fizică, greutatea, mărimea, etc. Informația primită de la
aceștia poate fi de cele mai multe ori contradictorie și imprecisă. [33]
În cel mai general caz, senzorii pot fi împărțiți în două categorii, și anume:
Senzori de stare internă – senzori care oferă informații despre starea internă
a robotului mobil, spre exemplu nivelul bateriei, poziția roților etc;
Senzori de stare externă – senzori care oferă informații despre mediul
ambiant în care robotul funcționează. Senzorii de stare ex ternă se mai pot împărți la
rândul lor în două categorii: senzori cu contact , mai precis acei senzori care culeg
informația din mediu prin atingere (exemplu: senzor „bumper”), respectiv senzori
fără contact, care preiau informația din mediu de la distanță (exemplu: cameră video,
senzor ultrasonic, etc).
Un senzor poate fi activ sau pasiv. Senzorii activi sunt acei senzori care emit energie
în mediu pentru a putea observa anumite caracteristici ale acestuia, spre deosebire de senzorii
pasivi care primesc en ergie din mediu pentru a putea prelua informația.
La modul general, despre toate categoriile de senzori se pot enunța următoarele
ipoteze:
– Orice senzor este afectat de zgomot;
– Orice senzor oferă o informație incompletă a mediului în care efectuează măsurătorile;
50
– Nici un senzor nu poate fi modelat complet.
De asemenea, toate tipurile de senzori sunt caracterizate printr -o serie de proprietăți,
cele mai importante fiind:
– Sensibilitatea: raportul dintre semnalul de ieșire și semnalul de intrare;
– Liniaritatea: exprimă dacă raportul dintre intrare și ieșire este constant;
– Intervalul de măsurare: diferența între distanța minimă și maximă măsurabilă;
-Timpul de răspuns: timpul necesar pentru ca informația de la intrare să fie observabilă la
ieșire;
-Acuratețea: diferența între semnalul măsurat și semnalul real;
-Repetabilitatea: diferențele între măsurători succesive ale aceleiași entități;
-Rezoluția: exprimă cea mai mică unitate de incrementare a semnalului măsurat;
-Prețul senzorului;
-Puterea d e calcul necesară pentru a interpreta rezultatele;
-Tipul de semnal la ieșire;
-Greutatea, mărimea și cantitatea de energie consumată pentru a face o măsurătoare.
Relația între proprietățile fizice de interes e ale mediului și informația primită de la un
senzor r ar putea fi modelată prin ecuația:
f (e) = r
În principiu, orice model al unui senzor ar trebui să includă și un model intern al
zgomotului care poate afecta senzorul în momentul citirii informației. Pr oblema de a recupera
informația din mediu din datele primite de la senzor poate fi destul de complexă.
Un senzor este considerat instabil dacă pentru variații mici ale intrării, ieșirea se
schimbă radical. În caz general, pentru un senzor cu ieșirea f(e), instabilitatea se referă la
faptul că în principiu orice tip de senzor poate fi afectat de mai multe tipuri de erori.
Dintre acestea, cele mai importante sunt erorile incidentale, erorile sistematice și
erorile stohastice. Erorile incidentale apar ocaziona l și pot avea un efect neprevăzut asupra
informației, ele provenind în cea mai mare parte de la măsurători efectuate greșit. Erorile
sistematice au o influență predictibilă asupra acurateții informației, acestea provenind de la o
interpretare greșită a par ametrilor în algoritmii de estimare, sau din cauza unor neconcordanțe
(incertitudini) în modelare. În fine, erorile stohastice, au un caracter aleator, ele diferind de
fiecare dată când robotul execută aceeași operație.
51
În lumea roboților mobili se întâlne sc o mare varietate de tipuri de senzori. O
clasificare de bază a acestora ar putea fi:
– senzori de distanță – acei senzori care oferă informații despre distanța între senzor și
obiectul de măsurat din mediu;
– senzori de poziție – acei senzori care oferă informații despre poziția robotului în termeni
absoluți;
– senzori de mediu – acei senzori care oferă informații despre diverse proprietăți și
caracteristici ale mediului (exemplu: temperatură, culoare);
– senzori inerțiali – acei senzori care măsoară pro prietăți diferențiale ale poziției
robotului (exemplu: accelerația).
O altă clasificare a senzorilor se poate face în funcție de tipul de semnal primit,
precum și de rolul senzorului în sistemul robotului mobil, îmbinând deci cele două clasificări
de mai sus. În continuare, pentru descrierea diferitelor tipuri de senzori, se va folosi această
abordare.
Sistemul de măsurare a distanței prin senzor în infraroșu este un tip particular de
sistem de achiziție de date, iar aplicațiile sale pot fi găsite în domen ii foarte variate. De
exemplu:
1) montarea unui senzor infraroșu Sharp GP2 pe un robot cu funcția de a depista
obstacolele;
2) confecționarea unui dispozitiv de mână compact și portabil pentru a măsura rapid și
ușor o distanță relativ mică, pentru distanțe mari folosindu -se alți senzori mai
puternici.
3) Realizarea de diverse dispoziti ve automate care măsoară distanț a.[34]
Mod de funcționare:
Senzorul emite un puls de rază infraroșie de lun gime de undă 850 nm ± 70nm. Dacă
un obiect este în raza de acțiune și în calea raze i IR, acesta va reflecta raza î napoi spre senzor.
Senzorul face citirile cu o frecvență de aproximativ 24 Hz și raportează datele sub formă de
tensiune (mărime analogică ). Această tensiune va suferi o conv ersie pe 8 biți la nivelul CAN –
ului prezent pe microcontrolerul Atmega8. Mărime a analogică este convertită în v olți, iar
apoi, printr -o funcție de liniarizare obținută din diagrama oferită de Sharp pentru acest
senzor, vom obține rezultatul final exprimat în centimetri.[35]
52
Prezentarea Hardware:
Pentru acest proiect am utilizat un senzor cu infraroșu SHARP GP2Y0A02YK, care
prezintă urmatoarele caracteristici tehnice:
– influența scăzută a culorilor obiectelor reflectate, datorată metodei triunghiulare de
măsură a distanței
– raza de acțiune între 20 și 150 de cm
Interfața sa prezintă 3 fire: alimentare, masă și tensiu nea de ieșire și necesită un
conector JST de 3 pini.
Măsurarea distanței prin metoda triunghiurilor (triung hiularizării):
Principiul care stă la baza acestei metode de măsură folosite de senzorul Sharp se
bazează pe fo rmarea unui triunghi între Emiță torul de rază Infraroșie, punctul de reflexie și
Detect orul de Infraroșu. Astfel, emiță torul emite un puls de lumină infraroșie. Lumina
străbate câm pul vizual ș i fie lovește un obstacol sau continuă deplasarea. În cazul inexistenței
unui obstacol, lumina nu va fi reflectată și nu se va detecta nici un obiect. Dacă lumina se
reflectă de pe un obiect, se va intoarce la Detector și va creea un triunghi î ntre Emiță tor,
punctul de reflexie și Detector, ca în figura 3. 41.
Fig. 3. 41 Schema de funcționare a unui senzor infraroșu [35]
Unghiurile din acest triunghi variază în funcție de distanța până la obiect.
Receptorul este de fapt o lentilă de mare precizie care transmite lumina reflectată într -o rețea
liniară de CCD din interior. Rețeaua de CCD poate determina sub ce unghi a intrat lumina
reflectată și, astfel, poate calcula distanța până la obiect.
Această nouă metodă de măsurare a distanței este a poape imună la interferențele
cauzate de lumina ambientală și oferă o “indiferență” foarte mare față de culoarea obiectului
detectat. Astfel este posibilă detectarea unui perete negru în lumină directă a soarelui.
53
Neliniaritatea ieșirii senzorului:
Senzor ul Sharp folosit î n acest proiect prezintă o caracteristi că de ieșire neliniară,
datorată proprietăților trigonometrice din interiorul triunghiului format de Emițător, punctul
de reflexie și Receptor.
Fig. 3. 42 Diagrama de neliniarizare [35]
Din diagrama din figura 3. 42 care poate fi găsită în documentația oferită de
producător se observă că în intervalul [15; 150] cm ieșirea detectorului nu este liniară ci mai
degrabă logaritmică.
Se observă de asemenea că pentru o distanță mai mică decât 15 cm, ieșirea scade
rapid și începe să ia valori caracteristice măsurătorii unor distanțe mai mari. Acest lucru poate
fi dezastruos pentru echipamentele automate sau pentru roboții care pot folosi acest senzor,
deoarece vor interpreta că sunt la o distanță mare de obstacol.
Fig. 3. 35 Schema conectării senzorului cu microcontrolerul [35]
54
3.7 Servomotorul
Servomotoarele sunt motoare electrice speciale, de curent continuu sau curent
alternativ cu viteză de rotație reglabilă într -o gamă largă în ambele sensuri av ând ca scop
deplasarea într-un timp prescri s a unui sistem mecanic (sarcina ) de-a lungul unei traiectorii
date, realiz ând totodată și pozi ționarea acestuia la sf ârșitul cursei cu o anumit ă precizie.
Servomotoarele electrice se folosesc în cele ma i diverse aplicații cum ar fi ac ționarea
roboților industriali universali, a ma șinilor unelte cu comand ă numeric ă, a perifericelor de
calculator, în acționarea imprimantelor rapide, în tehnica aerospa țială, instala ții medicale etc.
Fig. 3.36 Servomotor SG-90 [43]
În cadrul acestei lucrări am ales acest mini servo motor deoarece este proiectat spe cial
pentru aplicații de mică putere, cum ar fi acest robot sau alte jucării telecomandate .
Specifica ții:
-Tensiune de alimentare: 4.8V
-Consum redus de curent
-Viteza de funcționare: 0.12 s/60o @ 4.8 V;
-Cuplu în blocare la 4.8V: 1.8 kgf*cm;
-Frecvență PWM: 50Hz;
-Temperatura de funcționare: -30° C – +60° C.
-Dimensiuni: 21.5 x 11.8 x 22.7 mm
55
CAPITOLUL 4: Construcția robotului mobil
4.1 Asamblarea robotului mobil
A. Am proiectat ca suport pentru piese o placă de bază prelucrată din aluminiu 7075
pe care componentele se vor fixa cu ajutorul a două șuruburi cu cap cilindric M3x12, două
șuruburi cu cap cilindric M5x8 și patru șuruburi cu cap semirotund M3x6 .
Fig. 4.1 Placă de bază Fig. 4.2 Șuruburi
B. Cutia de vit eze cu motoarele de cu rent continuu sunt montate pe placa de bază
astfel:
Fig. 4.2 Asamb larea cutiei de viteze pe placa de bază
56
C. De îndată ce am fixat cutia de viteze cu cele două motoare de curent continuu pe
partea inferioară a plăcii de bază , se poate monta și suportul de baterii împreună cu bateriile
pe partea superioară a aceluiași reper :
Fig. 4.3 Asamblarea suportului de baterii pe placa de bază
D. Pe axul de transmitere al mișcării de rotație se montează două roți din material
plastic cu membrane din cauciuc.
Fig. 4.4 Montarea roțil or
57
E. La celălalt capăt al plăci i de bază se montează un ball -caster pentru menținerea
echilibrului robotului.
Fig. 4.5 Montarea ball -caster ului pe placa de bază
F.Servomotorul se montează pe placa de bază astfel:
Fig. 4.6 Montarea servomotorului pe placa de bază
58
G. Senzorul infraroșu Sharp se montează pe reperul "Placă senzor" apoi pe
servomotor.
Fig. 4.7 Montarea senzorului pe servomotor
H. Pe partea superioară a plăcii se montează placa Arduino UNO cu ajutorul celor 4
șuruburi cu cap semirotund M3x6:
Fig. 4.8 Montarea plăcii Arduino pe placa de bază
59
I. Se conectează driverul de motoar e L298N la placa Arduino UNO.
Fig. 4.10 Montarea driver -ului pe placa Arduino UNO
Conectarea driverului la Arduino ș i motoare :
+12V → Lipo battery (+)
GND → Lipo battery ( – )
+5V → arduino Vin
In1 → arduino digital pin 7
In2 → arduino digital pin 6
In3 → arduino digital pin 5
In4 → arduino digital pin 4
OUT1 → Motor 1
OUT2 → Motor 1
OUT3 → Motor 2
OUT4 → Motor 2
J. Ansamblul robotului mobil Robotix
Fig. 4.11 Robotul mobil Robotix
60
Fig. 4.12 Vedere de jos a robotului mobil
Fig. 4.13 Vedere de sus a robotului mobil
61
4.2.Conectarea senzorului infraroșu
Senzorul de distanță Sharp este o componentă care poate fi utilizată împreună cu
Arduino pentru a măsura distanța până la diverse obiecte înconjurătoare.
Dispozitivul dispune de trei pini, doi dintre ei fiind pini de alimentare (GND și Vcc),
iar cel de -al treilea fiind pinul care dă indicații asupra distanței, pr in port -serialul prezentat pe
acesta. [36]
Fig.4.14 Așezarea pinilor senzorului Sharp [36]
Fig. 4.15 Conectarea senzorului în circuit [36]
62
Principiul de funcționare
Senzorul emite un puls de rază infraroșie de lungime de undă 850 nm ± 70nm. Dacă
un obiect este în raza de acțiune și î n calea razei infraroșii, acesta va reflecta raza î napoi spre
senzor. Senzorul face citirile cu o frecven ță de aproximativ 24 Hz și raporteaz ă datele sub
form ă de tensiune (mă rime analogic ă). Aceast ă tensiune va suferi o conversie pe 8 bi ți la
nivelul C AN-ului prezent pe microcontrol erul Atmega8. M ărimea analogic ă este convertit ă în
volți, iar apoi, printr -o func ție de liniarizare ob ținută din diagrama oferit ă de Sharp pentru
acest senzor, se va obține rezultatul final.
Fig. 4.16 Schema principiului de funcționare [36]
63
4.3 Conectarea motoarelor de curent continuu
Robotul mobil Robotix este acționat de o cutie de viteze cu două motoare de curent
continuu de 3V fiecare și oferă un raport de transmisie 58:1. Ambele motoare de curent
continuu sunt cuplate la cutia de viteze, fiecare motor fiind acționat independent.
Motoarele funcționează la o tensiune variabilă între 3 și 6 Volți. Tensiunea de care are
nevoie fiecare motor este furnizată de către driverul de motoare L298N care este conectat cu
placa Arduino.
Microcontrolerul ATMega328 de pe placa Arduino realizează controlul motoarelor.
Realizarea controlului motoarelor de curent continuu
Motoarele sunt controlate prin intermediul unui Dual FULL –
BRIDGE DRIVER L298. A fost construit un PCB special pentru controlul acestui driver de
motoare și a circuitului său de protec ție. L298 primește 8 intrări de la Atmega32: 4 int rări 0/1
care comandă sensul de rotație al motoarelor (porturile C0 -C3), 2 intrări de PWM pe pinii de
ENABLE A, ENABLE de la OCR0 (PB3) și OCR2 (PD7) pentru a controla
turația motoarelor și VCC și GND de la extensia header a p ortului B. [37]
De obicei, este nevoie în aplicațiile practice să comandăm un motor în ambele sensuri.
Acest lucru se poate realiza folosind o punte H pe post de amplificator (driver).
Puntea H este în principiu un circuit cu patru întrerup ătoare, ce acțion ează câte două
odată pe diagonală, pentru a schimba sensul de rotație al motorului. Aceste întrerup ătoare sau
comutatoare sunt realizate de obicei cu tranzistoare MOS -FET sau cu tranzistoare Darlington.
Fig. 4.17 Schema punții H simplificată [38]
Schema unei punți H folosind dispozitive discrete este prezentată în figura 5.1 7.
Astfel, tranzistoarele utilizate sunt de tip PNP și la fiecare sens de rotație sunt în conducție
64
două din ele. Diodele au rol de protecție sau de blocare a celorlalte două tranzistoare.
Montajul este alimentat la 12V și comandă pe baza tranzistoarelor tip NPN este de 5V și vine
de la microcontroler.
Fig. 4.18 Schema de principiu a punții H [38]
Un astfel de circuit integrat amplificator sau driver pentru comanda motorului de
curent continuu este și L298N . Cu acest circuit integrat putem comanda două motoare de
curent continuu odată. Este alimentat la 6V și poate schimba și sensul de rotație a celor două
motoare.
Fig. 4.17 Schema circuitului L298N [38]
Astfel, dacă la pinul 4 vom avea o tensiune de 5V și la pinul 5 vom trimite o tensiune
de 0V, atunci motorul A din st ânga circuitului integrat se va roti într -un sens. Dacă schimbăm
tensiunile prezente la intrările de comandă, adică la pinul 4 să trimitem o tensiune de 0V și la
pinul 5 o tensiune de 5V, atunci motorul A se va roti în sensul opus. Asemănător,
funcționarea motorului B este comandată în același mod, doar că aceste comenzi se dau pe
pinii 6 și 7 ai circuitului integrat. [38]
65
4.4 Conectarea servomotorului la pl aca Arduino
Comanda servomotorului se realizează de pe pinul 9 iar citirea distanței de pe pinul
A0, după cum se poate observa și în figura 5.19 .
Fig.4.19 Conectarea servomotorului la placa Arduino
Unde:
-firul ro șu este comanda servomotorului;
-firul negru folosește pentru a uni masele sursei de alimentare cu a lui Arduino;
-firul alb este pentru citirea datelor de la senzor;
4.5 Schema cablajului robotului
Fig. 4.20 Model cablaj [44]
66
CAPITOLUL 5: Programarea robotului
5.1 Programarea plă cii Arduino
Această secțiune va presupune că aveți un PC pe care rulează Microsoft Windows sau
un Mac OSX (10.3.9 sau ulterior). În cazul în care utilizați Linux ca sistem de operare, atunci
se va referi la ” Getting Started instructions on the ARDUINO” de pe site -ul Arduino .
A. Luați Arduino și cablul USB A-B
În primul rând, luați placa ARDUINO și așezați -o pe masă în fața dumneavoastră.
Luați cablul de USB și conectați -l cu mufa B în mufa de USB de la Arduino.
Fig.5.1 Cablu USB
După aceasta etapă NU se conectează ARDUINO la PC încă.
B. Descărcare Arduino IDE (Software pentru programare)
Descărcați Arduino IDE de la secțiunea de download de pe www.arduino.cc . Fișierul
este un fișier de tip ZIP astfel încât veți fi nevoiți să -l dezarhivați (Un utilitar bun este
WinRAR ). Odată ce descărca rea s -a terminat, dezarhivați arhiva de tipul ZIP, asigurându -vă
că s-a păstrat structura de foldere așa cum este și nu trebu ie făcute nici un fel de schimbări în
componenț a soft ware -ului.
Dacă faceți dublu -clic pe dosarul creat, veți vedea câteva fișiere și sub -dosare în
interiorul acestuia.
C. Instalarea driverului pentru USB
Dacă utilizați Windows, veți găsi driverele în directo rul numit “drivers/FTDI USB
Drivers” din Arduino. În etapa urmatoare (“Conectarea plăcii de dezvoltare Arduino“), veți
alege calea în fereastra “Window `s Add New Hardware wizard” către driverele indicate mai
sus.
A B
67
Dacă aveți un calculator cu sistem de opera re Mac, driverele pentru microcontroler
sunt în directorul cu drivere. Dacă aveți un Mac mai vechi ca un PowerBook, iBook, G4 sau
G5, trebuie să utilizati drivere PPC: FTDIUSBSerialDriver_v2_1_9.dmg. Dacă aveți un Mac
mai nou, cu un cip Intel, aveți nevoie de driverele de Intel: FTDIUSBSerial
Driver_v2_2_9_Intel.dmg. Dublu -click pentru a monta imaginea de disc și a legeți
FTDIUSBSerialDriver.pkg.
Fig. 5.2 Manualul electronic al software -ului
D. Conectați placa de dezvoltare Arduino
În primul rând, asigurați -vă că jumperul de selectare a alimentării, între alimentare
externă și mufa USB, este setat la USB și nu la alimentare externă (nu se aplică în cazul în
care aveți un microcontroler Arduino, care are o funcție Auto Power Select).
Fig. 5.3 Jumperul de selectare a alimentării [40]
68
Folosind acest jumper puteți: fie alimenta microcontrolerul de la Portul USB (bun
pentru curenți slabi, aplicații cu LED -uri, etc) sau de la o alimentare externa (6 -12V DC –
Curen t Continu). Acum, conectați celă lalt capăt al cablului USB (A) în mufa de USB de pe
PC sau Mac. Veți vedea acum LED -ul de putere mică (marcat PWR mai sus de comutatorul
RESET) se va aprinde pentru a vă arăta alimentarea microcontrolerului.
Dacă aveți un Mac, această etapă a procesului este co mpletă și puteți trece la capitolul
următor. În cazul în care sunteți utilizator de Microsoft Windows, există cațiva pași în plus
pentru a completa instalarea.
În timp ce sistemul de operare Microsoft Windows va detecta că s -a conectat o nouă
placă hardwar e (microcontrolerul Arduino) la PC, va apărea fereastra Found New Hardware
Wizard. Bifați “NO, not this time” (figura 5.4) pentru a nu se conecta la Windows Update
(Selectați Nu, nu în acest moment) și apoi faceți clic pe Next.
Fig. 5.4 Fereastra „Found New Hardware” a Windows -ului
În pagina următoare (figura 5.5) selectați “Install from a list or specific location
(Advanced)” și apoi faceți clic pe Next.
69
Fig. 5.5
Asigurați -vă că “Search for the best driver in these locations” este verificat.
Debifați “Search removable media”. Bifați “Include this location in the search” și apoi faceți
click pe Butonul Browse. Răsfoiți la locația de drivere pentru USB și apoi faceți click pe
Next. (Figura 5.6)
Fig. 5.6
Windows -ul va căuta acum pentru un drive r potrivit, vă va informa că un “USB Serial
Convertor” a fost găsit și a constatat că expertul hardware este acum complet. Faceți clic pe
Finish. (Figura 5.7)
70
Fig. 5.7
Acum sunteți pregătit pentru a încă rca primul “Sketch” pe microcontrolerul Arduino.
71
5.2 Schema bloc, diagrama flux și p rogramul robotului
Fig. 5.8 Schema bloc a robotului mobil
Fig. 5.9 Diagrama flux a robotului mobil
72
Codul Arduino care comandă robotul arată astfel:[ 41]
#include <Servo.h>
#include < NewPing.h>
// Pinii de control ai L298N
const int LeftMotorForward = 4;
const int LeftMotorBackward = 5;
const int RightMotorForward = 6;
const int RightMotorBackward = 7;
#define TRIGGER_PIN A1 // Pinul Ardu ino conectat la pinul Trigger al senzorului
#define ECHO_PIN A2 // Pinul Arduino conectat la pinul Echo al senzorului
#define MAX_DISTANCE 80 // Distanța maximă pentru semnal î n centimetri . Distanța
maximă a senzorului este de 80cm.
Servo servo_motor; // Numele servomotorului
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
boolean goesForward = false;
int distance = 100;
void setup()
{
// Set ează pinii de control ai L298N ca ieș iri
pinMode(RightMotorForward, OUTPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(Left MotorBackward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);
servo_motor.attach(10);
servo_motor.write(115); // Setează la 115 grade
delay(2000); // Așteaptă 2 secunde.
distance = readPing(); // Primește semnalul cu distanț a.
delay(100); // Așteaptă 100ms.
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}
void loop()
{
int distanceRight = 0;
73
int distanceLeft = 0;
delay(50);
if (distance <= 20)
{
moveStop();
delay(300);
moveBackward();
delay(400);
moveStop();
delay(300);
distanceRight = lookRight();
delay(300);
distanceLeft = lookLeft();
delay(300);
if (distanceRight > = distanceLeft)
{
turnRight();
delay(300);
moveStop();
}
else
{
turnLeft();
delay(300);
moveStop();
}
}
else
{
moveForward();
}
distance = readPing();
}
int lookRight() // Func ția de rotire spre dreapta a servomotorului
{
servo_motor.write(50);
delay(500);
int distance = readPing();
delay(100);
servo_motor.write(115);
return distance;
74
}
int lookLeft() // Funcț ia de rotire spre stâ nga a servomotorului
{
servo_motor.write(180);
delay(500);
int distance = readPing();
delay(100);
servo_motor.write(115);
return distance;
}
int readPing() // Funcț ia de citire a semnalului pentru senzor.
{
delay(100); // Așteaptă 100ms între semnale (aproximativ 20 semnale/sec).
int cm = sonar.ping_cm(); //Trimite semnal, primește semnal cu distanța î n centimetri
if (cm==0)
{
cm=80;
}
return cm;
}
void moveStop() // Funcț ia driverului motorului pentru oprire
{
digitalWrite(RightMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(LeftMotorBackward, LOW);
}
void moveForward() // Funcț ia driverului motorului pentru d eplasare î nainte
{
digital Write(RightMotorForward, HIGH);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
}
void moveBackward() // Funcț ia driverului motorului pentru de plasare î napoi
{
digitalWrite(RightMotorForward, LOW);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(LeftMotorBackward, HIGH);
75
}
void turnRight() // Funcț ia driverului motorului pentru rotire spre dreapta
{
digita lWrite(RightMotorForward, LOW);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
}
void turnLeft() // Funcț ia driverului motorului pentru rotire spre stâ nga
{
digitalWrite(RightMotorForward, HIGH);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(LeftMotorBackward, HIGH);
}
[41]
Concluzii finale :
În aceas tă lucrare sunt prezentate etapele necesare construcției unui robot ului mobil Robotix
de tip "obstacle -avoiding robot" .
Utilizând pachetul CAD al platformei SolidWorks 2017 , am realizat proiectarea constructivă
a întregului produs, pentru a putea stabili variante le constructive optime din punct de
vedere al structurii robotului mobil.
Contribuția personală constă în simplitatea construcției, atât a structurii mecanice cât și
dispunerea componentelor de comandă , oferind posibilitatea unei înțelegeri mai ușoare, a
modului de funcționare a l roboților, și în general, a oricărei structuri mecatronice.
76
Bibliografie
[1] Telea D., Sisteme integrate de producție, Ed. Universității "Lucian Blaga ", pag. 260,
Sibiu
[2] Dumitriu A., Bazele sistemelor mecatronice, Ed. Universității "Transilvania",2006,
Brașov
[3] Sabou S.P., Îndrumător laborator microcontrolere ARDUINO, U.T. Press, 2018, Cluj –
Napoca
[4] http://webbut.unitbv.ro/Carti%20on -line/BSM/Dumitriu_BSM_2006.pdf
[5] http://electrokits.ro/cursuri -electronica -c-3/cursuri -electronica -ro-c-3_14/elect ronica –
embedded -c-3_14_17/notiuni -generale -despre -microcontrolere -p-106.html
[6] http://robotics.ucv.ro/carti/MC/c1.pdf
[7] http://tet.pub.ro/pages/Microprocesoare2/C_ATmega_16_pentru_examen.pdf
[8] https://www.scribd.com/document/398413208/Curs -M-R-c1-c3-proiect
[9] https://www.scribd.com/document/49636530/Roboti -mobili
[10] http://webbut.unitbv.ro/Carti%20on -line/BSM/BSM/capitol2.pdf
[11] https://vdocuments.mx/roboti -mobili.html
[12] https://www.pololu.com/product/975/specs
[13] https://www.scribd.com /document/370071519/Robot -Mobil -Autonom
[14] https://robosavvy.com/store/inex -pop-bot-standard -arduino -mobile -robot -platform.html
[15] https://www.pololu.com/product/114
[16] https://grabcad.com/library/arduino -uno-with-solidworks -1
[17] https://grabcad.co m/library/twin -motor -gearbox -1
[18] https://grabcad.com/library/sharp -gp2y0a02yk0f -1
[19] https://grabcad.com/library/pololu -ball-caster -with-3-8-plastic -metal -ball-1
[20] https://grabcad.com/library/smt -aa-battery -holder -for-2-1
[21] https://www.robofun.ro/arduino_uno_v3
77
[22] https://profs.info.uaic.ro/~arduino/index.php/Laboratorul_1
[23] https://www.academia.edu/31310154/Microcontrolere_pentru_toti
[24] https://www.scribd.com/document/232602912/Arduino -Uno
[25] https://www.scribd.com /doc/284527393/Arduino -UNO -Specificatii -Tehnice
[26] https://ro.wikipedia.org/wiki/Arduino
[27] https://microcontrolere.wordpress.com/2016/08/10/arduino -uno/
[28] https://biblioteca.utcluj.ro/files/carti -online -cu-coperta/341 -7.pdf
[29] https://www.slideshare.net/RimskyCheng/arduino -unoschematic -reference -design
[30] https://ro.wikipedia.org/wiki/Generator_electric
[31]https://biblioteca.regielive.ro/referate/electrotehnica/tema -la-sisteme -de-izolatie –
149354.html
[32] https://www.scribd.c om/document/91337616/Motorul -Electric
[33] http://webbut.unitbv.ro/Carti%20on -line/BSM/BSM/capitol4.pdf
[34] https://www.scribd.com/doc/307364385/Capitolul -2
[35] https://www.scribd.com/doc/145862549/proiect -bsad
[36] https://www.robofun.ro/senzor_sharp_%2 0GP2Y0A21YK
[37] ht tp://cs.curs.pub.ro/wiki/pm/prj2010/pgp/sumorobot
[38] www.cursuri.flexform.ro/courses/L2/document/…/portofoliu.doc
[39] https://www.robofun.ro/atmega328_arduino_bootloader
[40] https://www.scribd.com/document/352371436/New -Microsoft -Word -Document -2
[41] https://create.arduino.cc/projecthub/hda -robotics/project -1-2wd-obstacle -avoiding -robot –
390ef8
[42] http://www.acelectric.ro/servomotoare.html
[43] https://ardushop.ro/ro/electron ica/93 -servomotor -sg90.html
[44] http://mechstuff.com/how -to-make -obstacle -avoiding -robot -using -arduino -ultrasonic –
sensor/
78
Opis
Prezenta lucrare de diplomă conține :
Partea scrisă:
– număr de pagini: 77
– număr de tabele : 2
– număr de figuri : 82
Partea grafică:
– 1 desen de ansamblu format A2
– 1 desen de execuție format A4
Sibiu Iunie 2019 Semnătură absolvent
Sunt de acord cu susținerea lucrării în fața comisiei de licență.
Semnătură conducător
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: Licentagainarcristian [625233] (ID: 625233)
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.
