Sunteți pe pagina 1din 53

UNIVERSITATEA POLITEHNICA din BUCUREŞTI

FACULTATEA DE INGINERIE ELECTRICĂ

DEPARTAMENTUL DE MAŞINI, MATERIALE ŞI ACŢIONĂRI ELECTRICE

PROIECT DE DIPLOMA

Vehicul robot autonom de tip 4WD pentru


hrănirea animalelor dintr-un adăpost

Autor: Filofteia-Valentina VOINEA


Conducător ştiinţific: Prof. dr. ing. Aurel CHIRILĂ

BUCUREŞTI
2019
1. Introducere

Cuprins
1. Introducere ................................................................................................................................................. - 3 -
1.1. Scurt istoric .......................................................................................................................................... - 3 -
1.2. Exemple de aplicații ............................................................................................................................. - 5 -
1.2.1. Robot pentu tuns iarba................................................................................................................. - 6 -
1.2.2. Robot supraveghere ..................................................................................................................... - 8 -
1.2.3. “Car 2 car communication” .......................................................................................................... - 9 -
1.3 Ideea și motivația lucrării ................................................................................................................... - 10 -
2. Descrierea componentelor ....................................................................................................................... - 11 -
2.1. Structura robotului ............................................................................................................................ - 11 -
2.2. Senzor ultrasonic ............................................................................................................................... - 11 -
2.3. Line follow ......................................................................................................................................... - 12 -
2.4. Driver de motoare ............................................................................................................................. - 13 -
2.4.1. Puntea H ..................................................................................................................................... - 13 -
2.5. Servomotorul ..................................................................................................................................... - 15 -
2.6. Alimentarea mașinuței ...................................................................................................................... - 17 -
2.7. Motor cu reductor ............................................................................................................................. - 18 -
3. Poiectarea circuitului imprimat ................................................................................................................ - 19 -
3.1. Schema bloc....................................................................................................................................... - 19 -
3.2. Schema complete .............................................................................................................................. - 20 -
3.2.1 Microcontroler ATMEGA328PU................................................................................................... - 20 -
3.2.2 UART ............................................................................................................................................ - 22 -
3.2.3. Driver de motoare ...................................................................................................................... - 23 -
3.2.4. Regulator de tensiune în comutație ........................................................................................... - 25 -
3.3. Layout ciruitului imprimat ................................................................................................................. - 29 -
3.4. Necesarul de materiale...................................................................................................................... - 31 -
4. Mediul de dezvoltare................................................................................................................................ - 34 -
4.1. Arduino IDE ........................................................................................................................................ - 34 -
4.2. Structura programelor în Arduino IDE............................................................................................... - 35 -
4.3. Conceptul de follow line ................................................................................................................... - 35 -
4.4. Senzorul ultrasonic ........................................................................................................................... - 36 -
4.5. Software ........................................................................................................................................... - 37 -
4.5.1. Codul pentru urmărirea liniei ............................................................................................... - 37 -
-1-
Filofteia-Valentina VOINEA – Proiect de diplomă

4.5.2. Codul pentru controlul încărcării și descărcării hranei pentru animale. .............................. - 38 -
4.5.3 Codul pentru controlul barierelor și a încărcării cu hrană a robotului ..................................... - 40 -
5. Concluzii.................................................................................................................................................... - 41 -
6. Rererințe ................................................................................................................................................... - 42 -
Anexe ............................................................................................................................................................ - 45 -

-2-
1. Introducere

1. Introducere

Această lucrare prezintă realizarea unui sistem hardware pentru comanda a patru motoare de
curent continuu, prin care se realizează hrănirea animalelor dintr-un adăpst de animale.
Proiectul este compus dintr-un sistem hardware pentru comanda motoarelor de curent
continuu, o parte de acţionare mecanică, precum şi o aplicaţie software prin care se comandă mişcările
maşinii. Toate aceste trei părţi comunică între ele, rezultând în final produsul finit dorit de către
utilizator.
Documentaţia aferentă acestui proiect este structurată în patru capitole în care sunt prezentate
etapele realizării lui.
Lucrarea este realizată ca o machetă (robot) funcţională, ea fiind o demonstraţie practică a
funcţionării unei vehicul inteligent, capabil să ruleze pe un traseu configurat, fără să părăsească
suprafața acestuia și să realizeze intrucțiunile pe care mașina le are implementate. Arhitectura mașinii
include un șasiu, patru motoare de curent continuu pentru tracțiune, un senzor de ultrasunete pentru
detecția barierelor și un circuit imprimat (PCB) pe care avem toate componentele necesare funcționarii
robotului.
Demonstrația practică este efectuata de robot (mașinuță) care v-a încărca și descărca hrana animalelor
într-un loc specific în cadrul machetei.

1.1. Scurt istoric

Robotica este o ramură a ingineriei. Această tehnologie este folosită pentru a dezvolta mașini
care să înlocuiască oamenii și să reproducă acțiunile umane. Roboții pot fi utilizați în multe situații și
în multe scopuri, dar astăzi multe dintre acestea sunt folosite în medii periculoase (inclusiv detectarea
și dezactivarea bombelor), procese de fabricație sau în cazul în care oamenii nu pot supraviețui (de
exemplu în spațiu). Roboții pot lua orice formă iar unii sunt făcuți să semene cu oamenii în aparență.
Acest lucru se spune că ajută la acceptarea unui robot în anumite comportamente replicative, de obicei
efectuate de oameni. Astfel de roboți încearcă să reproducă mersul pe jos, ridicarea, vorbirea,
cunoașterea și practic, orice poate face un om. [1]
Astăzi, robotica este un domeniu în creștere rapidă, pe măsură ce progresele tehnologice
continuă; cercetarea, proiectarea și construirea de noi roboți au diverse scopuri practice, indiferent
dacă sunt pe plan intern, comercial sau militar. Roboții sunt construiți pentru a ajuta oamnii, pentru a
-3-
Filofteia-Valentina VOINEA – Proiect de diplomă

le ușura munca, pentru a le face viața mai ușoară. Aceștia sunt construiți pentru a face anuminte
activități în locul oamenilor, iar oamenii putând face alte lucruri în tot acest timp. Robotica este de
asemenea folosită în STEM (știință, tehnologie, inginerie și matematică) ca ajutor didactic. [2]
Odată cu dezvoltarea rapidă a tehnologiei, oamenii își doresc să facă cât mai multe lucruri într-
un timp foarte scurt. Tehnologia a avansat foarte mult iar noi, oamenii, ne dorim să facem activități
fără a depune efort prea mult. De aceea, astăzi, roboții au un potențial foarte mare de a înlocui foarța
de muncă pe sarcini simple și repetitive. Roboții se gasesc in număr foarte mare în fabrici pentru a
ușura munca oamenilor sau pentru a înlocui personalul. Există multe exemple de roboței (mașinuțe)
care fac anumite activități casnice, de exemplu familiile au înlocuit mașinile de tuns iarbă cu diferiți
roboți care fac acelaș lucru dar fără a implica prezența umană. Astfel, oamenii „salvează” timp și pot
face diferite alte lucruri. Exemplele nu se opresc doar aici, astfel, oamenii dezvoltă pe zi ce trece alte
activități pe care roboții pot să le întreprindă.
Există multe motive diferite pentru utilizarea unui robot, dar motivul principal pentru
majoritatea aplicațiilor este eliminarea unui operator uman. Cel mai evident motiv este: pentru a
economisi forța de muncă și a reduce costurile. Uneori, un operator uman poate face mai bine decât
robotul în ceea ce privește calitatea sau viteza, dar robotul va face sarcina în mod consecvent.
De exemplu, testarea și măsurarea sunt deseori deschise înterpretării umane. Operatorii diferiți
vor obține rezultate diferite. Același lucru s-a dovedit a fi aplicat în activitațile repetitive de laborator,
în special în cercetarea farmaceutică, unde sute de probe trebuie testate cu instrumente sensibile.
Rezultatele obținute variază în funcție de viteza operatorului, de manipulare etc. Aplicațiile în cazul
în care obiectivul a fost de a economisi costurile pentru cercetătorii de doctorat care completează
tuburile de testare au dat de multe ori rezultate mai repetate și mai precise.
Există încă multe aplicații în care robotul nu face altceva decât să elimine forța de muncă. Punctul
meu de vedere este că multe sarcini necalificate sunt atât de monotone încât nu ar trebui să cerem unei
ființe umane să le facă. Roboții vor avea, de asemenea, un acces îmbunătățit la stările interne fizice și
cognitive. Va fi ușor să modernizăm roboții, dar ei vor reuși în cele din urmă să o facă singuri.
Seturile noastre de cunoștințe cognitive intrinseci au fost forjate - și constrânse - de cerințele
evoluției, dar un creier robotic ar putea fi proiectat pentru a excela în orice număr de sarcini arbitrare.
Roboții vor putea calcula mai bine și mai repede decât oamenii, au abilități superioare de recunoaștere
a modelului, atenție nelimitată și memorie infailibilă.
Nu se îmbolnăvesc, nu li se face foame și nici sete sau nu sunt nevoiți să facă opriri frecvente la baie.

-4-
1. Introducere

