Specializarea: Mecatronică și Robotică [619234]

UNIVERSITATEA “VASILE ALECSANDRI” din BACĂU
FACULTATEA de INGINERIE
Specializarea: Mecatronică și Robotică

PROIECT DIPLOMA

Îndrumător: Student: [anonimizat] 441

Bacău,
2018

CONSTRUCȚIA UNUI ROBOT MOBIL CU
KIT ARDUINO

Capitolul 1: Introducere
1.1 Introducere în Mectronică

Fig. 1.1 Conceptul de mecatronică
Termenul "mecatronică" a fost utilizat pentru prima dată în anul 1975 de către
concernul japonez Yaskawa Electric Corporation , fiind o prescurtare a cuvintelor
Mechanica -Electronica -Informatica .
La început, mecatronica a fost ințeleasă ca o completare a componentelor mecanicii de
precizie, aparatul de fotografiat cu bliț fiind un exemplu clasic de aplicație mecatronică. Cu
timpul, noțiunea de mecatronică și -a schimbat sensul și și -a extins aria de definiție:
mecatronica a devenit știința inginerească baza tă pe disciplinele clasice ale construcției de
mașini, electrotehnicii, electronicii și informaticii. Scopul acestei științe este îmbunătățirea
funcționalității utilajelor și sistemelor tehnice prin unirea disciplinelor componente într -un tot
unitar.
Totuș i, mecatronica nu este același lucru cu automatica sau cu automatizarea
producției. Aceștia sunt termeni care apar și în afara domeniului MECATRONIC, dar sunt și
inclusi în el. Mecatronica poate fi definită ca o concepție inovatoare a tehnicii de automatiz are
pentru nevoile ingineriei și educației.

Mecatronica s -a nascut ca tehnologie și a devenit filosofie care s -a răspândit în întreaga
lume. În ultimi ani, mecatronica este definită simplu: știința mașinilor intelige nte.
Ca o concluzie, se poate spune că mecatronica este o sferă interdisciplinară a științei și
tehnicii care se ocupă în general de problemele mecanicii, electronicii și informaticii. Totuși,
în ea sunt incluse mai multe domenii, care formează baza mecatr onicii, și care acoperă multe
discipline cunoscute, cum ar fi: electrotehnica, energetica, tehnica de cifrare, tehnica
microprocesării informației, tehnica reglării și altele.

1.2 Introducere în Robotică

Fig. 1.2 Depozit automatizat
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 însemnata 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 "S F" etc.
Revoluția informatică 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 societatea 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țiale muncito rilor, industriilor si implicit țărilor. În
situația folosirii î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 necu noscute de exploatare etc.

1.3 Introducere în microcontrolere

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ă
înmagazinare a 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 memorie, 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 atat procesorul
cât și perifericele. Așa s -a întamplat cum primul cip conținând un microcalculator, sau ce va
deveni cunoscut mai târziu ca microcontroler a luat f iință.

1.3.1 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ă destinată
controlului (destul de evident!) 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 discrete și/sau
componente e lectromecanice (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 "st ră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, consumului ș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ăsu ră ce procesul de miniaturizare 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 (nu în sens exhaustiv !) a problemei controlului cu ajutorul a (aproape) unui singur
circuit.
Legat de denumiri și acronime utilizate, așa cum un microprocesor de uz general este
desemnat prin MPU (MicroProcessor Unit), un microcontro ler 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 incorporează o unitate centrală (CPU) și o memorie împreună
cu resurse care -i permit interacțiunea cu mediul exterior .
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/EPROM/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 in trari 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 cos tul 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ă (amplificar e, redresare, filtrare, protecție -limitare), elemente pentru
realizarea izolării galvanice (optocuploare, transformatoare), elemente de comutație de putere
(tranzistoare de putere, relee electromecanice sau statice).

1.3.2 Unde sunt utilizate microcontrol erele?

Toate aplicațiile în care se utilizează microcontrolere fac parte din categoria așa ziselor
sisteme încapsulate -integrate (“embedded systems”), la care existența unui sistem de calcul
incorporat este (aproape) transparentă pentru utilizator.
Pentru ca utilizarea lor este de foarte ori sinonimă cu ideea de control
microcontrolerele sunt utilizate masiv în robotică și mecatronică. Conceptul de mecatronică
este pană 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 specifi ce pot fi eventual distribuite la un mare număr de microcontrolere
integrate într -un sistem unic prin intermediul 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 zisa electronică de consum (sisteme audio, televizoare, camere video și videocasetofoane,
telefonie mobilă, GPS -uri, jocuri electronice, etc.), în apara tura electrocasnică (mașini de
spălat, frigidere, cuptoare cu microunde, aspiratoare), în controlul mediului ș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 1.3) 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 destinaț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 cunoscute sunt cei doi roboți, unul
canin și altul umanoid: AIBO (figura 1.4) și ASIMO (figura 1.5). ASIMO folosește 26 de
microcontrolere numai pentru controlul individual al celor 26 de elemente de acționare
inteligente (motoare). Tot în categoria roboților umanoizi intra și QRIO sau HOAP -1. Roboții
respectivi sunt produși în serie, unii dintre ei chiar la un preț „acc esibil”.
Ca un exemplu din industria de automobile (automotive industry), unde numai la
nivelul anului 1999, un BMW seria 7 utiliza 65 de microcontrolere, iar un Mercedes din clasa
S utiliza 63 de microcontrolere.
Practic, deși am prezentat ca exemple conc rete numai sisteme robotice și mecatronice,
este foarte greu de găsit un domeniu de aplicații în care să nu se utilizeze microcontrolerele.

Fig. 1.4 AIBO

Fig. 1.3 Johnnie