Există multe tipuri de roboți dar toate se bazează pe trei similitudini când vine vorba de construirea
lor:
1. Roboții au toți un fel de construcție mecanică, un cadru, o formă sau o formă concepută pentru
a atinge o anumită sarcină. De exemplu, un robot conceput pentru a călători prin murdărie sau
noroi greu ar putea folosi șenile omise. Aspectul mecanic este în cea mai mare parte soluția
consructorului de a îndeplini sarcina atribuită și de a se ocupa de fizica mediului înconjurător.
2. Roboții au componente electrice care acționează și controlează mașinile. Aspectul electric al
roboților este folosit pentru deplasarea (prin intermediul motoarelor), a senzorilor (unde
semnalele electrice sunt utilizate pentru a măsura calitățile, poziția și starea energiei) și
funcționarea (roboții au nevoie de un anumit nivel de energie electrică alimentată de motoarele
lor și senzori pentru activarea și efectuarea operațiunilor de bază).
3. Toți roboții conțin un anumit nivel de cod de programare a calculatorului. Un program este
modul în care un robot decide când sau cum să facă ceva. În exemplul de pe șenile, un robot
care trebuie să se deplaseze pe un drum murdar poate avea construcția mecanică corectă și
poate primi o cantitate corectă de energie de la bateria sa, dar nu ar merge nicăieri fără un
program care să-i spună să se miște. Programele sunt esentiale unui robot, acesta ar putea avea
o construcție mecanică și electrică excelentă, dar dacă programul său este prost construit,
performanța sa va fi foarte slabă (sau poate că nu va funcționa deloc). Există trei tipuri diferite
de programe robotizate: telecomandă, inteligență artificială și hibrid. Un robot cu programare
de la distanță are un set de comenzi preexistente, pe care le va efectua numai dacă și când
primește un semnal de la o sursă de control, de obicei o ființă umană cu telecomandă. Este
probabil mai bine ca dispozitivele controlate în primul rând de comenzile umane să se
încadreze în disciplina automatizării, mai degrabă decât în robotică. Roboții care utilizează
inteligența artificială interacționează cu mediul înconjurător pe cont propriu fără o sursă de
control și pot determina reacții la obiectele și problemele cu care se confruntă prin utilizarea
programării lor preexistente. Hybrid este o formă de programare care încorporează funcțiile
AI (inteligență artificială). [2]

1.2. Exemple de aplicații


Tehnologia modernă ne economisește o mulțime de timp, fie că este vorba de mașinile
reglemenatate care ne duc și ne aduc de la muncă, mașinile de spălat rufe sau bancomatele automate
care ne permit să plătim prin card de credit și să folosim internet banking.
-5-
Filofteia-Valentina VOINEA – Proiect de diplomă

Reglementarea și automatizarea calculatoarelor înseamnă că multe dispozitive și mașini


funcționează acum mult mai eficient și folosesc mai putină putere fie pentru că lucrează la cea mai
eficientă rată, fie se opresc automat atunci când nu sunt utilizate ceea ce duce la o economie de costuri.
Pentru a arăta că această tehnologie o să fie din ce în ce mai folosită în viitorul cât mai apropiat,
am enumerat câteva exemple de proiecte care sunt deja implementate în viața noastră și unele care, cu
siguranță o să ne ușureze munca în viitor.

1.2.1. Robot pentu tuns iarba

Casele moderne includ un campus adesea folosit ca grădină cu iarbă care crește și trebuie
menținută la o înălțime scurtă. Tăierea convențională a gazonului este adesea un plictisotoare și
consumă mult timp în realizarea acesteia. Sarcina de a tunde gazonul manual poate fi înlocuită cu
mașina de tuns iarba automată folosind un robot programat să îndeplinească o astfel de sarcină.
Roboții sunt adesea costisitori, ceea ce deseori descurajează oamenii să cumpere dispozitive
costisitoare. Sucesul fabricării unei mașini de tuns iarba cu preț scăzut, ieftin, va permite proprietarilor
de case să își mențină gazonul fără a cheltui mult timp și bani. Un robot autonom poate tunde gazonul
unei zone specifice a grădinii fără supraveghere umană. [3]
Obiectivul specific al acestui proiect a fost acela de a dezvolta un robot automat pentru mașini
de tuns iarba, care ar putea ajuta utilizatorii în ușurarea muncii. Robotul fiind capabil să acopere o
anumită zonă de teren plat, evitând orice obstacol de-a lungul drumului.
Mașina de tuns iarba robotizată poate avea suport Bluetooth, astfel încât să poți să-l programezi
folosind telefonul tau fără a mai trebui sa te așezi pentru a modifica ceva la ea. Cu toate acestea, este
mult mai util sa alegi un modul care leagă mașina de tuns iarba de rețeaua mobilă. Aceasta înseamnă
că îl puteți monitoriza și controla de oriunde cu conexiune mobilă. Există, de asemenea, suport pentru
controlul vocii, de exampleu Alexa și Asistentul Google, precum și o conexiune cu Apple Watch.
După instalarea mașinii de tuns iarba robotizată, se poate ajusta cu ușurință înălțimea de tăiere
fără a avea nevoie de un instrument. În proiectarea unui astfel de robot se ia în calcul și faptul că
robotul este utilizat și dimineața când iarba este puțin udă dar cu toata acestea trebuie să se ia în calcul
ca trebuie să functineze și atunci chiar dacă există posibilitatea de a aluneca pe pantă cand iarba este
udă.

-6-
1. Introducere

În momentul proiectării trebuie luat în calcul și faptul că robotul trebuie să aibe o limită de
decibeli, acesta trebuie să fie foarte silentios, ceea ce însemană că în timpul utilizării vecinii nu o sa
fie deranjați.
Mașinuța evită obstacolele pe drumul spre casă, care sunt adesea în jurul perimetrului.

Un astfel de robot trebuie sa indeplineasca anumite functii:


➢ Performanță: Cât de mare este o suprafață de iarbă care poate face față mașinii de tuns iarbă
robotizată? Cât de bune sunt rezultatele pe termen scurt și lung? Cât de bine taie iarba lungă,
grosieră și umedă?
➢ Eficacitatea: Cât de eficient funcționează în ceea ce privește timpul și rezultatele tăierii? Cât
de des trebuie să iasă și să taie? Poate face față cu adevărat zonei de tăiere recomandate?
➢ Fiabilitate: Cât de inteligent este? Cât de fiabilă este? Cât de des se oprește și raportează un
mesaj de eroare și în ce situații? Cat de bune sunt abilitatile de manevrare a teritoriului? Cât
de flexibilă poate fi fixarea cablului pentru ca încă să facă față? Cum poate mașina de tuns
iarba robotică să evite urme de roată de-a lungul firului perimetral? Cum se descurcă cu pasaje
înguste, colțuri ascuțite, zone pline de obstacole sau zone secundare?
➢ Ușurința de utilizare: Este instalarea rapidă și simplă sau lentă? Cât de ușor este mașina de
tuns iarba robotică pentru a programa? Sistemul de meniuri este ușor de navigat? Cum
comunică mașina de tuns iarba robotizată cu proprietarul acesteia? Ce tip de informații dă?
Poate funcționa fără a deranja vecinii?
➢ Design și construirea calității: Cât de bine este proiectat mașina de tuns iarbă robotică? Roțile
conferă o bună prindere în timp ce sunt în același timp la fel cu gazonul? Cât de mult stres și
uzură tolerează construcția? Cât de dure sunt lamele? Lamele dau o tăietură îngustă sau o rup
în iarbă? Ce garanție are ea? Există piese de schimb?
➢ Funcționalitate: Ce setări sunt disponibile? Cât de mult control are utilizatorul asupra
programului de tăiere?
➢ Securitate: Se utilizează mașina de tuns iarba robotizată cu lame pivotante sau lame fixe? [4]

-7-
Filofteia-Valentina VOINEA – Proiect de diplomă

Fig. 1.1 – Mașină de tuns iarba [4]

1.2.2. Robot supraveghere

Principalul dezavantaj în supravegherea de astăzi se bazează pe implicarea operatorilor umani


care pot fi ușor distrași, deci avem nevoie de un sistem care să poată monitoriza autonom regiunile în
mod continuu, luând decizii în timp ce identifică lucruri nedorite sau neplăcute și răspunde în mod
corespunzător. Urmărirea obiectelor utilizând viziunea pe computer este crucială pentru realizarea
supravegherii automate.
Acest proiect arată cum se poate construi o mașină de urmărire a mingii de bază. Aici, robotul
folosește camera pentru a lua cadre și a face procesarea imaginilor pentru a urmări mingea.
Caracteristicile mingii, cum ar fi culoarea, forma, dimensiunea pot fi folosite.
Dar obiectivul a fost să se faca un prototip de bază pentru un astfel de robot care să poată simți
culoarea și forma și să-l urmeze. Robotul încearcă să găsească o culoare care este greu codificată, dacă
găsește o minge de acea culoare, o urmează.
Realizarea proiectului a fost facută cu ajutorul unui Raspberry Pi ca micro-controler pentru
acest proiect deoarece oferă o mare flexibilitate în utilizarea modulului de cameră Raspberry Pi și
permite codificarea în Python, care este foarte ușor de utilizat și bibliotecă OpenCV, pentru analiza
imaginii.
Pentru a controla motoarele, s-a folosit o punte H pentru a comuta din sensul acelor de
ceasornic în sens invers acelor de ceasornic sau pentru a opri motoarele. Acest lucru a fost integrat
prin cod atunci când direcția și viteza trebuie să fie controlate în diferite situații de obstacol.
În cele din urmă robotul încearcă să aducă coordonatele mingii în centrul axei imaginare a
coordonatelor. [5]

-8-
1. Introducere

Fig. 1.2 – Mașină de monitorizare [5]

1.2.3. “Car 2 car communication”

Pe lângă aceste experimente care sunt facute de către oameni pasionați, sunt și oameni care se
implica și vor să aducă împreună studenți pentru a-i familiariza cu munca în echipă. Aceștia încearcă
să propună lucruri diferete pentru a le dezvolta imaginația. Astfel, obiectivul principal al proiectului-
concurs este dezvoltarea unui sistem pentru mașină ce permite comunicarea cu alte mașini participante
la trafic.
În fiecare ediție a proiectului, conceptul este diferit, de exemplu: realizarea și funcționarea
sistemului de comunicare „car 2 car comunication” pentru mașină. Au fost prezentați mai mulți roboți
(mașinuțe) care trebuiau să comunice între ele întru-un circuit dat. Acestea au fost construite să fie
autonome și în momentul în care, pe traseu se întâlneau într-o intersecție cu o altă mașinuță, acestea
trebuiau să acorde prioritate de dreapta la fel ca și în cazul autovehiculelor.
Obiectivele proiectului:
• realizarea și funcționarea sistemului pentru mașină;
• controlarea motoarelor cu ajutorul microcontrolerului;
• eficiență energetică cât mai mare;
• conexiunea cât mai rapidă între acces point și mașină.
Astfel de proiecte vor să arate un prototip care are potențial și totodată că se poate implementa în viața
reală. Astfel de proiecte sunt deja implementate în companii mari precum Amazon pentru a ușura
munca angajaților și pentru a avea o creștere cât mai bună a randamenului.

-9-
Filofteia-Valentina VOINEA – Proiect de diplomă

Fig. 1.3 – Mașină de monitorizare [6]

Masinuțele au la baza un cicuit imprimat (PCB), lucru care m-a inspirat și m-a facut să vreau să
implementez ceva asemanor în cadrul proiectului meu.

1.3 Ideea și motivația lucrării

Ideea de bază de la care am început conceperea proiectului a fost de la un circuit imprimat


(PCB). Acest lucru a început din momentul în care am aflat de proiectul “car 2 car communication”
care m-a făcut să imi doresc să învăț cum se construiește o astfel de plăcuță și dacă mi-aș dori să lucrez
mai departe pe o astfel de ramură. În momentul în care a trebuit să găsesc o utilizare pentru un astfel
de robot m-am dus cu gandul la animelele străzii și la faptul că sunt oameni care vor să aibe grijă de
ele, dar din cauza lipsei de timp nu pot să le îngrijească așa cum îsi doresc. Cu această lucrare vreau
să arăt că dacă cineva își dorește ceva cu adevărat poate să facă asta dacă lasă tehnologia să intre în
viața lor. Proiectul Robot 4WD autonom pentru hrănirea animalelor dintr-un adăpost este un proiect
pe care vreau să-l implementez în viața mea și îmi doresc ca oamenii să fie cât mai deschiși și să ajute
cât mai multe animele fără adăpost.
După ce am ales utilitatea mașinuței și după ce am gândit în linii mari cum o sa arate macheta,
am hotărât să realizez un prototip pentru a testa codul și pentru a observa diferitele probleme
întâmplinate și implicit, pentru a le rezolva. Pentru acest prototip am folosit diferite module care să
țină locul PCB-ului: driverului de motoare și plăcuța de dezvoltare Arduino UNO.

- 10 -
2. Descrierea componentelor

2. Descrierea componentelor

În cadrul acestui capitol am descris structura și senzorii aleși pentru construirea prototipului.

2.1. Structura robotului


Platforma mobilă DFRobot 4WD Arduino include motoare de 4x4, roți și un șasiu complet cu
hardware de montare. Permite să adăugați mai multe electronice și să definiți un aspect modular.
Gaura dreptunghiulară permite ca un servomotor să fie atașat și să fie utilizat în mai multe scopuri,
cum ar fi o cameră mobilă sau un braț robotizat, sau în cazul meu, modulul pentru bascularea hranei.
Materialul din carcasă din aliaj de aluminiu cu rezistență ridicată asigură flexibilitate în mișcarea
rapidă, în special în iarba exterioară, pietriș, nisip sau suprafață înclinată. Sporirea duratei de viață a
electronicii și a uneltelor datorită structurii studiului șasisului. [7] Platforma mobilă Arduino 4WD
este, de asemenea, potrivită pentru competițiile de robot și proiecte legate de cercetare.

2.2. Senzor ultrasonic

Senzorul cu ultrasunete funcționează pe principiul sistemelor SONAR și RADAR, care este


folosit pentru a determina distanța față de un obiect.
Un senzor ultrasonic generează undele de sunet de înaltă frecvență (ultrasunete). Atunci când aceste
ultrasunete atinge obiectul, acesta se reflectă ca un ecou care este detectat de receptor.

Fig. 1.4. – Principiul de funcționare al senzorului ultrasonic

- 11 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Prin măsurarea timpului necesar pentru ca ecoul să ajungă la receptor, putem calcula distanța.
Acesta este principiul de bază de lucru al modulului ultrasonic pentru măsurarea distanței.
Senzorii ultrasonici pot și adoptați implementați într-un sistem de evitare a obstacolelor în
timp real pentru roboți, astfel încât robotul să poată detecta continuu împrejurimile, evitând
obstacolele și deplasându-se spre zona țintă.
O alta metodă este cea de urmărire a pereților pentru a realiza optimizarea traseului.
În această lucrare, senzorii cu ultrasunete sunt adoptați și implementați într-un sistem de oprire
a robotului, astfel încât robotul să poată detecta bariera, să se oprească și să basculeze hrana animalelor
continuând-si drumul după ce bariera s-a ridicat. [fig.1.4] [8]

2.3. Line follow

Un robot de urmărire a liniei este un robot care urmează o anumită cale controlată de un
mecanism din spate.
Robotul pentru urmărirea liniei poate fi un robot mobil pe roți, cu o bază fixă, un robot mobil cu
picioare, cu mai multe corpuri rigide interconectate prin îmbinări.
Robotul ia în calcul prima poziție și o compară cu poziția în care se mișca într-o parte sau în alta, daca
aceasta eroare este mare, motoarele vor efectua o întoarcere mare. După această mișcare, dacă eroare
nu scade sau scade puțin motoarele vor vira până când robotul va găsi linia.
Senzorii pot fi poziționați oriunde ne dorim dar, în momentul când senzorul nu detectează
nicio linie, robotul se mișcă spre stânga sau dreapta încercând să găsească linia și când senzorul o
detectează, robotul își continuă traseul. Pentru o precizie mult mai bună am ales să folosesc șase
senzori pentru ca robotul să nu aibe erori și să urmarească linia tot timpul. Fig. 1.4

- 12 -
2. Descrierea componentelor

Fig. 1.4. – Senzori de linie și senzor ultrasonic

2.4. Driver de motoare

Putem controla viteza motorului DC prin simplul control al tensiunii de intrare la motor și cea mai
obișnuită metodă de a face acest lucru este prin utilizarea semnalului PWM. (modulația PWM)

Fig. 1.5. – Modul driver de motoare [9]

2.4.1. Puntea H

Un pod H este un circuit electronic care comută polaritatea unei tensiuni aplicate unei sarcini.
Aceste circuite sunt adesea folosite în robotică și alte aplicații pentru a permite motoarelor DC să
circule înainte sau înapoi.
Majoritatea convertoarelor DC-AC (convertizoare de putere), majoritatea convertoarelor AC
/ AC, convertorul DC-to-DC, majoritatea controlerilor de motoare și multe alte tipuri de electronice

- 13 -
Filofteia-Valentina VOINEA – Proiect de diplomă

de putere utilizează punțile H. În particular, un motor pas cu pas bipolar este invariabil condus de un
regulator motor care conține două punți H.
Punțile H sunt disponibile ca circuite integrate sau pot fi construite din componente discrete. [9]
Termenul H este derivat din reprezentarea grafică tipică a unui astfel de circuit. Un pod H este
construit cu patru întrerupătoare (solid-state sau mecanice). Când întrerupătoarele S1 și S4 (în
conformitate cu fig. 1.5.) sunt închise (și S2 și S3 sunt deschise), o tensiune pozitivă va fi aplicată pe
motor. Prin deschiderea întrerupătoarelor S1 și S4 și prin închiderea întrerupătoarelor S2 și S3, această
tensiune este inversată, permițând funcționarea inversă a motorului.

Fig. 1.5. – Punte H

Folosind nomenclatura din Fig. 1.5. întrerupătoarele S1 și S2 nu ar trebui să fie închise în


același timp, deoarece acest lucru ar cauza un scurtcircuit la sursa de tensiune de intrare. Același lucru
este valabil și pentru comutatoarele S3 și S4. Această condiție este cunoscută sub numele de "trage-
prin". [9]
PWM sau modulația lățimii impulsurilor este o tehnică care ne permite să ajustăm valoarea
medie a tensiunii care se deplasează la dispozitivul electronic prin pornirea și oprirea alimentării la
viteză rapidă. Tensiunea medie depinde de ciclul de funcționare sau de timpul în care semnalul este
pornit față de timpul în care semnalul este oprit într-o singură perioadă de timp.

- 14 -
2. Descrierea componentelor

Fig. 1.6. – Modulația lățimii pulsului [10]

2.5. Servomotorul

Există multe tipuri de servomotoare și principala caracteristică a acestora este capacitatea de a