Fig. 1.5 ASIMO
1.3.3 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 microcontr olerele 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. Ștergerea programului se face prin expunerea chip -ului la raze ultraviolete.
Capsula are prevazută pe partea de sus o fereastra din sticla de cuart prin care pot patrunde
razele ultraviolete.
– "OTP" (One Time Programable), cele programabile o singura dată. Funcțional și tehnologic
sunt identice cu cele "windowed", doar că nu au prevazută fereastra de cuarț, deci programul
odata înscris nu mai poate fi șters. Deci o aplicație gata dezvoltată și incercată cu o versiune
"windowed" poate fi multiplicata pentru p roducție de serie în capsule "OTP" care sunt de
câteva ori mai ieftine.
Aceste două versiuni, Windowed si OTP sint realizate in tehnologie CMOS EPROM.

Fig. 1.6 Denumirea pinilor unui microcontroler PIC 12F675

Fig. 1.7 Numerotarea pinilor unui microcontroler PIC 16F675
B. ATMega 16

ATmega 16 este un microcontroler CMOS de 8 – biți de mică putere bazat pe
arhitectura RISC AVR îmbunatațită.
Dispune de un set de 131 instrucțiuni și 32 de regiștri de uz general. Cele 32 de registre
sunt direct adresabile de Unitatea Logica Aritmetica (ALU), permițând accesarea a doua
registre independente într -o singură instrucțiune. Se obține astfel o eficiență sporită in execuție
(de până la zece ori mai rapide decât microcontrorelerele 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)

-dispune de un cronometru cu oscilator intern

-oferă 32 de linii I/O organizate în patru porturi (PA, PB, PC, PD).

Fig. 1.8 Descrierea pinilor microcontrolerului ATMega16
1.4 Tema proiectului

Această lucrare se concentrează pe construcția, descrierea, utilizarea și programarea
unui robot mobil cu senzori infraroșu, care poate evita orice coleziune cu vre -un obstacol.
Robotul este dotat cu două motoare de current continuu și cutie de viteza Tamya,
senzor infraroșu de distanță SHARP, placă de programare Arduino UNO, Shield Ardumoto
pentru controlul motoarelor de current continuu.
Robotul mobil cu kit Arduino are abilitatea de a evita orice obstaco l. În momentul în
care sesizează un obstacol acesta își schimbă direcția de deplasare.

Capitolul 2: Roboți mobili

2.1 Introducere în roboț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 robotul 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 poziției și orientării robotului pe teren,
planificarea unei traiectorii optime de mișcare.
În cazul unui s istem robotic automat distribuit pozițiile spațiale sunt de o extremă
importanță și de ele depinde îndeplinirea scopurilor dorite și funcționarea întregului sistem. Cu
alte cuvinte, robotul trebuie să fie capabil să -și planifice mișcările, să decidă automa t 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 s unt mai mult sau mai puțin variante ale celorlalte.
Evitare coliziunii cu obstacole fixe sau mobile (de exemplu alți roboți mobili) aflate în
spațiul de lucru al robotului se poate face prin mai multe metode: realizarea unei apărători
mecanice care prin de formare oprește robotul, folosireasenzorilor care măsoară distanța până
la obstacolele de pe direcția dedeplasare, folosirea senzorilor de proximitate, 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 obiectele 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).
Navigarea 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ăsurarea numărului
de rotații făcute de roțile motoare, folosirea de a cceleratoare și giroscoape, geamanduri
electromagnetice instalate în teren, semnalizatoare pasive sau semipasive de tip optic sau
magnetic.

2.2 Clasificarea roboților mobili

Roboții mobili se clasifică astfel:

 În funcție de dimensiuni: macro, micro și n ano-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 planete 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

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 tuburilor 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ă perspective
înlocuirii s oldaț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 și incinte din
zone de conflict, în scopuri de investigare și chiar anihilare a inamiculu i;

Fig. 2.2 Sistem Integrat Telecomandat pentru Deminare

 Î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
canalelor de canalizare. De exemplu rețeaua de canalizare a Germaniei însumează 400.000
km, iar inspectarea și curățirea acesteia presupune costuri de 3,6 Euro pe metru. Numai 20%
din conducte sunt accesib ile, iar utilizarea roboților poate reduce costurile cu un sfert. 

 În domeniul distractiv și recreativ: sunt roboții -jucării, roboț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 oper aț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 p rezență cu ultrasunete);
4. sistemul de comandă este ierarhizat, de obicei multiprocesor;
5. limbajele de programare utilizate sunt preluate de la roboții staționari.

2.5 Structura roboților mobili

Structura roboților mobili (RM) corespunde arhitecturii gener ale 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 anumuită traiecto rie este caracterizat prin

3 funcți:
1. funcția de locomoție;
2. funcția de percepție -decizie;
3. funcția de localizare;

B. Structura electronică, respectiv de comandă -control, care
condiționează calitatea performanțelor.

Roboții mobili pot fii dotați cu camera video sau alți senzori de percepere al mediului
în care activează. Memoria robotului conținută in microcontroler înmagazinează cunoștințele
necesare localizării tuturor segmentelor de traseu posibile.
Indiferent de generația robotului, probleme complexe a par 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 me diul înconjurător prin structura sa mecanică, asigurând astfel deplasarea,
poziționarea și orientarea organului de execuție.

Capitolul 3: Tipuri de roboți mobili

3.1 Robotul AIRAT2

Fig. 3.1 Robotul AIRAT2
AIRAT 2 este un robot micromouse care folosește un procesor CPU 8051. AIRAT 2
folosește senzori pentru a o recepta când se întoarce înapoi. Placa CPU folosete o placă
JS8051 -A2. Placa JS8051 -A2 este foarte bine construită. Folosește resurse externe de putere
cum ar fii LCD, ADC, douǎ ceasuri externe, auto -Flash scriere și altele.
AIRAT 2 utilizeaza șase senzori oferindu -i astfel posibilitatea de a se deaplasa pe
diagonală. Un simulator PC este prevăzut,oferindu -i posibilitatea utilizatorului de a întelege
mai bine nivelul inalt de căutare algoritmică a mouseului. Codul sursa C este implementat
astfel încât programatorul poate dezvolta mai ușor altgoritmi care pot fi testați cu ajutorul unui
simulator si apoi imple mentat mouseului.
Î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 sa invețe mouse -ul la un nivel
înalt, AIRAT2 furnizează un mediu excelent de dezvoltar e, teste algoritmice, precum și multe
altele.