controla cu precizie poziția arborelui lor. Un servomotor este un sistem cu buclă închisă care utilizează
feedback-ul poziției pentru a-și controla mișcarea și poziția finală.

Fig. 1.7. – Bucla sistemului

- 15 -
Filofteia-Valentina VOINEA – Proiect de diplomă

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
prescris 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.

Fig. 1.8. – Servomotor [11]

În interiorul unui servo hobby sunt patru componente principale, un motor DC, o cutie de
viteze, un potențiometru și un circuit de comandă. Motorul de curent continuu este de mare viteză și
un cuplu redus, dar cutia de viteze reduce viteza la aproximativ 60 rot/min și în același timp, mărește
cuplul.
Potențiometrul este atașat la angrenajul final sau arborele de ieșire, astfel încât motorul să se
rotească și potențiometrul se rotește, producând astfel o tensiune care este legată de unghiul absolut
al arborelui de ieșire. În circuitul de comandă, această tensiune potențiometrică este comparată cu
tensiunea provenită de la linia de semnal. Dacă este necesar, controlerul activează o punte H integrată
care permite motorului să se rotească în ambele direcții până când cele două semnale ating o diferență
de zero.
Un servomotor este controlat prin trimiterea unei serii de impulsuri prin linia de semnal.
Frecvența semnalului de comandă trebuie să fie de 50 Hz sau un impuls ar trebui să aibă loc la fiecare
20ms. Lățimea impulsului determină poziția unghiulară a servomotorului, iar aceste tipuri de servo-
uri se pot roti, de obicei, la 180 de grade (au limite fizice de deplasare). [11]

- 16 -
2. Descrierea componentelor

Fig. 1.9. – Controlul servo motorului [11]

2.6. Alimentarea mașinuței

Pentru alimentarea robotului trebuia sa aleg un tip de acumulatori care sa ofere o energie destul
de mare dar să aibă și o greutate acceptabilă. Cazul cel mai favorabil ar fi fost acumulatorii pe bază
de plumb care se găsesc pe piață la specificațiile 12V și 1...6A, dar din cauza că aceștia aveau o
greutate considerabilă, aproximativ 1,5 kg nu am putut opta pentru această variantă, robotul fiind prea
greu și dificil de controlat. Astfel am optat pentru acumulatori de tip Li-Ion care au o greutate mai
mică decât cei pe bază de plumb și o putere comparabilă.
Astfel am ales două celule Li-Ion de 3,7 V și 3200 mA conectate în serie.

Fig. 1.10. – Acumulatorii folosiți [12]


- 17 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Fig. 1.11. – Caracteristica de încărcare a bateriilor [13]

2.7. Motor cu reductor

Motorul folosit este un motor de CC cu perii, cu reductor care lucrează la o tensiune 6V și


160rpm. Acesta este proiectat pentru a fi încorporat cu ușurință într-o platforma de robot. Aceste
motoare sunt ieftine, mici, ușor de instalat și sunt ideale pentru utilizarea într-un robot mobil. [14]
Specificații:
Caracteristici electrice:
• Tensiune de operare: 3 ~ 7.5V
• Tensiune nominală: 6V
• Max. Curent fără sarcină (3V): 140 mA
• Max. Curent fără sarcină (6V): 170 mA
• Viteza fără sarcină (3V): 90 rpm
• Viteză fără sarcină (6V): 160 rpm

În momentul utilizării motoarelor cu reductor am hotărât să atașez pe fiecare motor câte două
condesatoare. Aceste condensatoare ajută la diminuare perturbațiilor. [14]

- 18 -
3. Poiectarea circuitului imprimat

3. Poiectarea circuitului imprimat

În capitolul urmator este prezentată proiectarea electronică a schemei.


3.1. Schema bloc

Fig. 2.0. – Schema bloc

Pentru realizarea schemei PCB-ului am avut nevoie de o schemă, aceasta am ales să fie
conceputa în programul Eagle.
Autodesk EAGLE este un software electronic de automatizare a proiectării (EDA). Permite
activarea plăcii cu circuite imprimate (PCB) să conecteze perfect diagramele schematice, amplasarea
componentelor, rutarea PCB și conținutul cuprinzător al bibliotecii.
EAGLE conține un editor schematic pentru proiectarea schemelor de circuite. Schema este
stocată în fișiere cu extensie .SCH, părțile sunt definite în bibliotecile de dispozitive cu extensia .LBR.
Părțile pot fi plasate pe mai multe coli și conectate împreună prin porturi.
- 19 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Editorul de layout PCB stochează fișierele de bord cu extensia .BRD. Aceasta permite
adnotarea înapoi la schema și rutarea automată pentru a conecta automat urmele bazate pe conexiunile
definite în schemă.

3.2. Schema complete

Schema este compusă din urmatarele module: 3 drivere se motoare DRV8870, un


microcontroler ATMEGA328PU și un regulator de tensiune în comutație TPS54302. În cele ce
urmează putem observa cum am realizat legaturile între module și componente.
Am legat la pinii microcontrolerului modulul follow line care este compus din cinci senzori
de linie.
Am legat modul senzorului ultrasonic care are rolul de a se opri robotul și de a efectua
bascularea sau încărcarea hranei pentru animale în funcție de bariera pe care o întalnește.

Fig. 2.1 – Schema completă

3.2.1 Microcontroler ATMEGA328PU

Microcontroler AVR cu 8 biți de înaltă performanță are o putere redusă.

- 20 -
3. Poiectarea circuitului imprimat

Prin executarea unui ciclu, realizează transferuri apropiate de 20 MIPS/20MHz. Acest lucru permite
proiectantului de sistem să optimizeze dispozitivul pentru consumul de energie față de viteza de
procesare.
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 două registre
independente într-o singură instrucțiune. Se obține astfel o eficiență sporită în execuție (de până la
zece ori mai rapidă decât microcontrolerele conventionale CISC).15]
Caracteristicile principale ale acestuia sunt:
• 32KB de memorie Flash reinscriptibilă pentru stocarea programelor
• 2KB de memorie interna SRAM
• 1KB de memorie EEPROM
• două numărătoare/temporizatoare de 8 biti
• un numărător/temporizator de 16 biti
• conține un modul USART pentru comunicație serială (port serial)
• tensiunea de operare:
▪ 0 - 4MHz @ 1.8V - 5.5V
▪ 0 - 10MHz @ 2.7V - 5.5V
▪ 0 - 20MHz @ 4.5 - 5.5V

În figura 2.2 urmatoare este prezentat în microcontrolerul ATMEGA328-PU și o parte din
componente. În partea de sus putem observa că în pinul 20 (AVCC) am conectat un filtru trece jos
format din două condesantoare și o bobină, acesta are rolul de a activa portul analogic și de a avea un
riplu cât mai mic. La pinul 1, în partea de jos a schemei am conectat un buton de resetare.
Se observă că în schemă avem pini de programare care fac legatura cu portul serial (RX și TX)
de la microcontroler utilizând protocolul UART pentru programarea lui.
Pentru programarea microcontrolerului am folosit inițial Arduino pentru a scrie codul și pentru
a face corecturile necesare. După ce codul a fost corectat am folosit programerul FT232RL pentru a-
l transmite.
Modulul convertor USB la Serial se bazează pe circuitul integrat FT232RL. De cele mai multe
ori, modulul este folosit pentru a conecta la computer un microcontroler sau o placuță de dezvoltare.
Produsul convertește semnalele din protocolul USB la protocolul Serial și invers. Poate lucra atât pe
nivelul logic de 3.3V, cât și pe cel de 5V (tensiunea este selectabilă prin jumper).
- 21 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Poate fi conectat la computer folosind mufa Mini USB.

Fig. 2.2 – Schema microcontroler

3.2.2 UART

Un UART (Universal Asynchronous Receiver / Transmitter) este un microcip cu programare


care controlează interfața unui computer cu dispozitivele sale atașate. În mod specific, acesta
furnizează computerului interfața RS-232C Data Terminal Equipment (DTE), astfel încât să poată
"vorbi" și să facă schimb de date cu modemuri și alte dispozitive seriale. [16]
În esență, UART acționează ca un intermediar între interfețele paralele și seriale. Pe un capăt
al UART-ului este o magistrală de linii de date opt sau mai multe (plus pinii de control), pe de altă
parte sunt cele două fire seriale:
➢ Un receptor (Rx) care convertește un flux serial de biți în date paralele (cuvinte);
➢ Un transmițător (Tx) care convertește date paralele într-un flux serial de biți, pentru transmisie.
Pe măsură ce R și T dictează acronimul, UART-urile sunt responsabile pentru trimiterea și
primirea datelor seriale. Pe partea de transmisie, un UART trebuie să creeze pachetul de date - să
atașeze biți de sincronizare și de paritate - și să trimită pachetul din linia TX cu un timp precis (în
funcție de rata baud setată). La sfârșitul recepției, UART trebuie să eșantioneze linia RX la rate în
funcție de rata de baud estimată, să selecteze biții de sincronizare și să scurgă datele. [17]

- 22 -
3. Poiectarea circuitului imprimat

Fig. 2.3 – Interfață UART simplificată - paralel pe un capăt, serial pe celălalt.

3.2.3. Driver de motoare

Driverul de motoare DRV8870, conține trei circuite integrate de la Texas Instruments care
conțin fiecare cate un H-bridge pentru a comanda fiecare parte de motoare: un ciruit este utilizat pentru
roțtile din partea sânga (două motoare), al doilea este folosit pentru roțile din dreapta și al treilea
circuit este folosit pentru realizarea bascularii hranei animalelor.
Circuitele integrate sunt doua DRV8870 ideale pentru aplicații în care se utilizează motoare DC cu
perii.
Circuit integrat are două intrări logice ce controlează H-bridge driverului, care este format din
patru tranzistoare de tip N MOSFET-uri care pot controla motoare bidirecțional cu un curent de vârf
până la 3.6A.
Intrările pot fi PWM (modelarea lățimii pulsului) pentru a controla viteza motorului.
Driverul DRV8870 dispune de o reglementare integrată a curentului, bazată pe intrarea analogică
VREF și pe tensiunea pe pinul ISEN, care este proporțională cu curentul motorului printr-un rezistor
de sens extern.
Driverul este protejat în totalitate de defecțiuni și scurtcircuite, inclusiv subtensiune (UVLO),
supracurent (OCP) și supratemperatură (TSD). Când starea defecțiunii este eliminată, aparatul reia
automat funcționarea normal.
- 23 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Pentru realizarea acestei parți de circuit am folosit două rezistențe de 0,56Ω în paralel, astfel
rezistența echivalentă fiind de 0,28Ω. Am folosit ca și conector (Dump din Fig. 2.4.), terminale cu
șurub la ieșirea din driverele către motoare.
Pentru calcularea șuntului am folosit următoarele formule:
=5V

=10 (conform foii de catalog)

=1.8A

= = = 0.277 Ω

 = 0.28 Ω

Puterea disipată pe rezistorul de șunt:

P= * = * =0.91 W

Din motive economice am ales să folosesc două rezistențe conectate în paralel, care au
valoarea de 0,56 Ω, iar rezistanța echivalentă fiind aceeași și capabilitatea de disipare a unei puteri de
500mW pe rezistor, rezultând puterea disipată echivalentă pe cei doi rezostori de 1W, acoperind
necesarul de 0.91 W de disipare.

Fig. 2.4 – Un singur driver de motoare

- 24 -
3. Poiectarea circuitului imprimat

3.2.4. Regulator de tensiune în comutație

Pentru a putea alimenta la 5V, am folosit un regulator de tensiune în comutatie de la Texas


Instruments, un TPS54302, un regulator de tensiune foarte eficient și redus ca dimensiuni.

Calculul componentelor regulatorului de tenisune

Date foia de catalog:

𝑉𝐹𝐷 = 1V 𝑉𝑜𝑢𝑡 =5V

𝑉𝐼𝑁𝑚𝑖𝑛 =6.4V 𝑉𝐼𝑁𝑚𝑎𝑥 =9V

𝑓𝑆𝑊 =400KHz

Estimarea ciclului de funționare


𝑉𝑜𝑢𝑡 + 𝑉𝐹𝐷 5+1
𝐷𝑚𝑎𝑥 = 𝑉 = 6.4+4 = 0.81
𝐼𝑁𝑚𝑖𝑛 + 𝑉𝐹𝐷
𝑉𝑜𝑢𝑡 + 𝑉𝐹𝐷 5+1
𝐷𝑚𝑖𝑛 = 𝑉 = 9+4 = 0.6
𝐼𝑁𝑚𝑎𝑥 + 𝑉𝐹𝐷

Am impus curentul maxim de ieșire:

𝐼𝑜𝑢𝑡 = 2A

𝑉𝑜𝑢𝑡 + 𝑉𝐹𝐷 5+1


δ=𝑉 = 9+1 = 0.6
𝐼𝑁𝑚𝑎𝑥 + 𝑉𝐹𝐷

Riplul vârf la vârf:

60 60
𝐼𝐿𝑅𝐼𝑃𝑚𝑎𝑥 = 𝐼𝑜𝑢𝑡 = ∗2= 1.2A
100 100

Inductanța maximă pentru riplul de 1.2 A:

𝑉𝐼𝑁𝑚𝑎𝑥 + 𝑉𝑜𝑢𝑡 1 9+5 1


𝐿𝑚𝑖𝑛 = 𝐷𝑚𝑖𝑛 𝑓 = * 0.6 * 400∗103 = 5µH
𝐼𝐿𝑅𝐼𝑃𝑚𝑎𝑥 𝑆𝑊 1.2
- 25 -
Filofteia-Valentina VOINEA – Proiect de diplomă

 Am ales o bobină L1 = 6.8µH


𝑉𝐼𝑁𝑚𝑎𝑥 − 𝑉𝑜𝑢𝑡 1 9−5 1
𝐼𝑅𝐼𝑃𝑃𝐿𝐸 = 𝐷𝑚𝑖𝑛 𝑓 = 6.8∗10−6 * 0.6 * 400∗103 = 0.88 A
𝐿1 𝑆𝑊

RMS – Curentul prin bobină:

1 1
𝐼𝐿𝑟𝑚𝑠 = √(𝐼𝑜𝑢𝑡 2 + 𝐼 2
) = √(22 + 12 0.882 )= 2.016 A
12 𝑅𝐼𝑃𝑃𝐿𝐸

Vârful de curent prin bobină:

1 1
𝐼𝐿𝑟𝑚𝑠 = 𝐼𝑜𝑢𝑡 + 2
* 𝐼𝑅𝐼𝑃𝑃𝐿𝐸 = 2+ 2
* 0.88= 2.44 A
Este necesar un curent rms de 2A și o valoare de saturație minimă de 2.44 A

Condesatorul de la iesirea regulatorului de tensiune:

∆𝑉𝑜𝑢𝑡 = 0.05 * 𝑉𝑜𝑢𝑡 = 0.05 * 5 = 0.25 V


2 ∗ 𝐼𝑜𝑢𝑡
𝐶𝑜𝑢𝑡 >
𝑓𝑆𝑊 ∗ 𝑉𝑜𝑢𝑡

2∗2
𝐶𝑜𝑢𝑡 >
400∗103 ∗ 0.25

𝐶𝑜𝑢𝑡 > 40 µF

 Am ales un condensator de 47 µF
Consesatoarele de la intrarea în regulatorul de tensiune au fost alese pe baza foii de cataog:
C5 = 10 µF
C6 = 100 nF

Rezistentele pentru setarea tensiunii de ieșire:

Am ales rezistenta R3 =100 kΩ


 R4 trebuie calculat
- 26 -
3. Poiectarea circuitului imprimat

𝑉𝐹𝐵 = 0.596 V (valoare catalog)

𝑅3 + 𝑉𝐹𝐵 100∗103 ∗ 0.596


R4 = = = 12.96 kΩ
𝑉𝑜𝑢𝑡 − 𝑉𝐹𝐵 5 − 0.596

 Am ales o rezistenta de 13.7 kΩ


Condesantorul de alimentare:

5.1 5.1
f0 = = = 21.7 kHz
𝑉𝑜𝑢𝑡 ∗ 𝐶𝑜𝑢𝑡 5 ∗ 47∗10−6
1 1
C8 > *
2∗ 𝜋 ∗ 𝑓0 𝑅3

1 1
C8 > *
2∗ 𝜋 ∗ 21.7∗103 100∗103

C8 >15.6 pF

 Am ales condensatorul C8 = 22pF

Fig. 2.5 – Regulatorul de tensiune

Pentru a putea vedea cum se comportă am folosit simulatorul de la Texas Instruments,


Webench.
În urma simularilor cu Webench, instrumentul de la Texas Instruments, am avut un randament de
93.70% și o putere totală disipată de până 674.64 mW pe regulator. Puterea disipată este benefică
pentru sistemul realizat pentru că avem un consum de energie cât mai mic.
Cu ajutorul programului Webench am realizat câteva simulari în ceea ce privește regulatorul
ales:
- 27 -
Filofteia-Valentina VOINEA – Proiect de diplomă

a) b)

c) d)
Fig. 2.6 – Simulare
a) Start up; b) input transiet; c) load transient; d) stare de echilibru

În figura 2.3 a) pornirea – Caracteritica arată timpul în care ajunge tensiunea la 5V, ajunge la
5V în timp de 6 msec.
În figura 2.3 b) intrare tranzitorie – Tensiunea de ieșire care după oscilațiile pe care le are, ajunge să
se stabilizeze în aproximativ 2 msec.
În figura 2.3 c) sarcina tranzitorie – Încărcarea răspunsului tranzitoriu este caracteristica
răspunsului la o fluctuație de sarcină bruscă, adică timpul până când tensiunea de ieșire revine la o
valoare prestabilită după ce a scăzut sau a crescut și forma de undă a tensiunii de ieșire.

- 28 -
3. Poiectarea circuitului imprimat

În figura 2.3 d) stare echilibrată – starea de echilibru este condiția de echilibru a circuitului
care are loc deoarece efectele tranzitorilor nu mai sunt importante.

În imaginile următoare sunt prezetate graficele pentru ciclul de funționare si pentru eficiență
la diferite valori ale tensinii de intrare.

a) b)
Fig. 2.7 –Simulare
a) Ciclu de functionare; b) eficienta (pe scare logaritmica)

3.3. Layout ciruitului imprimat

După finalizarea schemei electronice și după ce am verificat schema de mai multe ori pentru
a avea cât mai puține greșeli, am început asezarea componentelor pe “board”.
Pentru a putea fi cât mai compact, pentru un aspect plăcut și pentru a-l face cât mai intuitiv și
mai ușor de înțeles am așezat componentele și am realizat traseele atât pe partea de sus a plăcuței cât
și pe partea de jos a cesteia.
În proiectarea plăcuței am folosit diferite reguli de proiectare: pentru trasee am folosit unghiuri
de 45º și au fost dimensionate în funcție de puterea transportată.