AIRAT 2 a aparut pe coperta publicației franceze „MICROS&ROBOTS”.

Caracteristici ale robotului AIRAT2:

– capabil de reglare proprie; învață din mers;
– folosește 6 senzori dându -i posibilitatea de a se deplasa pe diagonala;
– 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 sursa C;
– AIRAT2 baterie (NiMh -450).

Fig. 3.2 Bateria robotului AIRAT2

3.2 Robotul Pololu 3pi

Fig. 3.3 Robotul Pololu 3pi
Robotul pololulu 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 pana la 1 m/s, 3 pi
este un exc elent 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 labirintelor. 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 nivelului de
încărcare. Regu latorul de tensiune îi permite lui 3pi sa ajungă la viteze de până la 1 m/sec, în
timp ce face viraje și întoarceri precise, care nu variaza cu tensiunea bateriei.
Robotul 3pi este o platforma excelentă pentru persoane cu experiență în programare C
care vo r să învețe robotica și este o distracție in orice momente pentru cei care vor să invețe
programare C. Inima robotului este un microcontroler Atmel ATmega328P care ruleaza la o

frecvență de 20 MHz alături de un program d e 32 KB, 2 KB de memorie RAM si 1KB de
memorie EEPROM. Popularul compilator GNU C/C++ funcționează perfect cu 3pi, Atmel
AVR Studio ofera un spațiu de dezvoltare confortabil și un set de librării interesante oferite de
Pololu si realizează interfațării cu componentele se face foarte ușor. 3pi este deasemenea
compatibil cu plăcile de dezvoltare Arduino.
Imaginile de mai jos identifică componentele cele mai importante ale robotului.

Fig. 3.4 Vedere de sus a robotului Pololu 3pi

Fig. 3.5 Vedere de jos a robotului Pololu 3pi
3.3 Robotul Inex POP -Bot Standard

Fig. 3.6 Robotul Inex POP -Bot Standard
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 catre PWM
(Pulse Width Module).
Robotul conține și un modul microcontroler POP -168. POP -168 este o placă flexibilă
care nu ar e componente ascunse și permite dezvoltare completă a caracteristicilor cu ajutorul
uneltelor standard AVR, cum ar fi IAR C/C++,MikroElektronikaMikro BASIC/ MikroPascal
pentru AVR si deasemenea 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-caser

 Placa de plastic de 80×60 cm 

3.4 Robotul construit cu kit Arduino

Fig. 3.7 Robotul construit cu kit Arduino

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 L298P cu rol d e 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 sensor infraroșu de
distanta Sharp GP2D120 și alte componente mecanice care utilizează ca mediu de programare
limbajul C.
Robotul este conceput pe două roți motrice din plastic cu membrană de cauciuc iar pe
șasiu se mai găsește o sfer a cu rol de echilbrare. Pentru a înnobila partea electronică robotul a
fost dotat cu un senzor infraroșu Sharp care ocolește obstacole și care deasemenea poate
determina distanța până la un anumit obiect. Pentru ca senzorul Sharp să se poată mișca acesta
este montat pe un servomotor.

Capitolul 4: Proiectarea elementelor
componente 4.1 Elemente componente:

– Placă de dezvoltare UNO R3 ;
-Șasiu robot 4WD;
-Roți ;4 bucăți.
-Motor 5v reductor robot (DC Gear Motor) 4 bucăți.
-Organe de asamblare (șuruburi, piulițe, plăcuțe)
-Modul driver motoare L293D ;
-Modul Bluetooth HC -06 ;
-Suport baterii 4AA ;
-Senzor cu ultrasunete HC -SR04 ;
-Cablu ri Dupont (20 bucăți mama -tata);
– Placă breadboard ;

4.2 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 semnal ș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, și alt e tipuri de dispozitive
mecanice. Procesorul este capabil să ruleze 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 comunitatea care este foarte activa, 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,
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, sen zori de prezență, senzori
de umiditate, senzori de nivel pentru lichid, senzori capabili sa măsoare concentratia de alcool
în aerul expirat. Pentru a efectua acțiuni asupra mediului înconjurator, există o largă varietate
de motoare, servomotoare, motoare p as cu pas, led-uri, actuatoare. Ca și conectivitate, există
disponibile componente capabile sa conecteze Arduino la rețeaua Ethernet (“Ethernet
Shield”), componente pentru rețea wireless, componente capabile să realizeze conectare pe
rețeaua de date GSM / 3G , sau componente de tip XBEE utile pentru a realiza comunicații de
tip personal izat.
Platforma Arduino este disponibilă într -o serie de variante, fiecare cu diferite
capabilități și dimensiuni.
4.2.1 Exemple de plăci Arduino

A. Arduino Uno – Aceasta este cea mai recenta placă de dezvoltare de la
Arduino. Se conectează la computer p rin intermediul cablului USB standard A -B și
conține tot ceea ce ai nevoie pentru a programa și utiliza placa. Acestuia i se poate
adăuga o varietate de Shild -uri (placă cu caracteristici speciale, specifice unor tipuri
de aplicații). Este similar cu Duemi lanove, 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șirile.

Fig. 4.1 Placa de dezvoltare Arduino UNO

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.

Fig. 4.2 Placa de dezvoltare Arduino Mega2560
C. Mini – Aceasta este cea mai mica placa de dezvoltare de la Arduino. Aceasta
functioneaza bine intr -un breadboard sau pentru aplicatii in care spatiul este limitat. Se
conecteaza la calculator prin intermediul unui cablu mini USB Adapter.

Fig. 4.3 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. 4.4 Placa de dezvoltare Arduino Nano
E. Duemilanove – Arduino Demilanove 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ă, conecta t la pinul 13. Cand valoarea pe pin
este HIGH, LEDul este aprins, când valoare este LOW, LEDul este stins.
Placa Arduino UNO are 6 intrări analogice, denumite dela 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 si funcția analogReferenc e().