- 29 -
Filofteia-Valentina VOINEA – Proiect de diplomă

În ceea ce privește traseele am folosit grosimi diferite pentru a putea face diferența între ele.
Astfel, traseele de conexiune au fost create cu grosimea de 0.4mm, iar pentru traseele de 5V am folosit
grosimea de 1.27mm. Pentru traseul de la baterie am folosit un polygon pentru a putea sa fie distribuită
cât mai uniform puterea și pentru a nu se încălzi plăcuța.
La nivel de module pe partea de sus a plăcuței se regăsesc: regulatorul de tensiune, driverele
de motoare și microcontrolerul ATMEGA328-PU.

a) b)

Fig. 2.8 – Layout PCB

a) privirea de sus b) provirea de jos

Pentru a ne a asigura că vom avea un curent de intrare de la baterie cât mai mare și o putere de
disipare pe rezistențele de limitare a curentului pe driverele de motoare am decis să plasăm și pe partea
de jos a plăcuței trei componenete:
- O diodă conecată în paralel cu cea de pe top, dublând astfel capacitatea de tracere a curentului;

- 30 -
3. Poiectarea circuitului imprimat

- două rezistanțe de la driverele de motoare pe care nu le-am putut plasa pe partea de top din
cauza polygonului de alimentare de la baterie pentru drivere, conectate în paralel pentru a avea
o putere de disipare de 1W.
În cazul diodelor am folosit două diode Schottky (pentru că au o cadere de tensiune mică) ca
să poată trece un curent mai mare prin ele.
Dioda Schottky este o diodă formată dintr-o joncțiune metal-semiconductor, la fel ca și dioda
cu contact punctiform. Capacitatea acestei joncțiuni este foarte mică, ceea ce înseamnă că dioda poate
lucra la frecvențe înalte. Un alt avantaj al joncțiunii metal-semiconductor față de joncțiunea
semiconductor-semiconductor folosită la diodele convenționale este căderea mică de tensiune, numai
0,3 V față de 0,6 V cât este în cazul unei diode din siliciu.[18]
Avantajele diodei Schottky:

✓ Are un timp de recuperare rapid datorită cantității foarte mici de încărcare stocată.
Deci, această diodă este utilizată pentru aplicația de comutare de mare viteză.
✓ Are tensiune redusă.
✓ Are capacitate joasă de joncțiune.
✓ Căderea de tensiune este scăzută.

3.4. Necesarul de materiale

În timpul realizării schemei a trebuit să aleg fiecare componentă de pe placuță în funcție de


cerințele pe care trebuie să le îndeplinească. A trebuit să iau în considerare dimensiunea componenței
și de faptul că trebuie să caut și să gasesc exact componentele pe care le-am ales în schemă. Această
etapă prezintă o importanță foarte mare deoarece fiecare componentă aleasă are un „foot print”
imprimat pe placuță care trebuie respectat cu strictețe. În cazul în care componenta este mai mare
decât ce am ales inițial (decât foot printul ), în momentul în care trebuie lipită, aceasta nu se mai
încadrează în parametrii, adica în chenarul prestabilit.
Luând cele de mai sus în considerare, pentru cumpărarea componentelor am consultat mai
multe site-uri pentru avea un cost cât mai scăzut cu aceleași performanțe. După ce am ales aceleași
componente de mai mult multe site-uri am putut să fac o comparație de preturi între ele și am ales
oferta cea mai convenabilă. Fig 2.9 arată ultimul fișier cu necesarul de materiale (bill of material) pe
care l-am facut în funcție de cerințe.
- 31 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Fig. 2.9 – BOM Farnell

După finalizarea fișierului necesarului de materiale și după ce a ajuns coletul, am început


popularea PCB-ului cu componemte. Lipirea componentelor a fost realizată cu mare atenție cu
ajutorul unei stații de lipit. Se poate observa în Fig. 3.0. faptul că, componentele nu sunt lipite perfect
și că există anumite greșeli/ defecte.
Cea mai evidentă greseală este reprezentată de existența unui fir legat pe placuță. Din cauza
unor erori ale programului Eagle, nu s-a făcut conexiunea între simbolul de 5V de la microcontroler
și traseu, rămânând astfel microntrolerului fără alimentare. În acest caz nu am mai avut o altă variantă
mai bună de rezolvare a problemei și am ales să leg un fir pentru a face conexiunea.

- 32 -
3. Poiectarea circuitului imprimat

Fig. 2.10 – Layout PCB

a)privirea de sus b) provirea de jos

- 33 -
Filofteia-Valentina VOINEA – Proiect de diplomă

4. Mediul de dezvoltare

În cadrul acestui capitol se prezintă mediul de dezvoltare utilizat, structura programului în


Arduino IDE, a funcțiilor utilizate și comunicarea între aplicația software și microcontroler.

4.1. Arduino IDE

Arduino este o companie open-source care produce atât plăcuțe de dezvoltare bazate pe
microcontrolere, cât și partea de software destinată funcționării și programării acestora. Pe lângă
acestea include și o comunitate uriașă care se ocupă cu creația și distribuirea de proiecte care au ca
scop crearea de dispozitive care pot sesiza și controla diverse activități sau procese în lumea reală
Arduino având ca țintă asigurarea unei soluții ieftine și simple pentru începători și profesioniști
spre a crea dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare.
Cele mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboții simpli,
termostatele și/sau detectoarele de mișcare.
Sistemul de bariere este bazat pe designul plăcilor cu microcontroler produse de câțiva
furnizori, folosind diverse tipuri de microcontrolere. Aceste plăci pun la dispoziția utilizatorului pini
I/O, digitali și analogici, care pot fi interfațați cu o gamă largă de plăcuțe numite scuturi (shield-uri)
și/sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru
a încărca programe din calculatorele personale. Pentru programarea microcontrolerelor, Arduino vine
cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, care include suport pentru
limbaje de programare ca C și C++.
În PCB-ul robotului a fost integrat și un microcontroler din familia ATMEGA, același
microcontroler ca cel de pe Arduino UNO, adica ATMEGA328P. PCB-ul nu are interfață de
comunicare serială (USB), iar pentru încărcarea aplicației dezvoltate în Arduino IDE am folosit un
programer. [19]

- 34 -
4. Mediul de dezvoltare

Fig. 3.0 – Layout PCB

4.2. Structura programelor în Arduino IDE

În prima parte a programelor am declarat librăriile pentru senzorii de linei și pentru servo-
motor. Apoi au fost definiți pinii pentru fiecare componentă, variabilele pentru funcții și
servomotoare. După definirea pinilor, am setat intrările și iesirile pe pini de la Arduino și
microcontrolerul ATMEGA 328P.
Programul arduino pentru robot este structurat pe 3 funcții:
1. Senzor follow line
2. Sensor utrasnic
3. Descărcarea hranei
Programul arduino pentru sistemul de bariere poate fi structurat pe mai multe funcții, acestea
variind cu numărul de cuști existente în adăpost. Prin crearea acestei structuri, sistemul oferă
posibilitatea de a face modificări foarte ușor în funcție de nevoile pe care le are fiecare adăpost.

4.3. Conceptul de follow line

Pentru a putea controla mișcarea de deplasare a robotului am folosit conceptul de line follow.
Algoritmul este singurul lucru care determină performanța unei linii urmând un robot mai mult decât
orice altceva. Algoritmul cel mai de bază este cel care utilizează un singur senzor. Dezavantajul
acestei metode este că linia următoare nu este netedă. Robotul continuă să se miște la stânga și la
dreapta pe pistă, pierzând timp și micșorându-se autonomia. O modificare a acestei metode este de a

- 35 -
Filofteia-Valentina VOINEA – Proiect de diplomă

adăuga mai mulți senzori, de aceea am utilizat cinci senzori, doi pe partea stângă, doi pe partea dreaptă
și unul central, pentru a avea o precizie cât mai bună și pentru erori cât mai mici.

Principalul avantaj este acela ca robotul va urma linia păstrând liniștit centrul său întotdeauna
deasupra liniei. În linii drepte, robotul se va stabiliza treptat și va merge drept, spre deosebire de un
robot cu un singur senzor. Aceasta permite robotului să urmărească linia mai repede și mai eficient.
Algoritmul de calcul este urmatorul:
SumLeft = suma senzorilor de pe partea dreaptă și a celui din centru;
SumRight = suma senzorilor de pe partea stângă și a celui din centru;
SumDifference = SumLeft – SumRight;

Pe lângă follow line am folosit și alte componente în controlul proiectului care au un rol foarte
important:
- senzorul de distanță cu ultrasunete
- barierele montate la fiecare cușcă din adăpost.

4.4. Senzorul ultrasonic

Senzorul ultrasonic are rolul de a detecta când o barieră este coborâtă (atunci când mancarea
s-a terminat) și de a opri în dreptul recipientului de aprovizionare cu hrană a cuștii respective sau de
a detecta bariera de la zona de încărcare cu hrană și apoi executând bascularea sau astepând încărcarea
mâncării.
În acest caz algoritmul de funcționare este acela de a citi regulat distanța, iar atunci cand
această disțantă este mai mică decât 5 cm se incrementează o variabilă cu vaoarea 1. În momentul
când variabila este impară, robotul va aștepta încărcarea cu hrană, urmând să își continue deplasarea
după ridicarea barierei până la prima barieră coborâtă. La întâlnirea următoarei bariere coborâte,
variabila incrementându-se cu 1, devine pară, ceea ce înseamnă că robotul trebuie să se oprească
pentru a descărca hrana.
După descărcarea hranei și ridicarea barierei, robotul se va deplasa din nou spre zona de
încărcare cu hrană, urmând să aprovizioneze cu hrana urmatoarea cușcă.

- 36 -
4. Mediul de dezvoltare

4.5. Software

Pentru că am folosit două microcontrolere: controlul robotului și controlul barierelor, au fost


create două coduri pentru fiecare.
Codul pentru controlul robotului, este compus din două funcții relatate în urmatoarele două
subcapitole

4.5.1. Codul pentru urmărirea liniei

Fig. 3.1 – Cod funcționare

- 37 -
Filofteia-Valentina VOINEA – Proiect de diplomă

Funcția de line follow va fi prezentată în figura 3.1. Pentru funcția de line follow, vom citi pe
intrările analogice valoarea transmisă de senzorii de linie cu infraroșu.

Pentru a putea controla mai ușor PWM-ul trimis la roțile robotului am folosit urmatorul
algoritm:

-Am calculat suma pentru fiecare parte de senzori:


SumLeft = (right_sen1.read() + right_sen2.read() + center_sen.read());
SumRight = (center_sen.read() + left_sen2.read() + left_sen1.read());

-Am calculat diferența dintre cele două sume:


SumDifference = (SumLeft - SumRight);

-În funcție de rezultatul diferenței am avut 5 cazuri:


i.Forward: PWM-ul și sensul de mers vor fi aceleași pentru toate roțile robotului și sensul de mers;
ii.SlightRight: sensul de rotație al roților va fi același, iar PWM-ul va fi mai mic pentru roțile de pe
partea dreaptă;
iii.HardRight: sensul de rotație al rotilor va fi opus, roțile de pe partea dreaptă se vor roți pe direcția
de mers înapoi a mașinuței, iar PWM-ul va fi mai mic pentru roțile din dreapta;
iv.SlightLeft: sensul de rotație al roților va fi același, iar PWM-ul va fi mai mic pentru roțile de pe
partea stângă;
v.HardLeft: sensul de rotație al roților va fi opus, roțile de pe partea stângă se vor roti pe direcția de
mers înapoi a mașinuței, iar PWM-ul va fi mai mic pentru roțile din stânga;

Diagrama bloc a funcției de încărcare și descărcare a hranei pentru animale va fi prezentată


în figura 3.2.
4.5.2. Codul pentru controlul încărcării și descărcării hranei pentru animale.

- 38 -
4. Mediul de dezvoltare

Fig. 3.2 – Cod descărcare hrană

Pentru a calcula distanța, vom folosi formula:


𝑑𝑢𝑟𝑎𝑡𝑖𝑜𝑛
distance = = 29.1
2

Variabila „distance” reprezintă timpul de la transmiterea semnalului ultrasonic până la


recepționarea acestuia.

Dacă distanța este mai mică de 5 cm, se va incrementa o variabilă “count”, iar în funcție de valorile
variabilelor count vom avea două cazuri:
• Atunci când variabila count nu este divizibilă cu 2 și senzorii de line follow văd toți linia
neagră, robotul se va opri și va aștepta să fie încărcată cu hrană.
• Atunci când variabila count este divizibilă cu 2, iar senzorii de line follow nu văd toți linia
neagră, robotul se va opri și va începe descărcarea hranei. După terminarea descărcării
hranei, va aștepta ca bariera să se ridice pentru a putea continua deplasarea.

- 39 -
Filofteia-Valentina VOINEA – Proiect de diplomă

4.5.3 Codul pentru controlul barierelor și a încărcării cu hrană a robotului

Pentru a acționa ridicarea sau coborârea barierelor și a mecanismului de încărcare cu hrană


am folosit servomotoare.
Codul a fost structurat în mai multe funcții identice, câte o funcție pentru fiecare cușcă. Iar
în void loop() se vor executa toate funcțiile în ordinea numerelor cuștilor, iar după fiecare funcție
a unei cuști bariera de la zona de încărcare cu hrană va coborî.

Un exemplu de funcție este urmatorul:

void barieraX () {
SM_bariera_mancare.write(0); //bariera de la zona de aprovizionare cu hrană coboară
SM_bariera_cusca_X.write(0); //bariera de la cușcă cu numarul X coboară
delay(1000);
SM_incarcare_mancare.write(90); //mecanismul de aprovizionare cu hrană se deschide și
începe aprovizionarea robotului cu hrană
delay(1500);
SM_incarcare_mancare.write(0); //mecanismul de aprovizonare cu hrană se închide, robotul
este încărcat cu hrană
delay(1000);
SM_bariera_mancare.write(90); //bariera de la zona de aprovizionare cu hrană se ridică, iar
robotul începe să meargă spre cuscă pentru a descărca hrana.
delay(2000);
SM_bariera_cusca_X.write(90); //bariera de la cușca X se ridică după ce robotul a terminat
de descărcat hrana, el urmând să meargă la zona de aprovizionare cu hrană pentru a putea
aproviziona restul cuștilor
delay(1000);
}

- 40 -
5. Concluzii

5. Concluzii

Datorită dezvolatrii rapide a sistemelor actuale de informare și comunicare, roboții sunt


proiectați pe a fi utilizați pe scară largă și pe scară mică în toate domeniile vieții cotidiene și ale
industriei. Acestea sunt folosite pentru a reduce dependetele umane în îndeplinirea unei sarcini și
pentru a reduce timpul de producție, menținând în același timp o calitate constantă a producției.
Această lucrare încearcă să arate faptul că oamenii pot să își ușureze munca și să își salveze
timpul dacă își doresc să accepte tehnologia în viața lor. Implementarea acestui prototip are scopul
de a arăta că se poate realiza orice pentru a ne face viața mai ușoară, problemele care intervin sunt
multiple dar dacă se dorește realizarea fizică a unor astfel de roboți, lucrurile se pot îmbunătații cu
ușorință. Începând de la faptul că robotul ar trebui să aibe o dimensiune mai mare pentru a putea
căra destulă mâncare, se poate schimba mecanismul de basculare a mâncării cu unul mult mai
rezistent iar în ceea ce privește sistemul de barieră proiectat, acest lucru poate fi îmbunătățit prin
adăugarea unui sistem de recunoaștere a barierelor mai evoluat, cum ar fi sistemul de citire a
codurilor de bare sau un tip de identificare RFID. Hrănirea se poate efectua la un intervel de timp
prestabilit. O altă imbunătațiere ar fi ca robotul să se poată încărca singur, asfel, el funcționând
constant fără a fi nevoie de o peroană care facă această activitate.
Obiectivul principal al acestui proiect este dezvoltarea și implementarea unui vehicul robot
autonom care alimentează automat animalele găsite într-un adăpost pentru animale. Astfel,
resursele umane și financiare, timp, energie sunt optimizate. Concepția greșită a faptului că roboții
sunt complicați și prea costisitori pentru implementare este invalidată. Roboții relativ ieftini ar
putea fi implementați.
Actuala tendință mondială a oamenilor este să includă și să accepte roboții în viața lor și să
înțeleagă că ei ajută. În ceea ce privește sistemul de barieră proiectat, acest lucru poate fi
îmbunătățit prin adăugarea unui sistem de recunoaștere a barierelor mai evoluat, cum ar fi sistemul
de citire a codurilor de bare sau un tip de identificare RFID.

- 41 -
Filofteia-Valentina VOINEA – Proiect de diplomă

6. Rererințe

[1] – Mobile robot - de la Wikipedia, enciclopedia liberă [online]. [2019] [citat 01.06.2019];
Avaible from:
URL: https://en.wikipedia.org/wiki/Mobile_robot
[2] – Robotics - From Wikipedia, the free encyclopedia[online]. [2019] [citat 01.06.2019]; Avaible
from:
URL: https://en.wikipedia.org/wiki/Robotics
[3] – T. Mohammad Baloch and Timothy Thien Ching Kae, "Design and modelling a prototype
of a robotic lawn mower," 2008 International Symposium on Information Technology, Kuala
Lumpur, 2008, pp. 1-5.
[4] – Price Runner, „Top 22 best robotic lawn mowers of 2019.” [online]. [31 mai, 2019] [citat
01.06.2019]; Avaible from:
URL: https://www.pricerunner.com/test/robotic-lawn-mower
[5] – Rohan Juneja, „Ball Tracking Robot.” [online]. [5 ianuarie, 2016] [citat 02.06.2019]; Avaible
from:
URL: https://create.arduino.cc/projecthub/junejarohan/ball-tracking-robot-
7a9865?ref=tag&ref_id=robot&offset=8
[6] –
https://www.google.com/search?q=ingeniously+continental&source=lnms&tbm=isch&sa=X&ve
d=0ahUKEwiswuvi3fPiAhVwSxUIHU3pBwwQ_AUIECgB&biw=1366&bih=657#imgrc=4JfD
rVDiMuJAOM:
[7] – DFRobot - Pirate: 4WD Arduino Mobile Robot Kit with Bluetooth 4.0
URL: https://www.dfrobot.com/product-116.html
[8] – Fut-electronic Tech Co., Limited, Blue Ultrasonic Sensor,
URL: https://fut688.en.made-in-china.com/
[9] -
https://www.google.com/search?q=driver+de+motoare+pwm&source=lnms&tbm=isch&sa=X&
ved=0ahUKEwj56OqH3_PiAhUPKuwKHW5mAuEQ_AUIECgB&biw=1366&bih=657#imgrc
=i-urSDWQg4GXsM:

- 42 -
6. Rererințe

[9 ] – Tolga Özer, Sinan Kıvrak, Yüksel Oğuz, „H Brıdge DC Motor Drıver Desıgn and
Implementatıon with Usıng dsPIC30f4011”, Mai 2017, International Journal of Innovative
Research in Science, Engineering and Technology, [citat 18.06.2019]
URL:https://www.researchgate.net/publication/317225711_H_Bridge_DC_Motor_Driver_Desig
n_and_Implementation_with_Using_dsPIC30f4011?fbclid=IwAR0AQ_D8muv2zRe15Iloql1mw
i38REwsLn9To0Xs-eAAlSRN1ynzHsz9_00
[10] –HOW TO MECHATRONICS, Arduino DC Motor Control Tutorial – L298N | PWM | H-
Bridge 2019
URL: https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-control-tutorial-l298n-
pwm-h-bridge/
[11] – HOW TO MECHATRONICS, How Servo Motors Work & How To Control Servos using
Arduino, 2019 [citat 14.04.2019]
URL:https://howtomechatronics.com/how-it-works/how-servo-motors-work-how-to-control-
servos-using-arduino/
[12]
URL:https://www.google.com/search?q=ncr18650b&tbm=isch&source=iu&ictx=1&fir=_rZyq1
SzJ3j-1M%253A%252CExk1Z_FPi-Zd1M%252C_&vet=1&usg=AI4_-
kSFrjpg1XRiLQUNUWRv4jR49_dLQA&sa=X&ved=2ahUKEwiRz5ady_PiAhWG16QKHZtC
BMUQ9QEwD3oECAUQBA#imgrc=B5xVtRh3Gm5RMM:&vet=1
[13] – Catalog baterii
URL: http://pdf1.alldatasheet.com/datasheet-
pdf/view/597043/PANASONICBATTERY/NCR18650B.html
[14] – DFRobot – Drive the Future, TT Geared Motor with Back Shaft (160rpm 6v L Shape),
URL: https://www.dfrobot.com/product-100.html
[15] – foaie de catalog
URL: https://datasheet.lcsc.com/szlcsc/Microchip-Tech-ATMEGA328P-PU_C33901.pdf
[16] – Margaret Rouse, „UART (Universal Asynchronous Receiver/Transmitter)”
URL:https://whatis.techtarget.com/definition/UART-Universal-Asynchronous-Receiver-
Transmitter
[17] – Serial Port Complete – Programming and circuits for RS-232 and RS-485 Link and
Networks, Jon Axeson, 1998, Puplicat de Lakeview Research [ citat 29.05.2019]

- 43 -
Filofteia-Valentina VOINEA – Proiect de diplomă

URL:http://markswist.com/markpersonal/ebooks/Serial%20Port%20Complete%20-
%20Jan%20Axelson.pdf
[18] – “Schottky Diodă”, RIVERGLENNAPTS, [citat 03.05.2019]
URL: https://riverglennapts.com/ro/diode/305-schottky-diode.html
[19] – Alan G. Smith, “Introduction to Arduino”, Septembrie 30, 2011, [citat 1.05.2019]

- 44 -
Anexe

Anexe
#include <RedBot.h>

#include <RedBotSoftwareSerial.h>

// setarea pinilor senzorului de linie

RedBotSensor left_sen2 = RedBotSensor(A0);

RedBotSensor left_sen1 = RedBotSensor(A1);

RedBotSensor center_sen = RedBotSensor(A2);

RedBotSensor right_sen1 = RedBotSensor(A3);

RedBotSensor right_sen2 = RedBotSensor(A4);

//setarea pinilor drivelor de motoare

const int direction1motorA = 5;

const int direction2motorA = 6;

const int direction1motorB = 10;

const int direction2motorB = 11;

//setrea pinilor driver de basculare

const int AIA = 8;

const int AIB = 9;

// searea pinilor senzorului ultrasonic

const int trigPin = 3;

const int echoPin = 2;

// initilizarea variabilelor

int count = 0;

long duration;

int distance;

- 45 -
Filofteia-Valentina VOINEA – Proiect de diplomă

int SumLeft = 0;

int SumRight = 0;

int SumDifference = 0;

int Last = 0;

void setup()

delay(500);

// setarea pinilor de intrare / iesire

pinMode(direction1motorA, OUTPUT);

pinMode(direction2motorA, OUTPUT);

pinMode(direction1motorB, OUTPUT);

pinMode(direction2motorB, OUTPUT);

pinMode(AIA, OUTPUT); // set pins to output

pinMode(AIB, OUTPUT);

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output

pinMode(echoPin, INPUT); // Sets the echoPin as an Input

Serial.begin(9600);

delay(1000);

void LinieSenz() {

Serial.print(left_sen2.read());

- 46 -
Anexe

Serial.print("\t");

Serial.print(left_sen1.read());

Serial.print("\t");

Serial.print(center_sen.read());

Serial.print("\t");

Serial.print(right_sen1.read());

Serial.print("\t");

Serial.print(right_sen2.read());

Serial.println();

//calcularea sumelor pentru urmarirea liniei

SumRight = (right_sen1.read() + right_sen2.read() + center_sen.read());

SumLeft = (center_sen.read() + left_sen2.read() + left_sen1.read());

SumDifference = (SumRight - SumLeft);

Serial.print(SumLeft);

Serial.print('\t');

Serial.print(SumDifference);

Serial.print('\t');

Serial.print(SumRight);

Serial.println();

// atribuirea in functie de valoarea diferentei dintre sume a functiilor de directionare a robotului

if (abs(SumDifference) < 300) {

Forward();

Serial.println("Forward");

- 47 -
Filofteia-Valentina VOINEA – Proiect de diplomă

if ((SumDifference > 300) && (SumDifference < 700)) {

SlightRight();

Last = 1;

Serial.println("Slight Right");

if (SumDifference >= 700 ) {

HardRight();

Last = 1;

Serial.println("Hard Right");

if ((SumDifference < -300) && (SumDifference > -700)) {

SlightLeft();

Last = 2;

Serial.println("Slight Left");

if ((SumDifference) <= -700) {

HardLeft();

Last = 2;

Serial.println("Hard Left");

if ((SumLeft < 120) && (SumRight < 120)) {

if (Last == 1) {

HardRight();

if (Last == 2) {

HardLeft();

- 48 -
Anexe

void SenzUltra() {

digitalWrite(trigPin, LOW);

delayMicroseconds(5);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration / 2) / 29.1;

void Oprire_bariera() {

// setarea distantei pentru oprirea la intalnirea unei bariere

if ((distance < 5) && (distance > 1))

{ count++;

// conditia de descarcare a hranei

if ((count % 2 == 0) && (SumRight < 1100) && (SumLeft < 1100)) {

Stop();

delay(500);

sus(); //18,5 secunde

delay(3000);

pauza();

delay(2000);

jos(); //18,5 secunde

- 49 -
Filofteia-Valentina VOINEA – Proiect de diplomă

delay(2500);

pauza();

delay(2500);

// conditia de incarcare a hranei

if ((count % 2 != 0) && (SumRight > 1200) && (SumLeft > 1200))

Stop();

Serial.println("Stop");

delay(2500);

void loop()

LinieSenz();

SenzUltra();

Oprire_bariera();

// comanda de mers inainte si setarea vitezei de deplasare a robotului

void Forward() {

analogWrite(direction1motorA, 60);

digitalWrite(direction2motorA, LOW);

analogWrite(direction1motorB, 60);

digitalWrite(direction2motorB, LOW);

- 50 -
Anexe

// comanda de virarea puternic la dreapta

void HardRight() {

digitalWrite(direction1motorA, LOW);

analogWrite(direction2motorA, 30);

analogWrite(direction1motorB, 100);

digitalWrite(direction2motorB, LOW);

// comanda de virarea usor la dreapta

void SlightRight() {

analogWrite(direction1motorA, 0);

digitalWrite(direction2motorA, LOW);

analogWrite(direction1motorB, 120);

digitalWrite(direction2motorB, LOW);

// comanda de virarea puternic la stanga

void HardLeft() {

analogWrite(direction1motorA, 100);

digitalWrite(direction2motorA, LOW);

digitalWrite(direction1motorB, LOW);

analogWrite(direction2motorB, 30);

// comanda de virarea usor la stanga

void SlightLeft() {

analogWrite(direction1motorA, 120);

digitalWrite(direction2motorA, LOW);

- 51 -
Filofteia-Valentina VOINEA – Proiect de diplomă

analogWrite(direction1motorB, 0);

digitalWrite(direction2motorB, LOW);

// comanda de oprire a robotului

void Stop() {

analogWrite(direction1motorA, 0);

digitalWrite(direction2motorA, LOW);

analogWrite(direction1motorB, 0);

digitalWrite(direction2motorB, LOW);

// comanda de basculare

void sus()

digitalWrite(AIA, HIGH);

digitalWrite(AIB, LOW);

void jos()

digitalWrite(AIA, LOW);

digitalWrite(AIB, HIGH);

void pauza()

digitalWrite(AIA, LOW);

digitalWrite(AIB, LOW);

- 52 -

S-ar putea să vă placă și