Fig. 4.5 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. 4.6 Placa de dezvoltare Arduino LilyPad
G. Fio – Proiectată pentru aplicații fără fir. Acesta 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. 4.6 Placa de dezvoltare Arduino Fio

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. 4.7 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. 4.8 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 exercitiu de învățare. (Inclusiv scheme și fișiere CAD)

Fig. 4.9 Placa de dezvoltare Arduino Seria

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. 4.10 Placa de dezvoltare Arduino Serial Single Si d

4.2.2 Placa Arduino UNO

Fig. 4.11 Elementele componente ale plăcii Arduino UNO
A. Prezentare generală

Arduino Uno este o placă de procesare bazată pe microcontrollerul 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 funcț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.

B. Caracteristici

Tabelul 4.1
Microcontroler ATmega328
Tensiunea de funcționare 5V
Tensiune de intrare 7-12V

(recomandat)
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 select ată 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ționa 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 mica 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.

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
pinMo de () , 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 co respunzători ai cipului ATmega8U2 USB -TTL;

 Întreruperile externe: 2 și 3. Acești pini pot fi configuraț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, LEDul este aprins, când valoare este LOW, LEDul este stins. 
Placa Arduino UNO are 6 intrări analogice, denu mite 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. 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
adauga un buton de reset Shield -urilor care blochează acțiunea celui de pe placă. 
F. Harta pinilor – ATMega 328 

Fig. 4.12 Descrierea pinilor microcontrolerului ATMega328
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. LEDurile 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 placii.
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. Pr ogramare

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 Programming).
Codul sursă al Firmware –ul microcontrolerului ATmega8U2 este disponibil, el este
încărcat cu un program de butare DFU care poate fi activat cu ajutorul unui jumper de pe
spatele placii, ATmega8U2 fiind resetat. Apoi se pot folosi programele Atmel’s FLIP
(windows) sau DFU (Mac si Lin ux) pentru a încărca un nou firmware.
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
microcontrolerului ATmega8U2 este conectata la linia de reset al microcontrolerului
ATmega328 printr -un condensator de 100 nanofarad. Atunci când această linie este acti vată,
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ă sau așa ceva, 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 tra seului înterupt pot fi lipite pentru a activa din nou resetarea
automată. Traseul este denumit ”RESET_EN”. O altă modalitate de a dezactiva resetarea
automată este prin a conecta un resistor de 110 ohm între linia de 5V și linia de reset.
J. Protecția la s uprasarcină 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 curent mai mare de 500 mA trece prin portul
USB, siguranța va întrerupe în mod automat conexiunea până la îndepărtarea suprasarcini sau
scurtcircuitului.

K. Caracteristici fizice

Lungimea și lățimea maximă a plăcii este de 6.8 cm respective 5.3 cm, cu conectorul
USB și conectorul de alimentare care ies din dimensiunile plăcii. Patru orificii de șurub care
permite 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. 4.13 Dimensiunile plăcii Arduino UNO

L. Schema electrică

Fig. 4.14 Schema electrică a plăcii Arduino UNO

4.3 Motoare de curent continuu

Fig. 4. 15 Motor de curent continuu

Un motor electric (sau electromotor) este un dispozitiv ce 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: Majori tatea motoarelor electrice funcționează pe baza
forțelor electromagnetice ce acționează asupra unui conductor parcurs de curent electric aflat
în câmp magnetic. Există însă și motoare electrostatice construite pe baza forței Coulomb și
motoare piezoelectri ce.
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 alimentare, 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 aer numită intrefier ce permite mișcarea rotorului față de stator. Grosimea
intrefierului este un ind icator important al performanțelor motorului.

Stator

Ax

Capac

Bucșă
Perii colectoare

Rotor

Carcasă

Fig. 4. 16 Elementele componente ale motorului de curent continuu
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 s 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 ro tor.
Î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 aceași sursă de tensiune 

 motor cu excitație serie – unde înfășurarea statorică și infăș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ă

sensul curenților rotorici astfel încat polaritatea rotorului se inversează și rotorul va continua
deplasarea până la următoarea aliniere a polilor magnetici.
Pentru acționări electrice de puteri mici și medii, sau pentru acționări ce nu necesită
câmp magnetic de excitație variabil, în locul înfășurărilor statorice se folosesc magneți
permanenți.
Turați a 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 varierea 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 Ward -Leonard), prin înserierea unor
rezistoare în circuit sau cu ajutorul electronicii de putere (red resoare 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 motoa rele 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 elec tric 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 casnice de puteri mici
și viteze mari de rotație (aspirator, mixer).

Fig. 4.17 Motor de curent continuu

4.4 Senzor cu ultrasunete HC -SR04

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ă.
Î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 star ea internă a
robotului mobil, spre exemplu nivelul bateriei, poziția roților etc; 

Fig. 4. 18 Senzor cu ultrasunete HC -SR04

 Senzori de stare externă – senzori care oferă informații despre mediul ambiant în care
robotul funcționează. Senzorii de stare externă 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 in formaț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 energie 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; – 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 semna lul 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 semnal ului măsurat;
-Prețul senzorului; 
-Puterea de 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 sen zorul în momentul citirii informației. Problema 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 ge neral, pentru un senzor cu ieșirea f(e), instabilitatea se referă la: î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. E rorile incidentale apar ocazional ș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 parametrilor î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.
În lumea roboților mobili se întâlnesc 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 i nerțiali – acei senzori care măsoară proprietăț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, îm binâ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, ia r aplicațiile sale pot fi găsite în domenii 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 dispozitive automate care măsoară distanta.

4.4.1 Mod de funcționare:

Senzorii se bazeaz ă, pe emiterea de ultrasunete și măsurarea timpului necesar ca s ă se
intoarc ă ecoul (principiul pe care func ționeaz ă și naviga ția liliacului). Ace știa sunt senzori destul
de preci și, foarte u șor de folosit și a caror ie șire variaz ă direct propor țional cu distan ța măsurată
(un obiect situat la 2 metri va da un semnal de ie șire de doua ori mai mare decat un obiect situat
la 1 metru). Din cauza faptului c ă sunetul se deplaseaz ă cu o vitez ă fixă, aceast ă categorie de
senzori este relativ lent ă (in sensul c ă, dacă vrem s ă facem 100 de determin ări intr -o secund ă,
acești senzori nu vor fi capabili sa fac ă asta), în aceast ă categorie se incadreaz ăsonarele
MaxBotics si senzorul tip PING)) ca in figura 4.19

Fig. 4. 19 Schema de funcționare a unui senzor cu ultrasunete

4.4.2 Prezentarea Hardware:

Pentru acest proiect am utilizat un senzor în ultrasonic – HC-SR04 , care prezintă
urmatoarele caracteristici tehnice:
– Tensiune de operare: DC 5V
– Curentul de functionare: 15mA
– Unghi de func ționare: 15
– Distan ța: 2cm – 4m
– Rezoluție : 0,3 cm
– Greutate: 8,5 g
– Dimensiune : 45 x 20 x 15mm

Acest senzor poate m ăsura distan țe între 2cm – 400cm cu precizie care poate ajunge la
3mm. Fiecare modul HC -SR04 include un transmi țător ultrasonic, un receptor și un circuit de
comand ă.
Pentru func ționare , senzorul are nevoie de 4 pini
-VCC (Power);
-Trig (Trigger);
-Echo (Primire);
– GND .
Senzorul cu ultrasunete HC –SR04 folosește unde sonice pentru a determina distanța
până la un obiect – la fel ca liliecii sau delfinii. Acest modul oferă o precizie excelentă și stabil ă
Operațiune a nu este afectat ă de lumina soarelu i sau de culoarea materialelor.

4.4.2.1 Alternativa mai eficient ă: Senzorul infraroșu

Acești senzori sunt mult mai rapizi dec ât cei ultrasonici, însă funcționeaz ă corect doar
într-o gam ă mai strict ă de distan țe. Astfel , avem un tip de senzor infraro șu în gama 3 – 40 cm, un
alt tip în gama 10 – 80 cm si un alt tip în gama 15 – 150 cm.

Fig. 4. 20 Schema de funcționare a unui senzor infraroșu

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 apoape imună la interferențele
cauzate de lumina ambient ală și oferă o “indiferență” foarte mare față de culoarea obiectului
detectat. Astfel este posibilă detectarea unui perete negru în lumină directă a soarelui.

Neliniaritatea ieșirii senzorului:

Senzorul prezintă o caracteristica de ieșire neliniară, dat orată proprietăților
trigonometrice din interiorul triunghiului format de Emițător, punctul de reflexie și Receptor.

Fig. 4. 21 Diagrama de neliniarizare

Din diagrama din figura 4. 20 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. 4. 22 Schema conectării senzorului cu microcontrolerul

4.5 Modul driver motoare L293D

Modul reprezintă un shield cu două drivere de motoare de tip L293D potrivit pentru a controla
4 motoare normale, de dimensiuni mici, sau 2 motoare de tip servo.

Acest shield(fig.4.23) este potrivit pentr u proiecte de electronică ce necesită controlul
motoarelor deoarece este foarte ușor de controlat cu plăcuțe de dezvoltare Arduino. De
asemenea, shield -ul conține un shift register de tip 74HC595 pentru a fi mai ușor de controlat.

Fig. 4. 23 Modul driver motoare L293D

4.5.1 Prezentarea Hardware:
-Tensiune alimentare circuite : 5V;
-Tensiune alimentare motoare: 4.5V – 36V;
-Curent motoare in mod continuu: 0.6A;
-Curent motoare pe peak: 1.2A;
-Protecție la supracurent și la supratemperatur ă;

4.5.2 Mod de funcționare:
În acest proiect se va utiliza un shield L293D (figura L293D) pentru a face legătura dintre
motoarele de curent continuu și placa Arduino . Shield -ul acționează, practic, ca un amplificator,
deoarece curentul de ieșire a plăcii Arduino este mult prea mic pentru a acționa moto arele în
cauză.

Fig. 4.23 Schema conectării driverului motor L293D

4.5 Modul Bluetooth HC -06

Fig. 4.24 Modul Bluetooth HC -06

Bluetooth este un set de specificații (un standard) pentru o rețea personală (engleză:
personal area network, PAN) fără fir (wireless), bazată pe unde radio. Tehnologia Bluetooth a
fost creata în 1994.
„Bluetooth” este o traducere în engleză a cuvântului scandinav Blåtand/Blåtann, cum
era supranumit regele viking Harald I al Danemarcei din sec. al X-lea. Harald I a unit Norvegia
și Danemarca; el era renumit ca fiind foarte comunicativ și se pricepea să îi facă pe oameni să
comunice între ei. În română bluetooth s -ar traduce „dinte albastru”.
Specificația Bluetooth a fost formulată pentru prima dată de Sven Mattisson și Jaap
Haartsen, muncitori în orașul Lund, Suedia, la divizia de telefonie mobilă a companiei
Ericsson. La 20 mai 1998 a fost fondată gruparea Bluetooth Special Interest Group (SIG), care
azi are rolul de a vinde firmelor tehnologia Bluetooth și de a urmări evoluția acestei
tehnologii.
Printr -o rețea Bluetooth se poate face schimb de informații între diverse aparate
precum telefoane mobile, laptop -uri, calculatoare personale, imprimante, camere foto și video
digitale sau console video printr -o unde rad io criptate (sigure) și de rază mică, desigur numai
dacă aparatele respective sunt înzestrate și cu Bluetooth.
Aparatele care dispun de Bluetooth comunică între ele atunci când se află în aceeași
rază de acțiune. Ele folosesc un sistem de comunicații radio , așa că nu este nevoie să fie
poziționate față în față pentru a transmite; dacă transmisia este suficient de puternică, ele pot fi
chiar și în camere diferite.

4.6.1 Prezentarea Hardware:

Acesta (Fig. 4.24 ) este un modul Bluetooth care poate fi utilizat cu orice microcontroler si
alte module bluetooth. Acesta utilizează protocolul UART pentru a face mai ușor de trimis și
primi date fără fir. Modulul HC -06 este un dispozitiv care are numai functia de slave. A cest lucru
înseamnă că se poate conecta la cele mai multe telefoane și calculatoare cu bluetooth, dar nu se
poate conecta la alte dispozitive numai slave, cum ar fi tastaturi și alte module HC -06.

Caracteristici:

-Conceput pentru nivelul de 3,3V, dar ac cepta si ttl nivel 5v
-Antena încorporată cu o gamă de până la 10 m (intervalul depinde de o mulțime de lucruri, cum
ar fi orice obstacole sau pereți, camp deschis)
-Suportă baud rate de la 1200 la 1382400 bps (implicit este 9600 bps)
-VCC tensiune de intr are 3.3V la 6V
-Specificațiile Bluetooth v2.0 + EDR

-Putere de transmisie: +4dBm;
-Senzitivitate recepție: -80dBm.
-HC-06 Pini:
-VCC: +5v
-RXD: Arduino Transmit Serial (3.3V nivel HIGH)
-TXD: Arduino Transmit Serial
-GND: Arduino Ground

4.7 Placă breadbo ard

Fig. 4.24 Placă breadboard

Un breadboard este un dis pozitiv ,care permite conectarea extrem de simpl ă a componentelor
electronice, f ără lipituri.
Pentru a conecta dispozitivele se folo sesc fire tat ă-tată (cu pini la ambele capete), care se
introduc in g ăurile din breaboard.
Găurile existente în breaboa rd sunt conectate între ele (de obicei pe linie), astfel inc ât firele
introduse pe ace eași linie vor fi conectate intre ele.

Capitolul 5: Construcția robotului mobil cu kit Arduino
5.1 Asamblarea robotului mobil cu kit Arduino

A. Am folosit ca suport pentru piese un șasiu confecționat din material plastic.

Fig. 5.1 Șasiu
B. Robotul mobil cu kit Arduino 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.

Fig. 5.2 Asambșarea motoarelor pe cutia de viteze
C. Cutia de vitze cu motoarele de current continuu sunt montate la unul din captele
sasiului.

Fig. 5.3 Cutia de viteze cu motoarele asamblată pe șasiu

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. 5.4 Montarea roțitor
E. La celălalt capăt al șasiului am montat un ball -caster pentru menținerea echilibrului
robotului.

Fig. 5.5 Montarea Ball -Caster -ului pe șasiu
F.Senzorul infraroșu Sharp se montează pe servomotor.

Fig. 5.6 Montarea senzorului pe servomotor

G. Senzorul infraroșu Sharp și servomotorul se montează pe șasiu.

Fig. 5.7 Montarea servomotorului pe șasiu
H. Pentru ca placa Arduino UNO să nu vină montată direct pe șasiu am folosit
două distanțiere. Apoi am montat placa Arduino uno.

Fig. 5.8 Montarea plăcii Arduino pe șasiu
I. Între servomotor și placa Arduino am montat suportul de baterii (4 baterii a câte
1.5V). Suportul de baterii este prins de șasiu cu bandă dublă adezivă.

Fig 5.9 Montarea plăcii Arduino

J. Se conectează placa Ardumoto la placa Arduino UNO.

Fig. 5.10 Montarea plăcii Ardumoto
K. Ansamblul robotului cu kit Arduino

Fig. 5.11 Robotul mobil cu kit Arduino

5.2 Conectarea senzorului infraroșu Sharp la placa Arduino UNO

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, prin port -serialul prezentat pe
acesta.

Fig.5.12 Așezarea pinilor senzorului Sharp

Fig. 5.13 Conectarea senzorului în circuit

5.2.1 Principiul de funcționare

Senzorul emite un puls de raza infrarosie de lungime de unda 850 nm ± 70nm. Daca un
obiect este in raza de actiune si in calea razei IR, acesta va reflecta raza inapoi spre senzor.
Senzorul face citiril e cu o frecventa de aproximativ 24 Hz si raporteaza datele sub forma de
tensiune (marime analogica). Aceasta tensiune va suferi o conversie pe 8 biti la nivelul CAN –
ului prezent pe microcontrollerul Atmega8. Marimea analogica este convertita in Volti, iar
apoi, printr -o functie de liniarizare obtinuta din diagrama oferita de Sharp pentru acest senzor,
vom obtine rezultatul final.

Fig. 5.14 Schema principiului de funcționare

5.3 Conectarea motoarelor de curent continuu

Robotul realizat este pus în mișcare de către două motoare de curent continuu.

Motoarele sunt montate la o cutie de viteze Tamya care oferă un raport de transmisie 58:1.

Fiecare motor est e actionat 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 placa de dezvoltare Ardumoto care este conectată
cu placa Arduino.
Microcontrolerul ATMega328 de pe placa Arduino realizează controlul motoarelor.

5.3.1Realizarea controlului motoarelor de curent continuu

Motoarele sunt controlate prin intermediul unui Dual FULL -BRIDGE DRIVER L298.
A fost construit un PCB special (Ardumoto) pentru controlul acestui driver de motoare și a
circuitului său de protectie. L298 primește 8 intrări de la Atmega32: 4 intrari 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 portului B.
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 întreruptoare, ce acționează câte două
odata pe diagonală, pentru a schimba sensul de rotație al motorului. Aceste întreruptoare sau
comutatoare sunt realizate de obicei cu tranzistoare MOS -FET sau cu tranzistoare D arlington.

Fig. 5.15 Schema punții H simplificată

Schema unei punți H folosind dispozitive discrete este prezentată in figura 5.16. Astfel,
tranzistoarele utilizate sunt de tip PNP și la fiecare sens de rotație sunt în conducție 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. 5.16 Schema de principiu a punții H
Un astfel de circuit integrat amplificator sau driver pentru comanda motorului de
curent continuu este și L298P. 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. 5.17 Schema circuitului L298P

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 stanga 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. A semă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.

5.4 Conectarea servomotorului la placa 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.18.

Fig.5.14 Conectarea servomotorului la placa Arduino
Unde:

-firul rosu este comanda servomotorului;

-firul negru e pentru a uni masele sursei de alimentare cu a lui Arduino;
-firul alb este pentru citirea datelor de la senzor;

CAPITOLUL 6: Programarea robotului
6.1 Microcontrolerul ATmega 328

ATMega328 cu Arduino bootloader (Uno). Acest microcontroller vă permite să
utilizați programe 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 si de o conexiune serială.

Fig. 6.1 Microcontrolerul ATMega328
6.1.1 Memoria

ATmega328 are 32 KB (cu 0,5 KB utilizați pentru bootloader). Ea are, de asemenea, 2
KB SRAM și 1 KB de EEPROM.

6.1.2 Specificații tehnice

Tabelul 6.1

Microcontroler ATmega328p -pu
Familia de microcontrolere Atmega
Tip interfață I2C, SPI USART
Dimensiune nucleu 8 biti
Voltajul de intrare (limitare) 1.8V -5.5V
Pini digitali I/O 23 (din care 6 pot fi folositi 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 utilizati de bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 20 MHz
Periferice ADC, Comparator, RTC, Timer, PWM
Set de instrucțiuni Arhitectura RISC

6.2 Programarea placii

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. Luati 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 (partea mai goasă si dreptunghiulară) în mufa de
USB de la Arduino.

A B

Fig. 6.1 Cablu USB
După aceasta etapă NU se conectează ARDUINO la PC sau Mac î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. În
momentul de față, cea mai recentă versiune de software Arduino IDE este 0022, urmând ca
actualizările să se facă în momentul aparițiilor unor versiuni noi. 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
descarcărea s -a terminat, dezarhivați arhiva de tipul ZIP, asigurându -vă că s -a păstrat structura
de fold ere așa cum este și nu trebuie făcute nici un fel de schimbări în componenta softului.
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 directorul 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.
Dacă aveți un calc ulator cu sistem de operare 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 u n 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 alegeți

FTDIUSBSerialDriver.pkg. Cea mai recentă versiune a driverelor poate fi gas ită pe site -ul
FTDI .

Fig. 6.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. 6.3 Jumperul de selectare a alimentării
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 –
Curent Continu). Acum, conectați celalalt 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 completă ș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 W indows va detecta că s -a conectat o nouă
placă hardware (microcontrolerul Arduino) la PC, va apărea fereastra Found New Hardware
Wizard. Bifați “NO, not this time” (figura 6.4) pentru a nu se conecta la Windows Update
(Selectați Nu, nu în acest moment) și apoi faceți clic pe Next.

Fig. 6.4 Fereastra „Found New Hardware” a Windows -ului
În pagina următoare (figura 6.5) selectați “Install from a list or specific
location (Advanced)” și apoi faceți clic pe Next.

Fig. 6.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
6.6)

Fig. 6.6
Windows -ul va căuta acum pentru un driver 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 6.7)

Fig. 6.6
Acum sunteți pregătit pentru a încarca primul “Sketch” pe microcontrolerul Arduino.

6.3 Programul robotului

// Compact, a small Arduino (UNO) robot

// 2 Pololu micro motors 100:1 and small wheels,

// one HXT900 micro servo, one Sharp IR sensor,

// 2 AAA battery holders, the Robot Builder's Shield

//

// Arduino pinout:

//

// Shield Funct Arduino ATmega168 Arduino Funct Shield

// +––\/–-+

// Reset
D0 1| PC6 PC5 |28 D19 A5 SCL

// Rx 2| PD0 PC4 |27 D18 A4 SDA

// Tx D1 3| PD1 PC3 |26 D17 A3

// Int0 D2 4| PD2 PC2 |25 D16 A2

// Int1 D3 5| PD3 PC1 |24 D15 A1
IR sensor
// M1B D4 6| PD4 PC0 |23 D14 A0

// 7| VCC GND |22

//
Xtal 8| GND AREF |21

// 9| PB6 AVCC |20

// Xtal 10| PB7 PB5 |19 D13 SCK LED

// M1A OC0B D5 11| PD5 PB4 |18 D12 MISO Pan servo

// M2A OC0A D6 12| PD6 PB3 |17 D11 OC2A MOSI

// M2B D7 13| PD7 PB2 |16 D10 OC1B

// D8 14| PB0 PB1 |15 D 9 OC1A

// +–––– +

//

#include

//Inputs/outputs

#define Motor_1_PWM 5 // digital pin 5 // Right Motor

#define Motor_1_Dir 4 // digital pin 4

#define Motor_2_PWM 6 // digital pin 6 // Left Motor

#define Motor_2_Dir 7 // digital pin 7

#define IR_Pin 14 // digital pin 14 (analog pin 0)

#define PanPin 12

#define LedPin 13

#define SR 1 //Sharp Short Range sensor

#define MR 2 //Sharp Medium Range sensor
#define LR 3 //Sharp Long Range sensor

#define center 90

//Variables

byte dir=0;

byte speed1=250;
byte speed2=255;
int turn90=110;

int turn45=55;

int straight=500;
int stopTime=200;

int IRdistance=0;

int treshold=20; //20cm min distance

Servo Pan;
//–––––––––––––––––––––––––

void setup() {

// set motor pins as output and LOW so the motors are
breaked pinMode(Motor_1_PWM, OUTPUT);
pinMode(Motor_1_Dir, OUTPUT);
pinMode(Motor_2_PWM, OUTPUT);
pinMode(Motor_2_Dir, OUTPUT);

Stop();

Pan.attach(PanPin);
Pan.write(center); //90

StepDelay();

pinMode(LedPin, OUTPUT);
digitalWrite(LedPin, LOW);

Serial.begin (19200);
Serial.println("start");

Forward();
}

void loop(){

Drive();

//square();

}

void square(){

Forward();

delay(straight);

Stop();

delay(stopTime);

Right();

delay(turn90);

Stop();

delay(stopTime);

Forward();

delay(straight);

Stop();

delay(stopTime);

Right();

delay(turn90);

Stop();

delay(stopTime);

Forward();

delay(straight);

Stop();

delay(stopTime);

Right();

delay(turn90);

Stop();

delay(stopTime);

Forward();

delay(straight);

Stop();

delay(stopTime);

Right();

delay(turn90);

Stop();

delay(stopTime);
}

//–––––––––

void Drive(){
IRdistance=Read_Sharp_Sensor(MR, IR_Pin);

Serial.print("IRdistance ");

Serial.println(IRdistance);

if (IRdistance<10){

Stop();

StepDelay();
TurnAround();

}

if (IRdistance<5; i++){

Pan.write(i*45);

StepDelay();
StepDelay();
IRdistance=Read_Sharp_Sensor(MR,
IR_Pin); if (IRdistance>prev){

dir=i;

prev=IRdistance;
}

}

Pan.write(center);

StepDelay();

switch (dir){

case 0:

Right();

delay(turn90);

Stop();

StepDelay();
break;

case 1:

Right();

delay(turn90); //turn45

Stop();

StepDelay();
break;

case 2:
Forward();

break;

case 3:
Left();
delay(turn90); //turn45

Stop();

StepDelay();

break;

case 4:
Left();
delay(turn90);

Stop();

StepDelay();

break;

}

delay(500);
}

// Read Sensors

int Read_Sharp_Sensor(byte model, byte pin)
{ int value = 0;
value = analogRead(pin);

switch (model) {

case SR: //short range, aka GP2D120 (4 -30cm)
return (2914/(value+5)) -1;

break;

case MR: //medium range, aka GP2D12 (10 -80cm)

return 5*1384.4*pow(value, -.9988); //I had to multiply by 5, different
sensor

break;

case LR: //long range, aka GP2Y0A02YK (20 -150cm)
return 11441*pow(value, -.9792);

break;

}

}

void StepDelay() {
for (byte t=0; t<10; t++){

delay(20);

}

}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ ++++++
void Forward(){
digitalWrite(Motor_1_Dir, LOW); // forward
digitalWrite(Motor_2_Dir, LOW); // forward
analogWrite(Motor_1_PWM, speed1); //

analogWrite(Motor_2_PWM, speed2); //

return;

}

void Reverse(){
digitalWrite(Motor_1_Dir, HIGH); // reverse
digitalWrite(Motor_2_Dir, HIGH); // reverse
analogWrite(Motor_1_PWM, 255 -speed1);
// analogWrite(Motor_2_PWM, 255 –
speed2); // return;
}

void Right(){
digitalWrite(Motor_1_Dir, HIGH); // reverse
digitalWrite(Motor_2_Dir, LOW); // forward
analogWrite(Motor_1_PWM, 255 -speed1);
// analogWrite(Motor_2_PWM, speed2); //
return;
}

void Left(){
digitalWrite(Motor_1_Dir, LOW); // forward
digitalWrit e(Motor_2_Dir, HIGH); // reverse
analogWrite(Motor_1_PWM, speed1); //
analogWrite(Motor_2_PWM, 255 -speed2);
// return;
}

void Stop()

{

digitalWrite(Motor_1_PWM, LOW);
digitalWrite(Motor_1_Dir, LOW);
digitalWrite(Motor_2_PWM, LOW);
digitalWrite(Motor_2_Dir, LOW);
return;

}

BIBLIOGRAFIE

Dolga, V.,"Proiectarea Sistemelor Mecatronice", Editura Pollitehnica, Timișoara, ISBN
978-973-625-573-1, 2007.

Maniu, I., Dolga, V., Ciupe, V. Bogdanov, I. Rădulescu, C., Varga,Ș.,"Robotică. Sistemul
de acționare", Vol.II, Editura Politehnica, ISBN: 978-973-625-996-8, 2007.

Rădulescu C., Vatau, S.,"Roboți Mobili – Vehicule Ghidate Automat", Vol.1, Editura
Politehnica, ISBN 978-973-625-664-6, 2008.

Allen B. Downey, "Think Python: An Introduction to Software Design", 2002.

http://www.mecatronica.ro/definitie_mecatronica.html

http://www.scientia.ro/stiinta -la-minut/istor ia-ideilor -si-descoperirilor -stiintifice/2500 –
introducere -in-istoria -roboticii.html

http://www.rumaniamilitary.ro/sistemele -de-avioane -fara-pilot-in-romania

https://playtech.ro/2014/noul -robot -umanoid -honda -asimo -tinde -sa-fie-de-un-real-ajutor/

http://webbut.unitbv.ro/teze/rezumate/2011/rom/DuguleanaM ihai.pdf

http://www.imst.pub.ro/Upload/Studenti/SSS_2016/lucrarile_sesiunii_stud_2016/IMPLE
MENTAREA_ROBOTILOR_INDUSTRIALI. pdf

http://www.descopera.ro/stiinta/15616273 -cercetatorii -de-la-harvard -au-fabricat -primul –
robot -flexibil -ce-animal -a-inspirat -crearea -lui-video

https://www.raspberrypi.org/documentation/usage/ python/

http:// python.net/~gherman/propaganda/tut -ro/tut -ro.pdf

48

LUCRARE DE LICENȚĂ

https://www.python.org/

https://ro.wikipedia.org/

https://www.robofun.ro/

https://www.w3.org/TR/html5/

http://www.drogoreanu.ro/tutorials/html.php

https://tutorialehtml.com/ro/introducere -in-html/

Similar Posts